Wenn Tur auf dann Licht an mit ModbusTCP [gelöst]

Begonnen von fredolino, 07 April 2015, 20:25:00

Vorheriges Thema - Nächstes Thema

fredolino

Hallo,
die Frage ist nicht neu, aber der Weg zur Lösung für mich nicht in Sicht. Wer kann helfen?

Ich kann WifiLight erfolgreich per FHEM schalten.

Weiter nutze ich per ModbusTCP eine Datenquelle für Temperatur, relative Feuchte etc...kann ich alles im FHEM abbilden. Die Datenquelle grundsätzlich nur einen bestimmten Datentyp. In meinen Fall habe ich Float (REAL). An dieser Datenquelle hängt auch ein Türkontakt der liefert bei "AUF" eine 1 und bei "ZU" eine 0.

Das Licht

define Channel2 WifiLight RGBW2 bridge-V3:milight-bridge2
attr Channel2 alias Lampe Foyer
attr Channel2 room UG
attr Channel2 webCmd RGB
attr Channel2 widgetOverride RGB:colorpicker,RGB


Der Türkontakt

define SB_KTUER ModbusRegister 0 51
attr SB_KTUER IODev SB
attr SB_KTUER alias Kellertuer
attr SB_KTUER plcDataType REAL
attr SB_KTUER room Smartbox,UG
attr SB_KTUER stateFormat {sprintf("%i ", ReadingsVal($name,"state",0))}
attr SB_KTUER updateInterval 1


Wie muss ich jetzt vorgehen damit bei einer 1 aus SB_KTUER das Licht Channel2 angeht und bei einer 0 entsprechend ausgeht?

Danke

Gruß
Fidelio


der-Lolo

Tausend Wege führen nach Rom -
ich würde ein DOIF nehmen, zwei notifys würden auch gehen, man könnte per eventmap 0 und 1 auf off und on Mappen und das event weitergeben, dann brauchst nur ein notify...
DOIF geht etwa so...

define di_Licht DOIF ([SK_KTUER] eq "1") (set Channel2 on) DOELSE (set Channel2 off)

fredolino

Hallo,

danke für die schnelle Hilfe . Hatte leider nicht auf Anhieb geklappt. Hab deine Zeile natürlich per c&p in mein fhem.cfg gebracht. Den Tippfehler "SK_KTUER" natürlich mit kopiert. NoProb. War bestimmt ein Test. :) Den Ausdruck musste ich von  eq "1" auf  >"0" ändern, weil eq "1" nicht geklappt hatte. Liegt vielleicht am Floatwert vom Modbus. Jetzt funzt es... prima..

Danke
Gruß Fidelio