State Change bei einem dummy

Begonnen von djhans, 12 März 2014, 18:31:48

Vorheriges Thema - Nächstes Thema

djhans

Hallo,
wie reagiere ich auf einen Statuswechsel bei einem dummy Device um damit z.B. einen Aktor zu schalten.
Der Status kann die Werte 0 oder 1 haben.

Wenn sich der Zustand des dummy-Device von 0 auf 1 änder, schalte ich den Aktor ein, wenn er von 1 auf 0 fällt wieder aus.

den Aktor schalte ich mit set Lampe A0 ein und mit set Lampe AI aus.

define notifylampe notify <dummy>:.1
set Lampe A0

geht irgendwie nicht.
Ich habe da mal wieder einen Gedankenfehler drin...

djhans

justme1968

Schau im event monitor wie das event wirklich aussieht. da ist kein dopppunkt nach dem device namen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

djhans

Hi,
danke! Das war es!
also:
define notifyTag notify Nacht.0 set EnO_BettLicht AI


...wie macht man das denn richtig, wenn man in Abhängigkeit von "States" unterschiedliche Aktionen auslösen möchte. Um bei diesem Bsp. zu bleiben, würde ich einfach ein zweites Notify definieren, das ist aber keine "saubere" Lösung, oder?

define notifyNacht notify Nacht.1 set EnO_BettLicht AI

djhans

justme1968

da gibt es kein 'richtig'

entweder zwei notifys oder in einem notify auf $EVENT prüfen.

was elleganter ist hängt davon ab wie viel code in beiden fällen gemeinsam ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

djhans

Hi,
ok.
das würde dann so aussehen:
define notifyNacht notify Nacht set EnO_BettLicht $EVENT

Nacht kann aber nur "0" und "1" und dann würde $EVENT auch "0" und "1" annehmen. Der Aktor benötigt aber "AI" und "A0".
Das würde dann aber nicht funktionieren.

So steht es auch im Anfänger pdf.

djhans

justme1968

#5
das geht dann mit etwas in der art:define notifyNacht notify Nacht {my $cmd=($EVENT==0?'A0':'AI'); fhem "set EnO_BettLicht $CMD";}

es ist geschmackssache ob das einfacher ist als zwei einfache notifys.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

djhans

Hallo,
tja! Da sind die perl Programmierer am Start! Das verdränge ich irgendwie immer....sieht nach regulärem Ausdruck aus! ich glaube ich bleibe bei den zwei Notifys ;D

Vielen Dank für die Schulung!
Christian.

Owel

Ist leider keine Regex sondern ein simples if then else, in verkürzter Form.

Aber ich glaube mit 2 notifies bist du besser bedient. :)