setstate eines Dummys aus Notify/Perlskript erst nach refresh sichtbar

Begonnen von cs-online, 09 März 2016, 11:03:37

Vorheriges Thema - Nächstes Thema

cs-online

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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

justme1968

setstate änder nur das reading und erzeugt kein event. wenn du ein event möchtest set oder setreading verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

cs-online

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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

cs-online

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
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Henne16

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
FHEM 6 PI4, Fhem2Fhem, Homematic IP CCU3, HMLAN, div. Thermostate, HM IP Wired Ein-Ausgang, Dimmer