Programmieren von HMW-IO-12-Sw7

Begonnen von TobiasR, 22 Oktober 2017, 10:57:31

Vorheriges Thema - Nächstes Thema

TobiasR

Hallo,

ich habe mehrere HMW-IO-12-Sw-7 (12Eingänge//Ausgänge) eingesetzt.
Um sie auch bei Ausfall des FHEM weiter nutzen zu können, habe ich jeweils die ersten 7 Eingänge direkt mit den 7 Ausgängen verbunden.
Wird z.B. Taster 1 betätigt, geht Ausgang 1 auf an bzw. aus. - Soweit o.k.

Nun möchte ich für die meisten eine flexible Zeit hinterlegen nach der der Ausgang jeweils automatisch wieder ausgehen soll.
Grundsätzlich kann man das natürlich im Modul selbst machen. Ich mache es aber z.B. auch von der Helligkeit abhängig und so möchte ich konsequent bei einem DOIF je Aktion bleiben.

Meine Lösung sieht bisher so aus:

(
  [Taster_D01:press_short]
)
(
   IF ([D1_Bad_Dunkel:state] eq "on")
      (set D1_Bad_Dunkel off)
   ELSE
      (set D1_Bad_Dunkel on-for-timer 3600)
)


Das Problem was ich dabei festgestellt habe ist nun dass bei einem reset des FHEM alle Ausgänge an den HMW Modulen mit Programm auf Hight gehen.

Kann ich das ändern?

Vielleicht gibt es ja auch sonst noch Verbesserungsvorschläge  :D

Beste Grüße
Tobias

Thorsten Pferdekaemper

Hi,
ich glaube, dass das nichts mit HM (Wired) zu tun hat. Da müsste mal jemand drauf schauen, der sich mit DOIF auskennt.
...oder Du baust das mal auf notify um, dann kann ich ggf. auch helfen.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
ich habe mir das nochmal angeschaut. Wenn das DOIF in dem Fall so ähnlich funktioniert wie notify, dann dürfte das nur auslösen, wenn ein Event der Form "Taster_D01:press_short" kommt. Das dürfte aber nur der Fall sein, wenn tatsächlich jemand die Taste drückt. Bei Ausgängen (genauer: alles, was nicht subType "key" hat) wird beim Hochfahren der Zustand gelesen und gesetzt, was entsprechende Events verursacht. SubType "key" ist davon aber explizit ausgenommen. D.h. es dürfte nicht passieren.
Gruß,
    Thorsten
FUIP

TobiasR

Hallo Thorsten.

mit den notify habe ich mich bisher noch nicht beschäftigt.
Ich lese mich mal rein und versuche es

Danke
Tobias

Thorsten Pferdekaemper

Hi,
ich habe das jetzt mal selbst ausprobiert. Mit einem DOIF nach Deinem Muster hat das nach einem Neustart erst einmal gar nicht mehr funktioniert. Weder ist der Aktor-Kanal von alleine auf "on" gegangen, noch nach einem Tastendruck. Dann habe ich "attr ... do always" gesetzt und konnte damit Dein Problem nachvollziehen.
Dann habe ich dasselbe mit einem notify probiert, das hat keins der Probleme. In Deinem Fall müsste das in etwa so aussehen:

define blabla notify Taster_D01:press_short:.*
             IF ([D1_Bad_Dunkel:state] eq "on") (set D1_Bad_Dunkel off) ELSE (set D1_Bad_Dunkel on-for-timer 3600)

Warum das DOIF so reagiert musst Du im entsprechenden Forenbereich nachfragen, wenn es Dich noch interessiert.
Gruß,
   Thorsten
FUIP