Hallo Zusammen,
ich würde gerne meine definierten Notifys auch wenn es in den Readings keine Veränderungen gab, gerne ausführen lassen, damit die Werte übertragen werden können.
Beispiel:
define OpenClosedToLoxone notify .*:(open|closed) {LOXONE_OpenClosed("loxone","$NAME","$EVTPART0")}
Grund dafür ist, wenn ich mein Loxone Device reboote, sind die Werte dann nicht mehr vorhanden, jetzt würde ich bei einem Reboot von Loxone, fhem mit teilen, er soll jetzt alle Werte noch mal übertragen.
Wie könnte ich das machen?
Gruß
lewej
at?
Einsteiger-pdf lesen...
Zitat von: lewej am 10 Dezember 2017, 19:41:30
Hallo Zusammen,
ich würde gerne meine definierten Notifys auch wenn es in den Readings keine Veränderungen gab, gerne ausführen lassen, damit die Werte übertragen werden können.
Beispiel:
define OpenClosedToLoxone notify .*:(open|closed) {LOXONE_OpenClosed("loxone","$NAME","$EVTPART0")}
Grund dafür ist, wenn ich mein Loxone Device reboote, sind die Werte dann nicht mehr vorhanden, jetzt würde ich bei einem Reboot von Loxone, fhem mit teilen, er soll jetzt alle Werte noch mal übertragen.
Wie könnte ich das machen?
Gruß
lewej
Dir ist schon klar wie ein Notify funktioniert? Es triggert auf ein Event. Dieses Event beinhaltet bestimmte Strings welche dem Notify mitgegeben werden.
$NAME","$EVTPART0
Wie bitte schön willst du ohne Event Deine Notifys auslösen und dann auch noch mit den korrekten aktuellen Daten?
Das wird so nicht gehen.
Mit at kann man zu Gewissen Zeiten ein set oder sonstiges ausführen. Was ich machen will ist, das sämtliche Readings die z.B durch das Notify in Frage kommen, nochmal übertragen werden sollen:
define OpenClosedToLoxone notify .*:(open|closed) {LOXONE_OpenClosed("loxone","$NAME","$EVTPART0")}
Dieses notify überträgt ca. 50 Devices, ich will ja nicht für jedes Device ein AT schreiben.
Mit dem Befehl trigger kann man ein notify manuell auslösen.
Zitat von: lewej am 10 Dezember 2017, 19:41:30
Grund dafür ist, wenn ich mein Loxone Device reboote, sind die Werte dann nicht mehr vorhanden, jetzt würde ich bei einem Reboot von Loxone, fhem mit teilen, er soll jetzt alle Werte noch mal übertragen.
Wie könnte ich das machen?
Ein Presence bzgl. Loxone anlegen (sofern das per Netz erreichbar/pingbar ist), dann auf present (nicht vergessen: event-on-change-reading zu setzen damit nur ein present nach absent kommt) einen Notify welcher dann die aktuellen Werte per ReadingsVal auslesen überträgt...
EDIT: und dann in einer Schleife die 50 Werte übertragen...
EDIT2: mit einem at kannst du eben in einer Schleife auch mehrere/alle deine Werte übertragen... Du brauchst nicht für jedes Gerät ein at...
Gruß, Joachim
P.S.: ich habe natürlich von Loxone keine Ahnung ;) Und wollte jetzt auch nicht suchen ;)
Zitat von: CoolTux am 10 Dezember 2017, 20:00:50
Dir ist schon klar wie ein Notify funktioniert? Es triggert auf ein Event. Dieses Event beinhaltet bestimmte Strings welche dem Notify mitgegeben werden.
$NAME","$EVTPART0
Wie bitte schön willst du ohne Event Deine Notifys auslösen und dann auch noch mit den korrekten aktuellen Daten?
Das wird so nicht gehen.
Ja das ist auch mein Problem, evtl. ist hier das notify auch der falsche Ansatz. Bei einem reboot von fhem, wird ja auch das notify getriggert, weil ja quasi die Reading alle aktualisert werden.
Kann man an fhem ein Befehl senden, der quasi ein wieder einlesen aller Readings triggert und somit das notify getriggert wird, möchte aber ungern fhem neustarten.
gruss
Zitat von: roedert am 10 Dezember 2017, 20:03:55
Mit dem Befehl trigger kann man ein notify manuell auslösen.
Schau dir doch mal bitte sein Notify an. Er wertet Device und ein Teil des Events aus. Kennst du den Event? Das Device? Er musste für jedes Device versuchen ein aktuelles Event zu erzeugen.
Zitat von: CoolTux am 10 Dezember 2017, 20:06:53
Schau dir doch mal bitte sein Notify an. Er wertet Device und ein Teil des Events aus. Kennst du den Event? Das Device? Er musste für jedes Device versuchen ein aktuelles Event zu erzeugen.
CoolTUX hat da voll kommen recht, das ist das Problem, DEVICE UND EVENT ist nicht bekannt, weil sich die Liste ständig erweitert. Ich will die ungern Manuell pflegen.
Zitat von: MadMax-FHEM am 10 Dezember 2017, 20:04:43
Ein Presence bzgl. Loxone anlegen (sofern das per Netz erreichbar/pingbar ist), dann auf present (nicht vergessen: event-on-change-reading zu setzen damit nur ein present nach absent kommt) einen Notify welcher dann die aktuellen Werte per ReadingsVal auslesen überträgt...
EDIT: und dann in einer Schleife die 50 Werte übertragen...
EDIT2: mit einem at kannst du eben in einer Schleife auch mehrere/alle deine Werte übertragen... Du brauchst nicht für jedes Gerät ein at...
Gruß, Joachim
P.S.: ich habe natürlich von Loxone keine Ahnung ;) Und wollte jetzt auch nicht suchen ;)
Das wäre viel Arbeit aber ein machbarer Weg. Oder Du machst gleich eine richtige myUtils daraus.
Ist das eigentlich ein generelles Problem? Gibt es ein Loxone Modul dann kann man das mal zur Sprache bringen.
Zitat von: lewej am 10 Dezember 2017, 20:09:01
CoolTUX hat da voll kommen recht, das ist das Problem, DEVICE UND EVENT ist nicht bekannt, weil sich die Liste ständig erweitert. Ich will die ungern Manuell pflegen.
Aber die Liste musst du nicht manuell pflegen?
Dein Notify triggert doch auf alles was "open/closed" hat.
Also eine Liste von Geräten die (im state!?) open oder closed haben:
list state=(open|closed)
Geht auch als Array und dann in einer Schleife...
Gruß, Joachim
Ich denke Mal das ist nur ein Beispiel. Loxone ist doch so eine Art Webfrontend oder? Da werden doch bestimmt noch weitere Device states weitergeleitet.
Hi,
ich nutze dieses Loxone Plugin, das mir per UDP die Sachen an loxone triggert:
Wie müsste ich die Schleife aufbauen?
Noch mal meine Frage. Ist dies ein generelles Problem mit Loxone das die Daten dann weg sind? Wenn ja sollte sowas versucht werden durch das Modul zu lösen.
Zitat von: CoolTux am 10 Dezember 2017, 20:29:44
Noch mal meine Frage. Ist dies ein generelles Problem mit Loxone das die Daten dann weg sind? Wenn ja sollte sowas versucht werden durch das Modul zu lösen.
In Loxone gibt es bei den Bausteinen direkt die Option Remanenz, aber nicht in den Virtuellen Eingängen. Deshalb sind dann die Daten weg.
Ohne jetzt wirklich die tatsächliche Arbeitsweise zu kennen.
Ich würde jedes Devices in FHEM was das Problem betrifft mit einem User Attribut versehen und dann dieses Attribut in einer devspec2array zum suchen mitgeben. Alle gefundenen Devices list du aus und schickst die Daten an das Loxone