NEWS
Rolle eines Objektes auslesen
-
@paul53 Das ist der Anfang einer Logik und nicht das Ende. Erstmal muss das funktionieren und das tut es jetzt auch. Ich will die Liste der IDs speichern und wenn ein neuer Sensor dazu kommt, dann soll er den mit aufnehmen. So verhindere ich, dass wenn die Funktionen mal wieder verschwinden er nicht mehr weiß was ein Fenstersensor ist. Das fällt mir nämlich immer erst dann auf, wenn ich irgendwann keine Ansage mehr bekomme welches Fenster gerade offen ist. Dazu speichere ich mir die Räume und nutze das anstatt der direkt ausgelesenen Werte, die immer wieder mal weg sind.
Danke ansonsten für die Hilfe.
-
@paul53 sagte in Rolle eines Objektes auslesen:
@joergh sagte: Jetzt hab ich es hinbekommen!
Möchtest du dann den zugehörigen Raum abfragen, wird eine JS-Funktion mit Ergebnis benötigt.
id = id.substring(0, id.lastIndexOf('.')); // parentID (Kanal) if(existsObject(id)) { let room = getObject(id, 'rooms').enumNames[0]; if(typeof room == 'object') room = room.de; return room; }
Welches Format muss denn die id haben?
Wenn ich ihm die DP-ID gebe, findet er nichts... -
@joergh sagte: wenn ein neuer Sensor dazu kommt
Dann müssen "hm-rpc.1" und "hm-rega.0" neu gestartet werden und anschließend die Javascript-Instanz. Und alles ist gut.
-
@joergh sagte in Rolle eines Objektes auslesen:
Wenn ich ihm die DP-ID gebe, findet er nichts...
Bei mir funktioniert es.
-
Disregard
-
@paul53 Danke, man muss das Skript auch starten und nicht nur speichern, dann geht's
-
@paul53 Wenn ich in einem Skript Trigger starte, das Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?
-
@joergh sagte: Skript selbst dann stoppe oder neustarte, werden dann die erzeugten Trigger auch gestoppt?
Bei Skriptstop werden die Trigger im Skript gelöscht und bei Skriptstart neu erzeugt.
-
@paul53 Ich meine die, die ich nicht vorher fest programmiert habe, sondern die ich durch das Programm anlegen lasse, z.B. durch Aufruf einer Funktion, in die ich das packe...?
Werden die auch mit gestoppt?
-
@joergh sagte: Werden die auch mit gestoppt?
Gestoppt werden alle Trigger.
Wenn ein Trigger innerhalb einer Funktion erzeugt wird (weshalb eigentlich?), muss die Funktion bei Skriptstart aufgerufen werden, um dann den Trigger zu erzeugen. -
@paul53
Danke erneut für die Auskunft.Weitere Frage: Bisher ist es, soweit ich weiß, nicht möglich mehrere Cronjobs mit variablen Namen automatisiert zu starten und zu beenden, korrekt?
Die Idee ist, wenn ein Fenster geöffnet wird, für jedes, einen dazugehörigen Cronjob mit einer regelmäßigen Aktion zu starten, also z.B. nach X Minuten eine Erinnerung zu senden.
Da ich in den Blockly Bausteinen wie z.B. "Intervall" oder Cronjob nur fixe Namen vergeben kann und keine variablen, würde beim zweiten Fenster ein Intervall mit dem gleichen Namen gestartet, was dazu führt, dass man sie nicht mehr korrekt beenden kann oder gibt es hier inzwischen andere Möglichkeiten? -
@joergh sagte: "Intervall" oder Cronjob nur fixe Namen vergeben kann
Ja, das ist eine Einschränkung von Blockly. In Javascript kann man ein Array für die Timer-Variablen verwenden.
-
Dachte ich mir...dann muss ich mich da wohl mal dran versuchen. Wenn ich von Blockly aus den Namen übergeben könnte beim starten und beenden, würde das ja auch reichen...morgen geht's weiter...