NEWS
SKript läuft nur, wenn iobroker offen?
-
Hallo,
ich habe ein kleines Blockly Skript gebaut, welches erkennen soll, wann die Waschmaschine fertig ist. Dazu frage ich eine von einer TASMOTA-Steckdose gemessene Größe ab und versuche festzustellen, wann diese für eine bestimte Zeit unter einen Grenzwert fällt.
Egal, welche Größe ich nehme (ENERGY_APPARENT_POWER, ENERGY_POWER, ENERGY_CURRENT), das Skript funktioniert nur, solange ich iobroker auf meinem Rechner geöffnet habe. Wenn es gewissermaßen "im Hintergrund" laufen soll, tut es nichts.
Hier das Skript:
Kann das am Debug-Block liegen?
Dank im Voraus
-
@wrod nutze nicht den wiederhole block
ersetzte ihn mit einem interval block und im interval die stop bedingung nicht vergessen
-
@wrod sagte: Kann das am Debug-Block liegen?
Nein. Das Skript wird nur einmal bei Skriptstart ausgeführt.
Verwende den zu prüfenden Datenpunkt "ENERGY_CURRENT" als Trigger. Im Forum gibt es etliche Beispiele für "Waschmaschine fertig". -
@paul53 Warum funktioniert das Skript denn aber, wenn ich iobroker Skripts offen habe?
-
@wrod Es scheint tatsächlich der debug-Block zu sein. Er ist wohl in "produktiven" Nutzungen (=außerhalb geöffneter Skript-Instanz) nicht erlaubt. Das führt mich zur Frage: Kann man in Blockly Blöcke auskommentieren?
-
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
Er ist wohl in "produktiven" Nutzungen (=außerhalb geöffneter Skript-Instanz) nicht erlaubt.
Blödsinn!
läuft bei mir monatelang und wirft gewünschte Meldungen ins Log
-
@homoran Das habe ich hier gefunden: https://hobbyblogging.de/iobroker-blockly
"Für produktive Zwecke ist der Debugging-Modus nicht erlaubt und auch nicht zu empfehlen."
-
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
@homoran Das habe ich hier gefunden: https://hobbyblogging.de/iobroker-blockly
"Für produktive Zwecke ist der Debugging-Modus nicht erlaubt und auch nicht zu empfehlen."
das ist ja auch ganz was anderes!
der wird rechts oben aktiviert!hat nichts mit den debug-Bausteinen zu tun
-
@wrod sagte: Warum funktioniert das Skript denn aber, wenn ich iobroker Skripts offen habe?
Bist du sicher, dass es funktioniert - außer einmal nach Skriptstart?
Funktionierendes Prinzip: -
- Ja, solange die Skript-Instanz offen ist
- Dieses Prinzip verstehe ich nicht ganz. Es geht mir darum, abzufragen, ob die Stromaufnahme nicht nur kurzfristig unter einen Grenzwert gefallen ist, sondernfür eine bestimmte Zeit.
-
@wrod sagte: ob die Stromaufnahme nicht nur kurzfristig unter einen Grenzwert gefallen ist, sondernfür eine bestimmte Zeit.
Genau das macht mein Vorschlag: Die Stromaufnahme muss 5 Minuten lang <= 0.5 sein, damit die Fertigmeldung erzeugt wird.
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
solange die Skript-Instanz offen ist
Nein, nur einmal nach Skriptstart, wenn zu diesem Zeitpunkt eingeschaltet ist.
-
- Nein, ich konnte, wenn ich das Skript bei geöffneter Instanz starte, mehrfach die WaMa anschalten, und sie wurde wieder wieder ausgeschaltet.
- Wenn ich die Instanz schließe, passiert nichts, es wird erst weiter (!) gezählt (die Sekunden), wenn ich die Instanz wieder starte. Das Skript muss ich dazu nicht wieder starten.
- Ich verstehe die Logik Deinens Skripts nicht. Es fragt ab, ob die Stromaufnahme ÜBER einem Grenzwert ist, wenn ja, stoppt es einen Timeout, der noch gar nicht gestartet wurde. ANDERENFALLS, wird doch nur 5 Minuten gewartet bis zur Meldung, aber doch nicht geprüft, ob der Wert 5 Minuten unter dem Schwellenwert liegt - oder verstehe ich das falsch?
-
@wrod sagte: stoppt es einen Timeout, der noch gar nicht gestartet wurde.
Es stört aber auch nicht, wenn er noch nicht gestartet wurde.
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
doch nicht geprüft, ob der Wert 5 Minuten unter dem Schwellenwert liegt
Sobald der Grenzwert innerhalb der 5 Minuten wieder überschritten wird, wird der Timeout gestoppt und so die Meldung verhindert.
-
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
verstehe ich das falsch?
ja!
@wrod sagte in SKript läuft nur, wenn iobroker offen?:
der noch gar nicht gestartet wurde.
doch! ggf. bei der Änderung der Leistung davor.
Da es nie dazu kommen darf, dass ein Timeout zweimal gestartet wird, muss vorher ein ggf. noch laufender timeout gestoppt werden.@wrod sagte in SKript läuft nur, wenn iobroker offen?:
aber doch nicht geprüft
doch! bei jeder Änderung der Leistung