FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ChristianK. am 09 März 2019, 08:13:31

Titel: Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: ChristianK. am 09 März 2019, 08:13:31
Ich habe folgende Konfiguration, welche auch funktioniert - solange nur ein Termin vorliegt.
Wenn 2 Termine auf einem Tag liegen - wird es nicht ausgewertet und auch nicht gesendet

define AbfallKalender Calendar ical url https://calendar.google.com/......./basic.ics
define Muelltonne dummy
define a_Tonne at *18:00:00 set Muelltonne {(my $evt=fhem('get AbfallKalender events format:custom="$S" limit:from=1d,to=1d');;;;$evt?$evt:"0")}
define notify_Restmuelltonne notify Muelltonne:Restabfalltonne set telegram_bot message Morgen fährt die Mülltonne
define notify_gelberSack notify Muelltonne:Gelber.Sack set telegram_bot message Morgen fährt der gelbe Sack
define notify_blaueTonne notify Abfalltermin:Blaue.Tonne set telegram_bot message Morgen fährt die Blaue Tonne


Weiss hier jemand abhilfe?

Grüße

Christian
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: Otto123 am 09 März 2019, 09:16:21
Moin Christian,

naja dein Code ist so gebaut, das er sicher nur funktioniert wenn es genau einen Eintrag am nächsten Tag gibt.
Was liefert Dir denn get AbfallKalender events format:custom="$S" limit:from=1d,to=1dzurück wenn es ein oder zwei Termine sind.
Ergo was steht denn dann im Dummy?

Warum machst Du überhaupt drei notifys? Warum ist das letzte unlogisch anders?
Arbeite in deinem notify doch einfach mit $EVENT und triggere auf jedes setzen des dummys.

Abfalltermin:Blaue.Tonne

Gruß Otto

Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: ChristianK. am 09 März 2019, 10:30:12
Bei einem Termin kommt:
Test1
Im Dummy steht Test1

Bei 2 Terminen kommt:
Test1
Test2

Im Dummy steht Test2 Test1

Das dritte - ein Fehler meinerseits  ;)
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: Otto123 am 09 März 2019, 10:51:19
Naja könnte man doch so lassen?
Machst ein notify so?
define notify_Muelltonne notify Muelltonne:.* set telegram_bot message Morgen fährt die $EVENT
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: stefanpf am 09 März 2019, 11:08:45
Falls es nur um Funktion geht: das Abfall Modul an den Kalender angedockt erfüllt das ...

defmod myAbfall ABFALL kal.Abfall
attr myAbfall calendarname_praefix 0
attr myAbfall date_style date
attr myAbfall delimiter_reading |
attr myAbfall delimiter_text_reading und
attr myAbfall filter_type exclude
attr myAbfall room 90_Srv
attr myAbfall stateFormat next_text in next_days Tag(en)
attr myAbfall weekday_mapping Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag

setstate myAbfall Biotonne und Test in 5 Tag(en)
setstate myAbfall 2019-03-09 11:03:09 Biotonne_date 14.03.2019
setstate myAbfall 2019-03-09 11:03:09 Biotonne_days 5
setstate myAbfall 2019-03-09 11:03:09 Biotonne_description
setstate myAbfall 2019-03-09 11:03:09 Biotonne_location
setstate myAbfall 2019-03-09 11:03:09 Biotonne_text Biotonne
setstate myAbfall 2019-03-09 11:03:09 Biotonne_uid b35u8u9fr1gthis6hrdrv585kkgooglecom
setstate myAbfall 2019-03-09 11:03:09 Biotonne_weekday Donnerstag
setstate myAbfall 2019-03-09 11:03:09 Test_date 14.03.2019
setstate myAbfall 2019-03-09 11:03:09 Test_days 5
setstate myAbfall 2019-03-09 11:03:09 Test_description
setstate myAbfall 2019-03-09 11:03:09 Test_location
setstate myAbfall 2019-03-09 11:03:09 Test_text Test
setstate myAbfall 2019-03-09 11:03:09 Test_uid 2lb11jp8dqc2nh5o1ria50ef6ogooglecom
setstate myAbfall 2019-03-09 11:03:09 Test_weekday Donnerstag
setstate myAbfall 2019-03-09 11:03:09 next Biotonne|Test_5
setstate myAbfall 2019-03-09 11:03:09 next_date 14.03.2019
setstate myAbfall 2019-03-09 11:03:09 next_days 5
setstate myAbfall 2019-03-09 11:03:09 next_description





defmod di_Abfallmorgen DOIF ([18:00] and [myAbfall:next_days] == 1) ( set  pushmsg message  Morgen wird [myAbfall:next_text] abgeholt)
attr di_Abfallmorgen do always
attr di_Abfallmorgen icon helper_doif
attr di_Abfallmorgen room 92_Srv.Automat


Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: Otto123 am 09 März 2019, 11:21:55
Was ist an einem Modul (was bei jeder Weiterentwicklung von Calendar immer wieder angepasst werden muss) und einem DOIF besser als ein at und ein notify?
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: ChristianK. am 09 März 2019, 11:36:12
Danke - Habe es jetzt - nach Deinem Vorschlag so gelöst:
define notify_Muelltonne notify Muelltonne:[a-zA-Z].* set telegram_bot message Morgen fährt die $EVENT

Ansonsten hätte er jeden Tag eine "0" gesendet...
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: Otto123 am 09 März 2019, 11:48:50
stimmt :) da war noch was.
Alternativ kann man auch das attr ignoreRegexp nutzen, nur als Vorschlag  ;)
attr notify_Muelltonne ignoreRegexp 0
Titel: Antw:Auswertung Abfallkalender schlägt fehl - wenn 2 Termine auf einem Tag liegen
Beitrag von: stefanpf am 09 März 2019, 18:59:48
Zitat von: Otto123 am 09 März 2019, 11:21:55
Was ist an einem Modul (was bei jeder Weiterentwicklung von Calendar immer wieder angepasst werden muss) und einem DOIF besser als ein at und ein notify?

Naja,
a) ist es ein möglicher Lösungsansatz, nicht mehr und nicht weniger
b) kannst du ja das doif durch ein at und ein notify ersetzen  ;)
     Afaik ist das technisch das gleiche.
c) wer sagt denn, dass bei einer möglichen Änderung von Calendar get event nicht auf einmal deprecated ist  :D
d) was ist an einem at, dummy und notify besser als an einem notify direkt auf den Alarm des Termins?
e) warum nicht gleich die Push Benachrichtigung des Google Kalenders nutzen
Funktion ist gefragt  8)