Wie erfaehrt FHEM dass ein Aktor manuell geschaltet wurde?

Begonnen von tinyfhem, 04 Februar 2014, 18:25:09

Vorheriges Thema - Nächstes Thema

tinyfhem

Zitat von: Spartacus am 01 April 2014, 10:17:23
Hi,
kannst Du die Lösung noch einmal komplett posten?
Spartacus

Klar:

define switch1 EnOcean xxxxxxxx
attr switch1 IODev TCM310
attr switch1 room EnOcean
attr switch1 subType switch
attr switch1 model FT55
attr switch1 event-on-change-reading buttons

define switch1notify notify switch1 {my $rvar=Value("switch1") ;; \
if    ($rvar =~ m/B0/ && Value("actuator1") eq "off") {fhem "set actuator1 on"}  \
elsif ($rvar =~ m/B0/ && Value("actuator1") eq "on")  {fhem "set actuator1 off"} \
elsif ($rvar =~ m/BI/) {fhem "set s1 toggle"}}

Mit dem "B0" channel des switches wird ein toggle auf den actuator1 gemacht. Mit dem "B1" channel wird eine Energenie Steckdose getoggled. Am actuator1 haengt aktuell zum testen eine Lampe und so habe ich auch mitbekommen, dass ohne das "event-on-change-reading", eine Lichtorgel entsteht. Ob das mit dem event-on-change-readings der elegante und sinnvolle Weg ist, da habe ich so meine Zweifel aber es funktioniert. Ich denke eleganter waere, die Definition des notify so anzulegen, dass die events gefiltert werden koennen.
FHEM auf Raspberry Pi, EnOcean Pi, HomeMatic LAN Konfigurations Adapter, CUL 868 V3, CUL 433 V3

Spartacus

#31
Hi,
habe das mal auf meine Bedürfnisse angepasst:
# Eltako Aktor FMS61NP (2xS)
define EnO_Act_01 EnOcean xxxxxx
attr EnO_Act_01 IODev TCM310_0
attr EnO_Act_01 group Device
attr EnO_Act_01 room Test
attr EnO_Act_01 subDef FF94C081
attr EnO_Act_01 subType switch
define FileLog_EnO_Act_01 FileLog ./log/EnO_Act_01-%Y.log EnO_Act_01
attr FileLog_EnO_Act_01 group EnOcean
attr FileLog_EnO_Act_01 logtype text
attr FileLog_EnO_Act_01 room System


# Gira Serientaster
define EnO_Sw_01 EnOcean 008C1D57
attr EnO_Sw_01 IODev TCM310_0
attr EnO_Sw_01 event-on-change-reading buttons
attr EnO_Sw_01 group Device
attr EnO_Sw_01 model FT55
attr EnO_Sw_01 room Test
attr EnO_Sw_01 subType switch
define FileLog_EnO_Sw_01 FileLog ./log/EnO_Sw_01-%Y.log EnO_Sw_01
attr FileLog_EnO_Sw_01 logtype text
attr FileLog_EnO_Sw_01 room Test


EnO_Sw_01 { my $rvar=Value("EnO_Sw_01") ;
  if    ($rvar =~ m/B0/ && ReadingsVal("EnO_Act_01","channelB","") eq "BI") {fhem "set EnO_Act_01 B0"}
  elsif ($rvar =~ m/B0/ && ReadingsVal("EnO_Act_01","channelB","") eq "B0") {fhem "set EnO_Act_01 BI"}
  elsif ($rvar =~ m/BI/ && ReadingsVal("EnO_Act_01","channelA","") eq "AI") {fhem "set EnO_Act_01 A0"}
  elsif ($rvar =~ m/BI/ && ReadingsVal("EnO_Act_01","channelA","") eq "A0") {fhem "set EnO_Act_01 AI"}}


muss aber feststellen, dass fhem nicht jeden Tastendruck umsetzt, vor allem, wenn die Schaltfolge schnell hintereinander erfolgt. Da ist irgendwo noch der Wurm drin....aber woran liegt das? Wenn ich den Taster direkt einlerne, klappt alles zuverlässig!

Edit:
...so macht das irgendwie keinen Sinn! Das ist viel zu langsam...
@tinyfhem:
ist das bei Dir auch so? mach doch bitte mal einen "Doppelklick" auf den Schalter!

Gruß,
Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Spartacus

#32
Hallo,
die Klicks auf den Taster kriegt fhem alle mit, dass kann ich im "Readings"-Fenster verfolgen. Es scheint vielmehr am Aktor zu liegen, der die Rückmeldung nicht schnell genug an fhem übermittelt. Daher vermute ich, dass es bei der ReadingsVal-Anweisung offenbar zu einer falschen Auswertung kommt
Weiß jemand, ob und vor allem wie,  man hier optimieren kann?

Spartacus

Edit:
Es dauert ca. 2-3 sec. bis der Aktor das Statustelegramm gesendet hat. Ist das normal?
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

tinyfhem

Zitat von: Spartacus am 01 April 2014, 12:36:26
@tinyfhem:
ist das bei Dir auch so? mach doch bitte mal einen "Doppelklick" auf den Schalter!
Also ich kann klicken so schnell es nur geht, die Lampe (actuator1 in meinem Beispiel), folgt brav und bleibt im Tritt. Fhem laeuft bei mir auf einem Raspi.
FHEM auf Raspberry Pi, EnOcean Pi, HomeMatic LAN Konfigurations Adapter, CUL 868 V3, CUL 433 V3

Spartacus

#34
Hi,
das verstehe ich nicht!
Wie hast Du den Aktor angelernt. als Richtungstaster, mit aktiviertem Telegramm? (muss ja, sonst könntest Du den State nicht auslesen)
Bei mir läuft das auch auf einem Pi! und dauert bis zu 2 Sekunden, bis die Quittung im fhem ankommt. Am Aktor kann ich sehen, das die LED jedesmal blinkt..das heisst der Aktor kriegt schon jeden Befehl mit, aber durch den &&ReadiningVal-Befehl wird ja auf die Rückmeldung des Aktors gewartet...und das scheint bei mir sehr lange zu dauern.

Der FMS61NP hat 2 Kanäle, aber daran kann es eigentlich nicht liegen....
der aktor und der Taster liegen neben dem enoacen PI. Verbindung ist prima und ich habe nur einen Aktor an dem Pi.

Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

Spartacus

Hallo,
habe gestern noch einmal den Aktor neu eingelernt. Bei aktiviertem Telegramm und als Richtungstaster bleibt der ganze Käse extrem träge. Ich weiss auch nicht mehr, an welcher Schraube ich da drehen soll, denn bei tinyfhem scheint es ja ohne merkliche Verzögerung zu funzen....

Wenn das von der Sache bei mir richtig umgesetzt ist, und niemand sonst noch einen Tipp hat, dann muss ich mein System mal neu aufsetzten. So kann es auf keinen Fall bleiben......

Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R