Problem mit event-on-change-reading

Begonnen von heinzfo, 16 Dezember 2018, 14:26:54

Vorheriges Thema - Nächstes Thema

heinzfo

Hallo

Das attr event-on-change-reading löst aus obwohl das Reading next_text den Inhalt nicht ändert.

Nach einem set UrlaubsKalender update ändert sich das Reading next_text nicht, das notify UrlaubsKalender löts aber trozdem aus.

Woran kann das liegen?

notify UrlaubsKalender
UrlaubsKalender:next_text.* {
my $UrlaubZuhauseKalender = ReadingsVal("UrlaubsKalender","next_text","");
my $UrlaubZuhause = ReadingsVal("FeiertageBayern","state","");
if ($UrlaubZuhauseKalender =~ m/^Urlaub/ && ReadingsVal("HeizungWz_Climate","controlMode","") eq "auto" &&
$UrlaubZuhause =~ m/none/)
{fhem "set HeinzMobil send UrlaubsKalender > UrlaubZuhauseKalender: $UrlaubZuhauseKalender###### UrlaubZuhause: $UrlaubZuhause"}
elsif ($UrlaubZuhauseKalender !~ m/^Urlaub/ && $UrlaubZuhause =~ m/none/ &&
ReadingsVal("HeizungWz_Climate","controlMode","") eq "auto")
{fhem "set HeinzMobil send UrlaubsKalender > UrlaubZuhauseKalender: $UrlaubZuhauseKalender###### UrlaubZuhause: $UrlaubZuhause"}}


list
Internals:
   DEF        GoogleKalenderHeinz
   KALENDER   GoogleKalenderHeinz
   NAME       UrlaubsKalender
   NOTIFYDEV  GoogleKalenderHeinz
   NR         1490
   NTFY_ORDER 50-UrlaubsKalender
   STATE      Urlaub in 4 Tag(en)
   TYPE       ABFALL
   .attraggr:
   .attreocr:
     next_text
   .attrminint:
   OLDREADINGS:
   READINGS:
     2018-12-16 14:05:10   Urlaub_date     20.12.2018
     2018-12-16 14:05:10   Urlaub_days     4
     2018-12-16 14:05:10   Urlaub_description
     2018-12-16 14:05:10   Urlaub_location Nürnberg
     2018-12-16 14:05:10   Urlaub_text     Urlaub
     2018-12-16 14:05:10   Urlaub_uid      ogegv24eaojlsdq9vanp963fil5btlekqc8eosrcne7evavcuus41ao9t9googlecom
     2018-12-16 14:05:10   Urlaub_weekday  Donnerstag
     2018-12-16 14:05:10   next            Urlaub_4
     2018-12-16 14:05:10   next_date       20.12.2018
     2018-12-16 14:05:10   next_days       4
     2018-12-16 14:05:10   next_description
     2018-12-16 14:05:10   next_location   Nürnberg
     2018-12-16 14:05:10   next_text       Urlaub
     2018-12-16 14:05:10   next_weekday    Donnerstag
     2018-12-16 14:05:10   state           4
Attributes:
   calendarname_praefix 0
   date_style date
   delimiter_reading |
   delimiter_text_reading und
   event-on-change-reading next_text
   filter     Urlaub
   filter_type include
   room       Kalender
   stateFormat next_text in next_days Tag(en)
   weekday_mapping Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag

Otto123

Hallo,

ich würde mal vermuten weil das Modul Abfall und nicht Urlaub heisst  ;D
Aber leider ist das genau so, das Modul erzeugt für next_text Events obwohl das attr event-on-change-reading gesetzt ist.

Mein Tipp, mach es nicht mit einem extra Modul sondern direkt mit Kalender. Sieht schwieriger aus als es ist.
Zum Lesen

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

heinzfo

Hallo Otto

Danke!

Das funktioniert prima  :)

Grüße
Heinz

heinzfo

Hallo Otto

Ich habe Deinen Vorschlag https://heinz-otto.blogspot.com/2018/07/kalender-in-fhem-einbinden.html eingebaut und es hat auch funktioniert.

Wenn ich jetzt untertags also um 8 Uhr Urlaub in meinen Google Kalender eintrage funktioniert es dann auch?
Oder geht es nur zum Tageswechsel 0 Uhr ?

Der Google Kalender und der Kalender View wird aktualisiert, es kommt also Urlaub an, der entsprechende dummy wird aber nicht gesetzt.

defmod n_GoogleKalenderHeinz notify GoogleKalenderHeinz:changed:.* {\
my $cmd = 'on';;\
$cmd = 'off' if ($EVTPART2 eq 'end');;\
my $actor = fhem ('get '.$NAME.' events format:custom="$S" filter:uid=="'.$EVTPART1.'" limit:count=1');;\
fhem("set $actor $cmd")}
attr n_GoogleKalenderHeinz alias n_GoogleKalenderHeinz Urlaub (notify)
attr n_GoogleKalenderHeinz disable 0
attr n_GoogleKalenderHeinz group Urlaub
attr n_GoogleKalenderHeinz room Kalender
attr n_GoogleKalenderHeinz sortby -01


defmod Urlaub dummy
attr Urlaub alias n_GoogleKalenderHeinz Urlaub (dummy)
attr Urlaub event-on-change-reading state
attr Urlaub eventMap on off
attr Urlaub group Urlaub
attr Urlaub room Kalender
attr Urlaub sortby -02


Danke und Grüße
Heinz

Otto123

#4
Hallo Heinz,

ich verstehe Deine Frage noch nicht so ganz.
Das notify wird von den changed: Events getriggert, Beispiel:
Termin von 8-16 Uhr
1. Event 08:00 Uhr - changed: .... start
2. Event 16:00 Uhr - changed: .... end

Wenn Du jetzt (12:28 Uhr) diesen Termin für heute einträgst, dann gibt es den start Event nicht, damit geht der "Aktor" nicht auf "on"
Der end Termin kommt dann schon, aber der dummy ist erstmal nicht gesetzt.

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

heinzfo

Hallo Otto

Ich hatte den Termin um 8 Uhr als Ganztagestermin eingetragen, also wird kein Event erzeugt.

Jetzt habe ich den Termin einige Zeit im voraus eingetragen und es hat funktioniert.

Grüße
Heinz