HM-PBI-4-FM Kanal 1 Short und Long für 2 Lichter nutzen

Begonnen von Tabularasa, 25 November 2016, 18:38:34

Vorheriges Thema - Nächstes Thema

Tabularasa

Hallo. Ich nutze die 4 fach Tasterschnittstelle in Verbindung mit dem 4 fach Aktor Hutschiene. Nun wollte ich gern ein Kanal vom Taster für 2 Kanäle vom Aktor nutzen. Vorweg, ich habe nicht gepeert und möchte das auch nicht. Hier mal das DOIF, welches ich verwende. (Befinde mich noch am Anfang mit FHEM)
Internals:
   DEF        ([HM_4C7CBF_Btn_02] =~ "Short") (set Schaltaktor_WZ_Licht toggle) DOELSEIF ([HM_4C7CBF_Btn_02] =~ "Long") (set Schaltaktor_Diele_Licht toggle)
   NAME       di_test1
   NR         121
   NTFY_ORDER 50-di_test1
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-11-25 18:04:08   Device          HM_4C7CBF_Btn_02
     2016-11-25 18:04:08   cmd             2
     2016-11-25 18:04:08   cmd_event       HM_4C7CBF_Btn_02
     2016-11-25 18:04:08   cmd_nr          2
     2016-11-25 18:04:08   e_HM_4C7CBF_Btn_02_STATE Long 1_81 (to broadcast)
     2016-11-25 18:04:08   state           cmd_2
   Condition:
     0          InternalDoIf($hash,'HM_4C7CBF_Btn_02','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) =~ "Short"
     1          InternalDoIf($hash,'HM_4C7CBF_Btn_02','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) =~ "Long"
   Devices:
     0           HM_4C7CBF_Btn_02
     1           HM_4C7CBF_Btn_02
     all         HM_4C7CBF_Btn_02
   Do:
     0:
       0          set Schaltaktor_WZ_Licht toggle
     1:
       0          set Schaltaktor_Diele_Licht toggle
   Helper:
     event      Long 1_81 (to broadcast),trigger: Long_81,trigger_cnt: 81
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   HM_4C7CBF_Btn_02
     timerevent Long 1_81 (to broadcast),trigger: Long_81,trigger_cnt: 81
     triggerDev HM_4C7CBF_Btn_02
     timerevents:
       Long 1_81 (to broadcast)
       trigger: Long_81
       trigger_cnt: 81
     timereventsState:
       state: Long 1_81 (to broadcast)
       trigger: Long_81
       trigger_cnt: 81
     triggerEvents:
       Long 1_81 (to broadcast)
       trigger: Long_81
       trigger_cnt: 81
     triggerEventsState:
       state: Long 1_81 (to broadcast)
       trigger: Long_81
       trigger_cnt: 81
   Internals:
     0           HM_4C7CBF_Btn_02:STATE
     1           HM_4C7CBF_Btn_02:STATE
     all         HM_4C7CBF_Btn_02:STATE
   Itimer:
   Readings:
   Regexp:
     0:
     1:
     All:
   State:
   Trigger:
Attributes:
   do         always


Wenn ich kurz den Taster drücke funktioniert alles. Das Problem besteht darin, dass wenn ich lang drücke ja der Long Befehl hochgezählt wird. Ich vermute das er ja dann immer toggelt wenn hochgezählt wird. Das heißt wenn ich zu lange drücke, geht das Licht wieder aus beim loslassen. Und durch das pairen ist es ja ein bisschen verzögert.
Kann ich das irgendwie umgehen(durch Änderung des DOIF's) oder so einstellen, dass das hochzählen langsamer geht? Hoffe ich hab es verständlich geschrieben...
Danke

Muschelpuster

#1
Dazu gibt es ein Beispiel im Wiki: http://www.fhemwiki.de/wiki/DOIF/Mehrfachnutzung_eines_Tasters
Vielleicht hilft es Dir ja, auch wenn es nicht ganz Deine Anforderungen trifft. Aber es zeigt, wie Du das ggf. ohne do always lösen kannst, was das Problem umgehen könnte.

verlinkte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Otto123

Hi,

ich denke do always brauchst Du in dem Fall nicht - bin aber nicht sicher.
Ich würde versuchen mit wait zu arbeiten, also attr di_test1  wait 0,2 oder wait 0,1

Dummerweise liefert der PBI kein longrelease ...

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

Tabularasa

#3
Danke erstmal. Jedoch komm ich mit dem verlinktem Wiki nicht weiter. Ist im Moment noch zu hoch für mich. Habe für mein DOIF schon ne knappe Stunde gebraucht bis es teilweise geklappt hat ::)
Und wegen dem do always... das muss ich haben weil ohne gehts Licht nich mehr aus. Mit dem wait würde auch klappen, aber wenn ich lang drücke bis das Licht an ist, geht es wieder aus. Wenn ich lang drücke aber kurz vorher loslasse bevor das Licht angeht klappt es aber dann dauert es halt noch ne Sekunde bis das Licht an geht. Ist sicher verwirrend und WAF sinkt und so  ;) Schreibweise bei dem wait war auch 0:1  mit 0,1 ging es nicht.
Habe es jedoch trotzdem noch hinbekommen indem ich es so geschrieben habe ([HM_4C7CBF_Btn_02] =~ "Long 1") So reagiert es nur auf mit Leerzeichen und 1. Vielleicht dann auch noch auf 11,12 usw aber so lange drücke ich ja nicht.

EDIT: Habe gerade nochmal ganz lange gedrückt und ab 10 reagiert es dann wieder
2016-11-25 23:22:52 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:52 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:52 CUL_HM Schaltaktor_4fach CMDs_pending
2016-11-25 23:22:52 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:52 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:52 DOIF di_test1 cmd: 2
2016-11-25 23:22:52 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:52 DOIF di_test1 cmd_2
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 Long 1_109 (to broadcast)
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:52 CUL_HM Schaltaktor_4fach CMDs_done
2016-11-25 23:22:52 CUL_HM Schaltaktor_Diele_Licht on
2016-11-25 23:22:52 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:52 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 Long 2_109 (to broadcast)
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:52 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:52 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 Long 3_109 (to broadcast)
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:52 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:53 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 Long 4_109 (to broadcast)
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:53 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 Long 5_109 (to broadcast)
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:53 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 Long 6_109 (to broadcast)
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:53 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 Long 7_109 (to broadcast)
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:53 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:54 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 Long 8_109 (to broadcast)
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:54 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 Long 9_109 (to broadcast)
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:54 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:54 CUL_HM Schaltaktor_4fach CMDs_pending
2016-11-25 23:22:54 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:54 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:54 DOIF di_test1 cmd: 2
2016-11-25 23:22:54 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:54 DOIF di_test1 cmd_2
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 Long 10_109 (to broadcast)
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:54 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:54 CUL_HM Schaltaktor_4fach CMDs_done
2016-11-25 23:22:54 CUL_HM Schaltaktor_Diele_Licht off
2016-11-25 23:22:54 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:54 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:55 CUL_HM Schaltaktor_4fach CMDs_pending
2016-11-25 23:22:55 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:55 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:55 DOIF di_test1 cmd: 2
2016-11-25 23:22:55 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:55 DOIF di_test1 cmd_2
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 Long 11_109 (to broadcast)
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:55 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:55 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:55 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:55 DOIF di_test1 cmd: 2
2016-11-25 23:22:55 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:55 DOIF di_test1 cmd_2
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 Long 12_109 (to broadcast)
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:55 CUL_HM Schaltaktor_Diele_Licht on
2016-11-25 23:22:55 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:55 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:55 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:55 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:55 DOIF di_test1 cmd: 2
2016-11-25 23:22:55 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:55 DOIF di_test1 cmd_2
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 Long 13_109 (to broadcast)
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:55 CUL_HM Schaltaktor_Diele_Licht on
2016-11-25 23:22:55 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:55 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:55 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:55 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:55 DOIF di_test1 cmd: 2
2016-11-25 23:22:55 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:55 DOIF di_test1 cmd_2
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 Long 14_109 (to broadcast)
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:55 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:56 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:56 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:56 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:56 DOIF di_test1 cmd: 2
2016-11-25 23:22:56 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:56 DOIF di_test1 cmd_2
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 Long 15_109 (to broadcast)
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:56 CUL_HM Schaltaktor_Diele_Licht off
2016-11-25 23:22:56 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:56 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:56 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:56 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:56 DOIF di_test1 cmd: 2
2016-11-25 23:22:56 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:56 DOIF di_test1 cmd_2
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 Long 16_109 (to broadcast)
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:56 CUL_HM Schaltaktor_Diele_Licht off
2016-11-25 23:22:56 CUL_HM HM_4C7CBF battery: ok
2016-11-25 23:22:56 CUL_HM HM_4C7CBF HM_4C7CBF_Btn_02 Long
2016-11-25 23:22:56 CUL_HM Schaltaktor_Diele_Licht set_toggle
2016-11-25 23:22:56 DOIF di_test1 cmd_nr: 2
2016-11-25 23:22:56 DOIF di_test1 cmd: 2
2016-11-25 23:22:56 DOIF di_test1 cmd_event: HM_4C7CBF_Btn_02
2016-11-25 23:22:56 DOIF di_test1 cmd_2
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 Long 17_109 (to broadcast)
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger: Long_109
2016-11-25 23:22:56 CUL_HM HM_4C7CBF_Btn_02 trigger_cnt: 109
2016-11-25 23:22:57 CUL_HM Schaltaktor_Diele_Licht off
2016-11-25 23:22:58 CUL_HM Schaltaktor_Diele_Licht on
2016-11-25 23:22:59 CUL_HM Schaltaktor_4fach CMDs_done

Zählt halt in 3-4 Sekunden bis auf 17 hoch, dachte ich hab gelesen pro Sekunde ein Wert nach oben

Otto123

Hi,

ja mit dem wait hast Recht, war mein Fehler zwei Befehle hintereinander mit 0,1 ist ein "DO.*"  dazwischen mit 0:1

Ich habe hier noch was gefunden: https://forum.fhem.de/index.php?topic=49844.0
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