NEWS
(gelöst) Per tasmota-Steckdose Echo steuern
-
Hallo,
ich doktore seit Wochen an einem Script herum, das mir bei Einschalten unseres Elektrokamins über den Echo eine Playlist abspielen soll. So habe ich das gebaut:
Was möchte ich bezwecken? Wenn sich die Leistungsaufnahme des Ofens aktualisiert, der Wert 30W übersteigt (der Ofen brauchen bei Betrieb ca. 190W) und der Ofen bisher nicht mehr als 30W verbraucht hat (dafür die Abfrage bzw. das Setzen der Variablen), dann setzt er beim Echo die Playlist kamin.
Hier die Datenpunkte der Steckdose:
Hier die Datenpunkte vom Echo:
Das ganze funktioniert in den meisten Fällen, allerdings nicht zu 100% zuverlässig. Ich konnte noch kein Muster ausmachen, wann nicht.
Fällt jemandem ein Bug auf?
Danke und VG
-
@chrbo80 Kommt denn immer korrekt deine telegram Nachricht? So kannst du ja schauen, ob die Logik korrekt ist, oder es noch hakt.
z.B. wenn du mehrmals nacheinander eine Nachricht bekommst, etc.
Was mit spontan einfällt. Versuch es mal mit wurde geändert im Trigger und setze die Variable kamin außerhalb des Triggers auf false.
-
@chrbo80
Ein Bug ist das nicht drin, könnte aber an Schwankungen der Leistung liegen. Das könntest mit nem Timeout abfangen, dann wäre es besser nicht "Wert von Objekt ID" zu verwenden, sondern gleich den Block "Wert" aus den Trigger Blöcken, da Du in der Falls den selben Wert abfragst wie im Trigger und das ist ersten einfacher und zweiten der Wert schon eingelesen.
Stell mal den Export rein, dann baue ichs um, wenn DU nicht weißt was ich meine -
@Jan1 in der Tat weiß ich nicht ganz, was du meinst, hier der Export
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="!df3q1hN*qnK_W)[d{{H">Kamin an</variable> </variables> <block type="on_ext" id="u{A0JCWT%@}UP6`xQNbA" x="-1338" y="-361"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="2U:ej#|zsR`Ct+wm[In="> <field name="oid">sonoff.0.DVES_232BA0.ENERGY_Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%Cu{P-[vy]Wr3t{hoF4d"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="U4!5NGB9?OP^]_PnSBzJ"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="fj5`Fv{z@n{O2l*:w25["> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id=".7=rbtV!f;Jr1_Kpx/,o"> <field name="ATTR">val</field> <field name="OID">sonoff.0.DVES_232BA0.ENERGY_Power</field> </block> </value> <value name="B"> <block type="math_number" id="MTt+24A[S@bCJ9yR*.!d"> <field name="NUM">30</field> </block> </value> </block> </value> <value name="B"> <block type="logic_negate" id="Q7wQslqT;?$jQv7?*au6"> <value name="BOOL"> <block type="variables_get" id="VY.zFSn|s,v5OgWTs]au"> <field name="VAR" id="!df3q1hN*qnK_W)[d{{H" variabletype="">Kamin an</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="P%my-ZQX(_D[|!Jm.QO@"> <field name="VAR" id="!df3q1hN*qnK_W)[d{{H" variabletype="">Kamin an</field> <value name="VALUE"> <block type="logic_boolean" id="s:?pXnd/P/e$^{sh!PPq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="hSnNo9{Y$Ii+x4#zzC;Z"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0692860AXF.Music-Provider.Amazon-Music</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="tMtxdRbZOtN*#:-bmtI-"> <field name="TEXT">kamin</field> </block> </value> <next> <block type="telegram" id="LK]i^10E%M$DlV^9rnTJ"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="^(0Ea[cU-~J1x0r~;Q@;"> <field name="TEXT">Kamin an</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="kllXrB,YNL_~te#~*WQA"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=",`.(]yaa;]GxKwJdCxa["> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="$erds5ph=hLaVo^{Q)OT"> <field name="ATTR">val</field> <field name="OID">sonoff.0.DVES_232BA0.ENERGY_Power</field> </block> </value> <value name="B"> <block type="math_number" id="K6}UL#9u9:rtP2l;4|ur"> <field name="NUM">30</field> </block> </value> </block> </value> <value name="B"> <block type="variables_get" id="eTZp~#u_R;?Ox%C6BKa6"> <field name="VAR" id="!df3q1hN*qnK_W)[d{{H" variabletype="">Kamin an</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="f?u{FfMFhs-m#N$o%UET"> <field name="VAR" id="!df3q1hN*qnK_W)[d{{H" variabletype="">Kamin an</field> <value name="VALUE"> <block type="logic_boolean" id=".Ayk6]7;w,8K/D0jM**A"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="telegram" id="|pD3mmrbRNFzfqS1Z`Z,"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <value name="MESSAGE"> <shadow type="text" id="%|_1}Ft-K*UHRciqG|Xp"> <field name="TEXT">Kamin aus</field> </shadow> </value> <next> <block type="control" id="4THs0cO(KehMy-8FnJ78"> <mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G0911M0692860AXF.Player.controlPause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="g3_V22a;D4Q4+rB=M(`n"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>
DANK DIR!!
-
@CruziX said in Per tasmota-Steckdose Echo steuern:
@chrbo80 Kommt denn immer korrekt deine telegram Nachricht? So kannst du ja schauen, ob die Logik korrekt ist, oder es noch hakt.
z.B. wenn du mehrmals nacheinander eine Nachricht bekommst, etc.
Was mit spontan einfällt. Versuch es mal mit wurde geändert im Trigger und setze die Variable kamin außerhalb des Triggers auf false.
grade ist die Playlist ausgegangen, ich habe aber kein telegramm "Kamin aus" bekommen
-
Der Timeout sort dafür, das bei Schwankungen nicht sofort reagiert wird, sondern in dem Beispiel erst nach 5 Sekunden (kann oder sollte angepasst werden). Der Rest ist Kosmetik und Laufzeit optimiert. -
@chrbo80 Also du hast keine telegram benachrichtigung dann bekommen? Weder aus, noch an?
Eventuell hast du ja das gleiche Problem wie ich manchmal mit dem abspielen vom Radio.
Ich habe keinerlei Skripte die das Radio steuern, aber mein Radio geht manchmal während es spielt einfach aus und ich muss es erneut anmachen.. -
@Jan1 Irre ich mich, oder verlagert sich das "Problem" nicht dann einfach um 5 Sek? Der Trigger wird ja dennoch immer ausgelöst, nur die Logik halt um 5 Sekunden verzögert.
Achnee, theoretisch wird das ja durch den Timeoutstop abgefangen
-
@CruziX
Bingo, bei jeder Änderung wird auch der Timeout gestoppt und neu gestartet, so wird erst wenn nach 5 Sekunden Ruhe ist das ganze ausgelöst, also entprellt. Das kann schon Dein Problem lösen.
Wenn Du auf "Wert" abfragst, bezieht sich das direkt auf den Trigger Wert und der ist in den Augenblick schon eingelesen und somit bekannt. Wenn Du auf "Wert von Obljekt ID" prüfst, wird das erst eingelesen und kann im ungünstigsten Fall schon nicht mehr aktuell sein. Hier spielt die Abarbeitung und Laufzeit ne Rolle. Ist minimal, aber so ist es eh egal. -
hi, Danke für die Hilfe. Ich habe grad folgende Entdeckung gemacht: Ich habe in der Playlist in der Amazon-Music-App den gleichen Titel (30Min Kaminknistern) 10x hintereinander. Das sollte dann für 5h reichen. Allerdings zeigt mir der Alexa Adapter nur 30Minuten an:
Kann man irgendwie eine Dauerschleife der Playlist setzen? Wenn ich "controll repeat" setze, funktioniert das auch nur einmal und wird dann wieder zurückgesetzt...
-
@chrbo80 könntest ja die dauer auslesen und kurz vor Ende neustarten
-
Hi, ich habe das ganze jetzt nochmal beobachtet. Es lag an der Steckdose (Blitzwolf SHP6). Die hat - warum auch immer - scheinbar manchmal Blödsinn gemessen bzw. gemessen. Mit einer HMIP Schalt/Mess-Steckdose klappts ohne Probleme...