Hallo zusammen,
ich habe mir das Abfallmodul eingerichtet, mein google Calender wird auch eingelesen und die Mülltermine in den readings angezeigt. Nun wollte ich eine tts Ausgabe für den Vortag anlegen
list:
Internals:
DEF ([?18:00 - 21:00] and [Abfall:next_days] == 1 ) ( set MyTTS volume 100, set MyTTS tts Achtung denkt bitte daran Morgen wird [myABFALL:next_text] abgeholt)
NAME di_AbholungAnsage1
NR 220
NTFY_ORDER 50-di_AbholungAnsage1
STATE initialized
TYPE DOIF
READINGS:
2018-01-10 21:12:45 cmd 0
2018-01-10 21:12:45 mode enabled
2018-01-10 21:12:45 state initialized
2018-01-10 21:12:45 timer_01_c01 11.01.2018 18:00:00
2018-01-10 21:12:45 timer_02_c01 11.01.2018 21:00:00
Regex:
condition:
0 DOIF_time($hash,0,1,$wday,$hms) and ReadingValDoIf($hash,'Abfall','next_days') == 1
days:
devices:
0 Abfall
all Abfall
do:
0:
0 set MyTTS volume 100, set MyTTS tts Achtung denkt bitte daran Morgen wird [myABFALL:next_text] abgeholt
1:
helper:
DOIF_Readings_events
DOIF_eventas
globalinit 1
last_timer 2
sleeptimer -1
interval:
0 -1
1 0
itimer:
localtime:
0 1515690000
1 1515700800
readings:
0 Abfall:next_days
all Abfall:next_days
realtime:
0 18:00:00
1 21:00:00
time:
0 18:00:00
1 21:00:00
timeCond:
0 0
1 0
timer:
0 0
1 0
triggertime:
1515690000:
localtime 1515690000
hash:
1515700800:
localtime 1515700800
hash:
uiState:
uiTable:
Attributes:
alias Abfallterminansage Vortag
checkReadingEvent 1
do always
event-on-update-reading 1
room Abfall
Die def sieht so aus:
([?18:00 - 21:00] and [Abfall:next_days] == 1 ) ( set MyTTS volume 100, set MyTTS tts Achtung denkt bitte daran Morgen wird [myABFALL:next_text] abgeholt)
iergendwie bekomme ich in dem Zeitfenster keine Ausgabe, das selbe Problem habe ich mit dem DOIF für die Tag der Müllabfuhr
Internals:
DEF ([6:45] and [Abfall:now_text] ne "" and [Abfall:now_text] ne "0") ( set MyTTS volume 90, set MyTTS tts guten Morgen Familie Völker schnell den Müll noch rausstellen Es wird gleich [myABFALL:now_text] abgeholt)
NAME di_AbholungAnsage2
NR 226
NTFY_ORDER 50-di_AbholungAnsage2
STATE initialized
TYPE DOIF
READINGS:
2018-01-10 21:27:18 cmd 0
2018-01-10 21:27:18 mode enabled
2018-01-10 21:27:18 state initialized
2018-01-10 21:27:18 timer_01_c01 11.01.2018 06:45:00
Regex:
condition:
0 DOIF_time_once($hash,0,$wday) and ReadingValDoIf($hash,'Abfall','now_text') ne "" and ReadingValDoIf($hash,'Abfall','now_text') ne "0"
days:
devices:
0 Abfall
all Abfall
do:
0:
0 set MyTTS volume 90, set MyTTS tts guten Morgen Familie Völker schnell den Müll noch rausstellen Es wird gleich [myABFALL:now_text] abgeholt
1:
helper:
DOIF_Readings_events
DOIF_eventas
globalinit 1
last_timer 1
sleeptimer -1
itimer:
localtime:
0 1515649500
readings:
0 Abfall:now_text
all Abfall:now_text
realtime:
0 06:45:00
time:
0 6:45
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1515649500:
localtime 1515649500
hash:
uiState:
uiTable:
Attributes:
alias Abfallterminansage am Ereignisstag
do always
room Abfall
auch eine Nachricht auf Telegramm wird nicht abgesetzt:
Internals:
DEF [21:25] and [ABFALL:next_days] == 1) ( set Telegram msg 'Morgen wird [myABFALL:next_text] abgeholt')
NAME Abfall_Telegram_Nachricht
NR 218
NTFY_ORDER 50-Abfall_Telegram_Nachricht
REGEXP [21:25]
STATE active
TYPE notify
READINGS:
2018-01-10 21:22:35 state active
Attributes:
room Abfall
Wo könnte der Fehler liegen?
:-[
Zitat von: Larusso am 10 Januar 2018, 21:29:28
Internals:
DEF [21:25] and [ABFALL:next_days] == 1) ( set Telegram msg 'Morgen wird [myABFALL:next_text] abgeholt')
NAME Abfall_Telegram_Nachricht
NR 218
NTFY_ORDER 50-Abfall_Telegram_Nachricht
REGEXP [21:25]
STATE active
TYPE notify
READINGS:
2018-01-10 21:22:35 state active
Attributes:
room Abfall
Wo könnte der Fehler liegen?
:-[
notify ist kein DOIF ;)
Das letzte ist ja auch ein extra notify für eine Telegram Nachricht.
Probier mal {([Device:Reading])}
Entschuldigung für die blöde Frage, wo soll ich das probieren?
Erstmal: ich glaube am Anfang in deinem DEF Part fehlt eine offene Klammer.
Zweitens versuch mal Telegramm die Nachricht ohne quotes zu übergeben
Hallo tiriso, das Telegramm notify ist nicht so wichtig das war nur eine Info das dort auch keine Meldung aus geht. Ich möchte die doif Geschichte mit der tts Ausgabe für den abfallkalender ans laufen bekommen. Trotzdem danke für den Hinweis ich werde mir das ansehen.
Zitat von: Larusso am 11 Januar 2018, 06:54:17
Entschuldigung für die blöde Frage, wo soll ich das probieren?
Im set-Befehl.
Ich stehe immer noch auf dem Schlauch, das ist ja kein Attribut was soll ich genau machen, bin blutiger Anfänger und hab das nach einem Tutorial angelegt.
Mach auch mal ein List von "myAbfall"
Internals:
DEF AbfallGoogleCalender
KALENDER AbfallGoogleCalender
NAME myABFALL
NOTIFYDEV AbfallGoogleCalender
NR 216
NTFY_ORDER 50-myABFALL
STATE BioTonne in 7 Tag(en)
TYPE ABFALL
READINGS:
2018-01-11 07:16:32 BioTonne_date 18.01.2018
2018-01-11 07:16:32 BioTonne_days 7
2018-01-11 07:16:32 BioTonne_description
2018-01-11 07:16:32 BioTonne_location
2018-01-11 07:16:32 BioTonne_text BioTonne
2018-01-11 07:16:32 BioTonne_uid 4fas5e42c2f5p5qvapi3mhb3n3googlecom
2018-01-11 07:16:32 BioTonne_weekday Donnerstag
2018-01-11 07:16:32 PapierTonne_date 07.02.2018
2018-01-11 07:16:32 PapierTonne_days 27
2018-01-11 07:16:32 PapierTonne_description
2018-01-11 07:16:32 PapierTonne_location
2018-01-11 07:16:32 PapierTonne_text PapierTonne
2018-01-11 07:16:32 PapierTonne_uid 6l165k4rv1tdipqjldir3m1fqfgooglecom
2018-01-11 07:16:32 PapierTonne_weekday Mittwoch
2018-01-11 07:16:32 gelberSack_date 11.01.2018
2018-01-11 07:16:32 gelberSack_days 0
2018-01-11 07:16:32 gelberSack_description
2018-01-11 07:16:32 gelberSack_location
2018-01-11 07:16:32 gelberSack_pickups 1
2018-01-11 07:16:32 gelberSack_text gelberSack
2018-01-11 07:16:32 gelberSack_uid 77b9ukqturc1c0bh73oo0nn9vdgooglecom
2018-01-11 07:16:32 gelberSack_weekday Donnerstag
2018-01-11 07:16:32 next BioTonne_7
2018-01-11 07:16:32 next_date 18.01.2018
2018-01-11 07:16:32 next_days 7
2018-01-11 07:16:32 next_description
2018-01-11 07:16:32 next_location
2018-01-11 07:16:32 next_text BioTonne
2018-01-11 07:16:32 next_weekday Donnerstag
2018-01-11 07:16:32 now gelberSack|schwarzeTonne
2018-01-11 07:16:32 now_date 11.01.2018
2018-01-11 07:16:32 now_description
2018-01-11 07:16:32 now_location
2018-01-11 07:16:32 now_text gelberSack und schwarze Tonne
2018-01-11 07:16:32 now_weekday Donnerstag
2018-01-11 07:16:32 schwarzeTonne_date 11.01.2018
2018-01-11 07:16:32 schwarzeTonne_days 0
2018-01-11 07:16:32 schwarzeTonne_description
2018-01-11 07:16:32 schwarzeTonne_location
2018-01-11 07:16:32 schwarzeTonne_text schwarze Tonne
2018-01-11 07:16:32 schwarzeTonne_uid 54bn9vt5o3gju2qgihc3je2qovgooglecom
2018-01-11 07:16:32 schwarzeTonne_weekday Donnerstag
2018-01-11 07:16:32 state 7
Attributes:
calendarname_praefix 0
date_style date
delimiter_reading |
delimiter_text_reading und
fp_Erdgeschoss 197,215,0,myABFALL,
group Abfall
room Abfall
stateFormat next_text in next_days Tag(en)
userReadings ftui_datum {ReadingsVal("myABFALL","now_text","") eq "" ? datumHeuteMorgen(ReadingsVal("myABFALL","next_datum","")) : "heute"
weekday_mapping Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
Dein Device heißt "myABFALL". Im DOIF fragst du aber die ganze Zeit nach "ABFALL" oder "Abfall"(Bedingung)
Zitat von: Larusso am 11 Januar 2018, 05:06:13
Das letzte ist ja auch ein extra notify für eine Telegram Nachricht.
die syntax von notify ist trotzdem eine andere und wird so nie funktionieren...
ob wichtig oder nicht
Zitat von: Larusso am 11 Januar 2018, 07:16:22
Ich stehe immer noch auf dem Schlauch, das ist ja kein Attribut was soll ich genau machen, bin blutiger Anfänger und hab das nach einem Tutorial angelegt.
Dann würde ich Dir empfehlen, Dir die Syntax des DOIF in der deutschsprachigen Befehlereferenz anzusehen, weiterhin die Informationen zum set-Befehl, notify, Text2Speech, Calendar, Telegram.
Zu DOIF solltest Du die wenigsten die hier beschriebenen Abschnitte kennen: https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen#DOIF-Light_f.C3.BCr_Einsteiger
Wenn Du eine Anleitung benutzt, die nicht funktioniert, würde ich den Ersteller befragen.
Ok, vielen Dank für die vielen Infos, das notify habe ich gelöscht und ein doif mit der selben Definition für die Telegram msg erstellt, dies teste ich nachher. Desweiteren habe ich Abfall durch myABFALL in den doif Definitionen ersetzt das sollte dazu führen das das doif jetzt auch die readings aus dem device myABFALL liest, ich hoffe das funktioniert und werde nach dem Test nochmal dazu schreiben, vielen Dank nochmal an alle.
Hallo,
kannst du deinen überabeiteten Code einmal posten, wäre für mich auch von Interesse, arbeite an einem ähnlichen Thema und komme nicht so richtig voran 8)
VG
Pit
juhu.............jetzt funktioniert das DOIF mit myABFALL, die Tücke steckt halt im Detail, war nur der falsche Devicename, klar das er dann keine readings bekommt..........
@piet_pit: ich stelle dir hier mal meine config rein für das Abfallmodul und die DOIF´s mit TTS Ausgabe:
define myABFALL ABFALL AbfallGoogleCalender
attr myABFALL calendarname_praefix 0
attr myABFALL date_style date
attr myABFALL delimiter_reading |
attr myABFALL delimiter_text_reading und
attr myABFALL fp_Erdgeschoss 197,215,0,myABFALL,
attr myABFALL group Abfall
attr myABFALL room Abfall
attr myABFALL stateFormat next_text in next_days Tag(en)
attr myABFALL userReadings ftui_datum {ReadingsVal("myABFALL","now_text","") eq "" ? datumHeuteMorgen(ReadingsVal("myABFALL","next_datum","")) : "heute"
attr myABFALL weekday_mapping Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
#Sprachausgabe Mülltonne am Vortag
define di_AbholungAnsage1 DOIF ([?18:00 - 20:00] and [myABFALL:next_days] == 1 ) ( set MyTTS volume 100, set MyTTS tts Achtung denkt bitte daran Morgen wird [myABFALL:next_text] abgeholt)
attr di_AbholungAnsage1 alias Abfallterminansage Vortag
attr di_AbholungAnsage1 checkReadingEvent 1
attr di_AbholungAnsage1 do always
attr di_AbholungAnsage1 room Abfall
#Sprachausgabe Mülltonne am Ereignisstag
define di_AbholungAnsage2 DOIF ([?06:45 - 07:30] and [myABFALL:now_text] ne "" and [myABFALL:now_text] ne "0") ( set MyTTS volume 90, set MyTTS tts guten Morgen Familie Völker schnell den Müll noch rausstellen Es wird gleich [myABFALL:now_text] abgeholt)
attr di_AbholungAnsage2 alias Abfallterminansage am Ereignisstag
attr di_AbholungAnsage2 do always
attr di_AbholungAnsage2 room Abfall
#Telegramm Nachricht für Mülltonne am Vortag
define Abfall_Telegramm DOIF ([?19:00 - 19:05] and [myABFALL:next_days] == 1) ( set Telegram msg Morgen wird [myABFALL:next_text] abgeholt )
attr Abfall_Telegramm room Abfall
Die Daten des Kalenders (meine Gemeinde hat leider keinen Müllplan als ical) habe ich in meinen Google Kalender eingetragen und frage den dann in FHEM immer per URL ab, somit ist dieser auch immer aktuell und ich muss keine ical datei in fhem ablegen. Sollten an einem Tag mehrere Mülltonnen abgeholt werden dann setzt die Sprachausgabe ein "und" zwischen die Tonnen.
Hallo,
prima und danke... :)
VG
Pit
Hallo piet_pit,
kannst du bitte eine Rückmeldung geben wenn das bei dir auch so funktionieren sollte, danke.
Hallo zusammen,
ich hänge jetzt seit einer ganzen Zeit an dieser Geschichte und es hat auch komplett nach den Vorgaben hier im Thread nicht geklappt. Ich habe dann
Zitat von: Larusso am 11 Januar 2018, 15:04:51
juhu.............jetzt funktioniert das DOIF mit myABFALL, die Tücke steckt halt im Detail, war nur der falsche Devicename, klar das er dann keine readings bekommt..........
@piet_pit: ich stelle dir hier mal meine config rein für das Abfallmodul und die DOIF´s mit TTS Ausgabe:
#Sprachausgabe Mülltonne am Ereignisstag
define di_AbholungAnsage2 DOIF ([?06:45 - 07:30] and [myABFALL:now_text] ne "" and [myABFALL:now_text] ne "0") ( set MyTTS volume 90, set MyTTS tts guten Morgen Familie Völker schnell den Müll noch rausstellen Es wird gleich [myABFALL:now_text] abgeholt)
wie folgt angepasst:
#Sprachausgabe Mülltonne am Ereignisstag
define di_AbholungAnsage2 DOIF ([?06:45 - 07:30] and [myABFALL:now_text] ne "" and [myABFALL:now_text] ne "0") ( set MyTTS volume 90, set MyTTS tts guten Morgen Familie Völker schnell den Müll noch rausstellen Es wird gleich ([myABFALL:next_text]) abgeholt)
Damit geht auch bei uns der Müll rechtzeitig raus. ;)