NEWS
Anwesenheitserkennung mit IFTTT
-
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.
-
Ah, OK. Telegram habe ich nicht, Alexa2 habe ich seit eben, aber zum Zeitpunkt des Imports noch nicht
Aber da ich jetzt erstmal bei ifttt geblieben bin, konnte ich ja jetzt, nachdem ich mit deinem ersten Script die Datenpunkte angelegt hatte, auch das ursprüngliche Script von Pandia verwenden. Ich habe mir jetzt auch mal am Beispiel deines zweiten Blockly-Scripts eine Sprachausgabe über Alexa angelegt und glaube ich habe das System von Blockly ein bisschen besser verstanden (bin leider ziemlicher Programmier-Anfänger).
-
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. `
Sicher das pro Handy ein extra IFTTT Account sowie Cloud-Account und Adapter benötigt wird?
Ich meine den IFTTT-Key benötigt man nur um Daten ZU IFTTT zu senden, weil der IFTTT-Key ja nur in der URL für den Webhook VON ioBroker ZU< IFTTT steht.
Um Daten VON IFTTT zu bekommen hat man den APP-KEY vom Cloud Adapter, weil der APP-KEY vom Cloud Adapter steht ja nur in der URL in der man die Daten VON IFTTT ZU schickt.
Hatte meinen IFTTT-Key mal probehalber raus genommen und konnte trotzdem Daten von IFTTT empfangen. Umgekehrt geht es ja nicht weil ohne Cloud-Adapter KEY ja der Cloud Adapter nicht online geht.
Daten VON ioBroker ZU IFTTT:
https://maker.ifttt.com/trigger/{event}/with/key/
Daten VON IFTTT ZU ioBroker:
https://iobroker.net/ifttt/<cloud-adapterkey></cloud-adapterkey>
Wenn man also nur Daten ZU ioBroker senden will, kommt man mit einem Cloud Adapter aus. Auf mehren Handys einen IFTTT Account zu nutzen geht nicht. Es sind dann ja auf allen Handys die gleichen Applets drauf. Wenn dann also Person 1 das Haus verlässt, wird
Location: Person 1, abwesend
gesendet. Wenn dann später Person 2 das Haus verlässt, wird nochmal
Location: Person 1, abwesend
gesendet weil wie gesagt die Applets ja auf beiden Handys sind. Aber pro Handy einen IFTTT Account macht ja durchaus Sinn da man vielleicht verschiedene Orte (Arbeitsplatz, Bekannte usw.) hat und die andere Person die Applets nicht ändern kann.
Man muss die Daten dann nur genau zuordnen. Evtl nach diesem Schema:
<dienst>: <person>, <status> Location: Frau, anwesend</status></person></dienst>
Wenn man aber Daten ZU IFTTT zu zwei verschiedenen Accounts senden will, kommt man um einen zweiten Cloud Adapter und Account nicht drum rum.
-
Ich benutze diesen Ansatz auch schon seit längerem.
Leider ist die Kette Handy->ifttt-> Biobroker cloud -> iobroker lang und die Latenz variiert bei mir sehr stark.
Schnelle Reaktion z.B. Öffnen der Garage, Einschalten eines Begrüßungslicht funktionieren gar nicht.
Entweder muss ich den Radius meiner HomeZone super groß machen oder das Licht/Garage ist aus/zu.
Außerdem ist es erforderlich, dass das Internet in der Nähe es Hauses funktioniert, und das ist bei mir in meiner Ferienwohnung auf dem Land mit O2 als Provider leider nicht der Fall.
Ein weitere Nachteil ist, dass es immer wieder vorkommt, dass ifttt nicht mehr im Hintergrund läuft. Das passiert vorallen Dingen auf dem iPhone meiner Frau. Auch bei einem Neustart wird der ifttt App nicht geladen. Da meine Frau ein Technologieverweigerer ist, kann ich sie nicht dazu bewegen, hier manuell nachzuhelfen. Damit funktioniert die Anwesenheitsteuerung leider unzuverlässig.
Alles im allen ein Ansatz, der sich nur für zeitunkritische Anforderungen eignet und dazu auch noch etwas unzuverlässig ist.
In anderen Foren hatte ich gelesen, dass Leute den Ifttt Ansatz mit parallelen Ansätzen kombinieren, z.B. Ping auf Wifi oder Bluetooth.
Alle Ansätze erhöhen wohl etwas die Zuverlässigkeit, aber nicht das Latenzproblem. Sie haben allerdings den Nachteil, dass die Code Komplexität steigt.
Außerdem brauch es Heuristiken, die bei widersprüchlichen Messungen, den vermutlich richtigen Status ermitteln.
Alles ziemlich aufwändig für relativ geringen Nutzen.
Was mich auch interessieren würde, wären Eure Use Cases für (personenspezifische) Anwesenheit. Ich habe folgende Use Cases
1. Spielerei: Begrüßung beim Hereinkommen und Durchsage von Events in der Abwesenheit (z.B. Anrufe, bestimmte Errinnerungen Geburtstag und anderes )
2. Abschalten der Heizung von Räumen, die personenspezifisch genutzt werden.
3. Anschalten von Weihnachtsbeleuchtung nur bei Anwesenheit.
4. in meiner Ferienwohnung:
-
Mitführen einer Belegungsstatistik. Wer hat, wann, wie lange die Ferienwohnung genutzt.
-
Herunterregeln der Heizung, der Außenanlagenstromversorung und meiner Wifi Lautsprecher im Haus, wenn Abwesenheit länger als 24 h.
-
Abschalten des Wlan meiner Fritzbox
.
Ansonsten ist mir nicht viel eingefallen, was ich mit einer (personenspezifischen) Anwesenheit steuern könnte.
-
-
Bei mir funktioniert IFTTT ohne Probleme und große Verzögerungen. Wohne aber auch in einer größeren Stadt. Hab hier flächendeckend LTE oder mindestens 3G (sogar mit O2 :lol: ). Ich würde meine Homezone gerne noch kleiner stellen damit mich IFTTT nicht zu früh erkennt. Aber leider kann man den Radius nicht so klein machen. Ich muss IFTTT gar nicht im Hintergrund immer offen haben. Man kann in den Einstellungen ja einstellen das die App Hintergrundaktualisierungen machen und den Standort immer verwenden darf.
Ich nutze IFTTT bei mir für die Anwesenheit und lasse mir auch Nachrichten vom ioBroker via Webhook zu IFTTT senden.
Bei meinen Mitbewohnern habe ich das über Ping laufen (kann ja nicht bei jedem ans Handy und irgendwelche Apps installieren und den sagen das die jetzt ständig geloggt werden ). Habe aber einen Delay mit Blockly gebastelt. Wenn ein Gerät nicht mehr angepingt werden kann, läuft ein Timeout von 20 Minuten. Wenn in dieser Zeit kein erneutes anpingen möglich ist, ist der Benutzer abwesend. Wenn ein erneutes anpingen möglich ist, wird der Timer immer wieder zurück gesetzt. Damit will ich nachts verhindern wenn das Handy mal länger nicht benutzt wird, dass es im Ruhemodus irgendwann das WLAN ausschaltet und direkt als Abwesend angezeigt wird. Funktioniert bei mir mit 20 Minuten recht gut. Nachteil ist jedoch, dass beim wirklichen verlassen des Hauses ein Delay von 20 Minuten da ist. Also falls man für die Person was schalten will geht das erst nach 20 Minuten. Beim nach Hause kommen der Peron ist es dann egal. Sobald der Ping da ist, ist die Person anwesend.
Das ganze nutze ich aber nur um auf der VIS die Anwesenheit anzeigen zu lassen. Wichtige Dinge schalte ich damit nicht. Nur wenn keiner mehr da ist alle Lichter aus. Also nur spielkram. Da ist die 20 Minuten Verzögerung bei meinen Mitbewohnern aber nicht so schlimm.
-
…Habe aber einen Delay mit Blockly gebastelt. Wenn ein Gerät nicht mehr angepingt werden kann, läuft ein Timeout von 20 Minuten. Wenn in dieser Zeit kein erneutes anpingen möglich ist, ist der Benutzer abwesend. ... `
Könntest du netter weise einen Screenshot von dem Blocklypart posten? Habe grade Probleme das mir gedanklich zusammen zu friemeln :oops:
Dank dir
-
Hier mal mein Skript.
Was ich bisher gemerkt habe, dass es wirklich von Gerät zu Gerät unterschiedlich ist. Wir habe in unserer WG iOS und Android Geräte. Bei einigen klappt es mit den 20 Minuten gut, bei anderen nicht. Da kann es sein das du da für jedes Gerät mit der Zeit spielen musst bis es klappt. Und dann hat man irgendwann natürlich auch einen Größeren Delay hat. Ich habe es bei meinem Handy über IFTTT laufen, weil ich damit schon sachen schalte. Die Handys von meinen Mitbewohnern habe ich nur als Anzeige damit ich sehe ob wer da ist, damit schalte ich aber nichts. Reicht mir so vollkommen aus.
Musst einfach mal testen.
-
Moin. Ich habe das Problem das ich es genau so eingerichtet habe aber ich bekomme in ioBroker keinen Status angezeigt ob ich gerade da bin oder nicht also funktioniert auch das Blockly Skript nicht.
-
Was hast du wie eingerichtet?
-
So habe ich es in Ifttt eingerichtet. Den Ifttt Key habe ich in IoBroker eingefügt.
Das wird dann angezeigt bei mir also kein Status