Autor Thema: ReadingsGroup Werte zusammenfassen  (Gelesen 815 mal)

Offline stefan-dd

  • Full Member
  • ***
  • Beiträge: 227
ReadingsGroup Werte zusammenfassen
« am: 05 Juni 2017, 21:21:50 »
Hallo,
ich habe an meiner Balkontür zwei Sensoren. Ich möchte beide Sensoren zu einem Wert zusammenfassen.

Folgende Kombinationen sind möglich:

gekippt -> Sensor 1 open, Sensor 2 closed
offen    ->  Sensor 1 open, Sensor 2 open
geschlossen ->  Sensor 1 closed, Sensor 2 open

Dies möchte ich so verknüpfen das entweder gekippt, offen oder geschlossen angezeigt wird.
Mein Anfang ist so:

defmod rg readingsGroup HM_55F050_Btn_01:state HM_55F050_Btn_02:state
attr rg mapping { 'HM_55F050_Btn_01' => 'gekippt', 'HM_55F050_Btn_02' => 'offen' }

Leider komme ich gar nicht weiter. Wie bringt man die beiden Schalter in einen zusammengeführten Status?

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 5127
Antw:ReadingsGroup Werte zusammenfassen
« Antwort #1 am: 05 Juni 2017, 21:36:59 »
Ich würde es lieber mittels DOIF  in einem Dummy zusammenfassen.

define FensterStatus dummy
define di_Fenster DOIF ([sensor1] eq "open" and [sendor2] eq "closer")
  (set FensterStatus gekippt)
doelseif ([sensor1] eq "open" and [sensor2] eq "open")
  (set FensterStatus offen)
doelseif ([sensor1] eq "closed" and [sensor2] eq "open")
  (set FensterStatus geschlossen)
doelse
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline stefan-dd

  • Full Member
  • ***
  • Beiträge: 227
Antw:ReadingsGroup Werte zusammenfassen
« Antwort #2 am: 05 Juni 2017, 22:06:43 »
Danke, so ist es wahrscheinlich am einfachsten.

Offline Damian

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6896
Antw:ReadingsGroup Werte zusammenfassen
« Antwort #3 am: 05 Juni 2017, 22:41:08 »
Ich würde es lieber mittels DOIF  in einem Dummy zusammenfassen.

define FensterStatus dummy
define di_Fenster DOIF ([sensor1] eq "open" and [sendor2] eq "closer")
  (set FensterStatus gekippt)
doelseif ([sensor1] eq "open" and [sensor2] eq "open")
  (set FensterStatus offen)
doelseif ([sensor1] eq "closed" and [sensor2] eq "open")
  (set FensterStatus geschlossen)
doelse

oder gleich ohne Dummy


define FensterStatus DOIF ([sensor1] eq "open" and [sendor2] eq "closed")
DOELSEIF ([sensor1] eq "open" and [sensor2] eq "open")
DOELSEIF ([sensor1] eq "closed" and [sensor2] eq "open")

attr FensterStatus cmdState gekippt|offen|geschlossen



Programmierte FHEM-Module: DOIF mit uiTable, DOIF-Perl, THRESHOLD, FHEM-Befehl: IF

Offline amenomade

  • Hero Member
  • *****
  • Beiträge: 5127
Antw:ReadingsGroup Werte zusammenfassen
« Antwort #4 am: 05 Juni 2017, 22:42:47 »
Wow, sehr elegant :)
Danke.

(ja, mein DOIF hätte sowieso nicht funktioniert, da DOELSEIF gross geschrieben werden muss :) )
FHEM 5.9 Pi 3, EchoDot, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, und HM Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

 

decade-submarginal