iOS Geht das? iPhone + NFC + Berechnung = TonA oder TonB

E

ElaCorp

Aktives Mitglied
Thread Starter
Dabei seit
10.09.2015
Beiträge
164
Reaktionspunkte
16
Hallo,

ich hab eine Frage. Ich mache an meine Medikamenten Dose einen NFC dran.

Wenn ich nun mein Handy dran halte, würde doch sogar im Sperrbildschirm das erkannt werden, oder?
Kann ich dann im Hintergrund eine Berechnung durchführen, und dann einen entsprechenden Ton ausgeben?

Ziel:

Ich halte das Handy an die Dose. Es macht ein positives Ping! Ich nehme die Medikamente.

Ich halte das Handy etwas später an die Dose. Es macht ein negatives Doppel Ping!! Ich habe schon in den letzten 22 Std meine Medikamente genommen. Deswegen ist der Ton anders. Ich brauch nicht nochmal meine Medikamente nehmen.

Ich halte das Handy nach 23 Std wieder an die Dose. Es mach wieder positives Ping! Ich nehme die Medikamente.

Geht sowas?
 
In der Health-App kannst du einen Plan anlegen, das würde ich mal versuchen.

Ansonsten wüsste ich nicht, dass NFC so tief integriert wäre. Es soll ja jetzt dann die Passwort-Wiederherstellung via NFC-Schlüssel kommen, aber aktuell?

Man kann auf dem iPhone ja auch keine Skripte laufen lassen. Also entweder über die Health-App oder den App Store nach einer Lösung sucheb. :)
 
  • Gefällt mir
Reaktionen: Ralle2007 und Hans-Ulrich
mit der App „NFC21“ kann man zB einen „Kurzbefehl“ auf einen Tag schreiben. Etvl kannst du über Kurzbefehle dann deine Logig (Tonausgabe gem. Zeitfenster) bauen?
 

Anhänge

  • F35CC9B2-0803-40B9-A4EE-C3747AF22F7E.png
    F35CC9B2-0803-40B9-A4EE-C3747AF22F7E.png
    308 KB · Aufrufe: 39
  • C95760B6-CD09-42DF-AC10-2065BE470591.png
    C95760B6-CD09-42DF-AC10-2065BE470591.png
    216,7 KB · Aufrufe: 38
  • C38D8732-9F45-4316-8CA1-69D37E7A28C6.png
    C38D8732-9F45-4316-8CA1-69D37E7A28C6.png
    306,3 KB · Aufrufe: 43
  • Gefällt mir
Reaktionen: Ralle2007
Das heißt aber auch, der Kurzbefehl muss etwas zwischenspeichern, damit man weiß, wann das letzte Mal ein Medikament eingenommen wurde - wenn ich dich da richtig verstanden habe ... und globale Variablen unterstützt Apple leider bis Heute nicht (AFAIK).

Hint: Ich hab mir damals dafür einen weiteren Kurzbefehl gebaut, den ich in einem anderen Kurzbefehl dann verwende. Der macht nichts anderes, als die Erinnerungen App als Datenbank zu missbrauchen. Ich lege dort einen JSON String ab, den ich mittels Dictionary zusammenbaue und dann einfach auslese bzw. wieder reinspeichere. Das ist mein Workaround für globale Variablen, damit ich mir einen Zustand von etwas merken kann. Alternativ ginge natürlich auch eine echte DB, die du bspw. mittels Request manipulierst ...

Wenn deine "Berechnung" also nix anderes ist als ein einfaches aufrechnen von Zeiten - und dann nen entsprechenden Ton ausgeben - dann sollte das genau so funktionieren. Ich mach ähnliches, meine App verwende ich zum ein- und ausstempeln. Und muss eben dafür wissen, was ich gerade für einen Zustand habe - den ich eben in der Erinnerungen-App ablege ^^
 
  • Gefällt mir
Reaktionen: dodo4ever
Wie willst du verfahren bei einem positivien Zeichen? Eine Abfrage, ob du das Medikament genommen hast, welche zu bestätigen musst?
 
  • Gefällt mir
Reaktionen: dodo4ever
Ich weiß, hier gabs soweit noch keine Reaktion - aber ich hab dennoch mal etwas rumgespielt :teeth:

Ich hab zwei Kurzbefehle - wobei der zweite lediglich als Persistenz-PlugIn für den ersten dient.
Man kann sich den Kurzbefehl "MedChecker" einfach duplizieren, wenn man sowas für mehrere Medikamente braucht. Man sollte halt im Kurzbefehl drin die beiden Dinge hinterlegen:
  1. Name des Medikamentes
  2. Anzahl der Minuten, welche MINDESTENS vergehen sollten zwischen der Einnahme
Man wird beim Import des Kurzbefehls zwar danach gefragt - aber soweit ich weiß beim duplizieren nicht mehr.
Aber ich habs im "Code" kommentiert, damit man weißt, wo man was anpassen sollte.

Ab dann funktioniert es wie folgt:
Wird der Kurzbefehl ausgeführt, wird die Datenbank nach dem Medikament befragt. Liegt dort noch kein Eintrag vor, ertönt die Meldung, dass ein neues Medikament angelegt wurde und damit ist der Kurzbefehl zu Ende.
Wird ein Eintrag gefunden, wird berechnet, wie viel Zeit zwischen dem letzten CheckIn und jetzt vergangen ist. Liegt diese Zeit unterhalb der vorher definierten Minuten (1 Tag wären also 1440 Minuten), dann ertönt ein STOP und man bekomm angezeigt, ab wann man frühstens die Tablette nehmen darf.
Passt der Zeitraum, ertönt ein PASST - und man wird gefragt, ob man das jetzt als Eingenommen protokollieren möchte. Bricht man ab, passiert nichts mehr (also reiner Check), bestätigt man allerdings mit OK, dann wird der aktuelle Zeitstempel in die Datenbank geschrieben für den nächsten Check.

Und jetzt fügt man einfach unter "Automationen" eine neue Automation hinzu, wählt als Trigger einen NFC Tag den man dann scannen muss und hinterlegt den Kurzbefehl MedChecker dahinter. Das wars :) Du musst beim ersten Mal ausführen erlauben, dass ein Kurzbefehl den anderen Kurzbefehl starten darf. Diese Abfrage kommt aber nur 1x.

Ich hab das Ding in der Kaffeepause/Mittagspause gebaut und hab selbst kaum Erfahrung mit dem Zeug - ich gehe mal davon aus, dass er noch Feinschliff brauchen wird. Wahrscheinlich gäbs auch irgendwelche Schleifen, die man hätte ziehen können :noplan: Schau ich mir ein anderes mal an für die Verschönerung.
Im ersten Check mit dem NFC Tag hier hat er aber genau das gemacht, was man erwarten würde. Nur die ganzen Import-Frage-Features da konnt ich nicht testen ... (im Übrigen würd ich etwas weniger als 24h wählen, sonst muss man das jedes Mal minutengenau abwarten ^^ so alles ab 22 Stunden wäre okay oder ähnlich).

Klick die beiden Links einfach auf deinem iPhone an, dann kannst die Kurzbefehle direkt importieren.
MedChecker
Database

45EDCA0C-D931-44F6-8AA6-817D0F045A6B.jpeg


FCDB648C-78A0-498F-AA43-8B0175AC3399.jpeg


Und die Datenbank funktioniert wie folgt, wen es etwas detaillierter interessiert:

Man erstellt ein Wörterbuch mit dem Inhalt - also alles, was hier enthalten ist an Key/Value-Pairs, wird als JSON dann weggeschrieben.
Und dieses Wörterbuch übergibt man als Payload einem weiteren Wörterbuch - neben Methode (get/add) und dem Namen der gesicherten Variable.
Hier wurde bspw. der Schlüssel als "timestamp" benannt und dessen Wert ist einfach ein formatiertes Datumsfeld. Der Variablenname ist der vorher definierte Medikamentenname, der in einer lokalen Variable namens MedName gehalten wird.

D711FA3C-0D46-41F5-AC05-DC1D1434A641.jpeg


Und in der Erinnerungen-App sieht das dann so aus:

724579ED-C8C8-40D7-997F-6D3CF33D1898.jpeg


Ist der Database-Shortcut mal importiert, kann er überall wiederverwendet werden auf diese Art. Somit hat man einen lokalen Speicher für persistente Speicherung. Man kann das auch mit einem Notiz-Dokument machen, aber hier isses "eleganter" :)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: einPendler, Elektroschrott, MacMac512 und 8 andere
Tja, Undank ist der Welten Lohn :)
Nachdem @ElaCorp mittlerweile zig Mal hier war, aber nicht mal auf ne simple Frage antwortet, hak ich das Thema für mich hier ab und spar mir zukünftig Hilfe, die über ne Frage hinausgeht.

Den Shortcut teste ich übrigens seitdem und er macht, was er soll.
 
  • Gefällt mir
Reaktionen: Neeve, ElaCorp, rvale und 3 andere
Den Shortcut teste ich übrigens seitdem und er macht, was er soll.
Da hast du dir viel Arbeit gemacht und starke Leistung abgeliefert. Das hilft bestimmt dem ein oder anderen weiter, der diesen Post über Google findet. :) (y)
 
  • Gefällt mir
Reaktionen: lobons, Elektroschrott, Bozol und 2 andere
Es gibt nochmal eine Anpassung. Ich hab rausgefunden, wie man Systemsounds einbinden kann :teeth:
Also gibts jetzt Alarmtöne anstatt gesprochene Wörter. Außerdem wird nun noch der Medikamentenname in der Meldung erwähnt, wenn einem mitgeteilt wird, dass man das Medikament noch nicht einnehmen darf.

Und ich hab zur Übersicht noch ein kurzes Video davon gemacht.



MedChecker
 
  • Gefällt mir
Reaktionen: ruerueka, einPendler, Elektroschrott und 6 andere
Absolut klasse. :) (y)
 
  • Gefällt mir
Reaktionen: Ralle2007
@Dextera Super cool von dir.

Ich war nun nicht so motiviert auf die Antworten der anderen zu antworten, weil die meisten gesagt haben, ich soll das ganz anders machen und warum verwende ich nicht xyz...

Aber du, du hast es so hinbekommen, so wie es smart ist. Ich hab mir NFC Aufkleber bestellt. Kommen erst nächste Woche. Dann werde ich das genau so nachmachen! Mit dem handy schon mal richtig gut. Leider gibt Apple das auf der Watch nicht frei, oder? Kurze suche hat ergeben, dass dort technisch das auch möglich ist, aber die Apple Watch keine Kurzbefehle auslösen kann. Dennoch reicht mir das erstmal. vermutlich wird das dann die nächsten jähre nachgereicht.
 
Mit der simplen Frage meinte ich eigentlich meine. Ob du bei positivem Zeichen gefragt werden willst nach Einnahme protokollieren. Aber das hat sich mittlerweile ja erübrigt.

Wenn man den Shortcut auf der Watch ausführt, wird einem ein Konvertierungsfehler von Text in Wörterbuch angemault. Da die Dokumentation ähnlich gut ist wie mit vielen anderen Dingen bei Apple (wozu Details, erklärt sich doch eh alles von selbst!?), kann ich nicht sagen woran es liegt. Ich würde jedenfalls die Persistierung statt über Erinnerungen halt über Notizen probieren. Dann entfällt dieses Problem bspw. und es könnte auch auf der Watch funktionieren.
 
  • Gefällt mir
Reaktionen: dodo4ever
OK, ich bin dabei das zum laufen zu bekommen.
NFC sind geliefert worden.

Ich habe beide Links auf meinem iPhone geöffnet und konnte so das in mein iPhone importieren.
Name ist vergeben und die Zeit habe ich auf 960 (16 Std) eingestellt.

Ich habe auch die NFC Erkennung anlegen können. Ohne extra App. Nun bekomme ich zwei Meldungen.

IMG_2938.PNG
IMG_2937.PNG
IMG_2939.PNG
IMG_2936.PNG
IMG_2940.PNG
IMG_2941.PNG


Ich habe die Erinnerung App auf meinem Handy.
Kann es sein, dass ich das Script „Memory by Wonky Logic“ nicht habe? Oder ist das ein Ton der bei mir nicht drauf ist?
Was muss ich nun genau tun, damit ich es zum laufen bekomme. Natürlich versuche ich scho alles zu verstehen. Aber das dauert.
 
Und hier das letzte Foto, wenn ich auf Database drücke, erscheint folgendes:
IMG_2942.PNG
IMG_2943.PNG
IMG_2944.PNG


OK, ich habe nun erkannt, dass "Memory by Wonky Logic" kein Lied und auch keine App ist, sonder da das andere Script rein soll. Ich habe dort nun raufgeklickt und "Database" ausgewählt.

Auch habe ich das erste Script von oben umbenannt und das mit dem Ton aus dem Video importiert. Aber leider funktioniert es immer noch nicht.
Ich vermute mal, dass du das mit dem Wörterbuch selber generiert hast. Ich haben ähnlich keine App oder etwas ähnliches was Wörterbuch heißt.

EDIT:
Ich habe hier etwas zu dem Fehler gefunden. Allerdings verstehe ich das nicht genau. In dem ersten Foto ist das Wort "Liste" das zweite Mal durchsichtiger. Vermutlich soll das so, oder? Ich vermute, dass dann die Standart Liste genommen wird. Sozusagen der root Ordner. und auf dem zweiten Foto fällt mir auf, dass in der Mitte des Bildschirms das ErinerungsSymbol zu sehen ist, aber kein Text. Eventuell soll das so. Ich versuche selber den Fehler zu finden. Aber bislang habe ich noch nicht umgestellt. Vermutlich würde ich damit noch mehr verstellen.

IMG_2945.PNG
IMG_2946.PNG
 
Zuletzt bearbeitet:
Und irgendwie glaube ich, dass ich etwas mit dem Wörterbuch noch nicht verstanden habe.
Ich hab mein iPhone neugestartet und das hat nichts verändert.
Ist es richtig, dass beim aufrufen des Skriptes, nichts mitgegeben wird?

IMG_2947.PNG
IMG_2948.PNG
 
Memory ist die Grundlage gewesen von "Database" - ich hab da damals ein paar Fehler in dem Script behoben und das auch mit dem Erschaffer besprochen - der es daraufhin bei sich auch angepasst hat (sagte er mir zumindest, netter Kerl :) ). Meine Lösung früher war über die Notizen-App. Richtig, an der Stelle gehört Database aufgerufen. Database allein funktioniert sowieso nie, da es als Input eben was erwartet. Deswegen ist es ein Plugin und nur via Aufruf aus anderen Shortcuts zu verwenden.

Ich glaube den Fehler zu sehen, bitte sag mir mal, ob du in deiner "Erinnerungen"-App eine Liste hast, welche "ToDo" heißt? Nur damit ich weiß, wo das Problem herkommt. Ich hab extra ToDo verwendet, da dies eigentlich eine Standard-Liste ist, mit der jedes iPhone um die Ecke kommt.

Also da, wo "Alle Erinnerungen suchen , wenn Alle folgenden Bedingungen erfüllt werden" steht, sollte nicht ein leeres Feld "Liste" stehen. Klick da drauf und trag da eine Erinnerungen-Liste ein, die du auch bei dir am iPhone hast. Und Achtung, das kommt weiter unten nochmal. Siehe Screenshots.

Dann bitte kurz rückmelden wie es aussieht, da kommen wir schon durch :)
Aber du bist Versuchspatient #1, ich hab bisher keine Shortcuts für andere Leute gebaut. Interessant zu sehen, welche Hindernisse da auftreten können ^^
Die Idee war allerdings gut. Meine globalen Variablen-Probleme hab ich nun eben von Notizen auf Erinnerungen umgebaut - und den MedChecker nehm ich nun selbst täglich her :D

BTW: Wörterbuch ist eine Standard-Funktion von Apples Kurzbefehlen. Da braucht man nichts extra installieren.
 

Anhänge

  • 8A0ABBC1-C38C-49C7-8265-93CDC6045579.png
    8A0ABBC1-C38C-49C7-8265-93CDC6045579.png
    170,2 KB · Aufrufe: 32
  • 48D66EDD-8353-4FBF-B1EA-4E65E3DE3039.png
    48D66EDD-8353-4FBF-B1EA-4E65E3DE3039.png
    163,7 KB · Aufrufe: 33
  • Gefällt mir
Reaktionen: ElaCorp und dodo4ever
Ich hab in der App Erinnerungen die Liste ToDo angelegt.
Tatsächlich spricht nun Siri. "Neues Medikament angelegt" Und zwar immer.
Es werden nun immer zwei Einträge angelegt. Nicht in der Liste "ToDo", sondern unter "Alle". ToDo hat weiterhin 0 Einträge.

...

Jetzt wo ich die Listen eingetragen habe, die zwei Stellen im Script, funktioniert es. Nun trägt er es auch in die ToDo Liste ein. Und wenn man zugfrüh wieder den NFC verwendet, piept es. Und es wird sogar eingeblendet, ab wann man wieder Medikamente nehmen kann! Supercool. )

Danke für die Erklärung. Ich werde das Script auf Deutsch umschreiben.
Die App jeden Tag selber verwenden. Ich bin dementiell erkrankt. Und es wird mir enorm helfen.
Auch werde ich erstmal noch einen Monat das selber ausprobieren und "tunen" (anpassen).
Auch werde ich das auf meinem YouTube Kanal als Video zur Verfügung stellen. Falls du dir Namennennung etc wünscht, teile mir das ruhig mit.

Ich bin begeistert. =)

Geht eigentlich Apple Watch NFC? Alle Ergebnisse die ich gefunden habe, sind so, dass Apple dies nicht dafür freigeben hat. Ist das immer noch stand der Dinge?

@Dextera Echt cool von dir. Danke. =)
 
Hm, ich hab eigentlich extra wegen dir alles bereits auf Deutsch geschrieben? :kopfkratz: Oder meinst du Variablennamen und so?

Ich hab beschlossen, meine alte Website zu löschen und neu anzufangen. Werd also demnächst solche Dinge (und auch den MedChecker) in einem Blog niederschreiben und zukünftig nur noch verlinken. Man kann hier ja nach ein paar Tagen nix mehr editieren … Ich hab hier schon einige Scripte, Anleitungen etc. verfasst, das sollte nicht so verstreut in nem Forum rumdümpeln.

Bau um, wie du es brauchst. Freut mich, dass es hilft. Verteils weiter, mach Videos - wie du willst. Namensnennung ist nicht nötig :)

Viel Spaß damit und alles Gute.
 
  • Gefällt mir
Reaktionen: ruerueka, dodo4ever und ElaCorp
Ist es möglich folgendes zu realisieren?

Ein Protokoll anzulegen. Kann man es in die Medikamenten App automatisch eintragen? Oder kann man eine Protokolldatei anlegen? Für die Auswertung?
 
Darf ich nochmal höflich nachfragen ob du bereits dein "Script" auf deinem Blog veröffentlich hast oder ob es da bereits weitergegangen ist. Sonst würde ich ein Video dazu machen und schauen ob mir jemand anderes damit helfen kann.

Leider bin ich nicht so gut, dass ich das selber weiterentwickeln kann.
 
Zurück
Oben Unten