Stromsparschaltung mit HM-ES-PMSw1-Pl

Begonnen von ahstax, 20 August 2019, 10:28:49

Vorheriges Thema - Nächstes Thema

ahstax

Hallo miteinander,

ich habe eine HM-ES-PMSw1-Pl, die über einen Intertechnoschalter via eines notify ein- und ausgeschaltet werden kann.

Ich würde jetzt gerne erreichen, dass die HM-ES-PMSw1-Pl ausgeschaltet wird, wenn die Leistungsaufnahme für 10 Minuten unter 20W liegt.

Kann mir bitte jemand einen Tipp geben? Ich stehe da irgendwie auf dem Schlauch und verrenne mich erfolglos in Unmengen von dummys, notifys und watchdogs...

neugierige Grüße,
Andreas

bartman121


gloob

Du schaltest den Funkschalter mit einem anderen Funkschalter aus? Irgendwie verstehe ich nicht den Sinn.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

ahstax

Zitat von: bartman121 am 20 August 2019, 10:40:14
Userreading und watchdog

das probiere ich aus! DANKE!!!


Zitat von: gloob am 20 August 2019, 13:00:32
Du schaltest den Funkschalter mit einem anderen Funkschalter aus? Irgendwie verstehe ich nicht den Sinn.

ein Funkschalter mit Wippe an der Wand, mit dem ich den HM-ES-PMSw1-Pl manuell an- und ausschalten kann. Ist das ungewöhnlich?

gloob

Zitat von: ahstax am 20 August 2019, 13:03:41
ein Funkschalter mit Wippe an der Wand, mit dem ich den HM-ES-PMSw1-Pl manuell an- und ausschalten kann. Ist das ungewöhnlich?

Achso, ich dacht dein Intertechnoschalter ist auch eine Funksteckdose.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

ahstax

ich habe jetzt ein userReading hinterlegt, dass sich wie folgt liest:

usrReadingState {if (ReadingsVal("HM_653DF1_SenPwr","state","") = 0) {return off} elsif ((ReadingsVal("HM_653DF1_SenPwr","state","") > 0) && (ReadingsVal("HM_653DF1_SenPwr","state","") < 30)) {return standby} elsif (ReadingsVal("HM_653DF1_SenPwr","state","") > 30) {return on}}


leider wirft das folgendes Ergebnis in den Readings:
Error evaluating HM_653DF1_SenPwr userReading usrReadingState: Can't modify non-lvalue subroutine call of &main::ReadingsVal in scalar assignment at (eval 1218176) line 1, near "0) "
Bareword "off" not allowed while "strict subs" in use at (eval 1218176) line 1.
Bareword "standby" not allowed while "strict subs" in use at (eval 1218176) line 1.
Bareword "on" not allowed while "strict subs" in use at (eval 1218176) line 1.


Woran liegt das denn?

gloob

Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

bartman121

Zitat von: ahstax am 20 August 2019, 13:54:21
ich habe jetzt ein userReading hinterlegt, dass sich wie folgt liest:

usrReadingState {if (ReadingsVal("HM_653DF1_SenPwr","state","") = 0) {return off} elsif ((ReadingsVal("HM_653DF1_SenPwr","state","") > 0) && (ReadingsVal("HM_653DF1_SenPwr","state","") < 30)) {return standby} elsif (ReadingsVal("HM_653DF1_SenPwr","state","") > 30) {return on}}


leider wirft das folgendes Ergebnis in den Readings:
Error evaluating HM_653DF1_SenPwr userReading usrReadingState: Can't modify non-lvalue subroutine call of &main::ReadingsVal in scalar assignment at (eval 1218176) line 1, near "0) "
Bareword "off" not allowed while "strict subs" in use at (eval 1218176) line 1.
Bareword "standby" not allowed while "strict subs" in use at (eval 1218176) line 1.
Bareword "on" not allowed while "strict subs" in use at (eval 1218176) line 1.


Woran liegt das denn?

Deine returnvalues müssen hier in "", weil es strings sind.

ahstax

Zitat von: bartman121 am 20 August 2019, 14:55:55
Deine returnvalues müssen hier in "", weil es strings sind.

ja, das wars... Und Vergleichsoperatoren müssen aus zwei Zeichen bestehen (==, <=...)


Zitat von: gloob am 20 August 2019, 14:12:06
Ich würde es ja mit einem eigenen DOIF machen:

https://forum.fhem.de/index.php?topic=48877.0

Das werde ich mir auf jeden Fall auch noch ansehen!

ahstax

Hallo,

so langsam nimmt es Formen an...

Langsam, weil hiermit:

usrReadingState {if (ReadingsVal("HM_653DF1_SenPwr","state","") == 0) {return "off"} elsif ((ReadingsVal("HM_653DF1_SenPwr","state","") >> 0) && (ReadingsVal("HM_653DF1_SenPwr","state","") << 30)) {return "standby"} elsif (ReadingsVal("HM_653DF1_SenPwr","state","") >= 30) {return "on"}}

zwar ein UserReading definiert wurde, der Wert "on" aber nicht ausgegeben wird, obwohl der "state"-Wert über 30 liegt.
Bei "standby" und "off" klappts.....

Kann mir jemand sagen, warum?

Otto123

Ich würde vorsichtig sagen: Wenn Du aus  >> nur > und aus << nur < machst klappt es?

Probier mal in der FHEM Kommandozeile:  ;D
{30 < 50}
{30 << 50}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ahstax

Interessant... bei 0 == 0 muss das "=" zwei Mal stehen... bei Größer als, kleiner als, größer gleich, kleiner gleich scheint das nicht der Fall zu sein.... Danke!

Zitat von: Otto123 am 22 August 2019, 14:18:30
Ich würde vorsichtig sagen: Wenn Du aus  >> nur > und aus << nur < machst klappt es?

Probier mal in der FHEM Kommandozeile:  ;D
{30 < 50}
{30 << 50}


Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz