NEWS
Anwesenheitserkennung mit IFTTT
-
Hallo Freunde des Licht,
nach einer Odyssee habe ich jetzt endlich eine akzeptable Lösung für die Anwesenheitserkennung gefunden. Ich habe mehrere Adapter (z.B. tr-064, PING, EgiGeoZone, OwnTracks) getestet. Keiner brachte das gewünschte Ergebnis.
Anforderung: Für die Steuerung des Datenpunktes Anwesenheit stehen 2 Android-Handys zur Verfügung. In Abhängigkeit des Anwesenheitsstatus sollen u.a. die Szenen „Gehen“ und „Kommen“ gestartet werden.
Lösung: Für das Betreten oder Verlassen der Home Zone wird der Dienst IFTTT verwendet. Nach der kostlosen Anmeldung kann es auch gleich losgehen. Schritt 1: Definition der individuelle Home Zone oder eine beliebige andere Zone (Service Location). Im 2. Schritt wird festgelegt, was beim Betreten oder Verlassen der Zone passieren soll. In meinen Fall schicke ich über einen Web Request (Service Webhooks) eine bestimmte Zeichenkette: z.B. „Handy 1 hat Home Zone betreten“ an meinen ioBroker Cloud Adapter. Wenn die Verbindung steht – findet ihr die Zeichenkette unter: Objekte/cloud 1/services/ifttt. In Abhängigkeit des Inhalts der Zeichenkette setze ich den Anwesenheitsstatus von Handy 1 und/oder Handy 2. Verlässt das letzte Handy die Home Zone wird die Szene „Gehen“ gestartet. Betritt das erste Handy die Home Zone wird die Szene „Kommen“ gestartet. Die Verbindung zum IFTTT Dienst wird im Cloud Adapter hergestellt. In der Adapterkonfiguration unter dem Reiter „Service und IFTTT“ muss der IFTTT Key eingetragen werden. Im Gegenzug muss bei der Definition des Web-Request der IFTTT Link des jeweiligen Cloud Adapters angegeben werden. Beachtet bitte, dass pro Handy/Person eine separate Cloud Instanz sowie IFTTT Anmeldung erforderlich ist. Ich habe die Lösung sein einer Woche im Einsatz. Bisher gab es keine Fehler. Alle Zustände wurden bisher korrekt erkannt.
Fazit: Am Ende der langen Reise habe ich endlich eine einfache sowie stabile Lösung für die Anwesenheitserkennung gefunden. Der kostenfreie Dienstanbieter IFTTT - in Kombination mit der gelungenen Cloud Adapter Integration - öffnet ein Tor zu schier unendlichen Anwendungsbeispielen (IFTTT Rezepte).
Für die diejenigen, die es bis hierher geschafft haben - anbei das komplette Java Script (siehe unten).
-
pack den Code bitte mit Code-Tag ein
-
Das Script wurde im Original mit Java Blockly geschrieben. Ich habe es zur Anonymisierung in Java Code umgewandelt. Hilft dir ein Blockly-Screen-Shot weiter? Wie kann ich den Code mit Tags darstellen?
-
code markieren und auf den knopp drücken
-
on({id: 'cloud.0.services.ifttt', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.0.services.ifttt").val == 'Handy1 enter home zone') { sendTo("email", "send", { text: 'Handy1 ist zu Hause angekommen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1*/, true); if (getState("javascript.0.Anwesenheit_Handy2").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, true); setState("scene.0.Kommen"/*0.Kommen*/, true); } } if (getState("cloud.0.services.ifttt").val == 'Handy1 exit home zone') { sendTo("email", "send", { text: 'Handy1 hat das Haus verlassen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1*/, false); if (getState("javascript.0.Anwesenheit_Handy2").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, false); setState("scene.0.Gehen"/*0.Gehen*/, true); } } }); on({id: 'cloud.1.services.ifttt', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.1.services.ifttt").val == 'Handy2 enter home zone') { sendTo("email", "send", { text: 'Handy2 ist zu Hause angekommen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy2"/*Anwesenheit_Handy2*/, true); if (getState("javascript.0.Anwesenheit_Handy1").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, true); setState("scene.0.Kommen"/*0.Kommen*/, true); } } if (getState("cloud.1.services.ifttt").val == 'Handy2 exit home zone') { sendTo("email", "send", { text: 'Handy2 hat das Haus verlassen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy2"/*Anwesenheit_Handy2*/, false); if (getState("javascript.0.Anwesenheit_Handy1").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, false); setState("scene.0.Gehen"/*0.Gehen*/, true); }
-
Danke für die Anleitung. Kannst Du mir bitte deine IFTTT App Einstellungen posten?
Hallo Freunde des Licht,
nach einer Odyssee habe ich jetzt endlich eine akzeptable Lösung für die Anwesenheitserkennung gefunden. Ich habe mehrere Adapter (z.B. tr-064, PING, EgiGeoZone, OwnTracks) getestet. Keiner brachte das gewünschte Ergebnis.
Anforderung: Für die Steuerung des Datenpunktes Anwesenheit stehen 2 Android-Handys zur Verfügung. In Abhängigkeit des Anwesenheitsstatus sollen u.a. die Szenen „Gehen“ und „Kommen“ gestartet werden.
Lösung: Für das Betreten oder Verlassen der Home Zone wird der Dienst IFTTT verwendet. Nach der kostlosen Anmeldung kann es auch gleich losgehen. Schritt 1: Definition der individuelle Home Zone oder eine beliebige andere Zone (Service Location). Im 2. Schritt wird festgelegt, was beim Betreten oder Verlassen der Zone passieren soll. In meinen Fall schicke ich über einen Web Request (Service Webhooks) eine bestimmte Zeichenkette: z.B. „Handy 1 hat Home Zone betreten“ an meinen ioBroker Cloud Adapter. Wenn die Verbindung steht – findet ihr die Zeichenkette unter: Objekte/cloud 1/services/ifttt. In Abhängigkeit des Inhalts der Zeichenkette setze ich den Anwesenheitsstatus von Handy 1 und/oder Handy 2. Verlässt das letzte Handy die Home Zone wird die Szene „Gehen“ gestartet. Betritt das erste Handy die Home Zone wird die Szene „Kommen“ gestartet. Die Verbindung zum IFTTT Dienst wird im Cloud Adapter hergestellt. In der Adapterkonfiguration unter dem Reiter „Service und IFTTT“ muss der IFTTT Key eingetragen werden. Im Gegenzug muss bei der Definition des Web-Request der IFTTT Link des jeweiligen Cloud Adapters angegeben werden. Beachtet bitte, dass pro Handy/Person eine separate Cloud Instanz sowie IFTTT Anmeldung erforderlich ist. Ich habe die Lösung sein einer Woche im Einsatz. Bisher gab es keine Fehler. Alle Zustände wurden bisher korrekt erkannt.
Fazit: Am Ende der langen Reise habe ich endlich eine einfache sowie stabile Lösung für die Anwesenheitserkennung gefunden. Der kostenfreie Dienstanbieter IFTTT - in Kombination mit der gelungenen Cloud Adapter Integration - öffnet ein Tor zu schier unendlichen Anwendungsbeispielen (IFTTT Rezepte).
Für die diejenigen, die es bis hierher geschafft haben - anbei das komplette Java Script (siehe unten). `
-
Nach der Installation und Anmeldung sind in der IFTTT App keine besonderen Einstellungen erforderlich (Standard). Oder geht es dir um die Konfiguration der beiden Applets, die für die Lösung notwendig sind?
-
Webhooks, sprich URL = die von iobroker, Method = post?, Content Type & Body.
Nach der Installation und Anmeldung sind in der IFTTT App keine besonderen Einstellungen erforderlich (Standard). Oder geht es dir um die Konfiguration der beiden Applets, die für die Lösung notwendig sind? `
-
Habs gelöst mit Hilfe von Beitrag: viewtopic.php?f=35&t=6782&p=136662&hilit=ifttt#p136662
8-)
Webhooks, sprich URL = die von iobroker, Method = post?, Content Type & Body.
Nach der Installation und Anmeldung sind in der IFTTT App keine besonderen Einstellungen erforderlich (Standard). Oder geht es dir um die Konfiguration der beiden Applets, die für die Lösung notwendig sind?
-
on({id: 'cloud.0.services.ifttt', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.0.services.ifttt").val == 'Handy1 enter home zone') { sendTo("email", "send", { text: 'Handy1 ist zu Hause angekommen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1*/, true); if (getState("javascript.0.Anwesenheit_Handy2").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, true); setState("scene.0.Kommen"/*0.Kommen*/, true); } } if (getState("cloud.0.services.ifttt").val == 'Handy1 exit home zone') { sendTo("email", "send", { text: 'Handy1 hat das Haus verlassen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1*/, false); if (getState("javascript.0.Anwesenheit_Handy2").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, false); setState("scene.0.Gehen"/*0.Gehen*/, true); } } }); on({id: 'cloud.1.services.ifttt', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("cloud.1.services.ifttt").val == 'Handy2 enter home zone') { sendTo("email", "send", { text: 'Handy2 ist zu Hause angekommen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy2"/*Anwesenheit_Handy2*/, true); if (getState("javascript.0.Anwesenheit_Handy1").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, true); setState("scene.0.Kommen"/*0.Kommen*/, true); } } if (getState("cloud.1.services.ifttt").val == 'Handy2 exit home zone') { sendTo("email", "send", { text: 'Handy2 hat das Haus verlassen!', to: 'email@online.de', subject: 'ioBroker EventMessenger' }); setState("javascript.0.Anwesenheit_Handy2"/*Anwesenheit_Handy2*/, false); if (getState("javascript.0.Anwesenheit_Handy1").val == false) { setState("javascript.0.Anwesenheit"/*Anwesenheit*/, false); setState("scene.0.Gehen"/*0.Gehen*/, true); } ```` `
Hallo, ich probiere das gerade aus, aber ich bekomme Fehler angezeigt ? Was ist hier falsch ?
-
PS:
Habe es selbst gefunden, die letzten zwei Zeilen fehlen…
und bei .val == false wird val === false vorgeschlagen, dann ist das gelbe Dreieck weg...
-
Hallo
Habe folgendes Problem der Script läuft an sich aber es wird scense gehen oder kommen nicht ausgelöst .
javascript.0 2018-10-31 12:17:13.687 warn at Object. <anonymous>(script.js.Java.anwesenheit2Orginal:39:9) javascript.0 2018-10-31 12:17:13.685 warn getState "javascript.0.Anwesenheit_Handy1" not found (3) javascript.0 2018-10-31 12:17:13.685 warn at Object. <anonymous>(script.js.Java.anwesenheit2Orginal:38:5) javascript.0 2018-10-31 12:17:13.684 warn State "javascript.0.Anwesenheit_Handy2" not found javascript.0 2018-10-31 12:16:40.015 warn at Object. <anonymous>(script.js.Java.anwesenheit2Orginal:11:9) javascript.0 2018-10-31 12:16:40.013 warn getState "javascript.0.Anwesenheit_Handy2" not found (3) javascript.0 2018-10-31 12:16:40.013 warn at Object. <anonymous>(script.js.Java.anwesenheit2Orginal:10:5) javascript.0 2018-10-31 12:16:40.011 warn State "javascript.0.Anwesenheit_Handy1" not found</anonymous></anonymous></anonymous></anonymous>
das steht unter log
muss ich noch javascript für anwesenheit Handy1 und anwesendheit handy2 javascript erstellen?
was muss ich den noch ergänzen damit es geht?
-
Alle Zustände wurden bisher korrekt erkannt.
-
ich bin ja neuling in der sache aber , es müsste doch irgendwo abgefragt werden ob habdy1 oder handy2 auf true oder false steht .
muss ich die beiden handys auch in iobroker intrigieren wenn ja wie
ich bedanke mich
mfg
-
PS:
Habe es selbst gefunden, die letzten zwei Zeilen fehlen…
und bei .val == false wird val === false vorgeschlagen, dann ist das gelbe Dreieck weg... `
Hast du es damit zum Laufen gebracht? Ich bin auch gerade am Basteln, aber es funktioniert noch nicht und ich versuche herauszufinden woran es liegt. Wenn ich es so anpasse wie du geschrieben hast, tauchen zumindest keine Fehlermeldungen mehr auf, aber es werden nur die Mails verschickt, sonst passiert nix. Wo sollten denn die Einträge "javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1" auftauchen?
Das Script wurde im Original mit Java Blockly geschrieben. Ich habe es zur Anonymisierung in Java Code umgewandelt. Hilft dir ein Blockly-Screen-Shot weiter? `
Wäre es möglich, den Blockly-Code so zu exportieren, dass man ihn wieder als Blockly importieren kann? Oder zumindest den Screenshot von Blockly zu posten? Das würde mir viel helfen
Die ifttt-Integration hab ich schon hinbekommen (und auch endlich Webhooks verstanden) :D, nur das Script tut nicht das was ich mir vorstelle was es tun sollte. Muss ich zwingend den Szenen-Adapter einrichten? Muss man die Szenen vorher von Hand eintragen?
-
PS:
Habe es selbst gefunden, die letzten zwei Zeilen fehlen…
und bei .val == false wird val === false vorgeschlagen, dann ist das gelbe Dreieck weg... `
Hast du es damit zum Laufen gebracht? Ich bin auch gerade am Basteln, aber es funktioniert noch nicht und ich versuche herauszufinden woran es liegt. Wenn ich es so anpasse wie du geschrieben hast, tauchen zumindest keine Fehlermeldungen mehr auf, aber es werden nur die Mails verschickt, sonst passiert nix. Wo sollten denn die Einträge "javascript.0.Anwesenheit_Handy1"/*Anwesenheit_Handy1" auftauchen?
Das Script wurde im Original mit Java Blockly geschrieben. Ich habe es zur Anonymisierung in Java Code umgewandelt. Hilft dir ein Blockly-Screen-Shot weiter? `
Wäre es möglich, den Blockly-Code so zu exportieren, dass man ihn wieder als Blockly importieren kann? Oder zumindest den Screenshot von Blockly zu posten? Das würde mir viel helfen
Die ifttt-Integration hab ich schon hinbekommen (und auch endlich Webhooks verstanden) :D, nur das Script tut nicht das was ich mir vorstelle was es tun sollte. Muss ich zwingend den Szenen-Adapter einrichten? Muss man die Szenen vorher von Hand eintragen? ` ich nutze aktuell ifttt nicht mehr. Ich mache meine Anwesenheitserkennung mit dem Adapter google sharedlocations.
aber die Datenpunkte und das Blockly für die Anwesenheitserkennung sind so ähnlich…(kann ich später hochladen, habe gerade keinen Rechner an-ich bin am Handy)
-
Ich habe gerade gesehen das ich das Script mit der IFTTT Geschichte nicht mehr habe.
Aber vielleicht hilft Dir folgendes. Ich habe mir mehrere Datenpunkte erstellt, in meinem Fall nur für 2 Personen, also für meine Frau und für mich. (Diese Datenpunkte nur in ein leeres neues Javascript kopieren, Deine Namen anpassen und einmal ausführen, dann sind die Datenpunkte erstellt.)
Bei noch mehr Personen kannst Du das ja beliebig erweitern. Den Datenpunkt mit "suchen" brauchst Du nicht unbedingt. Ich nutze den nur um mr die Adresse bzw. den Standort des Handys ansagen zu lassen. Über Alexa2 Adapter kann ich dann fragen: Alexa, wo ist Kerstin. Als Antwort bekomme ich dann die aktuelle Adresse angesagt, also die wo das Handy gerade ist.
//Home //Datenpunkte An-Abwesenheitserkennung Heiko Home Zone createState("Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home", { name: 'Heiko Home Anwesenheit', role: 'switch', type: 'boolean', read: true, write: true, def: true, }); //Datenpunkte An-Abwesenheitserkennung Kerstin Home Zone createState("Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home", { name: 'Kerstin Home Anwesenheit', role: 'switch', type: 'boolean', read: true, write: true, def: true, }); //Alle An-Abwesend Home Zone //Datenpunkte An-Abwesenheitserkennung Alle Home Zone createState("Eigene_Datenpunkte.Anwesenheit.Alle.Home.Alle_Home", { name: 'Alle Home Anwesenheit', role: 'switch', type: 'boolean', read: true, write: true, def: true, }); //Arbeit //Datenpunkte An-Abwesenheitserkennung Heiko Arbeit createState("Eigene_Datenpunkte.Anwesenheit.Heiko.Arbeit.Heiko_Arbeit", { name: 'Heiko Arbeit Anwesenheit', role: 'switch', type: 'boolean', read: true, write: true, def: true, }); //Datenpunkte An-Abwesenheitserkennung Kerstin Arbeit createState("Eigene_Datenpunkte.Anwesenheit.Kerstin.Arbeit.Kerstin_Arbeit", { name: 'Kerstin Arbeit Anwesenheit', role: 'switch', type: 'boolean', read: true, write: true, def: true, }); //Heiko suchen //Datenpunkt Heiko suchen createState("Eigene_Datenpunkte.Anwesenheit.Heiko.Heiko_suchen.Heiko_suchen", { name: 'Heiko suchen', role: 'button', type: 'object', read: true, write: true, def: true, "smartName": { "de": "Alexa Heiko suchen", "smartType": "SWITCH" }}); //Kerstin suchen //Datenpunkt Kerstin suchen createState("Eigene_Datenpunkte.Anwesenheit.Kerstin.Kerstin_suchen.Kerstin_suchen", { name: 'Kerstin suchen', role: 'button', type: 'object', read: true, write: true, def: true, "smartName": { "de": "Alexa Kerstin suchen", "smartType": "SWITCH" }});
Dann habe ich noch ein Blockly was die Datenpunkte Triggert (in Deinem Fall müssen die Datenpunkte dann durch den IFTTT String durch ein weiteres Blockly gesetzt werden. Ich weiß ja nicht wie Dein Text in IFTTT aussieht.
Hier mal ein Ausschnitt vom Blockly: (passt nicht drauf)
Hier der Blockly Export
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="oh~?)]A4IJb:,;hg5a(#" x="-1387" y="-1838"><mutation items="2"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="6z{H0KHxPKSuk^pQjez-"><field name="oid">google-sharedlocations.0.fence.Heiko-Home</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="tbbY:x53/#`RIN%oA@.%"><field name="oid">google-sharedlocations.0.fence.Heiko-Arbeit</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="}@1N!Wb-:d|s(VE-c!Xr"><field name="COMMENT">Heiko Home</field> <next><block type="controls_if" id="?qeLWSmPy.kkU#8ij-:R"><mutation elseif="2"></mutation> <value name="IF0"><block type="logic_compare" id="K~kE5!9!/xH[]SKW|fQ#"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="y`q8{oDu7IR8~y;c|a*~"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Heiko-Home</field></block></value> <value name="B"><block type="logic_boolean" id="nA29(Or/4d*8U}+7,51n"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="G*OoWc;EyoQ!W[HNm/yZ"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="=hT007@21CLG8/^6WGB5"><field name="BOOL">TRUE</field></block></value> <next><block type="telegram" id=";S{P{fhSoj6n^O21?0.1"><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="VV7lhzB(x@Q*CCr`{j-?"><field name="TEXT">Heiko ist in der Home Zone</field></shadow></value> <next><block type="control" id="YRUL!oRmkV8|pU;{qfd*"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id=",yyuRx8{7}e{~DO|VW.p"><field name="TEXT">Heiko ist in der Home Zone</field></block></value> <next><block type="comment" id="s%pl~E(U*!/n@OEZ[EcM"><field name="COMMENT">Heiko Arbeit</field> <next><block type="control" id="#)TkDIk8S0(,Ik#iLgwX"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Arbeit.Heiko_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="budlIcXJAPr`Vre0:6]P"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="qC6f4tKxeBsN~kdrAx`P"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="4QXaoCI_GMgCe8+;6);b"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Heiko-Arbeit</field></block></value> <value name="B"><block type="logic_boolean" id="xd}X?;cw/wwVA-Y#FQLI"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO1"><block type="control" id="QI4A!sXQpYXTd59YP#b1"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Arbeit.Heiko_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="Kaut_^@-VRXV,MU6/%:c"><field name="BOOL">TRUE</field></block></value> <next><block type="telegram" id="M4WzX1OP2yv/Q1MJ26R|"><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="ZrpS=ak|f!ia134l=3^Y"><field name="TEXT">Heiko ist auf der Arbeit !</field></shadow></value> <next><block type="control" id="XbCtpfh?K./#nX0UiVRO"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="3ZWkXo=m+!-*0Y4RU91S"><field name="TEXT">Heiko ist im Büro angekommen</field></block></value> <next><block type="control" id="Dw2?{jgV(}UmaLqYp1O,"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="*S-~N[VGN+?vv2v(H%(,"><field name="BOOL">FALSE</field></block></value> <next><block type="comment" id="c[Z+Dx@Q#V,6{(qds3*P"><field name="COMMENT">Heiko unterwegs</field></block></next></block></next></block></next></block></next></block></statement> <value name="IF2"><block type="logic_operation" id="G7:|UFaj+r[86nZO*u|)" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="X2`;*n`1+BH9;q!2e{@7"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Z7gi%ZcjW5I9a^~QRxC|"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Heiko-Home</field></block></value> <value name="B"><block type="logic_boolean" id="2f+V_p5F[Xfi{m_6Wm6."><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id=",/Wtd4c@Bf`hOt_%i]PA"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="tR2+(N=wK(h0(JbhLg^]"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Heiko-Arbeit</field></block></value> <value name="B"><block type="logic_boolean" id="heIL)9#eZ5EIgQ1_gbG/"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO2"><block type="control" id="syJf2m-dm(h^k%1bbu{;"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="NSwH0hp:{KY2{xGic~28"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="3[7Qf]R]-()J@0CWIuoB"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Arbeit.Heiko_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="((Gyx?V~2h!Zl~FVTF5D"><field name="BOOL">FALSE</field></block></value> <next><block type="telegram" id="(WUNvwP{hhZKicqI*D3Q"><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="w@{Rndq,fD^GK/pf,Qdm"><field name="TEXT">Heiko ist unterwegs !</field></shadow></value> <next><block type="control" id="a5HsKX(kY4t67M8fJIU5"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text" id="3*~:M8M`#[Z,|}%KR|?E"><field name="TEXT">Heiko ist unterwegs</field></block></value></block></next></block></next></block></next></block></statement></block></next></block></statement> <next><block type="on_ext" id="}E1x3hZzxCKz*T@[N1u{"><mutation items="2"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="cVK0oA14zqVou15bfgDA"><field name="oid">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="PS1w555N*E2?Zpa:W*gf"><field name="oid">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="#fV2x)oT^NRAs@Etz6h!"><field name="COMMENT">alle Anwesend ?</field> <next><block type="controls_if" id="%soY=yG3]xG067ehLdfR"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="rEQe4N?j?lObj52mR3EA" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="=YOw=UovKslz:zVtIB1["><field name="OP">EQ</field> <value name="A"><block type="get_value" id="8zEBx#SIKb/xv26[AbR}"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></block></value> <value name="B"><block type="logic_boolean" id=",)5}UWurskL3a`vZVyvR"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="9E:WdAc5u^tv5R-upW8e"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="7AGFiB}o95zM+c-^r}f,"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></block></value> <value name="B"><block type="logic_boolean" id="0{}J!9:6QVM%lfbzQkM+"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="yR_}1?C^K?NVWKU4tXB~"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Alle.Home.Alle_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="d^3FhXX5d`2b.?O^QUAu"><field name="BOOL">TRUE</field></block></value></block></statement> <value name="IF1"><block type="logic_operation" id="tqEtY3ZV;TK)AV;]RIe%" inline="false"><field name="OP">OR</field> <value name="A"><block type="logic_compare" id="QMPjcQb_}ar1/e-j,mwH"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Nli9P~Jtituc)z@lPw4k"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></block></value> <value name="B"><block type="logic_boolean" id="Bwor61Zm~#MY-2P?s|m{"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="T9M=3HIHebtTOx0w*#N}"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="*,3cz.;pKIF|xHf?JQ`)"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></block></value> <value name="B"><block type="logic_boolean" id="23?IsG!7^yK4cW.Pkd;`"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO1"><block type="control" id="@ZDD]ukyGmwT#]S0G0%6"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Alle.Home.Alle_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="/NXX#h;?hozbBPVpQ`g+"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> <next><block type="on_ext" id="{#+XI9ftKc%Q]}EIG4`A"><mutation items="2"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="(Ox}HW6bC^]1*o`ZtkM1"><field name="oid">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="qKaPJ[~6NT*lJa:STQt!"><field name="oid">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="XpLZ*S}~8Q%E6`9jD@%*"><field name="COMMENT">CCU Anwesenheit</field> <next><block type="controls_if" id="6OGyd#-%b/e?,O?j8u2J"><mutation elseif="1"></mutation> <value name="IF0"><block type="logic_operation" id="H/iiEsK8eu+e/k(CPo/v" inline="false"><field name="OP">OR</field> <value name="A"><block type="logic_compare" id="](c{.sP6[pY;9LXx?Qxg"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="bj#57(j`G*B_rld5LYDG"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></block></value> <value name="B"><block type="logic_boolean" id="Ts)#4|Bu@RER]pJ;_^^x"><field name="BOOL">TRUE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="FfJTx/9/6!r!=MP2=;rW"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="L)e*UZpw6kb|qJn7`h9}"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></block></value> <value name="B"><block type="logic_boolean" id="Lt}Jb(^k0T/f5vVASqR;"><field name="BOOL">TRUE</field></block></value></block></value></block></value> <statement name="DO0"><block type="control" id="7*?E[:|iVka:pdYL%le+"><mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.950</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id=")jGeNSvEEcK(ojd:-:GZ"><field name="BOOL">TRUE</field></block></value></block></statement> <value name="IF1"><block type="logic_operation" id=".{%sR%fax{[ES4{qg%3}" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="01ZU)_mF;YlEp3s.q9N`"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="43!ECsMAZ(=+8V[GtP6("><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Heiko.Home.Heiko_Home</field></block></value> <value name="B"><block type="logic_boolean" id="sY,s*t+wdCq6KpJ8;w=,"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id="#T6Nw?IkU+VrSuPo7cIP"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="lT@F/|%sg;07DEE7N,cT"><field name="ATTR">val</field> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field></block></value> <value name="B"><block type="logic_boolean" id="+,6OlNud`AfX,J]F:zg@"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO1"><block type="control" id="q;Ird_*wYMVTSP}kR)l["><mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.950</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="kMPCO;a6(M7iy+AS9S4n"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement></block></next></block></next></block> <block type="on_ext" id="oeZZ5{~YvtZ`/kbBny~)" x="-487" y="-1863"><mutation items="2"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="5B/mZcU{b6B}{D6)X.A|"><field name="oid">google-sharedlocations.0.fence.Kerstin-Home</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="M`6smVyOQMJ#!J/PS8`9"><field name="oid">google-sharedlocations.0.fence.Kerstin-Arbeit</field></shadow></value> <statement name="STATEMENT"><block type="comment" id="n^E{JcX./7Sk%E{0whx5"><field name="COMMENT">Kerstin Home</field> <next><block type="controls_if" id="[?zKd0nfM_P`Z[~55wPq"><mutation elseif="2"></mutation> <value name="IF0"><block type="logic_compare" id="Zz~12vt%~FDMu}6:lnKp"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Ws99f]%W[-(B[Jd7RBRD"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Kerstin-Home</field></block></value> <value name="B"><block type="logic_boolean" id="(yB:dS}{f1S:)[m_,741"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="WqGXwq_`A@^}.gHc-hT="><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="g;9BoCanQbP2kXWJD`,+"><field name="BOOL">TRUE</field></block></value> <next><block type="telegram" id="f/^uM7H~y83,%PRJ9pG("><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="]EjgK45ccVv#{lydGd?%"><field name="TEXT">Kerstin ist in der Home Zone</field></shadow></value> <next><block type="comment" id="+@-vku5%J:d%a+Y8KJL1"><field name="COMMENT">Alexa Wohnzimmer</field> <next><block type="control" id="((64/AxwPf(7N243E_F0"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id=";nURe_UKOKGJU;FHJPJL"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="%^suMW!@@XR?=-z0nRVH"><field name="COMMENT">Alexa Küche</field> <next><block type="control" id="3Geb0CXCqm,A/w~Sw+q|"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="S1A.v#!#i].#`i1g4Cf*"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="dn?3IC|-u^hS;g`R/2AF"><field name="COMMENT">Alexa Badezimmer</field> <next><block type="control" id="ls8{AzPk?:WQZDnN`UC-"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">9</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="Qlj8vG*ZzHb:mZf7LgM)"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="N/XLoJRW3CV1),aMrCTe"><field name="COMMENT">Alexa Flur</field> <next><block type="control" id="kS,[IkE1IhnRf);B3!!o"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">14</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="WArVMyn[%|MjwM)0X7:t"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="xU-)a98HOJ/Mw%%,}neZ"><field name="COMMENT">Alexa Keller Flur</field> <next><block type="control" id="Rf8w_ZQNwNOonk19)RE{"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">19</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="@jVWfpV(?c]f`;?=/sY_"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="k(PkckwplIQqlr%V8w0M"><field name="COMMENT">Alexa Werkstatt</field> <next><block type="control" id="C3Y|y),@c}dZM~d_QV+W"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">24</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="]zc8n!#/6PK,XU^bW:.k"><field name="TEXT">Kerstin ist in der Home Zone</field></block></value> <next><block type="comment" id="uwJt1r6z`eq=FDwql[?Y"><field name="COMMENT">Kerstin Arbeit</field> <next><block type="control" id="P0_CTdske1`LAhS7]SzX"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Arbeit.Kerstin_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="#-CrWTZ68neMrGvttC]4"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF1"><block type="logic_compare" id="d%JztERtLIc1)wH(E+@m"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="B_,+mw}0:zsx/)0}tKe|"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Kerstin-Arbeit</field></block></value> <value name="B"><block type="logic_boolean" id="9jR+d4MmbG?ji9F_UyX@"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO1"><block type="control" id="d?2R;AhXyP[5akUj`]^z"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Arbeit.Kerstin_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="?Rs?@M.c28/,)xHb-n;o"><field name="BOOL">TRUE</field></block></value> <next><block type="telegram" id="2*SxO]9kD%q)EokV=,+E"><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="f5thUl_:fLmYI};As[j:"><field name="TEXT">Kerstin ist auf der Arbeit !</field></shadow></value> <next><block type="comment" id="-b1f;c%q6H4fZw#IK:q*"><field name="COMMENT">Alexa Wohnzimmer</field> <next><block type="control" id="}]}9@?3-GvR%q9|wGWS`"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="A0clOtw5VKFcVesv^!Ri"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="comment" id="?sNIAhFxTc9AD@(?WBPk"><field name="COMMENT">Alexa Küche</field> <next><block type="control" id="?laydH={-IWR1R|YgP0E"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="pjF`6.ACM%Ug=,`gWhge"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="comment" id="dgyqHAJmK~mZotTJX[uI"><field name="COMMENT">Alexa Badezimmer</field> <next><block type="control" id="WGO}U[QqBdjdy]},h(.j"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">9</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="SHld[@^@R64a2Ia3^s7S"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="comment" id="Q/;.*]`G`W[eMa@H!D*V"><field name="COMMENT">Alexa Flur</field> <next><block type="control" id="NInZP;%#?^MCnm}y4;}O"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">14</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="[MjUIQ)EFLXzGjg=tVbT"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="comment" id="bTA##0|U:Auu)elNaa4k"><field name="COMMENT">Alexa Keller Flur</field> <next><block type="control" id="YPgoCt(v:yQc^x%Hx~y."><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">19</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="hhC1fIHh}WY_d1,0/UFP"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="comment" id="s?i^Cs+!ICwkF3}:Xe#Q"><field name="COMMENT">Alexa Werkstatt</field> <next><block type="control" id=".G`rL6lPB![mv|reTkRc"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">24</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="ZF9kdoopk2I)VL;qe^HZ"><field name="TEXT">Kerstin ist im Hospizhaus angekommen</field></block></value> <next><block type="control" id="g6rc;3bWT|0PQbb?u^=!"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="qJp]w4}8B9y;9R2lNeny"><field name="BOOL">FALSE</field></block></value> <next><block type="comment" id="z?4}_idqbxEQdW;}Pwh3"><field name="COMMENT">Kerstin unterwegs</field></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> <value name="IF2"><block type="logic_operation" id="A)@Zl;%!#uVxbAoh_NFa" inline="false"><field name="OP">AND</field> <value name="A"><block type="logic_compare" id="b-HcB~bSo0TO8k}Mmqd1"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="!?4-(Ca#-KSIgGJk,^,2"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Kerstin-Home</field></block></value> <value name="B"><block type="logic_boolean" id="Dz*=r{,nneZZL4l|qo{E"><field name="BOOL">FALSE</field></block></value></block></value> <value name="B"><block type="logic_compare" id=":A9h*tQAu7V)q5b{=lwO"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="jty?ADDq;%]FihZr|RNa"><field name="ATTR">val</field> <field name="OID">google-sharedlocations.0.fence.Kerstin-Arbeit</field></block></value> <value name="B"><block type="logic_boolean" id="KcJr:n2Vtutp%3RCoj{q"><field name="BOOL">FALSE</field></block></value></block></value></block></value> <statement name="DO2"><block type="control" id="%l?B5:MZ?t00_Tn/o1P)"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Home.Kerstin_Home</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="-kA4e]Jv2[k?(toYp/*J"><field name="BOOL">FALSE</field></block></value> <next><block type="control" id="Xhe7-?z57AkHpWo;:eF~"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.Eigene_Datenpunkte.Anwesenheit.Kerstin.Arbeit.Kerstin_Arbeit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="JXs5XBydU/!Kd8%{Tp/F"><field name="BOOL">FALSE</field></block></value> <next><block type="telegram" id="Xibfd(++0;.8nZ-,OUkT"><field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"><shadow type="text" id="`C3S5p0.YpsmfeT~MKgA"><field name="TEXT">Kerstin ist unterwegs !</field></shadow></value> <next><block type="comment" id="FP{|jaoT|#[p[#}A9gzL"><field name="COMMENT">Alexa Wohnzimmer</field> <next><block type="control" id="9ha9)d~dk#Om-ExdsyA("><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="HnvK,-`Nv}ao[m}N_l=L"><field name="TEXT">Kerstin ist unterwegs</field></block></value> <next><block type="comment" id=";@e7)e#5X^wP*`y%y`b|"><field name="COMMENT">Alexa Küche</field> <next><block type="control" id="yR5^N3b[-FP`5*L^[=_K"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="/I%!,YTX=V|(n*MnDVd;"><field name="TEXT">Kerstin ist unterwegs</field></block></value> <next><block type="comment" id="-BGFt:nt+1t_8mV[T*xW"><field name="COMMENT">Alexa Badezimmer</field> <next><block type="control" id="%rJ_CZReXYBbrX2;J;3."><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">9</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="uC`6?3m1xhMfM2QT:D|)"><field name="TEXT">Kerstin ist unterwegs</field></block></value> <next><block type="comment" id="w#D*sGLaprO1q5i4{z,u"><field name="COMMENT">Alexa Flur</field> <next><block type="control" id="`PFzn.:cr#!K6APbhtW1"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">14</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="7qo:{A[b*Y2KNe#u`PX2"><field name="TEXT">Kerstin ist unterwegs</field></block></value> <next><block type="comment" id="vC508CSW@T6:xvuT~:08"><field name="COMMENT">Alexa Keller Flur</field> <next><block type="control" id="M00DCOie+*Shv5t)q(K{"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">19</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="F.=6x.UCFBRGtD]G^*4{"><field name="TEXT">Kerstin ist unterwegs</field></block></value> <next><block type="comment" id="jsdoph,j!Rgzfmk)F,R~"><field name="COMMENT">Alexa Werkstatt</field> <next><block type="control" id="4.!BK/fxsoa/loA?!c;9"><mutation delay_input="true"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">24</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="text" id="_cJ,JW~36+wJj?:H|MNf"><field name="TEXT">Kerstin ist unterwegs</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></xml>
Ob Du das Blockly importieren kannst weiß ich nicht, geht wahrscheinlich nur wenn auch der Adapter google shared location installiert ist.
-
Super, vielen Dank! Das werde ich mir mal ansehen - ich bin jetzt auch nicht zwingend auf ifttt festgenagelt, ich brauche nur was, was nicht nur über WLAN funktioniert. TR64 hat bei mir zu viele Fehlalarme produziert. Den google sharedlocations Adapter kannte ich noch gar nicht.
-
Aber vielleicht hilft Dir folgendes. Ich habe mir mehrere Datenpunkte erstellt, in meinem Fall nur für 2 Personen, also für meine Frau und für mich. (Diese Datenpunkte nur in ein leeres neues Javascript kopieren, Deine Namen anpassen und einmal ausführen, dann sind die Datenpunkte erstellt.) `
So, kurzer Zwischenstand: Du hast mir sehr geholfen, Danke
den Blockly-Code konnte ich (auch mit installiertem google shared location Adapter) zwar nicht importieren, aber die beiden Code-Schnipsel und der Screenshot haben mir geholfen, das ganze zu verstehen, sodass ich mir aus den Einzelteilen jetzt was funktionierendes gebaut habe. Bin aber jetzt mal bei ifttt geblieben, da in dem Thread über google shared location gerade von einigen Problemen berichtet wird.
Vielleicht für alle anderen, die den Thread hier lesen und ähnliche Probleme haben (korrigiert mich, falls ich was falsch verstanden habe): eines meiner Probleme war, dass das ursprüngliche Script von Pandia Datenpunkte nutzt, die standardmäßig nicht existieren (javascript.0.Anwesenheit_Handy1, javascript.0.Anwesenheit_Handy2, javascript.0.Anwesenheit). Wenn man die z.B. mit Hilfe eines Scripts wie dem ersten von dslraser anlegt und außerdem die Einstellungen wie in https://forum.iobroker.net/viewtopic.php?p=138835#p138835 ändert, funktioniert es. Diese Infos fehlten mir im ursprünglichen Post und waren mir als Anfänger nicht klar. Damit konnte ich mir jetzt auch noch ein paar weitere Blocklys basteln und bin einen guten Schritt weiter gekommen
Ich vermute, dass das von exitus beschriebene Problem auch damit zu tun hat, dass die entsprechenden Datenpunkte nicht existieren.
-
ja, ist genau so wie Du schreibst. Im ersten Script wird wohl von existierenden/angelegten Datenpunkten ausgegangen.
PS: wegen dem Import des Blockly. Hast Du den Telegram Adapter und Alexa2 Adapter installiert ?
Import geht immer nur wenn auch die Adapter die im Blockly verwendet werden vorhanden sind, sonst endet es oft mit einem schwarzen Punkt in der Anzeige nach dem Import.
Aber schön das Du weiter gekommen bist.