Lampe an => nochmal an => andere Lampe schalten

Begonnen von jw1hal, 30 November 2018, 05:13:25

Vorheriges Thema - Nächstes Thema

jw1hal

Hallo,

ich hatte so eine Idee, dass man doch über einen Lichtschalter (HM-Unterputz-Taster) jeweils ein anderes Gerät schalten kann, indem man entweder im ausgeschalteten Zustand nochmal auf aus oder im eingeschalteten Zustand nochmal auf ein schalten kann. Ist das überhaupt möglich oder bin ich da auf dem Holzweg?

Ich dachte mir so, ich schalte die Lampe an und wenn ich nochmals auf den Taster drücke, schalte ich damit eine andere Lampe an. Die Überlegung war, dass das DOIF gucken soll, ob die Lampe an ist und ob sie nochmal angeschaltet wird. Wenn dies der Fall ist, soll er eine andere Lampe einschalten. Nun ist für mich die Frage, ob für den DOIF der Zustand zählt, der vor dem ersten und auch zweiten Anschalten richtig erkennt, wenn man die aus an drückt oder ob er dann erst die Änderung wahrnimmt. Also angenommen die Lampe ist aus. Kann ich dem dann sagen, das er die zweite Lampe nicht einschalten soll, wenn die erste Lampe aus war und angeschalten wird?

Mit dem Ausschalten wollte ich das auch machen. Also wenn die Lampe aus ist und ich drücke nochmal auf den Ausschalter, soll er eine andere Lampe einschalten. Er soll sie aber nicht einschalten, wenn die Lampe an ist und ich sie aus schalte.

Hier die Lampen, mit denen ich das gerade teste.Internals:
   .eventMapCmd an:noArg aus:noArg
   CFGFN     
   DEF        ([KZ_Kinderzimmerlicht] eq "on")(set KZ_Schreibtischlampe an)
DOELSEIF([KZ_Kinderzimmerlicht] eq "aus")()
   MODEL      FHEM
   NAME       Licht_KZ
   NR         4638
   NTFY_ORDER 50-Test_DOIF
   STATE      initialized
   TYPE       DOIF
   .attraggr:
   .attrminint:
   READINGS:
     2018-11-30 04:48:39   cmd             0
     2018-11-30 04:48:39   mode            enabled
     2018-11-30 04:48:39   state           initialized
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'KZ_Kinderzimmerlicht','STATE') eq "on"
     1          ::InternalDoIf($hash,'KZ_Kinderzimmerlicht','STATE') eq "aus"
   devices:
     0           KZ_Kinderzimmerlicht
     1           KZ_Kinderzimmerlicht
     all         KZ_Kinderzimmerlicht
   do:
     0:
       0          set KZ_Schreibtischlampe an
     1:
       0         
     2:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           KZ_Kinderzimmerlicht:STATE
     1           KZ_Kinderzimmerlicht:STATE
     all         KZ_Kinderzimmerlicht:STATE
   itimer:
   uiState:
   uiTable:
Attributes:
   do         always
   group      99_Licht_an
   icon       helper_doif
   room       99_DOIF
Internals:
   .eventMapCmd an:noArg aus:noArg
   .triggerUsed 1
   CUL_868_MSGCNT 415
   CUL_868_RAWMSG A0E5580025F7DF6FA26BE0101C80050::-82.5:CUL_868:
   CUL_868_RSSI -82.5
   CUL_868_TIME 2018-11-30 04:36:44
   DEF        5F7DF6
   IODev      CUL_868
   LASTInputDev CUL_868
   MSGCNT     415
   NAME       KZ_Kinderzimmerlicht
   NOTIFYDEV  global
   NR         104
   NTFY_ORDER 50-KZ_Kinderzimmerlicht
   STATE      an
   TYPE       CUL_HM
   lastMsg    No:55 - t:02 s:5F7DF6 d:FA26BE 0101C80050
   protLastRcv 2018-11-30 04:36:44
   protRcv    415 last_at:2018-11-30 04:36:44
   protSnd    421 last_at:2018-11-30 04:36:44
   protState  CMDs_done
   rssi_CUL_868 cnt:363 min:-96 max:-73 avg:-79.76 lst:-80
   rssi_at_CUL_868 cnt:415 min:-99.5 max:-77 avg:-82.21 lst:-82.5
   .attraggr:
   .attrminint:
   READINGS:
     2018-11-30 04:36:44   .protLastRcv    2018-11-30 04:36:44
     2018-11-30 04:36:44   CommandAccepted yes
     2018-11-30 04:36:44   deviceMsg       on (to VCCU)
     2018-11-30 04:36:44   level           100
     2018-11-30 04:36:44   pct             100
     2018-11-30 04:36:44   recentStateType ack
     2018-11-30 04:36:44   state           on
     2018-11-30 04:36:44   timedOn         off
   helper:
     HM_CMDNR   85
     cSnd       11FA26BE5F7DF60201C80000,11FA26BE5F7DF60201C80000
     dlvlCmd    ++A011FA26BE5F7DF60201C80000
     mId        0069
     peerIDsRaw ,00000000
     regLst     ,0,1,3p
     rxType     1
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       lstRecType 02
       newChn     +5F7DF6,00,03,00
       nextSend   1543549004.77139
       nxtSndMcnt 55
       prefIO     
       rxt        0
       tgtDly     88
       vccu       VCCU
       lRcTm:
         CUL_868    115551312
         tnms       582003605
       p:
         5F7DF6
         00
         03
         00
     mRssi:
       mNo        55
       io:
         CUL_868:
           -76
           -76
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
       prs        1
     rssi:
       CUL_868:
         avg        -79.7658402203857
         cnt        363
         lst        -80
         max        -73
         min        -96
       at_CUL_868:
         avg        -82.2132530120482
         cnt        415
         lst        -82.5
         max        -77
         min        -99.5
     shadowReg:
     tmpl:
Attributes:
   IODev      CUL_868
   IOgrp      VCCU
   alexaName  Kinderzimmerlicht
   alexaRoom  Kinderzimmer
   alias      Kinderzimmerlicht
   autoReadReg 4_reqStatus
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an offline:rc_BLUE:aus
   eventMap   on:an off:aus
   expert     2_raw
   firmware   2.8
   fp_Diabeck 32,841,1,Kinderzimmerlicht,
   fp_Kinderzimmer 193,448,1,Kinderzimmerlicht
   genericDeviceType switch
   group      02_Kinderzimmer
   icon       light_ceiling
   model      HM-LC-Sw1PBU-FM
   peerIDs    00000000,
   room       00_Diabeck,02_Kinderzimmer,50_Licht,90_Deckenlicht,99_Alles_ein_aus,Alexa,CUL_HM
   serialNr   OEQ1157776
   subType    switch
   webCmd     an:aus
Internals:
   .autoSubscribeExpr ^[^/]+\/KZ_Schreibtischlampe\/([^/]+)$
   .autoSubscribeTopic +/KZ_Schreibtischlampe/+
   .eventMapCmd an:noArg aus:noArg
   IODev      myBroker
   NAME       KZ_Schreibtischlampe
   NR         115
   STATE      aus
   TYPE       MQTT_DEVICE
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   .qos:
     *          0
   .retain:
     *          0
   READINGS:
     2018-11-30 04:36:48   ERGEBNIS        {"POWER":"OFF"}
     2018-11-23 19:46:28   INFO1           {"Module":"Sonoff Basic","Version":"5.10.0f","FallbackTopic":"DVES_807ED8","GroupTopic":"sonoffs"}
     2018-11-23 19:46:28   INFO2           {"WebServerMode":"Admin","Hostname":"KZ_Schreibtischlampe-7896","IPAddress":"192.168.52.24"}
     2018-11-23 19:46:28   INFO3           {"RestartReason":"Hardware Watchdog"}
     2018-11-30 04:02:00   LAUFZEIT        {"Zeit":"2018.11.30 04:02:00","Laufzeit":153}
     2018-11-29 22:02:00   LWT             online
     2018-11-30 04:36:48   POWER           OFF
     2018-11-30 04:48:21   STATUS          {"Zeit":"2018.11.30 04:48:20","Laufzeit":153,"VCC":3.148,"POWER":"OFF","WLAN":{"AP":2,"SSID":"DIABECK","RSSI":88,"AP-Mac":"44:4E:6D:1F:D2:47"}}
     2018-11-30 04:36:48   state           off
     2018-11-30 04:48:21   transmission-state incoming publish received
   message_ids:
   publishSets:
     :
       topic      cmnd/KZ_Schreibtischlampe/POWER
       values:
         on
         off
   sets:
     off       
     on         
   subscribe:
     +/KZ_Schreibtischlampe/+
     stat/KZ_Schreibtischlampe/ERGEBNIS
     tele/KZ_Schreibtischlampe/INFO1
     tele/KZ_Schreibtischlampe/INFO2
     tele/KZ_Schreibtischlampe/INFO3
     tele/KZ_Schreibtischlampe/LAUFZEIT
     tele/KZ_Schreibtischlampe/LWT
     cmnd/KZ_Schreibtischlampe/POWER
     tele/KZ_Schreibtischlampe/STATUS
     stat/KZ_Schreibtischlampe/POWER
   subscribeExpr:
     ^[^/]+\/KZ_Schreibtischlampe\/([^/]+)$
     ^stat\/KZ_Schreibtischlampe\/ERGEBNIS$
     ^tele\/KZ_Schreibtischlampe\/INFO1$
     ^tele\/KZ_Schreibtischlampe\/INFO2$
     ^tele\/KZ_Schreibtischlampe\/INFO3$
     ^tele\/KZ_Schreibtischlampe\/LAUFZEIT$
     ^tele\/KZ_Schreibtischlampe\/LWT$
     ^cmnd\/KZ_Schreibtischlampe\/POWER$
     ^tele\/KZ_Schreibtischlampe\/STATUS$
     ^stat\/KZ_Schreibtischlampe\/POWER$
   subscribeQos:
     +/KZ_Schreibtischlampe/+
     cmnd/KZ_Schreibtischlampe/POWER 0
     stat/KZ_Schreibtischlampe/ERGEBNIS 0
     stat/KZ_Schreibtischlampe/POWER 0
     tele/KZ_Schreibtischlampe/INFO1 0
     tele/KZ_Schreibtischlampe/INFO2 0
     tele/KZ_Schreibtischlampe/INFO3 0
     tele/KZ_Schreibtischlampe/LAUFZEIT 0
     tele/KZ_Schreibtischlampe/LWT 0
     tele/KZ_Schreibtischlampe/STATUS 0
   subscribeReadings:
     cmnd/KZ_Schreibtischlampe/POWER:
       cmd       
       name       POWER
     stat/KZ_Schreibtischlampe/ERGEBNIS:
       cmd       
       name       ERGEBNIS
     stat/KZ_Schreibtischlampe/POWER:
       cmd       
       name       POWER
     tele/KZ_Schreibtischlampe/INFO1:
       cmd       
       name       INFO1
     tele/KZ_Schreibtischlampe/INFO2:
       cmd       
       name       INFO2
     tele/KZ_Schreibtischlampe/INFO3:
       cmd       
       name       INFO3
     tele/KZ_Schreibtischlampe/LAUFZEIT:
       cmd       
       name       LAUFZEIT
     tele/KZ_Schreibtischlampe/LWT:
       cmd       
       name       LWT
     tele/KZ_Schreibtischlampe/STATUS:
       cmd       
       name       STATUS
Attributes:
   IODev      myBroker
   alexaName  Schreibtischlampe
   alexaRoom  Kinderzimmer
   alias      Schreibtischlampe
   autoSubscribeReadings +/KZ_Schreibtischlampe/+
   devStateIcon an:rc_GREEN:aus aus:rc_RED:an offline:rc_BLUE:aus
   event-on-change-reading .*
   eventMap   on:an off:aus
   fp_Diabeck 15,1051,1,Mucke,
   fp_Kinderzimmer 84,839,1,Mucke
   genericDeviceType light
   group      02_Kinderzimmer
   icon       light_office
   publishSet on off cmnd/KZ_Schreibtischlampe/POWER
   room       00_Diabeck,02_Kinderzimmer,99_Alles_ein_aus,99_MQTT,Alexa
   stateFormat {ReadingsVal($name,"LWT","") eq "offline" ? "offline" : ReadingsVal($name,"state","")}
   subscribeReading_ERGEBNIS stat/KZ_Schreibtischlampe/ERGEBNIS
   subscribeReading_INFO1 tele/KZ_Schreibtischlampe/INFO1
   subscribeReading_INFO2 tele/KZ_Schreibtischlampe/INFO2
   subscribeReading_INFO3 tele/KZ_Schreibtischlampe/INFO3
   subscribeReading_LAUFZEIT tele/KZ_Schreibtischlampe/LAUFZEIT
   subscribeReading_LWT tele/KZ_Schreibtischlampe/LWT
   subscribeReading_POWER stat/KZ_Schreibtischlampe/POWER
   subscribeReading_STATUS tele/KZ_Schreibtischlampe/STATUS
   webCmd     an:aus


Ich habe da schon allerhand gelesen, verstehe verschiedene Dinge aber leider doch noch nicht so richtig. Zum Beispiel was ein Reading oder ein Event ist, ob ich state oder STATE angeben muss, ob ich on, ON oder an schreiben soll und das selbe mit off, OFF und aus. Ich fand das nun toll, dass man die Befehle in Deutsch sehen kann. Nun bin ich aber im Zweifel, ob es nicht vielleicht besser ist, alles auf Englisch zu lassen, um dieses Rätsel schon mal ausschließen zu können.

Auch verschiedene Schreibweisen habe ich schon probiert. Ich nehme mir Vorlagen, die für mich passen, verändere die auf meine Bedürfnisse und probiere das meist s lange, bis es funktioniert. Aber hier komme ich irgendwie nicht weiter. Ich vermute auch, dass das, was ich gerade versuche, vielleicht gar nicht möglich ist.


Gruß jw1hal
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

CoolTux

Deine Idee sollte mittels sequence recht schnell umgesetzt werden können.
help sequence in FHEMWEB eingeben
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rabehd

Zitatstate oder STATE

STATE ist ein Internals, dessen Wert Du mit Value([Devicename]) erhältst.

state ist ein Readings, dessen Wert Du mit Readingsval(...) erhälst.

Das sollte alles im Einsteigerdokument zu finden sein. Beim DOIF sieht der Syntax etwas anders aus.

Ich würde hier erstmal mit einem notify anfangen.
Wenn das Event Taster ein gedrückt, dann prüfe ob Lampe x an war (Oldreading vermute ich) und reagiere entsprechend.

Ich peere Schalter und Lampen, so dass auch ohne FHEM das Licht schaltbar ist.
Auch funktionierende Lösungen kann man hinterfragen.

Frank_Huber

Zitat von: CoolTux am 30 November 2018, 08:08:46
help sequence in FHEMWEB eingeben

Danke Leon!
Jetzt nutze ich FHEM mittlerweile 3,5 Jahre aber diesen einfachen Weg zur Hilfe kannte ich noch nicht. :-)

rvideobaer

Hallo,

ich habe bei mir das schalten verschiedener Lampen über einen kurzen oder langen Tastendruck gelöst, bei Homematic über Direktverknüpfung leicht zu lösen.

Gruß Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

Otto123

Hi,

Wenn der HM Unterputz Taster in Wirklichkeit ein Aktor ist,wird es schwierig. Die Tasten werden nicht an fhem signalisiert sondern der Status. Der kommt mit gewollter, zufälliger Verzögerung.

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

jw1hal

Hallo,

da ich ja nun auf Grund neuer Ideen mehrere Baustellen habe und man auch so noch was zu tun hat, geht nur eines nach dem Anderen. Ich habe mich nun mit dem "sequence" eine ganze Weile beschäftigt, aber nun so viel herum probiert und so viel getestet, dass ich gar nicht mehr weiß, was das alles war. Es führte jedenfalls alles nicht zum Erfolg, so dass ich dies wieder verwarf.

Nun bin ich am Testen mit den kurzen und langen Tastendruck. Ich weiß nicht, ob das überhaupt geht.
Ausgangspunkt ist ja (ich weiß nicht, ob dies schon deutlich wurde) ein "HM-LC-Sw1PBU-FM" mit dem ich einen anderen "HM-LC-Sw1PBU-FM" nur EINschalten möchte, wenn ich nochmal, also nach dem das Licht an ist, oder von mir aus auch lange auf den Schalter drücke.
Ich beschreibe die Örtlichkeiten. Es handelt sich um das Bad, bei dem es zwei "HM-LC-Sw1PBU-FM" gibt, mir denen man das Raumlicht und den Spiegelschrank einschaltet. Der Schalter für das Raumlicht befindet sich im Flur. Man schaltet das Licht beim Betreten des Raumes an und beim Verlassen des Raumes wieder aus. Der zweite Schalter befindet sich hinter/neben dem WC und schaltet den Spiegelschrank über dem Waschbecken an und aus. Nun ist die Überlegung, wenn man gerade da sitzt und just in dem Moment das Badlicht aus geht, weil es jemand von aussen aus Versehen ausschalten könnte, der eigentlich das Flurlicht ausschalten wollte, aber nun den falschen Schalter erwischt hat oder weil irgendein Timer eben gerade aktiv geworden ist, weil Raumlichter nach 3 Stunden ausgehen (der wird es wohl nicht sein) und alles um Punkt 23 Uhr aus geht, dass man mit dem in greifbarer Nähe gelegen Schalter (eben der vom Spiegelschrank) einfach das Badlicht wieder einschalten könnte, indem man entweder 2x an drückt oder lange an drückt. 2x an, geht eben der Spiegelschrank an und den macht man wieder aus und lange drücken, wäre eigentlich noch besser.

Das selbe möchte ich mit dem selben Schalter machen, nur mit dem Ausschalter, also 2x aus oder lange aus, schaltet den Boost der Heizung an. So braucht man nicht erst die Tastensperre des Thermostates entfernen, die Boosttaste drücke und die Tastensperre wieder rein machen.

Nun bin ich wieder fast überzeugt, dass die erste Variante mit dem Licht vielleicht doch direkt von Schalter zu Schalter geht und die Zweite mit der Heizung dann eben mit DOIF oder Notify.

Ich hatte schon mal etwas getestet, aber mit langen Druck leider noch nichts hinbekommen.

So ist es dann passiert, dass ich beim vielen Suchen und Lesen auch auf die Idee gekommen bin die Timer auch direkt in die Schalter zu integrieren. Dabei bin ich aber auch auf ein erneutes Problem gestoßen und vermute, dass dies nur greift, wenn man am Schalter direkt schaltet. Schaltet man über Fhem, geht dieser Timer nicht. Mir ist auch nicht ganz klar was die 4 Schalter nun genau sind und ob man den Timer nur bei einen setzen braucht oder bei allen 4 setzen muss, wie es in einigen Anleitungen bzw. diesem Wiki zu lesen ist.
set <device> regSet shOnTime 600 self01
set <device> regSet lgOnTime 600 self01
set <device> regSet shOnTime 600 self02
set <device> regSet lgOnTime 600 self02

Da ich den Timer für kurzen drücken habe möchte und ihm nur für EINschalten brauche, benötigt man sicher nur eine der vier Einstellungen. Aber welche? sh für short = kurz und lg für long = lang ist auch klar. Da müsste ich sh nehmen. Aber ist der EIN-Schalter nun self01 oder self02? Das sind so Dinge, die man nirgendwo so wirklich zu lesen bekommt.

Und genau das hatte ich schon begonnen, aber nicht zu ende getestet. Und da wollte ich nun als Nächstes weiter machen.

Das war dann erst Mal der Zwischenstand, nicht dass es dann heißt, die Fragen nur und melden sich dann nie wieder.


Gruß jw1hal
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

Otto123

Guten Abend,

ohne das ich jetzt alles verstanden habe, folgende Grundinfo:
Die Taster sind nicht nach außen abgreifbar, die wirken nur direkt und intern. Nach außen siehst Du den Aktor und nicht die Taster!!!
Dies, obwohl bei HM immer so getan wird als ob die Taster separat sind und mit dem Aktor gepeert sind. Die gepeerten Taster sind self01 und self02.
Ein Aktor hält für jeden Peer extra einen Satz Register, so auch für self01 und self02. Ein Timer den Du dort setzt (oder andere Register von diesem Satz) wirken nur bei Betätigung von diesem Peer.
FHEM ist kein Peer, FHEM hat also keinen Registersatz in dem Aktor.
FHEM kann aber virtuelle Tasten liefern und diese kann man mit dem Aktor peeren.

Du kannst in FHEM direkt steuern oder über diese virtuellen Taster.

War das halbwegs verständlich?

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

jw1hal

Guten Abend,

ehrlich gesagt, NEIN! :-)

Das geht schon los, was ist ein Aktor und was sind die Taster? Wenn ich das Ding aus der Wand nehme, ist das ein Plaste-Klumpen mit ein paar Anschlüssen und nen Loch für die Wippe. Das Loch mit der beinhaltet einen bzw. zwei Taster mit 2 Schaltmöglichkeiten. Bei diesen Grundbegrifflichkeiten geht es immer schon los. Es wird von Aktoren und Tastern gesprochen, so als wenn es zwei verschiedene Dinge sind. Ich habe aber das Gefühl, dass dies Aktor und Taster in einem ist.

Wenn ich also etwas in dem Aktor/Schalter/Taster (wie auch immer man das Ding nun korrekt bezeichnet) in den Registern einstelle, funktioniert das auch nur, wenn ich die Wippe betätige. Soweit habe ich das verstanden.

Wird etwas von Fhem geschalten, zum Beispiel wenn ich die Gruppe Licht an- oder ausschalten möchte, der dieser Schalter angehört, dann ziehen diese im Schalter gesetzten Register nicht.

Hab ich also einen Timer im Schalter gesetzt, funktioniert er, wenn ich direkt den Schalter betätige, aber nicht wenn etwas von Fhem kommt.

Habe ich hingegen einen Timer in Fhem für diesen Schalter, dann funktioniert er, wenn ich den Schalter von Fhem aus betätige und auch wenn ich die Wippe des Schalters betätige.

Soweit ist das für mich klar, wenn ich´s nun richtig verstanden habe.

Also lasse ich die Timer dann doch lieber in Fhem.


Wie kann ich es nun machen oder ist es überhaupt möglich, dass ich mit einem "HM-LC-Sw1PBU-FM" einen anderen Schalte, aber dann auch nicht beide gleichzeitig schalte? So hatte ich mir gedacht, 1x AN drücken Licht an und nochmal 1x AN drücken (obwohl schon an ist; müsste also geprüft werden) zweiten Schalter Licht anschalten. Oder eben mit lange drücken.

Wie kann ich also prüfen, ob das Licht beim nochmaligen Einschalten bereits an war?

Oder müsste man das anders lösen?

Oder geht es gar nicht?
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL

Gisbert

Hallo jw1hal,

das was du vorhast habe ich bei einer Markisen/Rollladenschaltung realisiert. Als Hinweis noch, ich habe zusätzlich noch eingebaut, dass die "Handschaltung" nach einer bzw. zwei Stunden wieder in den Automatikmodus zurückkehrt.

Nachzulesen, inkl. der Definitionen hier:
https://forum.fhem.de/index.php/topic,73127.msg647871.html#msg647871

Viel Spaß beim Grübeln  ;) und viele Grüße​
Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Otto123

Moin,

dann versuch ich nochmal anders. Die "Logik" von Homematic kennt ganz grob Sensoren (dazu zählen auch Taster) und Aktoren (das sind die Teile die etwas ausführen z.B. Schalten)
Dein Teil ist (richtig erkannt) zwei Dinge in einem!
Für Deinen Anwendungsfall wäre es gut Du hättest sie getrennt, denn Du willst den Sensor (Taster) unabhängig vom Aktor auswerten. Homematic (die Entwickler) waren leider so, sie haben diese beiden Teile aber direkt zusammengebracht und diese getrennte Auswertung nicht nach außen geführt. Du kannst den Taster nur über den Umweg der Reaktion des Aktors auswerten. Du musst Dir einfach mal noch ein paar Fernbedienungen (Taster) zulegen, experimentieren - dann wird es klarer.

ZitatHabe ich hingegen einen Timer in Fhem für diesen Schalter, dann funktioniert er, wenn ich den Schalter von Fhem aus betätige und auch wenn ich die Wippe des Schalters betätige.

Soweit ist das für mich klar, wenn ich´s nun richtig verstanden habe.

Also lasse ich die Timer dann doch lieber in Fhem.
Die letzte Schlussfolgerung ist nicht sinnvoll, der erste Satz ist falsch (oder Du meinst was Anderes): In FHEM setzt Du on-for-timer  an der Wippe wirkt der gesetzte Timer im Register.

Schlussendlich, was Du machen willst geht nur mit Einschränkungen. Ich will Dir nur helfen diese Einschränkungen zu verstehen.  :D

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

rvideobaer

Hallo

Du hättest noch die Möglichkeit die Firmware zu ändern, da kursiert eine die Taster und Aktor getrennt zur Verfügung stellt. Ist aber nicht ganz so einfach.

Rolf
Raspberry Pi 2, HM-Uart,1x HM-LC-Sw1PBU-FM, 1x HM-RC-2-PBU-FM,1x HM-LC-SW4-DR,1x HM-LC-Sw1-Pl-DN-R1,1x HM-TC-IT-WM-W-EU, 5x HM-CC-RT-DN und noch mehr

jw1hal

@Gisbert
Das werde ich mir mal in aller Ruhe anschauen, weil es bissel viel bzw. mit zu vielen anderen Dingen verbunden ist. Danke

@Otto123
Zitat von: Otto123 am 03 Dezember 2018, 09:28:29Die letzte Schlussfolgerung ist nicht sinnvoll, der erste Satz ist falsch (oder Du meinst was Anderes): In FHEM setzt Du on-for-timer  an der Wippe wirkt der gesetzte Timer im Register.
Damit meinte ich nicht den on-for-timer, sondern das:Internals:
   DEF        ([BW_Badlicht] eq "an") (set BW_Badlicht aus)
                 DOELSEIF ([BW_Badlicht] eq "aus") ()
   MODEL      FHEM
   NAME       BW_Badlicht_timer
   NR         120
   NTFY_ORDER 50-BW_Badlicht_timer
   STATE      cmd_2
   TYPE       DOIF
   .attraggr:
   .attrminint:
   READINGS:
     2018-12-03 13:13:02   Device          BW_Badlicht
     2018-11-08 06:38:03   cmd             2
     2018-11-08 06:38:03   cmd_event       BW_Badlicht
     2018-11-08 06:38:03   cmd_nr          2
     2018-12-03 13:13:02   e_BW_Badlicht_STATE aus
     2018-12-02 10:09:28   mode            enabled
     2018-12-02 10:09:28   state           cmd_2
     2018-12-03 05:42:21   wait_timer      no timer
   Regex:
   attr:
     wait:
       0:
         10800
       1:
         0
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'BW_Badlicht','STATE') eq "an"
     1          ::InternalDoIf($hash,'BW_Badlicht','STATE') eq "aus"
   devices:
     0           BW_Badlicht
     1           BW_Badlicht
     all         BW_Badlicht
   do:
     0:
       0          set BW_Badlicht aus
     1:
       0         
     2:
   helper:
     event      deviceMsg: aus (to VCCU),level: 0,pct: 0,aus,timedOn: aus
     globalinit 1
     last_timer 0
     sleepdevice BW_Badlicht
     sleepsubtimer 0
     sleeptimer -1
     timerdev   BW_Badlicht
     timerevent deviceMsg: aus (to VCCU),level: 0,pct: 0,aus,timedOn: aus
     triggerDev BW_Badlicht
     timerevents:
       deviceMsg: aus (to VCCU)
       level: 0
       pct: 0
       aus
       timedOn: aus
     timereventsState:
       deviceMsg: aus (to VCCU)
       level: 0
       pct: 0
       state: off
       timedOn: aus
     triggerEvents:
       deviceMsg: aus (to VCCU)
       level: 0
       pct: 0
       aus
       timedOn: aus
     triggerEventsState:
       deviceMsg: aus (to VCCU)
       level: 0
       pct: 0
       state: off
       timedOn: aus
   internals:
     0           BW_Badlicht:STATE
     1           BW_Badlicht:STATE
     all         BW_Badlicht:STATE
   itimer:
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   group      99_Timer
   icon       helper_doif
   room       80_Timer,99_DOIF
   wait       10800:0


@rvideobaer
Das traue ich mir generell zu, jedoch mache ich so etwas, je nach Fall, ungern und probiere dann doch erst die "normalen" Möglichkeiten auszureizen. Also nur wenn etwas absolut gar nicht geht, ich es aber unbedingt haben will und es eben keinen Weg daran vorbei gibt, mache ich es, wenn du verstehst, wie ich es meine.

So war es zum Beispiel bei den Sonoff´s. Die habe ich gekauft und sofort die andere Firmware drauf gemacht, weil ich unter keinen Umständen den Umweg über China (oder wo auch immer die dann hin telefonieren) machen möchte.

Oder letztens den 868erCUL, weil da was mit der Verschlüsselung der optischen HM-Fensterkontakte war. Da bin ich mir aber noch nicht ganz sicher ...
Raspberry Pi 3 Model B Rev 1.2; Linux 4.9.59-v7+; Raspbian GNU/Linux 9 (stretch); CUL433 (VTS 0.29 CSM868); CUL 868 (VTS 0.29 CSM868); 6x BrennenstuhlRCR1000N; 8x ZAP; 3x EmilLux; 10x Sonoff Basic (Tasmota 5.10.0f); 5x HM-CC-RT-DN; 9x HM-SEC-SCo; 8x HM-SEC-SCo, 7x HM-LC-Sw1PBU-FM; Fritz!Box 7362 SL