Position anhand von drei eingängen

Begonnen von B4unty, 14 Juni 2017, 11:34:35

Vorheriges Thema - Nächstes Thema

B4unty

könnte ich das devStateIcon meines Dummy Taster TORsteu über diesen nottyfy definieren? hoffe das ich den code richtig versatnden habe.
define TORwo notify (TOR_Auf|TOR_Luft|TOR_Zu) {
my $r1 = Value("TOR_Auf");;
my $r2 = Value("TOR_Luft");;
my $r3 = Value("TOR_Zu");;
if ($r3 eq "on") {
  fhem "set TORsteu zu"
}
if ($r2 eq "on") {
  fhem "set TORsteu luft"
}
if ($r1 eq "on") {
  fhem "set TORsteu auf"
  }

}


und der
devStateIcon
   devStateIcon

Tasten:fts_garage_door_100@green:zu fts_garage_door_80@purple:luft fts_garage@red:auf

rabehd

TORsteu ist ein Dummy-Device, welches Du auf "zu", "Luft" und "auf" setzen willst?

Was sind die Devices TOR_Auf, TOR_Luft, TOR_Zu?
Wieso gibt es nicht ein Device, welches Dir die Info zu, auf, Luft liefert?
Wofür ist der Dummy gedacht?
Auch funktionierende Lösungen kann man hinterfragen.

B4unty

Zitat von: rabehd am 14 Juni 2017, 11:51:49
TORsteu ist ein Dummy-Device, welches Du auf "zu", "Luft" und "auf" setzen willst?

Was sind die Devices TOR_Auf, TOR_Luft, TOR_Zu?
Wieso gibt es nicht ein Device, welches Dir die Info zu, auf, Luft liefert?
Wofür ist der Dummy gedacht?
TORsteu ist ein  dummy Taster, der ein Relais für 1sec anzieht.
TOR_Auf, Luft, Zu sind magnetschalter die an der Laufschiene angebracht sind. und high bei belegung liefern.

in eins weiß ich nicht wie ich das zusammen fassen soll. bin da noch neu.

Otto123

#3
Hi,

ich habe hier sowas ähnliches gemacht, Lüftung habe ich noch nicht.

Ich würde noch den trigger fürs notify spezifischer  machen, dann brauchst Du nicht auf on zu testen, sondern kannst einfach auf $NAME testen.
define TORwo notify (TOR_Auf:on|TOR_Luft:on|TOR_Zu:on) {
if ($NAME eq "TOR_Auf") { fhem "set TORsteu zu"}
if ($NAME eq "TOR_Luft") { fhem "set TORsteu luft"}
if ($NAME eq "TOR_Zu") { fhem "set TORsteu auf"}
}

Wegen eventuell fehlender ; bin ich mir noch nicht sicher  :-[ aber ich glaube das passt.

Folgendes ist ungetestet!
Du kannst auch so als Trigger schreiben -> TOR_[Auf,Luft,Zu]:on
Und Du kannst dann auch IF nehmen -> IF ($NAME eq "TOR_Zu") (set TORsteu auf);;


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rabehd

ich denke elseif wäre hier auch ok (Syntax ist mir hier nicht ganz klar perl - FHEM).

Wie schaltet denn das Relais? Ein notify auf den Dummy? Dann könnte das doch gleich auf die 3 Devices reagieren.

Auch funktionierende Lösungen kann man hinterfragen.

B4unty


B4unty

Zitat von: rabehd am 14 Juni 2017, 12:43:53
ich denke elseif wäre hier auch ok (Syntax ist mir hier nicht ganz klar perl - FHEM).

Wie schaltet denn das Relais? Ein notify auf den Dummy? Dann könnte das doch gleich auf die 3 Devices reagieren.
Das Relais schaltet über den dummy Taster und die drei magnetschalter sind zur Positions Bestimmung

rabehd

Da Dein Problem geklärt ist,...
Ich kann mit Deiner Antwort nichts anfangen. Das ist kein Hinweis auf Dein System. :-\

Auch funktionierende Lösungen kann man hinterfragen.