NEWS
[gelöst]Welchen Trigger nutzen?
-
Hallo zusammen,
ich nutze ein Skript, dass mir eine Pushnachricht schickt, wenn ein Wassermelder Wasser erkennt und wenn es danach wieder "trocken" ist. Hier Trigger ich ja auf eine Änderung vom Datenpunkt.
Ich möchte das Skript nun erweitern und prüfen, ob beim Start vom Skript einer der Wassermelder schon Wasser erkannt hat, also dessen Datenpunkt schon true beim Skriptstart ist. Dies soll auch nur beim Start des Skriptes einmalig passieren. Ich frage mich nun, auf was ich da Triggern muss damit dies nur beim Start passiert?
Hat jemand eine Idee bzw, kann mir einen Tipp geben? -
@dominik-f sagte: auf was ich da Triggern muss damit dies nur beim Start passiert?
Kein Trigger, sondern Wert prüfen und Nachricht, falls Wasser erkannt.
-
Ich habe den Baustein gefunden, bin aber mit der Umsetzung etwas überfragt. Bei Falls wahr kann ich nichts mit Pushover etc einsetzen
-
@dominik-f sagte: Ich habe den Baustein gefunden
Das ist der falsche Baustein.
Bei mehreren Wassermeldern (mit Selektor):
-
So sieht es jetzt bei mir aus. Wie kann ich denn den Namen des Melders auslesen und automatisch einfügen? Bei dem laufenden Skript funktioniert das Auslesen, bei dem Skriptstart verständlicherweise noch nicht.
-
@dominik-f
Die Abfrage in der Schleife muss lauten:falls Wert vom Objekt ID i
Der Name steht außerhalb von Triggern nicht zur Verfügung. Entweder die ID (Variable
i
) wird übergeben oder man verwendet eine JS-Funktion mit Ergebnis. -
@paul53 sagte in Welchen Trigger nutzen?:
@dominik-f
Die Abfrage in der Schleife muss lauten:falls Wert vom Objekt ID i
Danke für die Berichtigung, hatte ich übersehen.
Der Name steht außerhalb von Triggern nicht zur Verfügung. Entweder die ID (Variable
i
) wird übergeben oder man verwendet eine JS-Funktion mit Ergebnis.Wäre so eine JS-Funktion sehr kompliziert? Es wäre natürlich klasse das direkt "perfekt" zu machen.
-
-
Das "id" ist bei mir dann ein "i" oder? Sorry für die vielen Fragen
-
@dominik-f sagte: Das "id" ist bei mir dann ein "i" oder?
Nein:
id
ist der Funktionsparameter.Bei Aufruf der Funktion übergibst Du die Variable
i
. -
-
@dominik-f sagte: So müsste es dann schlussendlich aussehen oder?
Passt.
-
Ich danke dir mal wieder vielmals für deine tolles Hilfe.
-
Ich hab nochmal eine Verständnisfrage.
Ich habe das Skript nun getestet.
Starte ich es und alle Wassermelder sind auf false, dann steht im Log folgendes:javascript.0 2022-07-30 21:44:20.481 info script.js.common.Überwachung_Wassermelder: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
Starte ich es und ein Wassermelder ist auf True, steht dort folgendes:
javascript.0 2022-07-30 21:43:01.662 info script.js.common.Überwachung_Wassermelder: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
Wie kommt es, das dort 0 subcriptions steht wenn ein Wassermelder auf true ist? Das verwirrt mich ein wenig.
-
@dominik-f
Subscriptions zeigt die Zahl der Trigger und müsste mit der Zahl der Wassermelder übereinstimmen, unabhängig davon, welchen Wert sie haben. -
Genau das verwirrt mich, weil ich dort eine 2 erwartet habe.
-
Hier nochmal das Log:
Skript gestartet mit einem Wassermelder der True ist, dann Wassermelder auf false gestellt, Skript gestoppt und wieder gestartet.
Wenn kein Wassermelder beim Start true ist erkennt er alle Triggerjavascript.0 2022-07-30 22:59:08.408 info script.js.common.Überwachung_Wassermelder: registered 3 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2022-07-30 22:59:08.400 info Start javascript script.js.common.Überwachung_Wassermelder javascript.0 2022-07-30 22:59:04.675 info Stop script script.js.common.Überwachung_Wassermelder javascript.0 2022-07-30 22:58:55.294 info script.js.common.Überwachung_Wassermelder: Wasser behoben test1 javascript.0 2022-07-30 22:58:45.659 info script.js.common.Überwachung_Wassermelder: Wasser erkannt test1 javascript.0 2022-07-30 22:58:45.659 info script.js.common.Überwachung_Wassermelder: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 2022-07-30 22:58:45.637 info Start javascript script.js.common.Überwachung_Wassermelder
-
@dominik-f
Das muss wohl ein Bug im Adapter sein?
Um 22:58:55.294 wurde doch getriggert? -
Ja, es funktioniert auch alles wie es soll.
Es scheint, dass dies nur angezeigt wird, wenn die Schleife als erstes greift
-
@dominik-f sagte: dass dies nur angezeigt wird, wenn die Schleife als erstes greift
Ja, scheint ein Laufzeitproblem zu sein, denn ich kann es bei mir mit einem einfacheren Skript nicht nachvollziehen.