NEWS
*GELÖST* Probleme mit An-&Abwesenheit mit zwei Handy-Erkennungen
-
Hallo zusammen,
ich habe ein (wahrscheinlich) kleines Problemchen, von welchem ich hoffe, dass ihr mir weiter helfen könnt.
Ich möchte einstellen, dass, wenn weder meine Freundin noch ich zu Hause im Wlan angemeldet sind, alle Lichter ausgehen.
Dieses Script funktioniert soweit auch.
Dann möchte ich einstellen, dass, sobald einer von uns nach Hause kommt, sprich sein Smartphone sich mit dem Wlan verbindet, ein paar Lichter angehen(Alexa Routine mit Begrüssung)
Auch das funktioniert soweit eigentlich ganz gut.
Jetzt zu meinem Problem:
Wenn meine Freundin das Haus verlässt, ich aber auf der Couch sitze, startet die Alexa Routine "es wird dunkel" und die definierten Lichter werden eingeschaltet.
Das heisst es erkennt in dem Moment mein Handy als "heimkommend".
Was kann, bzw. muss ich hier ändern?
Vielen Dank und LG
-
Das ist recht simpel, Du brauchst ne Variable "Anwesend" die Du setzt und diese dann als Trigger verwendest. Im Moment triggerst Du mit beiden Handys und Blockly ist es egal welches gerade da ist oder geht, sobald eins den Status ändert, läuft Dein Script los und das funktioniert ja schon mal
OB Du das mit einer internen Variable löst oder nen DP dazu anlegst ist auch egal. Der DP hat den Vorteil, dass Du es direkt siehst was gesetzt ist.
Ich würde die Falls Bedingung auch nicht vor den Trigger stellen sondern in den Trigger, sollte zwar beides funktionieren, aber anderes rum ist es eben eleganter.
-
Ok danke, das werde ich sofort mal probieren.
Blöde frage, was bedeutet DP in dem Fall?
Und wie weiß er jetzt dass er Lichter einschalten, bzw alle ausschalten soll?
-
DP = Datenpunkt.
Du erstellst dir einfach irgendwo den Datenpunkt als switch und der wird je nachdem ob beide Handys zuhause (wahr) oder beide Handys außer Haus (unwahr) sind ausgewertet.
Gesendet von meinem SM-G960F mit Tapatalk
-
Okay, tut mir wirklich leid, aber wie mache ich das? Bin noch am Anfang
-
Du gehst in deinen ioBroker auf Objekte,
dort habe ich mir z.B. einen Ordner angelegt "#Variablen.0"
Dort kommen sämtliche manuel erstellte Variablen rein.
So auch dein "Anwesenheit"
Dieser wird durch das Blockly auf wahr und false gesetzt, je nachdem ob eure Handys zuhause sind oder nicht.
-
Okay, aber woher weiss dieser Datenpunkt, was er steuern soll?
Muss ich dafür ein eigenes Skript schreiben?
und funktioniert dein Script so? muss bei dem "falls" nicht noch irgendein Wert stehen?
Da steht ja jetzt nur, falls dein Handy oder das der Freundin, aber kein "wahr" oder "falsch" oder so
-
Also erst einmal machst du ein Script der dir den Datenpunkt setzt.
Siehe Screenshot
Diesen steuerst du durch folgendes Script:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="NUagg%u4Uu1{rA8C[o%z" x="-112" y="-212"><mutation items="2"></mutation> <field name="CONDITION">any</field> <value name="OID0"><shadow type="field_oid" id="}0*NU#x2*`;WIrjSY6Oj"><field name="oid">ping.0.ioBroker-RasPi.192_168_178_2</field></shadow></value> <value name="OID1"><shadow type="field_oid" id="D;PquOeFI2SG/KKOh5Bf"><field name="oid">ping.0.ioBroker-RasPi.192_168_178_80</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id=",3[C%N-Ir!U6GDaBcl=S"><mutation else="1"></mutation> <value name="IF0"><block type="logic_operation" id="F8(y|}Whh}d-iPr~)+|O"><field name="OP">OR</field> <value name="A"><block type="get_value" id="g8ikX7=Zh^/:nIw^o4L-"><field name="ATTR">val</field> <field name="OID">ping.0.ioBroker-RasPi.192_168_178_2</field></block></value> <value name="B"><block type="get_value" id="@I_T[bv*=[Mhe4P)HU.F"><field name="ATTR">val</field> <field name="OID">ping.0.ioBroker-RasPi.192_168_178_80</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-`nV"><mutation delay_input="false"></mutation> <field name="OID">#Variablen.0.Anwesenheit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="lQ/IXnXc:CKFHri7;uy^"><field name="BOOL">TRUE</field></block></value></block></statement> <statement name="ELSE"><block type="control" id="2/qvb8EtL0vYu!C9S%cC"><mutation delay_input="false"></mutation> <field name="OID">#Variablen.0.Anwesenheit</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="0fCFabP7XJrIntp6P#K2"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement></block></xml>
Mit diesem Datenpunkt arbeitest du dann in deinem Script weiter, welches du als ersten Beitrag gepostet hast.
Anstelle der Handys von dir und deiner Freundin nimmst du einfach die Variable.
Also z.B. so:
-
Nachtrag:
du kannst natürlich auch alles in ein Script nehmen.
Habe ich gerade getestet und funktioniert:
-
Das "wahr" kannst bei der Falls Bedingung weg lassen, da er eh auf wahr prüft. Nur wenn eben auf was anderes geprüft werden soll, dann muss das auch rein.
Mein Script im Bild ist nur die Auswertung ob jemand zu Hause ist und setzt den DP "Anwesenheit". Das hat mit dem Steuern der Lichter erst mal nichts zu tun. Nur sollst Du eben den DP "Anwesenheit" auch bei Dir erstellen und den als Trigger für Dein Blockly verwenden. Dann läuft Dein Blockly schon so wie es soll.
Mein Blockly kommt nur noch dazu
Wie ich auch schon geschrieben habe, kann man den DP auch durch ne Variable ersetzten oder so wie MagicSven geschrieben hat manuell anlegen. Das ist Dir überlassen und für die Funktion völlig wurscht.
-
Ach so - kleiner Nachtrag noch:
Bei Android Geräten funktioniert eine Pingabfrage nicht, wenn diese im Tiefschlaf-Modus sind.
Sprich wenn der Bildschirm aus aus ist, geht das Gerät nach wenigen Sekunden in diesen Modus.
Bei IOS Geräten scheint es noch zu funktionieren.
Hier wird gerade über dieses Thema debattiert.
-
okay, super, vielen vielen Dank für eure Hilfe.
ich kann es jetzt gerade leider nicht testen, aber mit der Variante würde ich dann das Problem umgehen, dass er einfach die Lichter einschaltet, weil meine Freundin geht, und er mein Handy als "kommt" erkennt?
-
Ach so - kleiner Nachtrag noch:
Bei Android Geräten funktioniert eine Pingabfrage nicht, wenn diese im Tiefschlaf-Modus sind.
Sprich wenn der Bildschirm aus aus ist, geht das Gerät nach wenigen Sekunden in diesen Modus.
Bei IOS Geräten scheint es noch zu funktionieren.
Hier wird gerade über dieses Thema debattiert.
Das ist nicht ganz richtig, kommt auf den Adapter an und mit dem TR064 läuft das. Der Ping Adapter hat exakt das von Dir beschrieben Problem.
Ich habe nur Android Geräte (wer hat denn auch schon die Apfel Dinger?), deshalb kenne ich das Problemchen
-
okay, super, vielen vielen Dank für eure Hilfe.
ich kann es jetzt gerade leider nicht testen, aber mit der Variante würde ich dann das Problem umgehen, dass er einfach die Lichter einschaltet, weil meine Freundin geht, und er mein Handy als "kommt" erkennt? `
Das ist keine Variante, das ist die Lösung Deines Problem (Fehler Deines Blockly) :lol:
-
Ach so - kleiner Nachtrag noch:
Bei Android Geräten funktioniert eine Pingabfrage nicht, wenn diese im Tiefschlaf-Modus sind.
Sprich wenn der Bildschirm aus aus ist, geht das Gerät nach wenigen Sekunden in diesen Modus.
Bei IOS Geräten scheint es noch zu funktionieren.
Hier wird gerade über dieses Thema debattiert.
Das ist nicht ganz richtig, kommt auf den Adapter an und mit dem TR064 läuft das. Der Ping Adapter hat exakt das von Dir beschrieben Problem.
Ich habe nur Android Geräte (wer hat denn auch schon die Apfel Dinger?), deshalb kenne ich das Problemchen ` Jan, dann muss ich den Adapter mal testen, danke für den Tipp
Gesendet von meinem SM-G960F mit Tapatalk
-
Da hatte ich auch lange geflucht. Das alte S4 von der Frau läuft auch mit dem Ping Adapter, nur mein S6 eben nicht und was ich da an den Einstellungen gesucht hatte. Den TR064 Adapter hatte ich eh am Laufen und irgendwann ist mir aufgefallen, dass ich da auch immer schön "true" bin, wenn ich im WLAN und somit zu Hause bin. Liegt wohl daran, dass man hier MDNS verwenden kann und das eben immer funktioniert.
-
Es funktioniert, danke an alle