NEWS
Hilfe bei erstem Script - Blockly
-
Hallo zusammen,
auf lange Sicht gesehen möchte ich die "Intelligenz" von meiner CCU auf einen ioBroker verlagern. Dazu wollte ich mit einfachen Scripten zum Testen anfangen, stehe aber direkt ziemlich auf dem Schlauch:
Die Anforderungen:
Eine tplink hs110 soll nach einer bestimmten Zeit nach dem Einschalten ausgehen. Das geht. Wenn ich die Steckdose wieder einschalte, geht sie direkt wieder aus. Wenn ich etwas länger warte, dann scheint es zu gehen.
Ist das normal?
So sieht mein Script aus:
Eigentlich soll man die Steckdose wieder einschalten können.
Bin für alle Anregungen dankbar. (Auch genereller Art).
Grüße
Ralf -
versuche es mal so
-
ich sag's ungern, aber das läuft gar nicht
vielleicht liegt der Fehler auch woanders?
-
@Ondas-tm
Das ist ein derart einfaches Script, das kann gar nicht "nicht-laufen""Wenn der Datenpunkt "Bügeleisen" den Status "wahr" signalisiert, stoppe bereits laufende Ausschalttimer und starte einen neuen Ausschalttimer in x-Minuten"
Somit wird immer x-Minuten nach der letzten Erkennung von "wahr" das Buegeleisen ausgeschaltet. Dies wird auch verwendet wenn bspw ein Bewegungsmelder bei fortwährender Bewegung ein Licht nicht einfach x-Minuten nach der ersten. sondern x-Minuten nach der letzten Bewegung ausschalten soll.
Zeige doch mal einen Screenshot deines Datenpunktes "Buegeleisen"
-
Dann denke ich, habe ich den Fehler gefunden:
"Somit wird immer x-Minuten nach der letzten Erkennung von "wahr" das Buegeleisen ausgeschaltet. " Der Datenpunkt wird alle regelmäßig aktualisiert, bedeutet also nach meinem Verständnis, dass der Timer immer neu getriggert wird.
Und nun?
Eigentlich ist das ja bis jetzt nur Spielerei und "Einführung" zum Verständnis der Logik von ioBroker, im Endergebnis will ich das Bügeleisen abschalten, wenn er zu lange an war (Strom verbraucht hat) unabhängig vom Schalter.
Aber einen Schritt nach dem anderen... -
@Ondas-tm
Grundsätzlich sollten alle Skripte unterhalb common liegen, nicht darüber wie bei Dir. -
@zahnheinrich sagte in Hilfe bei erstem Script - Blockly:
@Ondas-tm
Grundsätzlich sollten alle Skripte unterhalb common liegen, nicht darüber wie bei Dir.... oder in eigenen Verzeichnissen.
-
@Ondas-tm
dann solltest Du einmal vollständig ausformulieren was Du zu welchem Zeitpunkt erreichen willst wenn die Steckdose in welchem Zustand ist und wenn jemand zusätzlich eingreift.Dein Beispielscript im ersten Beitrag macht im Gegenzug zu meinem Beispiel definitiv nach 3 Minuten das Bügeleisen aus, nachdem das erste mal ein Einschalten registriert wurde ... ganz gleich was zwischendurch noch so gemacht wurde, wird der timer gnadenlos abgearbeitet und so nach 3 Minuten ein Ausschaltsignal gesendet.
-
@Ondas-tm sagte:
ich sag's ungern, aber das läuft gar nicht
Das ist dann der Fall, wenn der Datenpunkt zyklisch (< 3 Minuten) aktualisiert wird. Dann wird der Timer immer wieder gestoppt, bevor er ablaufen konnte und neu gestartet. Folgende Aussage deutet auch darauf hin, dass mehrere Timer laufen, weil mehrmals getriggert wird:
@Ondas-tm sagte in Hilfe bei erstem Script - Blockly:Wenn ich die Steckdose wieder einschalte, geht sie direkt wieder aus. Wenn ich etwas länger warte, dann scheint es zu gehen.
Versuche es mal so:
Wert und Objekt ID sind Eigenschaften des Trigger-Datenpunktes.
-
@zahnheinrich sagte in Hilfe bei erstem Script - Blockly:
@Ondas-tm
Grundsätzlich sollten alle Skripte unterhalb common liegen, nicht darüber wie bei Dir.Das ist Quatsch, Scripte müssen nicht in einem Ordner liegen um zu funktionieren, sie dürfen aber natürlich in Ordnern sortiert werden, das hilft ungemein.
Der "global"-Ordner ist dabei noch gesondert zu betrachten, das kann ich aber nicht genauer beschreiben, wegen zu weniger Kenntnisse.Enrico
-
@RappiRN sagte in Hilfe bei erstem Script - Blockly:
Der "global"-Ordner ist dabei noch gesondert zu betrachten, das kann ich aber nicht genauer beschreiben,
Im globalen Ordner können/sollen keine Blockly Skripte gespeichert werden.
Alle Skripte in dem globalen Ordner werden immer vor allen anderen Skipten ausgeführt. Deswegen sollte hier besonders sorgsam vorgegangen werden. -
@FredF sagte:
Alle Skripte in dem globalen Ordner werden immer vor allen anderen Skipten ausgeführt.
Korrektur: Alle Skripte in dem globalen Ordner werden in alle anderen (nicht globalen) Skripte kopiert und dort ausgeführt. Skripte im globalen Ordner sollten nur häufig verwendete eigene Funktionen enthalten, die aus den anderen Skripten aufgerufen werden.
-
Cool, vielen Dank für die Infos & sorry, dass ich mich jetzt erst wieder melde.
Macht, glaube ich, eh Sinn diverse Ordner anzulegen, um den Überblick zu behalten.@BBTown : Ich bin hier am Lernen, einen Schritt nach dem anderen. Aktuell habe ich hier eine HS110 die nach einem bestimmten Zeitraum x nach dem Einschalten wieder ausgehen soll und nach erneutem Einschalten nach gleichem Zeitraum wieder ausgehen soll. Das wird eine Sicherheitsschaltung fürs Bügeleisen. Allerdings ist das sofortige Wiederausschalten ein Problem, das wird nicht zur Akzeptanz führen.
Im nächsten Schritt will ich den Verbrauch vom Bügeleisen mitschneiden und nach einer gewissen Zeit das Ding ausmachen, unabhängig davon, ob die Dose vorher an und aus war. Das erscheint mir deutlich sinnvoller als Version 1
Und als 3. Schritt soll dann noch eine PushoverNachricht kommen: "Sicherheitsschaltung Bügeleisen" oder so. Ebenso soll noch eine anwesenheitsgesteuerte Nachricht kommen...
Die Verbrauchskurve sieht gerade so aus:
Ja, ich habe Angst, dass die Bude abfackelt....
Ralf -
Schritt1: So kannst du auch nachtriggern, falls du länger als 3min bügeln möchtest.edit: upps, es geht ja noch einfacher.
editedit: dein skript ganz oben geht auch, wenn du den haken bei "löschen falls läuft" machst