HM-ES-PMSw1-Pl Schaltzustand merken und nach Stromausfall herstellen

Begonnen von wkarl, 27 Dezember 2014, 12:42:46

Vorheriges Thema - Nächstes Thema

wkarl

Hallo,

Sorry, das war aber richtig schlampig. Pflege gleich mal die Korrekturen ein. (Danke Frank)

nach dem Pairen channel_01 und channel_02 channel_05 peeren.
set SchaltSteckdose_PM02_SenU peerChan 0 SchaltSteckdose_PM02_Sw single set

Das device sieht dann so aus:
define SchaltSteckdose_PM02 CUL_HM 2E19D8
attr SchaltSteckdose_PM02 IODev HMUSB_01
attr SchaltSteckdose_PM02 IOgrp VirtCCU:HMUSB_01
attr SchaltSteckdose_PM02 actCycle 000:10
attr SchaltSteckdose_PM02 actStatus alive
attr SchaltSteckdose_PM02 autoReadReg 4_reqStatus
attr SchaltSteckdose_PM02 expert 2_full
attr SchaltSteckdose_PM02 firmware 1.6
attr SchaltSteckdose_PM02 group Steckdosen
attr SchaltSteckdose_PM02 icon message_socket_on_off@black
attr SchaltSteckdose_PM02 model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02 room H-DV-RemoteControl
attr SchaltSteckdose_PM02 serialNr LEQ0533555
attr SchaltSteckdose_PM02 subType powerMeter
attr SchaltSteckdose_PM02 webCmd getConfig:clear msgEvents
define FileLog_SchaltSteckdose_PM02 FileLog /opt/fhem/log/SchaltSteckdose_PM02-%Y.log SchaltSteckdose_PM02
attr FileLog_SchaltSteckdose_PM02 disable 1
attr FileLog_SchaltSteckdose_PM02 logtype text
attr FileLog_SchaltSteckdose_PM02 room Z-HA-Logs
define SchaltSteckdose_PM02_Sw CUL_HM 2E19D801
attr SchaltSteckdose_PM02_Sw group Steckdosen
attr SchaltSteckdose_PM02_Sw icon message_socket_on_off@black
attr SchaltSteckdose_PM02_Sw model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_Sw peerIDs 00000000,2E19D801,2E19D805,
attr SchaltSteckdose_PM02_Sw room H-DV-RemoteControl
define SchaltSteckdose_PM02_Pwr CUL_HM 2E19D802
attr SchaltSteckdose_PM02_Pwr group Steckdosen
attr SchaltSteckdose_PM02_Pwr icon message_socket_on_off@black
attr SchaltSteckdose_PM02_Pwr model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_Pwr room H-DV-RemoteControl
define SchaltSteckdose_PM02_SenPwr CUL_HM 2E19D803
attr SchaltSteckdose_PM02_SenPwr group Steckdosen
attr SchaltSteckdose_PM02_SenPwr icon message_socket_on_off@black
attr SchaltSteckdose_PM02_SenPwr model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_SenPwr peerIDs 00000000,
attr SchaltSteckdose_PM02_SenPwr room H-DV-RemoteControl
define SchaltSteckdose_PM02_SenI CUL_HM 2E19D804
attr SchaltSteckdose_PM02_SenI group Steckdosen
attr SchaltSteckdose_PM02_SenI icon message_socket_on_off@black
attr SchaltSteckdose_PM02_SenI model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_SenI peerIDs 00000000,
attr SchaltSteckdose_PM02_SenI room H-DV-RemoteControl
define SchaltSteckdose_PM02_SenU CUL_HM 2E19D805
attr SchaltSteckdose_PM02_SenU group Steckdosen
attr SchaltSteckdose_PM02_SenU icon message_socket_on_off@black
attr SchaltSteckdose_PM02_SenU model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_SenU peerIDs 00000000,
attr SchaltSteckdose_PM02_SenU room H-DV-RemoteControl
define SchaltSteckdose_PM02_SenF CUL_HM 2E19D806
attr SchaltSteckdose_PM02_SenF group Steckdosen
attr SchaltSteckdose_PM02_SenF icon message_socket_on_off@black
attr SchaltSteckdose_PM02_SenF model HM-ES-PMSw1-Pl
attr SchaltSteckdose_PM02_SenF peerIDs 00000000,
attr SchaltSteckdose_PM02_SenF room H-DV-RemoteControl


Dann noch ...
set SchaltSteckdose_PM02_SenU regSet cndTxRising on

Mit folgendem notify wird automatisch .._SenU so parametrisiert, dass bei einem Stromausfall der aktuelle Schaltzustand wieder hergestellt wird.
define SetActState2PM notify SchaltSteckdose_PM02_Sw.(on|off) { \
    $NAME=~s/_Sw/_SenU/g;;\
\
    if ($EVENT eq "on") {\
        fhem("set $NAME regSet txThrHiVlt 200");;\
        fhem("set $NAME regSet txThrLoVlt 180");;\
    }\
    if ($EVENT eq "off") {\
        fhem("set $NAME regSet txThrHiVlt 240");;\
        fhem("set $NAME regSet txThrLoVlt 220");;\
    }\
\
}
attr SetActState2PM room Unsorted


Btw: Hier ist mir die Unschönheit aufgefallen, dass das device und $NAME definiert. An anderer Stelle mit $DEVICE. Wäre es nicht sinnvoll auch hier $DEVICE verwenden zu können? Im Sinne der Kompatibilität und mit Rücksicht auf diejenigen, die Lösungen mit $NAME schon umgesetzt haben, sollte $NAME und $DEVICE verwandt werden können.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

frank

hallo walter,

hier ein paar ergänzungen.

Zitatnach dem Pairen channel_01 und channel_02 peeren.
das muss 05 heissen.

Zitatif ($EVENT eq "off") {\
        fhem("set $NAME regSet txThrHiVlt 240");;\
        fhem("set $NAME regSet txThrLoVlt 220");;\
    }\
das kann nur funktionieren, wenn die spannung unter 240v bleibt. ich gehe davon aus, dass du sicherlich das register cndTxRising=on gesetzt hast, denn dann bedeuten deine werte: sende einen schaltbefehl, wenn die spannung grösser 240v geht und vorher unter 220v war. => also nur dann kein schaltbefehl, wenn die spannung unter 240v bleibt. falls im laufe der zeit die spannung 240v übersteigt wird dann trotzdem irgendwann eingeschaltet. 

auf der sicheren seite bist du, wenn du nicht die schaltschwellen änderst, sondern den schaltwert beim senden änderst. also:

    if ($EVENT eq "on") {\
        fhem("set $NAME regSet cndTxDecAbove 200");;\
    }\
    if ($EVENT eq "off") {\
        fhem("set $NAME regSet cndTxDecAbove 0");;\
    }\


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

stromer-12

Zitat von: wkarl am 27 Dezember 2014, 12:42:46
Mit folgendem notify wird automatisch .._SenU so parametrisiert, dass bei einem Stromausfall der aktuelle Schaltzustand wieder hergestellt wird.
define SetActState2PM notify SchaltSteckdose_PM02_Sw.(on|off) { \
    $NAME=~s/_Sw/_SenU/g;;\
\
    if ($EVENT eq "on") {\
        fhem("set $NAME regSet txThrHiVlt 200");;\
        fhem("set $NAME regSet txThrLoVlt 180");;\
    }\
    if ($EVENT eq "off") {\
        fhem("set $NAME regSet txThrHiVlt 240");;\
        fhem("set $NAME regSet txThrLoVlt 220");;\
    }\
\
}
attr SetActState2PM room Unsorted


Btw: Hier ist mir die Unschönheit aufgefallen, dass das device und $NAME definiert. An anderer Stelle mit $DEVICE. Wäre es nicht sinnvoll auch hier $DEVICE verwenden zu können? Im Sinne der Kompatibilität und mit Rücksicht auf diejenigen, die Lösungen mit $NAME schon umgesetzt haben, sollte $NAME und $DEVICE verwandt werden können.

ciao walter

$DEVICE kenne ich nur aus readingGroup,readingsProxy und LightScene.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL