Hallo,
ich habe eine Reihe von Funkrelais. Geschaltet werden die über Notifys auf Dummys, die sozusagen die Einzel-Schalter der Relais darstellen. Ich kann auch mit einem Befehlsaufruf alle gleichzeitig an bzw. aus schalten. Dann würde ich über das Notify auch gerne die States der anderen Dummys setzen. Wenn ich "setstate Funkrelais_1 on" in die Befehlszeile eingebe, wird der State sofort gesetzt, wenn ich das mit dem Notify mache, dann muss ich den Browser erst refreshen (F5), um die States zu aktualisieren.
Was mach ich da falsch ? Fehlt was ?
Hier der Code aus dem Notify:
Funkrelais_ALL:.* {my $test="";
my $test2=ReadingsVal("Funkrelais_ALL","state","0");
if($test2 eq "on"){$test=GetFileFromURL("http://192.168.2.45/?pin=ON0");
fhem("setstate Funkrelais_1 on");;
fhem("setstate Funkrelais_2 on");;
fhem("setstate Funkrelais_3 on");;
fhem("setstate Funkrelais_4 on");;
fhem("setstate Funkrelais_5 on");;
fhem("setstate Funkrelais_6 on");;
fhem("setstate Funkrelais_7 on");;
fhem("setstate Funkrelais_8 on");;
}
if($test2 eq "off"){$test=GetFileFromURL("http://192.168.2.45/?pin=OFF0");
fhem("setstate Funkrelais_1 off");;
fhem("setstate Funkrelais_2 off");;
fhem("setstate Funkrelais_3 off");;
fhem("setstate Funkrelais_4 off");;
fhem("setstate Funkrelais_5 off");;
fhem("setstate Funkrelais_6 off");;
fhem("setstate Funkrelais_7 off");;
fhem("setstate Funkrelais_8 off");;
}
fhem("set debug $test");;
}
Zusätzlicher Fehler: Die aufgerufene Seite gibt 1 bei on und 0 bei off zurück. Bei on wird auch 1 in das dummy "debug" geschrieben, bei off allerdings auch nichts...
Wer kann mir Tipps geben ?
Grüße
Christian
setstate änder nur das reading und erzeugt kein event. wenn du ein event möchtest set oder setreading verwenden.
gruss
andre
Hi Andre,
es soll auch kein Event ausgelöst werden, das würde ja wieder die Einzel-Notifys auslösen, es soll nur die gelbe Birne an und aus gehen, so wie es ist, wenn ich das in die Befehlseingabe eingebe, dann wird direkt gewechselt, nur wenn das Notify ausgeführt wird, dann nicht, dann muss ich erst F5 drücken. Das Notify selber wird ausgeführt, also kein interner Fehler drin, der die Ausführung unterbinden würde...
Grüße
Christian
ohne event wird auch der browser nicht aktualisiert.
du musst deine logik umbauen.
ich weiß nicht warum du zusätzlich zu den relais auch noch dummys brauchst. Aber schau dir mal readingsProxy an.
gruss
andre
Die Dummys sind als Schalter für die Relais gedacht, ein Notify schaltet dann, indem über
GetFileFromURL("http://IP/?pin=OFF1");
im Notify wird z.B. Relais 1 ausgeschaltet wird. Realisiert mit einer NodeMCU und einer 8er Relaiskarte.
Problem ist, wie gesagt, daß wenn über pin=OFF0 alle Relais ausgeschaltet werden, alle Dummys an den Schaltzustand angepasst werden sollen.
Wenn nicht mit Dummys, wie würdest Du das machen ?
Grüße
Christian
schau dir readingsProxy an
Hallo,
ich löse das von meiner PHC Steuerung über setreading state.
Das reading benenne ich dann pan und paus.
Mit devStateIcon
aus:light_light:an an:light_light_dim_100@green:aus paus:light_light:an pan:light_light_dim_100@green:aus
und eventMap
on:an off:aus
funktioniert es bei mir.
Somit gibt es keine Schleife.
Mein Notify reagiert dann auf on off und schaltet die PHC Steuerung.
Hruß Henrik