[Gelöst] DOIF mehrere Geräte / Devices / Fensterkontakte

Begonnen von pinkfloyd66, 04 August 2016, 14:18:40

Vorheriges Thema - Nächstes Thema

pinkfloyd66

Hallo erstmal,

ich bekomme die Tage viele Fenster-Kontakte geliefert, da ich bis jetzt schon 2 im Einsatz habe, frage ich die mit  "ODER" ab.
Bei ca 30 Fenster-Kontakte wäre das ein bisschen viel, nun versuche ich das zu simulieren in dem ich 4 Dummy angelegt habe davon sollen 3 schaltbare Dummys sein und einer soll geschaltet werden.

Als Fensterkontakt habe ich optische bestellt von Homematic und zwar die HM-SEC-SCo


Hier die 3 Dummys

define 1HM_TEST_S1 dummy
attr 1HM_TEST_S1 room Ztestraum
attr 1HM_TEST_S1 group Sensor
attr 1HM_TEST_S1 sortby 10
attr 1HM_TEST_S1 webCmd on:off

define 1HM_TEST_S2 dummy
attr 1HM_TEST_S2 room Ztestraum
attr 1HM_TEST_S2 group Sensor
attr 1HM_TEST_S2 sortby 20
attr 1HM_TEST_S2 webCmd on:off
attr 1HM_TEST_S2 verbose 5

define 1HM_TEST_S3 dummy
attr 1HM_TEST_S3 room Ztestraum
attr 1HM_TEST_S3 group Sensor
attr 1HM_TEST_S3 sortby 30
attr 1HM_TEST_S3 webCmd on:off



Hier der 1 Dummy der geschaltet werden soll


define 1TEST_E4 dummy
attr 1TEST_E4 room Ztestraum
attr 1TEST_E4 group Alarmgeber
attr 1TEST_E4 sortby 30
attr 1TEST_E4 webCmd on:off


Hier der Code der bei betätigen eines der Dummys 1TEST_E4 schalten soll.
Leider funktioniert der nicht und andere Varianten auch nicht

define di_test_schaltung DOIF (["^1HM_T"] eq "on") (set 1TEST_E4 on)
attr di_test_schaltung do always


Der Code funktioniert aber ist mit 30 Fensterkontakte doch sehr aufwendig

define di_test_schaltung DOIF ([1HM_TEST_S1] eq "on" or [1HM_TEST_S2] eq "on" or [1HM_TEST_S3] eq "on") (set 1TEST_E4 on)


Mit dem  notify  bekomme ich es hin aber der doif ist einfacher zu verstehen
also mit dem bekomme ich es hin

define no_ausloesung notify 1HM_TEST_S.* { fhem "set 1TEST_E4 on" }


Aber es muß doch auch mit DOIF funktionieren, oder?

Es wäre schön wenn mir da einer helfen kann

Vielen Dank im Voraus

Manfred




FHEMAN

Hallo Manfred,

Du versucht die Ereignissteuerung über Auswertung von Events (http://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung_ueber_Auswertung_von_Events)

Möglicherweise klappt
define di_test_schaltung DOIF (["^1HM_T:on"]) (set 1TEST_E4 on)
oder
define di_test_schaltung DOIF ([^1HM_T:"on"]) (set 1TEST_E4 on)
?

Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

pinkfloyd66

Danke erstmal für die schnelle Reaktion, leider funktioniert das auch nicht.
Diese Möglichkeiten habe ich auch  schon mal  ausprobiert.

Damian

Zitat von: derron am 04 August 2016, 16:02:10

define di_test_schaltung DOIF (["^1HM_T:on"]) (set 1TEST_E4 on)

Diese Syntax ist korrekt und muss bei richtiger Anwendung funktionieren.
Gruß
Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

pinkfloyd66

Guten Morgen

Der code von Damian hat es gebracht, obwohl ich den auch schon vorher ausprobiert habe.

define di_test_schaltung DOIF (["^1HM_T:on"]) (set 1TEST_E4 on)

Nach dem ich den Code auf meinem 2 Raspi getestet habe und er da funktioniert hat, habe ich, auf den frisch aufgesetzten Raspi, ein Update auf dem  Fhem durchgeführt.
Und siehe da nun funktioniert er auch dort.

Vielen Dank an alle

Damian

Zitat von: pinkfloyd66 am 05 August 2016, 08:46:17
Guten Morgen

Der code von Damian hat es gebracht, obwohl ich den auch schon vorher ausprobiert habe.

define di_test_schaltung DOIF (["^1HM_T:on"]) (set 1TEST_E4 on)

Nach dem ich den Code auf meinem 2 Raspi getestet habe und er da funktioniert hat, habe ich, auf den frisch aufgesetzten Raspi, ein Update auf dem  Fhem durchgeführt.
Und siehe da nun funktioniert er auch dort.

Vielen Dank an alle
... und wenn dein DOIF nur aus der einen Zeile besteht, dann das Attribut du always nicht vergessen, sonst funktioniert nur einmal.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

pinkfloyd66