Zeitschaltung: Dummy schaltet sich nicht

Begonnen von Nogga, 23 Oktober 2018, 21:44:54

Vorheriges Thema - Nächstes Thema

Otto123

#15
Zitat von: Nogga am 24 Oktober 2018, 09:11:42
Otto, ich kann dir leider nicht folgen.
Mein Ziel war es die Klingel zu einem Zeitpunkt aus und zu einem anderen wieder anzuschalten... was meinst du?
Du meinst es funktioniert weil du do always verwendet hast. Ich meine es funktioniert jetzt weil Du nicht mehr zwei Befehle mit Semikolon getrennt hintereinander schreibst - was bei DOIF falsch ist. ( Wobei sich das bei DOIF täglich ändern kann)

Dein erster Code wird so abgewandelt genauso funktionieren, ohne do always
defmod Doif_Klingel_Aus_Nachts DOIF ([07:30-20:00]) \
(set Dummy_Klingel_Aktiv on,set pushmsg msg message='Klingel eingeschaltet' device='AlexPhone')\
DOELSE \
(set Dummy_Klingel_Aktiv off,set pushmsg msg message='Klingel ausgeschaltet' device='AlexPhone')


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

Per

Zitat von: Otto123 am 24 Oktober 2018, 09:47:20weil Du nicht mehr zwei Befehle mit Semikolon getrennt hintereinander schreibst - was bei DOIF falsch ist.
"Falsch" ist nicht ganz richtig, für DOIF ist das halt nur ein Befehl, welchen es am Stück an FHEM weiterreicht. Mit Komma sind es zwei Befehle, die einzeln weitergereicht werden. Die Frage ist eher: wieviele Semikolon müssen in welchem Editor zu sehen sein. Beim Komma ist es immer eins.

Otto123

Man kann jetzt über den Begriff "falsch" philosophieren - aber ich würde mich an die Doku halten. Da steht, für mich eindeutig
ZitatSollen mehrere FHEM-Befehle ausgeführt werden, so werden sie mit Komma statt mit Semikolon angegeben ... (set lamp1 on, set lamp2 off)
Aber jeder ist frei und kann alles ausprobieren  ;D Auf die beschriebenen Features würde ich mich verlassen, auf die Beibehaltung von selbst ermittelten "Verhaltensweisen/Fehlern" (als Reaktion auf Versuch und Irrtum) in der weiteren Entwicklung nicht.

Ich wollte Nogga nur vor falschen Schlüssen bewahren, er hat drei Dinge geändert und für sich den "Fehler" (nicht wirklich) gefunden.  ;)

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

Nogga

Ok, jetzt verstehe ich den Kommentar.

Bevor ich hier poste probiere ich viele verschiedene Varianten aus.
Die Push-Message hatte ich erst eingebaut, nachdem der Dummy alleine nicht funktionierte. Die Pushmessage tat dies aber. Das brachte mich dann zum Schluß, dass was mit dem Dummy nicht stimmt.
Die Pushmessage wurde als zweiter Befehl mit Semikolon ausgeführt, sodass ich von einem richtig ausgegangen bin.
Mit do-always ging dann alles. Deswegen auch die Schlussfolgerung.

Ich probiere gerne heute abend nochmal Otto's Komma-Variante aus, aber die hatte bei meinen gestrigen Tests keinen Erfolg gebracht.

Ich nutze übrigens den Code-Editor innerhalb FHEM Web mit Syntax-Highligitung (CodeMirror). Der Copy&Paste von hier ist aus dem RAW-Editor..

abc2006

Zitat von: Nogga am 24 Oktober 2018, 11:29:13
Ich nutze übrigens den Code-Editor innerhalb FHEM Web mit Syntax-Highligitung (CodeMirror). Der Copy&Paste von hier ist aus dem RAW-Editor..

Da empfehle ich ein "list <devicename>". Damit kann jeder was anfangen.. ;)

Grüße,
Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

Nogga

Der Vollständigkeit halber:
- Ich habe Otto's Komma eingebaut
- ich bin auf die Variante mit DOELSE umgestiegen
- do always habe ich rausgeworfen
- ein list für alle Settings

...und ja es funktioniert. Keine Ahnung wieso die ähnliche Variante gestern nicht funktioniert hat...

Internals:
   CFGFN     
   DEF        ([07:30])
(
set Dummy_Klingel_Aktiv on,
set pushmsg msg message='Klingel eingeschaltet' device='AlexPhone'
)
DOELSEIF
([20:00])
(
set Dummy_Klingel_Aktiv off,
set pushmsg msg message='Klingel ausgeschaltet' device='AlexPhone'
)
   MODEL      FHEM
   NAME       Doif_Klingel_Aus_Nachts
   NR         1802
   NTFY_ORDER 50-Doif_Klingel_Aus_Nachts
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2018-10-24 20:49:25   cmd             0
     2018-10-24 20:49:25   mode            enabled
     2018-10-24 20:49:25   state           initialized
     2018-10-24 20:49:25   timer_01_c01    25.10.2018 07:30:00
     2018-10-24 20:49:25   timer_02_c02    25.10.2018 20:00:00
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          DOIF_time_once($hash,0,$wday)
     1          DOIF_time_once($hash,1,$wday)
   days:
   devices:
   do:
     0:
       0            set Dummy_Klingel_Aktiv on, set pushmsg msg message='Klingel eingeschaltet' device='AlexPhone'
     1:
       0            set Dummy_Klingel_Aktiv off, set pushmsg msg message='Klingel ausgeschaltet' device='AlexPhone'
     2:
   helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
   intervalfunc:
   itimer:
   localtime:
     0          1540445400
     1          1540490400
   realtime:
     0          07:30:00
     1          20:00:00
   time:
     0          07:30:00
     1          20:00:00
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   triggertime:
     1540445400:
       localtime  1540445400
       hash:
     1540490400:
       localtime  1540490400
       hash:
   uiState:
   uiTable:
Attributes:
   group      Klingel
   room       Automatisierung

Per

Zitat von: Nogga am 24 Oktober 2018, 21:02:38Keine Ahnung wieso die ähnliche Variante gestern nicht funktioniert hat...
Das wirst du auch nicht erfahren, wenn du immer 20 Punkte gleichzeitig änderst...