Readings auswerten =1 klappt nicht

Begonnen von achim60, 16 Februar 2017, 09:41:02

Vorheriges Thema - Nächstes Thema

achim60

Morgen,
ich versuche ein Dummy zu schalten wenn der Wert von c-tomorrow auf 1 wechselt. Bekomme es ab leider nicht hin.
Kann mir bitte einer ein Tipp geben wo der Fehler liegt ?

Gruß


Internals:
   CFGFN
   DEF        ([Kalender_muell:c-tomorrow] = 1 ) (set muell_morgen on)
   NAME       di_m_morgen
   NR         51314
   NTFY_ORDER 50-di_m_morgen
   STATE      initialized
   TYPE       DOIF
   Readings:
     2017-02-16 09:37:07   cmd             0
     2017-02-16 09:37:07   state           initialized
   Condition:
     0          ReadingValDoIf($hash,'Kalender_muell','c-tomorrow') = 1
   Devices:
     0           Kalender_muell
     all         Kalender_muell
   Do:
     0:
       0          set muell_morgen on
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Readings:
     0           Kalender_muell:c-tomorrow
     all         Kalender_muell:c-tomorrow
   Regexp:
     All:
   State:
Attributes:
   do         always
   room       Kalender






Internals:
   DEF        Kalender_Muell 1 21600
   INTERVAL   21600
   KALENDER   Kalender_Muell
   NAME       Kalender_muell
   NR         168
   NTFY_ORDER 50-Kalender_muell
   STATE      t: 5 td: 0 tm: 1
   TYPE       CALVIEW
   Readings:
     2017-02-16 09:15:40   c-term          5
     2017-02-16 09:15:40   c-today         0
     2017-02-16 09:15:40   c-tomorrow      1



Internals:
   CFGFN
   NAME       muell_morgen
   NR         35191
   STATE      off
   TYPE       dummy
   Readings:
     2017-02-16 09:14:36   state           off
Attributes:
   room       Kalender
   webCmd     on:off


Otto123

Moin,

vielleicht hilft Dir das -> https://wiki.selfhtml.org/wiki/Perl/Operatoren :)
Manchmal ist zweimal besser als einmal ==

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

achim60

#2
Danke für den Link, aber auch zwei Gleichheitszeichen bringen kein Erfolg bei der Vergleichsabfrage.


([Kalender_muell:c-tomorrow] ==1 ) (set muell_morgen on)

Otto123

Tja dann wird wohl keine 1 drin stehen.

Versuch mal {ReadingsVal("Kalender_muell","c-tomorrow","")}oben in der Kommandozeile.

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

achim60


achim60

wenn ich ein shutdown restart ausführe wird der Dummy geschaltet.
Ansonsten nicht :-\

Otto123

#6
Naja Dein DOIF wird ja von nichts weiter getriggert als von [Kalender_muell:c-tomorrow] == 1
Wenn ich DOIF richtig verstehe, wird das in diesem Fall getriggert wenn das Ereignis eintritt.
Der Zustand steht jetzt auf initialized, das wartete also das was passiert. Mit dem Reading passiert aber derzeit nichts.

Aber ich bin mir nicht sicher.

Ich mache das so nicht, ich triggere mein DOIF anders (Zeitraum + Bewegung) und frage nur ab ob Morgen Müll abgeholt werden wird.

Zitat von: achim60 am 16 Februar 2017, 10:23:42
wenn ich ein shutdown restart ausführe wird der Dummy geschaltet.
Ansonsten nicht :-\
Du hast aber auch keine Alternative, also keinen ELSE Zweig, was soll er machen wenn die Bedingung nicht erfüllt ist?

Was willst Du eigentlich tun? Das Reading logisch in ein Dummy spiegeln? Wozu?

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

achim60

Hallo Otto,
ich stecke noch in den Anfängen was FHEM angeht und hab mich recht schnell mit DOIF angefreundet. Perl liegt mir leider nicht.

Zu meinem Vorhaben:
Ich nutze das FTUI wo mir die Termine angezeigt werden wann die Tonne raus muss.

Jetzt möchte ich aber das ein Tag zuvor eine Erinnerung erfolgt in Form von einem Switch ( der zb. blinkt) und den ich händisch ausschalten muss wenn die Tonne draußen ist.
Ist Spielerei aber finde ich gut  :) 


Da sich der Wert bei c-tomorrow von 0 auf 1 ändert, ein Tag zuvor, wollte ich diesen zur Berechnung heranziehen.

DOIF fragt diesen Wert ab und setzt wiederum den Dummy dann bei einer 1 auf ON.
Sobald der auf On ist geht der switch auf meine Tablet an.
Wenn ich dann die Tonne raus gestellt habe schalte ich den switch händisch wieder aus. ;D
So kann ich das nicht vergessen ;)

Deswegen auch kein ELSE Zweig!

Man kann das bestimmt auch mit einem Datumsvergleich bewerkstelligen, jedoch fehlt mir da noch das Wissen.

Gruß
Achim


Otto123

Hallo Achim,

ok dann wird alles so funktionieren wie Du willst. Wenn sich das Reading ändert wird der Dummy umgelegt.
Ich hätte es dann wahrscheinlich mit einem notify gemacht  ;)

Du kannst doch das Reading mal hin und herschalten und wirst sehen ob es so funktioniert wie du willst.


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

achim60

Hallo Otto,
habe heute mal wieder Zeit gefunden weiter zu machen.
Das mit dem  setreading klappt wunderbar und er schaltet   ;)

Schönes WE noch!

Gruß
Achim