Zeitschaltung: Dummy schaltet sich nicht

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

Vorheriges Thema - Nächstes Thema

Nogga

Ich verstehe es nicht - ich stehe einfach auf dem Schlauch.
Ich habe folgendes Doif, dass zeitgesteuert einen Klingel-Dummy an und aus schaltet.
Das Doif löst aus und ich bekomme auch eine Push-Message, aber der Dummy schaltet nicht um?
Gebe ich das Dummy Command direkt in die Kommandozeile ein, schaltet sich der Dummy um.
Hat jemand eine Ahnung an was das liegt?

defmod Doif_Klingel_Aus_Nachts DOIF ([07:30-20:00]) \
(\
set Dummy_Klingel_Aktiv state on;; \
set pushmsg msg message='Klingel eingeschaltet' device='AlexPhone';;\
)\
DOELSE \
( \
set Dummy_Klingel_Aktiv state off;;\
set pushmsg msg message='Klingel ausgeschaltet' device='AlexPhone'\
)


Internals:
   CFGFN     
   NAME       Dummy_Klingel_Aktiv
   NR         1773
   STATE      state off
   TYPE       dummy
   READINGS:
     2018-10-23 21:36:00   state           state off
Attributes:
   group      Windfang
   room       Steuerung
   setList    on off

amenomade

"set... state" kann man nicht machen. Es heisst
set Dummy_Klingel_Aktiv on
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Nogga

Entschuldige - das ist ein left-over.
Ich hatte es auch ohne state ausprobiert - ohne Erfolg.
Seltsamerweise erscheint aber auch nichts im Log über den Schaltbefehl?


Otto123

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

amenomade

Ahja, das hatte ich auch übersehen: laut DOIF Syntax muss man die Befehle mi Koma trennen, nicht mit (doppel)semikolon

Otto war schneller ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Beta-User

Man kann übrigens auch state am Dummy setzen, braucht dann aber eine passende readingList...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Nogga

#6
Ich habs gefunden.
Er hat anscheinend die Statuswechsel nicht richtig interpretiert (ich weiß nicht, wie ich's besser ausdrücken soll).

Auf jeden Fall hilft ein do=always:

defmod Doif_Klingel_Aus_Nachts DOIF ([07:30-20:00]) \
(\
set Dummy_Klingel_Aktiv on\
)\
DOELSE \
( \
set Dummy_Klingel_Aktiv off\
)
attr Doif_Klingel_Aus_Nachts do always


Damit klappt es auch im manuell Fall:
1. In TabletUI/FHEMWEB Dummy an schalten
2. Nach 20:00 auf "checkall", dann switcht er den Dummy sauber um...

Otto123

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

Damian

Zitat von: Nogga am 23 Oktober 2018, 22:01:44
Ich habs gefunden.
Er hat anscheinend die Statuswechsel nicht richtig interpretiert (ich weiß nicht, wie ich's besser ausdrücken soll).

Auf jeden Fall hilft ein do=always:

defmod Doif_Klingel_Aus_Nachts DOIF ([07:30-20:00]) \
(\
set Dummy_Klingel_Aktiv on\
)\
DOELSE \
( \
set Dummy_Klingel_Aktiv off\
)
attr Doif_Klingel_Aus_Nachts do always


Damit klappt es auch im manuell Fall:
1. In TabletUI/FHEMWEB Dummy an schalten
2. Nach 20:00 auf "checkall", dann switcht er den Dummy sauber um...

Du musst nur geduldig sein. Deine Definition funktioniert auch ohne checkall und do always. Du hättest nur bis morgen warten müssen ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Nogga

Ich habe zum Test natürlich die Zeiten immer angepasst... aber es hatte einfach nicht funktioniert... egal, jetzt geht es!

Frank_Huber

Vorschlag:
defmod Doif_Klingel_Aus_Nachts DOIF ([07:30]) (set Dummy_Klingel_Aktiv on)
DOELSEIF ([20:00]) (set Dummy_Klingel_Aktiv off)


Nogga

Das sieht tatsächlich mach einer anderen Variante aus... teste ich heute Abend auch nochmal...

Otto123

Zitat von: Nogga am 24 Oktober 2018, 08:09:10
Ich habe zum Test natürlich die Zeiten immer angepasst... aber es hatte einfach nicht funktioniert... egal, jetzt geht es!
Aber wie schon gesagt, dein Ausgangskonstrukt war ein völlig anderes!
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

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?

Frank_Huber

Du könntest sogar auf den Dummy verzichten und das DOIF als Dummy nutzen.

defmod Doif_Klingel_Aktiv DOIF ([07:30]) () DOELSEIF ([20:00]) ()
attr Klingel_Aktiv cmdState on|off