NEWS
Steckdose automatisch nach Leistung über Zeit ausschalten
-
Moin ihr Lieben,
ich bin ja noch am Anfang meiner Lern- und Experimentierphase mit ioBroker und hoffe auch hier auf Hilfe von euch.
Ich möchte mittels smarter Steckdose einen Kompressors überwachen, der ständig an ein Druckluftnetz angeschlossen und betriebsbereit ist. Wenn die aktuelle Leistung länger als 10 Minuten über 500 Watt liegt, soll die Steckdose ausschalten (Schutz bei Undichtigkeit, verhindert Dauerlauf des Kompressors).
Ich habe mir von dem freundlichen räusper ChatGPT ein Script schreiben lassen, welches mir die Einschaltdauer unter Last überwacht und nach 10 Minuten abschaltet. Zusätzlich ist noch einen Timer drin, der die Betriebszeit zwischen 8 Uhr und 21 Uhr festlegt.
// Setzen Sie die ID Ihrer smarten Steckdose var socketId = 'fritzdect.0.DECT_116570465943'; // Setzen Sie die Mindestleistung und die Zeitschwelle var minPower = 500; // Mindestleistung in Watt var timeThreshold = 600; // Zeitdauer in Sekunden // Variable zur Verfolgung der aktuellen Leistung var currentPower = 0; // Variable zur Verfolgung der Zeitdauer var timer = null; // Variable zur Verfolgung des Schaltzustands der Steckdose var socketState = false; // Funktion zum Überprüfen der Leistung und Aktualisierung des Zustands der Steckdose function checkPower() { if (currentPower >= minPower) { // Die Leistung ist mindestens minPower if (timer === null && socketState) { // Starten Sie den Timer, wenn er noch nicht läuft und die Steckdose eingeschaltet ist timer = setTimeout(function() { if (currentPower >= minPower) { // Die Leistung ist immer noch über dem Schwellenwert, Steckdose ausschalten setState(socketId + '.state', false); socketState = false; } timer = null; // Setzen Sie den Timer zurück }, timeThreshold * 1000); // timeThreshold in Millisekunden umwandeln } } else { // Die Leistung ist unter minPower if (timer !== null) { // Stoppen Sie den Timer, wenn er läuft clearTimeout(timer); timer = null; // Setzen Sie den Timer zurück } if (socketState) { // Schalten Sie die Steckdose aus, wenn sie eingeschaltet ist setState(socketId + '.state', false); socketState = false; } } } // Ereignisbehandlung für die Änderung der Leistung on({ id: socketId + '.power', change: 'ne' }, function(obj) { currentPower = obj.state.val; // Aktualisieren Sie die Leistung checkPower(); // Überprüfen Sie die Leistung und aktualisieren Sie den Zustand der Steckdose }); // Funktion zum Überprüfen der Uhrzeit und Aktualisierung des Zustands der Steckdose function checkTime() { var currentTime = new Date(); var hours = currentTime.getHours(); if (hours >= 8 && hours < 21) { if (!socketState) { // Schalten Sie die Steckdose ein, wenn sie ausgeschaltet ist setState(socketId + '.state', true); socketState = true; } } else { if (socketState) { // Schalten Sie die Steckdose aus, wenn sie eingeschaltet ist setState(socketId + '.state', false); socketState = false; } } } // Ereignisbehandlung für die Änderung der Uhrzeit on('javascript.0.time', function(obj) { checkTime(); // Überprüfen Sie die Uhrzeit und aktualisieren Sie den Zustand der Steckdose }); // Initialer Aufruf zur Überprüfung der Uhrzeit und des
Da ich hier nur sehr oberflächlich nachvollziehen kann, wie das JavaScript arbeitet und erst recht keine größeren Änderungen durchführen kann, würde ich es gerne in Blockly nachbauen.
Was mir dabei fehlt ist ein Baustein/Block/Routine, die einen Timer bei Strombezug (aka "Leistung") startet und nach Erreichen der 10 Minuten die Steckdose ausschaltet.
Bisher habe ich es nur hinbekommen, die Steckdose ausschalten zu lassen, nachdem (für eine beliebige Zeit) die Leistung über 500 Watt lag:
schedule("0 8 * * *", async function () { setState("fritzdect.0.DECT_116570465943.state"/*Switch Status and Control*/, true); on({id: "fritzdect.0.DECT_116570465943.power"/*actual Power*/, change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("fritzdect.0.DECT_116570465943.power").val >= 500) { getState("fritzdect.0.DECT_116570465943.state", function (err, state) { setStateDelayed("fritzdect.0.DECT_116570465943.state"/*Switch Status and Control*/, state ? !state.val : true, 600000, false); }); } }); }); schedule("0 21 * * *", async function () { setState("fritzdect.0.DECT_116570465943.state"/*Switch Status and Control*/, false); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJzY2hlZHVsZSUyMiUyMGlkJTNEJTIyTkVCS1clMkJiQyUzQk82c2klM0ExNnglMkNTdCUyMiUyMHglM0QlMjI4OCUyMiUyMHklM0QlMjItNDYzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NIRURVTEUlMjIlM0UwJTIwOCUyMColMjAqJTIwKiUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMilKRUFzNmNiOHIpJTNGJTJDYU8lMkZ2UkZNJTIyJTNFJTNDbXV0YXRpb24lMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhodG1sJTIyJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZnJpdHpkZWN0LjAuREVDVF8xMTY1NzA0NjU5NDMuc3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjIlMjV2bn4lMjRIaCUyQ2Q1JTYwMzFrJTVFclolMjNRRCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkJPT0wlMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uJTIyJTIwaWQlM0QlMjJGZ0klN0JuZWxJJTVELSUyM29mYUZ0JTQwKiUyMyUyNCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWZyaXR6ZGVjdC4wLkRFQ1RfMTE2NTcwNDY1OTQzLnBvd2VyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VuZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2xzX2lmJTIyJTIwaWQlM0QlMjJWJTYwR3NzRkM3fm83JTNBZmNvMilwMGclMjIlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJJRjAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19jb21wYXJlJTIyJTIwaWQlM0QlMjJRJTVEJTdCJTNGJTVCLUQlMkYlM0ZjRS0yMF90QyUyM2UlM0IlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPUCUyMiUzRUdURSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmdldF92YWx1ZSUyMiUyMGlkJTNEJTIyKiUyNEhRQXUlMjNUOHUlNUVQM09CLVViWm4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBVFRSJTIyJTNFdmFsJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0Vmcml0emRlY3QuMC5ERUNUXzExNjU3MDQ2NTk0My5wb3dlciUzQyUyRmZpZWxkJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMkIlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJtYXRoX251bWJlciUyMiUyMGlkJTNEJTIyMmhPakpKJTJCVlghJTYwJTdEaXpMJTdCdzZsJTNCJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTlVNJTIyJTNFNTAwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ2YWx1ZSUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJETzAlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJ0b2dnbGUlMjIlMjBpZCUzRCUyMmJCcUslNjBteUYyflU3JTJCJTQwaVVoJTdEcyUyMyUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIydHJ1ZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFZnJpdHpkZWN0LjAuREVDVF8xMTY1NzA0NjU5NDMuc3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VUUlVFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWV9NUyUyMiUzRTEwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFbWluJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDTEVBUl9SVU5OSU5HJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRm5leHQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQ25leHQlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJzY2hlZHVsZSUyMiUyMGlkJTNEJTIyY21jcjMyJTVCZkQ3JTJDTC4lMkN+JTVCJTdENTVXJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU0NIRURVTEUlMjIlM0UwJTIwMjElMjAqJTIwKiUyMColM0MlMkZmaWVsZCUzRSUzQ3N0YXRlbWVudCUyMG5hbWUlM0QlMjJTVEFURU1FTlQlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJjb250cm9sJTIyJTIwaWQlM0QlMjIlNUQlM0FFJTVFQm4lMkMobCUyNSUzRHAheDktUXRQWSUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRWZyaXR6ZGVjdC4wLkRFQ1RfMTE2NTcwNDY1OTQzLnN0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyTXBxY3k4cSU3QyUyNSU0MCU3Q3F1RV8wVCUzRCU2MDAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJCT09MJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnN0YXRlbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
Könnt ihr mir eine Möglichkeit aufzeigen, wie ich in Blockly einen Baustein erstelle, der mir erst nach 10 Minuten Leistungsbezug von 500 Watt etwas schaltet?
Viele Grüße
Markus -
@markus-7 sagte: in Blockly einen Baustein erstelle, der mir erst nach 10 Minuten Leistungsbezug von 500 Watt etwas schaltet?
@markus-7 sagte in Steckdose automatisch nach Leistung über Zeit ausschalten:
Zusätzlich ist noch einen Timer drin, der die Betriebszeit zwischen 8 Uhr und 21 Uhr festlegt.
Was hat das mit der Aufgabenstellung zu tun, abzuschalten, wenn die Leistung 10 Minuten lang mind. 500 W beträgt?
Soll um 8:00 Uhr ein- und um 21:00 ausgeschaltet werden? -
@paul53 Super, das funktioniert auf Anhieb, vielen Dank!
Ich war nur kurz irritiert, dass ich zuerst im Modul "stop ..." nicht "delayOff" eintragen konnte, sondern erst, nachdem ich im Modul "Ausführen" den Namen "delayOff" eingetragen hatte. Wieder ein bisschen weniger dumm
Und sorry für die Verwirrung mit dem zusätzlichen Block "Einschalten um 8 Uhr...", der soll den Kompressor generell nur tagsüber in Betrieb halten, hat natürlich nichts mit meiner direkten Frage zu tun gehabt.
-
@paul53 Vielen Dank, genau so etwas habe ich gesucht. Allerdings möchte ich hier nur eine Benachrichtigung wenn der Gefrierschrank länger als 30 Min mehr Strom benötigt (Türe offen)
Werde es also umschreiben -
Oh, das mit der "Kühlkettenüberwachung" ist auch eine gute Idee - wärst du so nett hier mal das umgebaute Script zu posten?
-
@blue231181
Wäre da ein Fenster Sensor nicht leichter
Wenn offen länger als 10 min. dann .... -
@jensven Fensterkontakte geben aber keinen Alarm, wenn das Kühlaggregat ausfällt/kaputt ist oder der Strom weg ist oder oder
-
@markus-7 leider gerade erst gelesen. Ich stell es morgen ein. Bin heut nur Mobil unterwegs
-
@blue231181 Alles gut, eilt nicht, mach dir keinen Stress
-
@markus-7 Stress macht man sich nur selbst
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="delayOff">delayOff</variable> </variables> <block type="on_ext" id="l6Y+yRT9f-[Nv_|+H2xi" x="37" y="62"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="|Y}vMR/xcIv*=f;G6PTu"> <field name="oid">sonoff.0.Gefrierschrank.SENSOR.ENERGY.Power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="t{v1_2-,6d0B_ArjF6E#"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="U?Ya7?N!:U;gnB5/yAm7"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="|[L`?RiVia.d4JqIRzCv"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="WObSQr:]5Hlzh,EQvRQt"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="2NmL7%mqVOX(;H_.~3X;"> <field name="NAME">delayOff</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="%Ewk`u*e^U]X{+ktU5]T"> <value name="BOOL"> <block type="timeouts_gettimeout" id="[ug{/6u?Xw9V#q,6o006"> <field name="NAME">delayOff</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="q#dmj=6?4s(VM@F6/kQV"> <field name="NAME">delayOff</field> <field name="DELAY">20</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="4}X~G4Wm]S0ND48R|O?I"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.1.Echo-Devices.G0913L061032041X.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="Zn=8G#8ojVeqBDTy-G]x"> <field name="TEXT">50; Achtung, Gefrierschrank Türe seit 20 Min offen</field> </block> </value> <next> <block type="telegram" id="^:xnwlaEAMj2w93!;#}t"> <field name="INSTANCE">.0</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="5m?LxTjLKtRV#zozMZpc"> <field name="TEXT">Achtung, Gefrierschrank Türe seit 20 Min offen</field> </shadow> </value> <next> <block type="debug" id="(Bdc|Sp9cYkg]$gpb*95"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="efzCHt[p}@K1r*YP8Gfv"> <field name="TEXT">!!! Achtung, Gefrierschrank Türe seit 20 Min offen !!!</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> </xml>
Wird nicht perfekt sein, aber ich hoffe es dient als Inspiration
VG -
@blue231181 Top, vielen Dank dafür
-
Hallo blue, noch eine Frage dazu: Es macht für mich Sinn, nicht nur die Einschaltdauer zu überwachen, sondern natürlich auch die Ausschaltdauer. Stichwort "Kompressor/Thermostat/Relais etc. kaputt".
Ich habe jetzt einfach das Script nochmal an das erste dran gehängt (mit der Kennung "delayOff2", dabei auf eine Stromleistung von > 80 Watt gesetzt und einen Zeitraum von 180 Minuten gewählt. So wie ich das verstehe, stoppt das Script dann bei einer Leistung von > 80 W den Timer von 180 Minuten. Ansonsten wird nach Ablauf der 180 Minuten die Meldung ausgegeben. Ist das so richtig verstanden?
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable type="timeout" id="delayOff1">delayOff1</variable> <variable type="timeout" id="delayOff2">delayOff2</variable> </variables> <block type="comment" id="[Hv*O=!faOmBf2Ci%:kP" x="-737" y="-412"> <field name="COMMENT">Überwachung Einschaltdauer > 30 Minuten</field> <next> <block type="on_ext" id="Oc2:Q5]eLm-ybrGto-Dx"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="+p_^YsIxG%f)-bpU([BT"> <field name="oid">meross.0.2212090944763551080548e1e9b25fcf.0-power</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="8_.:8_gzZyoGq.ghQI.s"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id=")8@fp!MNrh=@i6pC{GE7"> <field name="OP">LT</field> <value name="A"> <block type="on_source" id="(kv4W:gPqymiO8irIS3o"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="h(XOV)PP::p4D}u43AtN"> <field name="NUM">110</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="Tt:JhueVxEym}bolpVNF"> <field name="NAME">delayOff1</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="%:cPRhQ|ot#(`Mk_c,u3"> <value name="BOOL"> <block type="timeouts_gettimeout" id="lThK6cS`i_U3QNCW0AGr"> <field name="NAME">delayOff1</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="=)*~`Ro.-.qye(3hZJp]"> <field name="NAME">delayOff1</field> <field name="DELAY">30</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="TKkI1wGaGb-Ps4qrFxBy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091EU1521830C5K.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="v0Ev1rM{g37t/6-t#*_*"> <field name="TEXT">50; Achtung, Gefrierschrank ist übermäßig lange an.</field> </block> </value> <next> <block type="debug" id="T4T6/|seJ:QMfo@/T%iu"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="_9Gip}bO{2Vfx;#.kis4"> <field name="TEXT">Achtung, Gefrierschrank ist übermäßig lange an..</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> <next> <block type="comment" id="sHT7!/}=])^Yhb0n9G^g"> <field name="COMMENT">Überwachung Ausschaltdauer > 180 Minuten</field> <next> <block type="controls_if" id=";u7V|7HLjM6%Q|e,_RR)"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="XAyG}*fPR/Ub8AU.Zri["> <field name="OP">GT</field> <value name="A"> <block type="on_source" id="*5TiL,3rZ,0wK0XB#C%z"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="c4?u(*0/?3SQV}SJ_;b3"> <field name="NUM">80</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="#3CF`gG{mM_z8jj-e/N)"> <field name="NAME">delayOff2</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="yzFCO}ux(kW*7)(^7H0R"> <value name="BOOL"> <block type="timeouts_gettimeout" id="JZuP_!JV@v1Kq4K0gv]j"> <field name="NAME">delayOff2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="bI95O,DuBUpMW4gma)nx"> <field name="NAME">delayOff2</field> <field name="DELAY">180</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="#wIy6pH7rCv{.PFs00XT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G091EU1521830C5K.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="D)c3;]R5|f,i/!Q(H_u-"> <field name="TEXT">50; Achtung, Gefrierschrank ist übermäßig lange ausgeschaltet.</field> </block> </value> <next> <block type="debug" id="@6HEB}Pv]K|,$-s_kjN6"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="C:DGaA~2.?*T3`ru!dbH"> <field name="TEXT">Achtung, Gefrierschrank ist übermäßig lange ausgeschaltet.</field> </shadow> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </xml>
-
@markus-7 leider bin ich auch nicht so erfolgreich im Skripten. Eventuell kann uns jemand von den Profis hier weiter helfen...?
-
@markus-7 sagte: stoppt das Script dann bei einer Leistung von > 80 W den Timer von 180 Minuten. Ansonsten wird nach Ablauf der 180 Minuten die Meldung ausgegeben. Ist das so richtig verstanden?
Richtig.