Virtueller Aktor mit HM-PB-6-WM55 - manuelles Ausschalten

Begonnen von solidphili, 25 März 2015, 14:51:28

Vorheriges Thema - Nächstes Thema

solidphili

Hallo zusammen,

ich habe eine kleine (wahrscheinlich im Newbie Forum passende) Frage bezüglich des HM-PB-6-WM55 Wandschallters in Verbindung mit verschiedenen Aktoren über FHEM.
Ich bin noch folgender Anleitung vorgegangen:
http://www.fhemwiki.de/wiki/HM-PB-6-WM55_6fach-Funk-Wandtaster

Ich habe den Wandschalter angelegt (Schalter_Kueche). Ich habe dann einen virtuellen Aktor erstellt (Schalter_Virt), damit der Schalter eine Rückmeldung von FHEM bekommt. Diesen virtuellen Aktor überwache ich jetzt mit einem Notify und schalte darüber einen Schaltaktor (Spuelmaschine) ein und aus. Das funktioniert solange perfekt, bis ich den Schaltaktor Spuelmaschine manuell und nicht über diesen Wandschalter ausschalte. In diesem Fall sind Wandschalter und Aktor nicht mehr synchron und ich muss den Taster mehrfach bedienen um den Zustand wieder "anzugleichen". Wie kann ich dieses Verhalten verhindern. Kann ich den virtuellen Aktor (Schalter_Virt) noch zusätzlich mit dem Schaltaktor verbinden? Oder kann ich den Notify irgendwie anpassen? Ich kann den Schaltaktor übrigens nicht direkt mit dem Wandschalter verbinden, da dieser kein Homematic Gerät ist.


Vielen Dank für Eure Hilfe.

Hier ist meine relevante Config:
Zitat
define Schalter_Kueche CUL_HM XXXXX
attr Schalter_Kueche IODev HMLAN1
attr Schalter_Kueche autoReadReg 4_reqStatus
attr Schalter_Kueche expert 2_full
attr Schalter_Kueche firmware 1.2
attr Schalter_Kueche model HM-PB-6-WM55
attr Schalter_Kueche room CUL_HM
attr Schalter_Kueche serialNr XXXXXXXXXXX
attr Schalter_Kueche subType remote
attr Schalter_Kueche webCmd getConfig:clear msgEvents
define FileLog_Schalter_Kueche FileLog ./log/Schalter_Kueche-%Y.log Schalter_Kueche
attr FileLog_Schalter_Kueche logtype text
attr FileLog_Schalter_Kueche room CUL_HM


define Schalter_Kueche_Btn1 CUL_HM XXXXXX01
attr Schalter_Kueche_Btn1 model HM-PB-6-WM55
attr Schalter_Kueche_Btn1 peerIDs 00000000,33221101,


define Schalter_Virt CUL_HM 332211
attr Schalter_Virt IODev HMLAN1
attr Schalter_Virt expert 2_full
attr Schalter_Virt model virtual_6
attr Schalter_Virt subType virtual
attr Schalter_Virt webCmd virtual

define Schalter_Virt_Btn1 CUL_HM 33221101
attr Schalter_Virt_Btn1 model virtual_6
attr Schalter_Virt_Btn1 peerIDs XXXXXX01,

define Schalter_Kueche_not_on1 notify Schalter_Virt_Btn1:ON set Spuelmaschine on
define Schalter_Kueche_not_off1 notify Schalter_Virt_Btn1:OFF set Spuelmaschine off

frank

was ist spuelmaschinhe fuer ein aktor?
wenn hm, dann direkt mit dem pb6 peeren. meldet der einen status?
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

Otto123

Hallo Frank:
Zitat von: solidphili am 25 März 2015, 14:51:28
Ich kann den Schaltaktor übrigens nicht direkt mit dem Wandschalter verbinden, da dieser kein Homematic Gerät ist.

Gruß Otto
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

Hollo

Ich mag mich ja irren, aber der virtuelle Aktor dient doch ursprünglich nur der Rückmeldung.
Daher reicht auch 1 für alle 6 Tasten.

Dann das notify auf den Tastendruck des Tasters machen und Deinen gewünschten realen Aktor damit schalten.
Ob der Homematic ist oder nicht ist dann Wurscht; dafür hast Du ja gerade den virtuellen HM-Bestätiger.



FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Otto123

Hallo solidphili,

verstehe ich das richtig, Du hast einen Knopf und Toggle gemacht?

Gruß Otto
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

solidphili

Zitat von: Hollo am 25 März 2015, 17:21:11
Ich mag mich ja irren, aber der virtuelle Aktor dient doch ursprünglich nur der Rückmeldung.
Daher reicht auch 1 für alle 6 Tasten.

Dann das notify auf den Tastendruck des Tasters machen und Deinen gewünschten realen Aktor damit schalten.
Ob der Homematic ist oder nicht ist dann Wurscht; dafür hast Du ja gerade den virtuellen HM-Bestätiger.
Hi Hollo,

ich glaube genau dein Hinweis hat mir geholfen! Ich hab nämlich dadurch gemerkt, dass Unterschiede zwischen den Virtuellen Buttons bestehen. Schalter_Virt_Btn1 hat bei mir nämlich zum Beispiel auch Readings für:

Zitat
trig_Schalter_Kueche_Btn1
long
2015-03-25 16:00:49
trig_Schalter_Kueche_Btn2
short
2015-03-25 13:13:26
trig_Schalter_Kueche_Btn3
short
2015-03-25 23:21:49
trig_Schalter_Kueche_Btn4
short
2014-10-29 17:28:36
trig_Schalter_Kueche_Btn5
short
2015-03-15 19:04:13
trig_Schalter_Kueche_Btn6
short
2015-03-24 23:11:08

Wenn ich das jetzt richtig verstehe, müsste ich ja jetzt nen notify auf eine Veränderung in diesem Reading machen oder? Sprich: "Wenn trig_Schalter:Kueche_Btn1 short ausgelöst wird: If Spuelmaschine is on, set off; else set Spuelmaschine on. Der "virtActState" bzw. "state" von "Schalter_Virt_Btn1" kann ich dann getrost ignorieren.

Gibt es eigentlich ne einfachere Möglichkeit einen Schalter "auf den inversen Status umzuschalten"? Ich meine ohne die if und else Klausel?

Otto123

Btn1 für on und Btn2 für off willst Du nicht machen? Warum muss es toggle sein?

Gruß Otto
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

Hollo

Wenn der Aktor toggle unterstützt, geht das auch.

Beispiel:
define n_wz_6fach_Taster_Btn_04 notify wz_6fach_Taster_Btn_04:trigger:.* set Blumenlampe toggle

Der 6fach-Taster ist für die Rückmeldung mit meinem HMLAN gepeert, das notify verbindet direkt die Taste 4 mit meinem "Aktor", meine Blumenlampe ist eine 433MHz Funksteckdose mittels GenShellSwitch.

Vergiss die virtuellen Dinger, sobald die LED nach Tastendruck grün signalisiert.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Otto123

Zitat von: Hollo am 26 März 2015, 06:59:40
Wenn der Aktor toggle unterstützt, geht das auch.
Das ist schon klar. Ich verstehe sein Problem nicht, er will ja offenbar von einer Seite Toggle machen und von einer Seite on/off - ansonsten erschließt sich mir die Bemerkung nicht:
Zitat von: solidphili am 25 März 2015, 14:51:28
Das funktioniert solange perfekt, bis ich den Schaltaktor Spuelmaschine manuell und nicht über diesen Wandschalter ausschalte. In diesem Fall sind Wandschalter und Aktor nicht mehr synchron und ich muss den Taster mehrfach bedienen um den Zustand wieder "anzugleichen". 

Ich denke entweder von zwei Tastern aus toggle oder von zwei Schaltern on/off. Ansonsten ist das Asynchron by design.

Gruß Otto
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

solidphili

Hallo zusammen,

danke nochmal für die ganze Hilfe, ihr seid spitze! Ich kann jetzt 3 der 6 Aktoren über einen "toggle" umschalten und benutze die Virtuellen Schalter jetzt auch nur noch für das grüne Lämpchen, wie von Hollo beschrieben. Ich hatte irgendwo mal eine Anleitung gelesen und die Konfig einfach kopiert. Eigentlich brauchte ich die On/Off Anzeige im FHEM gar nicht, schien mir damals nur die einfachste Lösung.

Die funtkionierenden Befehle sehen jetzt so aus:


define Schalter_Kueche_not1 notify Schalter_Kueche_Btn1:trigger:.* set Spuelmaschine toggle


Jetzt habe ich noch einen Aktor, der keinen "toggle" kennt. Wie muss jetzt mein notify aussehen? Meine Idee mit der if/else Lösung scheint nicht zu funktionieren, vielleicht hab ich auch nur nen Syntaxfehler drin:

define Schalter_Kueche_not6 notify Schalter_Kueche_Btn6:trigger:.* {if (Home_Cinema("state") eq "on") { fhem ("set Home_Cinema off")} else { fhem ("set Home_Cinema on")}}

Fehlercode ist:
Schalter_Kueche_not6 return value: Undefined subroutine &main::Home_Cinema called at (eval 173870) line 1.


Der Aktor ist ein AVM FRITZ!DECT 200, falls das wen interessiert.

Hollo

define Schalter_Kueche_not6 notify Schalter_Kueche_Btn6:trigger:.* {if (Home_Cinema("state") eq "on") { fhem ("set Home_Cinema off")} else { fhem ("set Home_Cinema on")}}
FHEM kann mit Home_Cinema nix anfangen.  ;D
Wenn es ein Dummy ist, kannst Du es direkt mit if (Value("Home_Cinema") eq "on") {... machen, andernfalls musst Du das passende Reading nutzen, ungefähr so if (ReadingsVal('Home_Cinema', 'state', '') eq "on") {...
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"