Hauptmenü

Button mit Rückmeldung

Begonnen von m_stengel, 31 Oktober 2017, 19:42:10

Vorheriges Thema - Nächstes Thema

m_stengel

Hallo ,
ich bin gerade dabei ein erstes Projekt mit fhem zu realisieren. Ich habe hier einen Raspberry mit einem PiFace IO Board und versuche mich gerade an einer Klappensteuerung. Der Istzustand ist folgender:

  • Ich habe zwei Buttons die jeweils bei Aktivierung einen Impuls von 1s auf je einen Relaisausgang für "Auf" bzw. "Zu" geben.
  • Ich habe 2 Inputs die je nach Endlage der Klappe aktiv sind und als "Lampe" anzeigen, ob die Klappe auf oder zu ist.

Funktioniert alles wunderbar, allerdings sind mir 2 Schalter und 2 Lampen einfach zuviel.

Sollzustand soll folgender werden:

Ich möchte nur noch einen Button, der je nach Lage der Klappe den richtigen Impuls an das entsprechende Relais gibt und je nach Endlage sein Aussehen so verändert, dass man sieht, ob die Klappe auf oder zu ist.

Hat jemand von euch eine Idee?


amenomade

Was hast Du schon in Fhem angelegt? Zeig mal ein "list" von jeweiligen Devices.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

m_stengel

hier meine angelegten sachen:


define pif PIFACE
attr pif portMode0 up
attr pif portMode1 up
attr pif portMode2 up
attr pif portMode3 up
attr pif portMode4 up
attr pif portMode5 up
attr pif portMode6 up
attr pif portMode7 up
attr pif room hidden
define Klappe_Auf readingsProxy pif:in0
attr Klappe_Auf eventMap on:0 off:1
attr Klappe_Auf getFn 0
attr Klappe_Auf getList 0:noArg
attr Klappe_Auf group Rückmeldung
attr Klappe_Auf room Hühnerstall
attr Klappe_Auf valueFn ""
define pif_poll at +*00:00:01 get pif in
define Klappe_Zu readingsProxy pif:in1
attr Klappe_Zu eventMap on:0 off:1
attr Klappe_Zu getFn 0
attr Klappe_Zu getList 0:noArg
attr Klappe_Zu group Rückmeldung
attr Klappe_Zu room Hühnerstall
attr Klappe_Zu valueFn ""
define zu_imp notify Zu:on set pif 1 1;; sleep 1;; set pif 1 0;; set Zu off
attr zu_imp room hidden
define Zu dummy
attr Zu devStateIcon on:general_an:off off:general_aus:on
attr Zu group Relais
attr Zu room Hühnerstall
attr Zu setList state:on,off
attr Zu webCmd state
define Auf dummy
attr Auf devStateIcon on:general_an:off off:general_aus:on
attr Auf group Relais
attr Auf room Hühnerstall
attr Auf setList state:on,off
attr Auf webCmd state
define auf_imp notify Auf:on set pif 0 1;; sleep 1;; set pif 0 0;; set Auf off


ich hoffe das hilft weiter

Gruß Michael

amenomade

Man kann viel durch ein einziges DOIF ersetzen.

Wenn ich richtig verstanden habe,
set pif 1 1 => starte "zu" Vorgang
set pif 1 0 => "zu" Vorgang beenden

set pif 0 1 => starte "auf" Vorgang
set pif 0 0 => "auf" Vorgang beenden

pif:in0 = 1 => die Klappe ist auf
pif:in0 = 0 => ?? Klappe zu, oder undefined ??
pif:in1 = 1 => die Klappe ist zu
pif:in1 = 0 => ?? Klappe auf oder undefined ??

Aber zeig bitte zur Sicherheit noch ein "list pif". Nicht die raw Definition. Sondern gib einfach "list pif" im Kommandofeld von Fhem ein, und poste das Ergebnis davon.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

m_stengel

#4

Internals:
   CHANGED
   NAME       pif
   NOTIFYDEV  global
   NR         20
   NTFY_ORDER 50-pif
   STATE      active
   TYPE       PIFACE
   READINGS:
     2017-10-31 16:28:10   in0             1
     2017-10-31 16:28:08   in1             0
     2017-10-31 13:17:19   in2             1
     2017-10-31 13:17:19   in3             1
     2017-10-31 13:17:19   in4             1
     2017-10-31 13:17:19   in5             1
     2017-10-31 13:17:19   in6             1
     2017-10-31 13:17:20   in7             1
     2017-10-31 16:27:58   out0            0
     2017-10-31 16:28:08   out1            0
     2017-10-31 13:17:25   out2            0
     2017-10-31 13:17:25   out3            0
     2017-10-31 13:17:25   out4            0
     2017-10-31 13:17:25   out5            0
     2017-10-31 13:17:25   out6            0
     2017-10-31 13:17:25   out7            0
     2017-10-31 13:17:19   state           active
Attributes:
   portMode0  up
   portMode1  up
   portMode2  up
   portMode3  up
   portMode4  up
   portMode5  up
   portMode6  up
   portMode7  up
   room       hidden


die Klappe ist gerade zu


set pif 1 1 => starte "zu" Vorgang
set pif 1 0 => "zu" Vorgang beenden , Klappe fährt weiter bis zu

set pif 0 1 => starte "auf" Vorgang
set pif 0 0 => "auf" Vorgang beenden , Klappe fährt weiter bis auf

pif:in0 = 0 & pif:in1 = 1 => die Klappe ist auf   
pif:in0 = 1 & pif:in1 = 0 => die Klappe ist zu   
pif:in0 = 1 & pif:in1 = 1 => die Klappe bewegt sich   
pif:in0 = 0 & pif:in1 = 0 => dieser Zustand ist nicht möglich

Fahrzeit von Ende zu Ende ca. 3-4 sec


amenomade

Probier mal damit:
define Klappe DOIF (["$SELF:mybutton: auf"])\
(set pif 0 1)\
(set pif 0 0)\
DOELSEIF (["$SELF:mybutton: zu"])\
(set pif 1 1)\
(set pif 1 0)\
DOELSEIF ([pif:in0] eq "0" and [pif:in1] eq "1")\
DOELSEIF ([pif:in0] eq "1" and [pif:in1] eq "0")\

attr Klappe cmdState set_auf,fahre_auf|set_zu,fahre_zu|auf|zu
attr Klappe devStateIcon set_auf:fts_shutter_80 fahre_auf:fts_shutter_60 auf:fts_shutter_10 set_zu:fts_shutter_20 fahre_zu:fts_shutter_40 zu:fts_shutter_100
attr Klappe do always
attr Klappe readingList mybutton
attr Klappe setList mybutton:auf,zu
attr Klappe wait 0,1:0,1
attr Klappe webCmd mybutton
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus