NEWS
Skript für Schalter um Skript zu pausieren/deaktivieren
-
Hallo zusammen,
ich habe mehrere Geräte die sich einschalten, sobald ich ins öffentliche Netz Strom einspeise. u.a. auch eine Klimaanlage.
Wenn ich im Büro bin, will ich aber nicht, dass die Klima an geht. Somit muss ich aktuell manuell im iobroker das Skript stoppen und dann wieder am Abend das Skript aktivieren.
Somit benötige ich bitte: Ein Skript, mit dem ich ein anderes Skript stoppen/pausieren/für einen Tag deaktivieren kann.
Denn, wenn ich die Klimaanlage manuell aus mache, geht diese wenige Minuten später wieder an, da der Trigger "ppv2" wieder auslöst.
Randinfo: Dieses "Skript zum stoppen von einem Skript" möchte ich dann auf einen "echten" Schalter im Büro schalten oder per Shortcut mit dem Handy.
Vielen Dank für Eure Hilfe!
-
@marc_ackermann sagte in Skript für Schalter um Skript zu pausieren/deaktivieren:
Somit muss ich aktuell manuell im iobroker das Skript stoppen und dann wieder am Abend das Skript aktivieren.
Nöö, so ein Blödsinn!
du musst nur einen DP im Buero (true/false) anlegen u d pflegen und diesen Zustand im Skript abfragen.
-
@marc_ackermann Wie @Homoran sagte, DP anlegen. Diesen steuerst du mit deinem Schalter. Falls du einen Pi verwendest kannst du diesen auf einen dessen GPIO legen. Um diesen GPIO in den iobroker zu bekommen verwendest du z.B. den RPI2 Adapter. Dann den GPIO auf den DP kopieren oder besser gleich den GPIO verwenden.
-
@homoran @geschild Ganz herzlichen Dank! Ich bin wirklich dankbar für die Antwort! Ich habe es nun so umgesetzt und schaue obs klappt:
KLIMA AN + Wert von "Klima Flur an" auf "wahr" + Prüfung Wert von "Klima Flur an":
und abends (wenn keine Sonne und der Akku leer) wird der Wert von "Klima Flur an" auf "falsch" gesetzt
-
@marc_ackermann sagte: manuell im iobroker das Skript stoppen und dann wieder am Abend das Skript aktivieren.
Frage einen Freigabe-Datenpunkt (Schalter) innerhalb des Triggers ab. Außerdem verwendet man keine zwei Trigger auf den gleichen Datenpunkt.
Vorschlag:Wenn auch auf den Freigabe-Datenpunkt getriggert wird, reagiert das Skript nicht erst bei einer Änderung des Ladezustands.
-
@paul53 Boar! Danke! Das sieht ja super aus. Probiere ich direkt heute Abend mal aus. Recht herzlichen Dank! Respekt!
-
Man kann auch einfach die Ausführung eines Skripts stoppen bzw starten. Dazu findest du die einzelnen Skripte als Datenpunkt unter "javascript.0.scriptEnabled". Durch setzen auf false/true stoppst bzw startest du das jeweilige Skirpt.
-
@cluni sagte in Skript für Schalter um Skript zu pausieren/deaktivieren:
Man kann auch einfach die Ausführung eines Skripts stoppen bzw starten.
Das macht man aber bei Javascript nicht.
Javascript arbeitet eventbasiert.Außerdem wird jedes Skript beim erneuten Start neu kompiliert, was unnötig Ressourcen kostet.
-
@homoran Ich bin da kein großer Experte, aber ich würde mal vermuten, dass das extrem vom Anwendungsfall abhängig ist, was mehr Ressourcen kostet.
Ich habe einige kleine Skripte (nur wenige Zeilen Code), die nur einen Befehl über die serielle Schnittstelle zu meiner alten Wärmepumpe schicken, womit ich die Warmwasser-Solltemperatur anpasse. Das geschieht insgesamt nur 6x pro Tag und ist in weit unter 1s erledigt. Ich glaube, wenn da ein Skript die ganze Zeit im Hintergrund läuft und auf ein Event wartet, dann verbrät das mehr Ressourcen, als dieses kleine Skript 6x am Tag kurz zu starten. Aber wie gesagt - ich kann das hier schlecht einschätzen. -
@cluni sagte in Skript für Schalter um Skript zu pausieren/deaktivieren:
wenn da ein Skript die ganze Zeit im Hintergrund läuft und auf ein Event wartet, dann verbrät das mehr Ressourcen,
nein. eigentlich gar keine.
Das Skript hat beim Starten bescheid gesagt: Weck mich wenn was passiert.
erst dann braucht es Ressourcen -
@homoran sagte: eigentlich gar keine.
Permanent etwas RAM.
Beim Skriptstart wird allerdings mehr RAM verbraucht und eine hohe CPU-Last erzeugt (Compiler). -
Ok, danke. Dann lag ich wohl falsch.
-
@cluni super Hinweis! Ist mir noch gar nicht aufgefallen! Danke