NEWS
Schaltsteckdose am TV aus wenn nachts und im Standby
-
Hallo, ich habe eine Schaltsteckdose an unserem Fernseher. Nun möchte ich, dass wenn nachts keiner TV schaut und vergessen wurde, die Schaltsteckdose auszuschalten, dass diese automatisch ausgeschaltet wird. Nun möchte ich, dass die Logik nur einmal läuft wenn erkannt wird das ein Verbrauch unter 80 W (= Standby) und dann nach 5 Minuten die Steckdose ausgeschaltet wird außer es wird in der Zeit ein Verbrauch höher 80 W erkannt (= jemand schaut TV), dann soll das Ausschalten abgebrochen werden und beginnt ggf. wieder von vorne.
Folgendes Blocky hab ich gebaut, ich bekomme aber ständig die Info über Debug dass der Verbrauch unter 80W erkannt wird.
Um sicherzustellen, dass das Skript nur einmal läuft nachdem ein Stand-by Verbrauch erkannt wurde, habe ich ein eine bool variable angelegt.
Hat mir jemand einen Tipp was zu verbessern wäre?
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="B.$hC1B=n:rD|dz(bsed">TVsollaus</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="on" id="ukY]*Fh7$._d5HMz^+I*" x="13" y="-262"> <field name="OID">sonoff.0.TasmotaSchaltsteckTV.ENERGY_Power</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="variables_set" id="h}1,W0RU9JV$rIG~0y0G"> <field name="VAR" id="B.$hC1B=n:rD|dz(bsed">TVsollaus</field> <value name="VALUE"> <block type="get_value" id="!GWQA?}N=!*bukgNMDC*"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.EigeneDatenpunkte.Tasmota.TVSollAusErkannt</field> </block> </value> <next> <block type="controls_if" id="j?OQyC|G~GaNu@E*m81["> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="$VpY9[,Egn/:0ZYWD?ln"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="B2`6vm`rTRv6E_dvwp+T"> <field name="OP">AND</field> <value name="A"> <block type="time_compare_ex" id="T%mI!.ALO#HD}kiqV^J}"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="`9GoQ`N_?T9}R8u-(q?0"> <field name="TEXT">22:30</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="0SRZC:1|9BNvcseWifM}"> <field name="TEXT">06:00</field> </shadow> </value> </block> </value> <value name="B"> <block type="logic_compare" id="4//,I6IpV*Zdf)Lbd8~K"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="Bl_],oj=QiFik_t_8TXT"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="A5olWpI{+?OHV!BUX:FJ"> <field name="NUM">80</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="8I~}^xDx%P1xfjIh)+49"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="k,fL?M]lpw7vZ4Of}d59"> <field name="VAR" id="B.$hC1B=n:rD|dz(bsed">TVsollaus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/F`?{pWC_clN.18HhXi3"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="Iz~V`4SlD{*P66{bPZ_/"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="k?vDD0|z?|9A9WRJO@|`"> <field name="TEXT">-HausInfos- TV in 5 Minuten aus</field> </shadow> <block type="text_join" id="3oSuXX8GZ7t|lK6?Lo{M"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="E5!exOc*%/b7iT,N]Gk("> <field name="TEXT">-HausInfos- TV in 5 Minuten aus. Verbrauch aktuell </field> </block> </value> <value name="ADD1"> <block type="on_source" id="OSVOj~.8Q%Zr7~^v@4?Y"> <field name="ATTR">state.val</field> </block> </value> <value name="ADD2"> <block type="text" id="^(wM*U6~L-bs{9Eo;qEe"> <field name="TEXT"> W</field> </block> </value> </block> </value> <next> <block type="telegram" id="O/CHfrj2Z:-{ZzzNIxM6"> <field name="INSTANCE"></field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="JWK=tW4No}Z_S@|jNEGy"> <field name="TEXT">TV in 5 Minuten aus!</field> </shadow> </value> <next> <block type="update" id=".[_K8KclliGnicH+x*V3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Tasmota.TVSollAusErkannt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="/wI_5)99=~K*}Z+d=u)S"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="maJCxh]qNRo}RqD_tY`T"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id="m]w7J((m^b$K=;6kyIxV"> <field name="NAME">timeout</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="MXDL3cTY(P$rlaZO?!R^"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.TasmotaSchaltsteckTV.POWER</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="1G0$k|j^X1qrw!gB{{rN"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="update" id=")5.=8Ul#|(bAgdn9NH~|"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.EigeneDatenpunkte.Tasmota.TVSollAusErkannt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="#616`Vw0qHmJe(2?Cg55"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
@mading du prüfst auf die Variable tv-aus. die wird direkt am Anfang geschrieben.
je nachdem wie schnell neue Werte von der Dose kommen ist zu dem Zeitpunkt der Wert im Datenpunkt noch nicht fertig aktualisiert. -
@homoran Off-Topic: hoffe es ist kein Oled TV
-
@wendy2702 sagte in Schaltsteckdose am TV aus wenn nachts und im Standby:
@homoran Off-Topic: hoffe es ist kein Oled TV
nur weil der nachts sein Display regeneriert?
-
@mading sagte in Schaltsteckdose am TV aus wenn nachts und im Standby:
Hat mir jemand einen Tipp was zu verbessern wäre?
probier mal so:
Natürlich musste da noch Deine gewünschten Aktionen wie Telegram ergänzen.
-
Danke euch, habs umgebaut und teste mal
-
Mein TV ist von 2010. Danke für den Hinweis. Ich mache das manuell schon seit 13 Jahren
Habs erstmal so konfiguriert:
-
Das funktioniert leider nicht, vermute dass die Variable "TVSollAusErkannt" nicht auf true gesetzt wird - warum auch immer. Das Resultat ist, dass er ständig in den falls Block geht, aber nie ausschaltet, da die Variable nicht auf true geht. Ich mache es nun anders über meinen Harmony Hub. Der ist eigentlich nicht so zuverlässig, da er im WLAN Probleme macht.
-
@mading sagte in Schaltsteckdose am TV aus wenn nachts und im Standby:
"TVSollAusErkannt" nicht auf true gesetzt wird - warum auch immer.
Funktionierendes Prinzip vom Skript hatte ich ja gepostet - warum setzt Du das nicht so um ?
-
@mading sagte: Das funktioniert leider nicht
Das Prinzip entspricht dem Erkennen von "Waschmaschine fertig", ergänzt um die Zeitspanne für Nacht.
EDIT: Ab Javascript-Version 7.0.5 funktioniert es so nicht mehr, da die Variable
fertig
bei Ablauf der Verzögerung automatisch auf null gesetzt wird.
Alternative für "nicht Verzögerung fertig": "vorheriger Wert
> 80". -
@djmarc75 ich hatte es heute Mittag getestet: der Strom wurde nicht ausgeschaltet trotz Standby. Zum Verständnis: du setzt die Variable vor dem Trigger auf false. Wann ist der Teil aktiv? Nicht wenn der Trigger zieht, oder?
-
@mading sagte in Schaltsteckdose am TV aus wenn nachts und im Standby:
Wann ist der Teil aktiv?
sobald das Skript startet.
-
@mading sagte: Tipp was zu verbessern wäre?
Habe es mal umgebaut:
Anmerkung: Die Timer-Variable wird als Sperre verwendet.
-
@djmarc75 said in Schaltsteckdose am TV aus wenn nachts und im Standby:
@mading sagte in Schaltsteckdose am TV aus wenn nachts und im Standby:
Hat mir jemand einen Tipp was zu verbessern wäre?
probier mal so:
Natürlich musste da noch Deine gewünschten Aktionen wie Telegram ergänzen.
Hi,
kann mir mal einer Erklären wofür immer die Blöcke Stop timeout und
ausführen timeout in 5min gesetzt werden?
Ich habe das bisher immer mit dem Haken Verzögerung bei einem Steuere Block gelöst.Danke euch
-
@iobroker_napf die Idee ist, falls in den 5Minuten jemand doch den TV einschaltet (Verbrauch höher als 80W), dass das Ausschalten gestoppt wird