DOIF set Befehl wird nicht ausgefüht

Begonnen von netpirat, 05 Dezember 2022, 18:10:30

Vorheriges Thema - Nächstes Thema

netpirat

Hallo,


ich habe eine DOIF gebaut welches meine Zeitsteuerung übernehmen soll. Ich habe ein Device mit verschiedenen Regex Schalten und Sperren und möchte diese mit


set LIC_AU_HO_Dachueberstand_SCH Sperren enable
set LIC_AU_HO_Dachueberstand_SCH Schalten on


schalten uns sperren. Wenn ich diese so bei Fhem eingebe wird alles geschaltet. Das DOIF schaltet es leider nicht. Waran kann das liegen? Ich hab schon versucht mit Klammern zu arbeiten, umzustellen, etc. Aber irgendwie finde ich die Lösung noch nicht.

Internals:
   CFGFN     
   DEF        ([{sunrise(-7000,"04:59:50","09:00")}]) (set LIC_AU_HO_Dachueberstand_SCH Schalten on, set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on) DOELSEIF([{sunrise(-6990,"05:00","09:00")}]) (set LIC_AU_HO_Dachueberstand_SCH Sperren enable) DOELSEIF
([{sunrise(+1200,"08:00","09:30")}]) (set LIC_AU_HO_Dachueberstand_SCH Sperren disable) DOELSEIF
([{sunrise(+1190,"08:00:10","09:30:10")}]) (set LIC_AU_HO_Dachueberstand_SCH Schalten off, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten off) DOELSEIF
([{sunset(-2800,"15:00","21:30:20")}]) (set LIC_AU_HO_Dachueberstand_SCH Sperren enable) DOELSEIF
([{sunset(-2790,"15:00","21:30:30")}]) (set LIC_AU_HO_Dachueberstand_SCH Schalten on, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on) DOELSEIF
([21:30]) (set LIC_AU_HO_Dachueberstand_SCH Sperren disable) DOELSEIF
([21:30:20]) (set LIC_AU_HO_Dachueberstand_SCH Schalten off, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten off) DOELSE

   FUUID      638e1689-f33f-335d-d9a9-e85f446dfc7211e7
   MODEL      FHEM
   NAME       AUD_AU_HO_Dachueberstaende
   NOTIFYDEV  global
   NR         318
   NTFY_ORDER 50-AUD_AU_HO_Dachueberstaende
   STATE      initialized
   TYPE       DOIF
   VERSION    26703 2022-11-14 16:43:41
   eventCount 69
   READINGS:
     2022-12-05 18:03:47   cmd             0
     2022-12-05 18:03:47   mode            enabled
     2022-12-05 18:03:47   state           initialized
     2022-12-05 18:03:47   timer_01_c01    06.12.2022 05:22:48
     2022-12-05 18:03:47   timer_02_c02    06.12.2022 05:22:58
     2022-12-05 18:03:47   timer_03_c03    06.12.2022 08:00:00
     2022-12-05 18:03:47   timer_04_c04    06.12.2022 08:00:10
     2022-12-05 18:03:47   timer_05_c05    06.12.2022 15:48:25
     2022-12-05 18:03:47   timer_06_c06    06.12.2022 15:48:35
     2022-12-05 18:03:47   timer_07_c07    05.12.2022 21:30:00
     2022-12-05 18:03:47   timer_08_c08    05.12.2022 21:30:20
   Regex:
     accu:
     collect:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday)
     1          ::DOIF_time_once($hash,1,$wday)
     2          ::DOIF_time_once($hash,2,$wday)
     3          ::DOIF_time_once($hash,3,$wday)
     4          ::DOIF_time_once($hash,4,$wday)
     5          ::DOIF_time_once($hash,5,$wday)
     6          ::DOIF_time_once($hash,6,$wday)
     7          ::DOIF_time_once($hash,7,$wday)
   days:
   do:
     0:
       0          set LIC_AU_HO_Dachueberstand_SCH Schalten on, set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on
     1:
       0          set LIC_AU_HO_Dachueberstand_SCH Sperren enable
     2:
       0          set LIC_AU_HO_Dachueberstand_SCH Sperren disable
     3:
       0          set LIC_AU_HO_Dachueberstand_SCH Schalten off, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten off
     4:
       0          set LIC_AU_HO_Dachueberstand_SCH Sperren enable
     5:
       0          set LIC_AU_HO_Dachueberstand_SCH Schalten on, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on
     6:
       0          set LIC_AU_HO_Dachueberstand_SCH Sperren disable
     7:
       0          set LIC_AU_HO_Dachueberstand_SCH Schalten off, STK_EG_WZ_KL_Fensterlaibung_SCH Schalten off
     8:
       0         
   helper:
     NOTIFYDEV  global
     globalinit 1
     last_timer 8
     sleeptimer -1
   intervalfunc:
   localtime:
     0          1670300568
     1          1670300578
     2          1670310000
     3          1670310010
     4          1670338105
     5          1670338115
     6          1670272200
     7          1670272220
   realtime:
     0          05:22:48
     1          05:22:58
     2          08:00:00
     3          08:00:10
     4          15:48:25
     5          15:48:35
     6          21:30:00
     7          21:30:20
   time:
     0          {sunrise(-7000,"04:59:50","09:00")}
     1          {sunrise(-6990,"05:00","09:00")}
     2          {sunrise(+1200,"08:00","09:30")}
     3          {sunrise(+1190,"08:00:10","09:30:10")}
     4          {sunset(-2800,"15:00","21:30:20")}
     5          {sunset(-2790,"15:00","21:30:30")}
     6          21:30:00
     7          21:30:20
   timeCond:
     0          0
     1          1
     2          2
     3          3
     4          4
     5          5
     6          6
     7          7
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
     6          0
     7          0
   timers:
     0           0
     1           1
     2           2
     3           3
     4           4
     5           5
     6           6
     7           7
   triggertime:
     1670272200:
       localtime  1670272200
       hash:
     1670272220:
       localtime  1670272220
       hash:
     1670300568:
       localtime  1670300568
       hash:
     1670300578:
       localtime  1670300578
       hash:
     1670310000:
       localtime  1670310000
       hash:
     1670310010:
       localtime  1670310010
       hash:
     1670338105:
       localtime  1670338105
       hash:
     1670338115:
       localtime  1670338115
       hash:
   uiState:
   uiTable:
Attributes:


Anbei noch das Device:

Internals:
   DEF        1/0/217:dpt1.001:Schalten 1/1/217:dpt1.011:Status:listenonly 1/2/217:dpt1.003:Sperren 1/3/217:dpt7.007:Betriebsstunden:listenonly 1/4/217:dpt1.003:ResetBTK 1/5/217:dpt9.021:Stromwert:listenonly 1/6/217:dpt1.003:ResetSZ 2/0/217:dpt1.005:Fehlestrom:listenonly 1/7/217:dpt13.010:Wattstunde:listenonly 2/1/217:dpt1.011:Lastunterschreitung:listenonly 2/2/217:dpt1.011:Lastueberschreitung:listenonly
   DEVNAME    LIC_AU_HO_Dachueberstand_SCH
   FIRSTGADNAME Schalten
   FUUID      638c445d-f33f-335d-2b92-9c0d15f3935c7947
   GETSTRING  Sperren:noArg ResetSZ:noArg Schalten:noArg ResetBTK:noArg
   IODev      KNX
   KNX_MSGCNT 23
   KNX_TIME   2022-12-05 18:03:00
   LASTInputDev KNX
   MSGCNT     23
   NAME       LIC_AU_HO_Dachueberstand_SCH
   NR         226
   SETSTRING  Sperren:disable,enable ResetSZ:disable,enable on:noArg off:noArg Schalten:on,off,toggle ResetBTK:disable,enable
   STATE      disable
   SVN        26686 2022-11-12 21:41:59
   TYPE       KNX
   eventCount 28
   model      dpt1
   GADDETAILS:
     Betriebsstunden:
       CODE       013d9
       GROUP      1/3/217
       MODEL      dpt7.007
       NO         4
       OPTION     listenonly
       RDNAMEGET  Betriebsstunden-get
       RDNAMEPUT  Betriebsstunden-put
       RDNAMESET  Betriebsstunden-set
       SETLIST   
     Fehlestrom:
       CODE       020d9
       GROUP      2/0/217
       MODEL      dpt1.005
       NO         8
       OPTION     listenonly
       RDNAMEGET  Fehlestrom-get
       RDNAMEPUT  Fehlestrom-put
       RDNAMESET  Fehlestrom-set
       SETLIST    :no_alarm,alarm
     Lastueberschreitung:
       CODE       022d9
       GROUP      2/2/217
       MODEL      dpt1.011
       NO         11
       OPTION     listenonly
       RDNAMEGET  Lastueberschreitung-get
       RDNAMEPUT  Lastueberschreitung-put
       RDNAMESET  Lastueberschreitung-set
       SETLIST    :inactive,active
     Lastunterschreitung:
       CODE       021d9
       GROUP      2/1/217
       MODEL      dpt1.011
       NO         10
       OPTION     listenonly
       RDNAMEGET  Lastunterschreitung-get
       RDNAMEPUT  Lastunterschreitung-put
       RDNAMESET  Lastunterschreitung-set
       SETLIST    :inactive,active
     ResetBTK:
       CODE       014d9
       GROUP      1/4/217
       MODEL      dpt1.003
       NO         5
       OPTION     
       RDNAMEGET  ResetBTK-get
       RDNAMEPUT  ResetBTK-put
       RDNAMESET  ResetBTK-set
       SETLIST    :disable,enable
     ResetSZ:
       CODE       016d9
       GROUP      1/6/217
       MODEL      dpt1.003
       NO         7
       OPTION     
       RDNAMEGET  ResetSZ-get
       RDNAMEPUT  ResetSZ-put
       RDNAMESET  ResetSZ-set
       SETLIST    :disable,enable
     Schalten:
       CODE       010d9
       GROUP      1/0/217
       MODEL      dpt1.001
       NO         1
       OPTION     
       RDNAMEGET  Schalten-get
       RDNAMEPUT  Schalten-put
       RDNAMESET  Schalten-set
       SETLIST    :on,off,toggle
     Sperren:
       CODE       012d9
       GROUP      1/2/217
       MODEL      dpt1.003
       NO         3
       OPTION     
       RDNAMEGET  Sperren-get
       RDNAMEPUT  Sperren-put
       RDNAMESET  Sperren-set
       SETLIST    :disable,enable
     Status:
       CODE       011d9
       GROUP      1/1/217
       MODEL      dpt1.011
       NO         2
       OPTION     listenonly
       RDNAMEGET  Status-get
       RDNAMEPUT  Status-put
       RDNAMESET  Status-set
       SETLIST    :inactive,active
     Stromwert:
       CODE       015d9
       GROUP      1/5/217
       MODEL      dpt9.021
       NO         6
       OPTION     listenonly
       RDNAMEGET  Stromwert-get
       RDNAMEPUT  Stromwert-put
       RDNAMESET  Stromwert-set
       SETLIST   
     Wattstunde:
       CODE       017d9
       GROUP      1/7/217
       MODEL      dpt13.010
       NO         9
       OPTION     listenonly
       RDNAMEGET  Wattstunde-get
       RDNAMEPUT  Wattstunde-put
       RDNAMESET  Wattstunde-set
       SETLIST   
   GADTABLE:
     010d9      Schalten
     011d9      Status
     012d9      Sperren
     013d9      Betriebsstunden
     014d9      ResetBTK
     015d9      Stromwert
     016d9      ResetSZ
     017d9      Wattstunde
     020d9      Fehlestrom
     021d9      Lastunterschreitung
     022d9      Lastueberschreitung
   READINGS:
     2022-12-05 16:43:19   Betriebsstunden-get 1920 h
     2022-12-05 18:03:00   GestrigeKosten  0.00 €
     2022-12-05 16:43:19   IODev           KNX
     2022-12-05 18:03:00   Jahreskosten    0.00 €
     2022-12-05 18:03:00   LetzterMonat    0.00 €
     2022-12-05 18:03:00   Monatskosten    0.00 €
     2022-12-05 18:03:00   Rechenwert      0
     2022-12-05 16:43:19   ResetBTK-get    disable
     2022-12-05 16:43:19   ResetBTK-set    disable
     2022-12-05 17:54:02   Schalten-get    on
     2022-12-05 17:54:02   Schalten-set    on
     2022-12-05 18:03:00   Sperren-get     disable
     2022-12-05 18:03:00   Sperren-set     disable
     2022-12-05 17:47:07   Status-get      active
     2022-12-05 18:03:00   Stromwert       0
     2022-12-05 18:03:00   Tageskosten     0.00 €
     2022-12-05 17:54:02   cycle           9
     2022-12-05 16:43:19   lastChange      1670254591.4688
     2022-12-05 17:47:02   operatingTime   1670254602
     2022-12-05 16:43:19   statRechenwert  Hour: 0 Day: 0 Month: 0 Year: 0 (since: 2022-12-04_12:00:25 )
     2022-12-05 16:43:19   statRechenwertDay 0
     2022-12-05 16:43:19   statRechenwertHour 0
     2022-12-05 16:43:19   statRechenwertMonth 0
     2022-12-05 16:43:19   statRechenwertYear 0
     2022-12-05 18:03:00   state           disable
     2022-12-05 17:54:02   timestamp       1670259242
Attributes:
   event-on-change-reading .*
   eventMap   0
   group      Licht
   room       Hof
   suppressReading last-sender
   userReadings Stromwert {(ReadingsNum($name,"Stromwert-get",0))}, Rechenwert {((ReadingsNum($name,"Wattstunde-get",0)/1000))} ,   Tageskosten {(((sprintf("%.2f",ReadingsNum($name, "statRechenwertDay",0) * ReadingsNum("DUM_AL_AL_Strom_WER", "state",0)) ." €")))} ,  GestrigeKosten {(((sprintf("%.2f",ReadingsNum($name, "statRechenwertDayLast",0) * ReadingsNum("DUM_AL_AL_Strom_WER", "state",0)) ." €")))} ,  Monatskosten {(((sprintf("%.2f",ReadingsNum($name, "statRechenwertMonth",0) * ReadingsNum("DUM_AL_AL_Strom_WER", "state",0)) ." €")))} , LetzterMonat {(((sprintf("%.2f",ReadingsNum($name, "statRechenwertMonthLast",0) * ReadingsNum("DUM_AL_AL_Strom_WER", "state",0)) ." €")))} , Jahreskosten {(((sprintf("%.2f",ReadingsNum($name, "statRechenwertYear",0) * ReadingsNum("DUM_AL_AL_Strom_WER", "state",0)) ." €")))},timestamp,operatingTime,lastChange,cycle


Lösung an: - ACHTUNG- Es gibt man es mit Fhem ein läufts.

{fhem("set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on, set LIC_AU_HO_Dachueberstand_SCH Schalten on")}

netpirat

Eine Frage noch,

warum schaltet FHEM denn nur eine Lampe? Bei mir schaltet immer nur die erste, die Zweite wird nicht gschaltet. Mache ich etwas falsch? Hab schon durchprobiert, aber so sieht die Lösung meist in den Foren aus. Vielleicht interpretiere ich das auch falsch.

{fhem("set STK_EG_EZ_Tuer_rechts_rechts_SCH Schalten on ;; set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on ;; set STK_AU_GA_Vorgarten_Dreieck_Beet_SCH Schalten on ;; set STK_AU_GA_Vorgarten_links_Fenster_SCH Schlaten on ;; set STK_AU_GA_Vorgarten_rechts_Fenster_SCH Schlaten on ;; set LIC_AU_HO_Dachueberstand_SCH Schalten on")}

Otto123

Diese Variante ist für DOIF
(set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on, set LIC_AU_HO_Dachueberstand_SCH Schalten on)
Diese für FHEM
set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on; set LIC_AU_HO_Dachueberstand_SCH Schalten on
Diese für Perl
{fhem("set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on;; set LIC_AU_HO_Dachueberstand_SCH Schalten on")}

Die Lösung die Du jetzt ist falsch (Komma statt Semikolon)

Warum das oben nicht gehen soll kann ich nicht sagen.
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

netpirat

#3
Hallo Otto,

danke. Ich hab es jetzt auch mal umgebaut. Aber auch da nur eine Lampe an.

(set STK_EG_EZ_Tuer_rechts_rechts_SCH Schalten on , set STK_EG_WZ_KL_Fensterlaibung_SCH Schalten on , set STK_AU_GA_Vorgarten_Dreieck_Beet_SCH Schalten on , set STK_AU_GA_Vorgarten_links_Fenster_SCH Schalten on , set STK_AU_GA_Vorgarten_rechts_Fenster_SCH Schalten on , set LIC_AU_HO_Dachueberstand_SCH Schalten on)

Ich habe eventuell eine Vermutung. Habe gestern die KNXD Schnittstelle ja auch neu aufgesetzt. Mit dem H soll es ja bezüglich der Antwortzeiten Probleme geben. Ob das damit etwas zu tun hat?

Ich würde ja zu

Internals:
   DEF        H 192.168.254.27:3671 1.1.3
   DeviceName 192.168.254.27:3671
   FD         9
   FUUID      638b6526-f33f-335d-b1fe-212d365535dee589
   NAME       KNX
   NR         13
   PARTIAL   
   PhyAddr    01102
   STATE      connected
   SVN        26687 2022-11-12 21:43:22
   TYPE       KNXIO
   eventCount 19
   model      H
   msg_count  19604
   msg_time   2022-12-05 19:56:53
   nextOpenDelay 10
   KNXIOhelper:
     CCID       17
     FIFOMSG    C01126w01503241a
     FIFOTIMER  0
     LASTSENTMSG  ����
     SEQUENCECNTR 167
     SEQUENCECNTR_W 8
     FIFO:
   READINGS:
     2022-12-05 19:49:02   state           connected
Attributes:
   room       Softwaredevice


Timing Problem Mode H

Wie bereits erwähnt, dieser Mode stellt hohe Ansprüche an das Antwortzeitverhalten von FHEM. Jede empfangene und gesendete Message muss in weniger als 1 Sekunde bestätigt werden. Falls FHEM länger mit anderen Modulen beschäftigt ist, gibt das Probleme. Typische Module, die Probleme machen können, sind (u.A.): SVG,, Onewire, HTTPMOD,, usw...

ABer ich kann dort keine  Fehlermeldungen sehen.

Es ist doch verhext....

Otto123

Ich denke eher: Du schickst die Befehle zu schnell hintereinander?
Mach mal ein sleep 0.5 dazwischen. Da muss man bei DOIF dann irgendwie wieder ein Semikolon nehmen  >:(
Oder nimm DOIF wait. Probiere das erstmal in der FHEM Kommandozeile:
set bla; sleep 0.5; set blub
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

netpirat

Otto, ich mags ja nicht sagen. Aben nun funktioniert es. Unglaublich! Danke für den Tipp, wäre ich so ohne weiteres  nicht drauf gekommen. Tausend Dank!