Hallo @all,
mein DOIF funktioniert nur, wenn ich es direkt per Klick bediene, jedoch nicht zeitgesteuert.
im DEF steht: ([14:30] and [Muelltonnen:next_tage] == 1) (set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]')
Wenn ich auf set cmd_1 klicke, bekomme ich eine Nachricht, für den Termin, den ich extra für morgen eingetragen habe (Google Kalender)
jedoch kam um 14:30 Uhr keine Nachricht. Im Log steht:
2017.11.06 14:30:00 1: PERL WARNING: Argument "" isn't numeric in numeric eq (==) at (eval 18489) line 1.
2017.11.06 14:30:00 3: eval: Telegram_abfall: warning in condition c01
Kann mir das bitte jemand übersetzen?
Danke im Voraus,
Gruß,
Adolar
da ist wohl Muelltonnen:next_tage keine Zahl, sondern ein Text.
änder mal deinen vergleich auf
[Muelltonnen:next_tage] eq "1"
wollte ich auch grad schreiben... nils_ war schneller und hat recht ;)
Bitte Code-Tags (#) verwenden
DANKEEE,
um 17:10 habe ich die Antwort.
NUr, warum ging es dann mit set cmd_1?
Ach, mir schwirrt der Kopf.... :o
Bei set cmd_1 wird nur der Ausführungsteil ausgeführt und nicht auf die Bedingungen geschaut...
Verstehe...
leider war der Erfolg nicht sooo groß ::)
Kurz, nun passiert garniX. Nicht mal einen Logeitrag habe ich bekommen. Mit set geht's aber weiterhin.
In DEF steht nun:
([16:15] and [Muelltonnen:next_tage] eq "1") (set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]')
BTW: Wie lange habt Ihr gebraucht um da halbwegs durchzusehen?
Zitat von: Adolar am 06 November 2017, 16:19:34
Kurz, nun passiert garniX. Nicht mal einen Logeitrag habe ich bekommen. Mit set geht's aber weiterhin.
In DEF steht nun:
([16:15] and [Muelltonnen:next_tage] eq "1") (set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]')
nunja,
er wird schon in cmd_1 gewesen sein (spätestens durch den set), und dann führt er den Teil so erstmal nicht mehr aus. (attr do always wird da gerne für genommen, bin aber nicht sicher ob du das brauchst!)
genaueres hätten wir durch ein list erfahren, so raten wir etwas ;)
Habe mal die "tage" in "days" geändert, nun scheint es zu laufen.
Ja, JUHU :D
Vielen Dank
und schau die mal das Attribut do always an... damit es nicht nur heute ging...
do always hatte ich schon gesetzt, Danke.
Wäre es sehr schwierig auszudrücken, wenn ich auch noch eine mail bekommen wollte?
Zitat von: Adolar am 06 November 2017, 16:30:18
do always hatte ich schon gesetzt, Danke.
sicher das du das brauchst?
wie schon gesagt, ein list hilft da wirklich weiter :)
Zitat von: Adolar am 06 November 2017, 16:30:18
Wäre es sehr schwierig auszudrücken, wenn ich auch noch eine mail bekommen wollte?
den satz verstehe ich nicht :o
ich rate mal:
einfach noch ein command mit in das doif einbauen.
([16:15] and [Muelltonnen:next_days] eq "1") (set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]')(sende mir bitte auch noch eine email)
Zitat von: nils_ am 06 November 2017, 16:33:56
sicher das du das brauchst?
wie schon gesagt, ein list hilft da wirklich weiter :)
In FHEM bin ich mir bei nichts wirklich sicher.
do always - schadet es?
List?
Zitat von: nils_ am 06 November 2017, 16:33:56
den satz verstehe ich nicht :o
......(sende mir bitte auch noch eine email)
Ja, genau so :)
Zitat von: nils_ am 06 November 2017, 16:33:56
sicher das du das brauchst?
würde sagen, kommt drauf an, wie das ganze DOIF aussieht, ob noch DOELSEIF- o. DOELSE-Zweig verbaut ist.
@Adolar:
Falls du magst, dann ein
list DEIN_DOIF_NAME
posten.. in Code-Tags ;)
Das war ja einfach, wusste nicht, daß es auch einfache Befehle gibt ;)
Internals:
CFGFN
DEF ([14:30] and [Muelltonnen:next_days] eq "1") (set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]')
NAME Telegram_abfall
NR 3850
NTFY_ORDER 50-Telegram_abfall
STATE initialized
TYPE DOIF
READINGS:
2017-11-06 16:31:28 cmd 0
2017-11-06 16:31:28 state initialized
2017-11-06 16:31:28 timer_01_c01 07.11.2017 14:30:00
condition:
0 DOIF_time_once($hash,0,$wday) and ReadingValDoIf($hash,'Muelltonnen','next_days') eq "1"
days:
devices:
0 Muelltonnen
all Muelltonnen
do:
0:
0 set Telegrambot msg 'Abfallerinnerung' '[Muelltonnen:next_text]'
1:
helper:
globalinit 1
last_timer 1
sleeptimer -1
itimer:
localtime:
0 1510061400
readings:
0 Muelltonnen:next_days
all Muelltonnen:next_days
realtime:
0 14:30:00
regexp:
all:
state:
STATE:
time:
0 14:30:00
timeCond:
0 0
timer:
0 0
timers:
0 0
triggertime:
1510061400:
localtime 1510061400
hash:
Attributes:
do always
room Außen
do always kannst du weglassen.
In der commandref zu DOIF findest Du auch einen Bsp. mit Emailversand.
Batteriewarnung per E-Mail verschicken
define di_battery DOIF ([":battery: low"] and [?$SELF:B_$DEVICE] ne "low")
({DebianMail('yourname@gmail.com', 'FHEM - battery warning from device: $DEVICE')}, setreading $SELF B_$DEVICE low)
DOELSEIF ([":battery: ok"] and [?$SELF:B_$DEVICE] ne "ok")
(setreading $SELF B_$DEVICE ok)
Vorausgesetzt, Emailversand ist bei dir schon eingerichtet... ansonsten mal im Wiki suchen.
Danke,
mail habe ich versucht einzurichten...musste erstmal pausieren. Ich setze mich nachher nochmal ran.
Bin schon froh, daß die Telegram Nachricht nun versendet wird :)
Naja, den Befehl für mail bekomme ich nicht hin - "syntaktisch"
Das nach "DOELSEIF" brauche ich doch garnicht?
Ist die Syntax anders als bei Telegram?
Ja, ich weiß, commandref... das schaffe ich heute nicht mehr. Könntest du mir die Syntax umschreiben? Ich verspreche auch, mir die Commandref dazu durchzulesen. :)
Ziel: (wie Telegram) - zu einem Zeitpunkt "muelltonnen:next_days=1" auszulesen, wenn ja dann eine mail mit mit dem Text "FHEM Abfallerinnerung für morgen "Muelltonnen:next_next" zu mehreren Empfängern zu schicken
Edit sagt noch: Die Batteriewarnung funktioniert auf Anhieb. Das heißt, mail funktioniert. Ich bekomme es nur nicht "umgeschrieben"
Hmmm, so dachte ich mir das - ganz unbedarft 8)
define di_Muell_Mail DOIF ([14:30] and [Muelltonnen:next_days] eq "1") ({DebianMail('XXXXX@XXX.de' 'FHEM Abfallerinnerung $DEVICE' 'Muelltonnen:next_text')})
Wie erwartet:
{DebianMail('XXXXX@XXX.de' 'FHEM Abfallerinnerung ' 'Muelltonnen:next_text')}: syntax error at (eval 22514) line 1, near "'XXXXX@XXX.de' 'FHEM Abfallerinnerung '"
2017-11-06 19:19:34
Event Monitor:
2017-11-06 19:19:34 DOIF di_Muell_Mail cmd_nr: 1
2017-11-06 19:19:34 DOIF di_Muell_Mail cmd: 1
2017-11-06 19:19:34 DOIF di_Muell_Mail cmd_event: set_cmd_1
2017-11-06 19:19:34 DOIF di_Muell_Mail error: {DebianMail('XXXXX@XXX.de' 'FHEM Abfallerinnerung ' 'Muelltonnen:next_text')}: syntax error at (eval 22514) line 1, near "'chbuettner@gmx.de' 'FHEM Abfallerinnerung '"
2017-11-06 19:19:34 DOIF di_Muell_Mail cmd_1
Zitat von: kumue am 06 November 2017, 17:18:06
do always kannst du weglassen.
sicher? er bekommt dann aber doch nur einmal eine benachrichtigung und dann war es das?!
Zitat von: Adolar am 06 November 2017, 19:25:09
define di_Muell_Mail DOIF ([14:30] and [Muelltonnen:next_days] eq "1") ({DebianMail('XXXXX@XXX.de' 'FHEM Abfallerinnerung $DEVICE' 'Muelltonnen:next_text')})
du hast da wohl die Kommas vergessen.
Zitatdefine di_Muell_Mail DOIF ([14:30] and [Muelltonnen:next_days] eq "1") ({DebianMail('XXXXX@XXX.de', 'FHEM Abfallerinnerung $DEVICE', 'Muelltonnen:next_text')})
(Zitat, weil in Code-Tags keine Formatierung möglich)bitte lies dir die anfänger doku durch!!
und poste code auch in code-tags, das ist dann besser lesbar.
Danke.
Ja, meine Leseliste ist soooo lang und der Tag soooo kurz und mit $Arbeit und Schlafen verkürzt er sich nochmal drastisch...
Bin ja mal gespannt, ob es wirklich nur an den Kommas gelegen hat. Ich versuche es heut Nachmittag.
Gruß
@niels_
o.K., eine mail kommt schon mal mit "cmd_1". Im Text steht jedoch "Muelltonnen:next_text" und im Betreff "FHEM Abfallerinnerung *"
ob sie auch einen Tag vorher zur gewünschten Zeit kommt, bekomme ich noch raus.
Zitat von: Adolar am 07 November 2017, 15:39:29
@niels_
wer ist das? kenn ich nicht 8) 8) ;D
Zitat von: Adolar am 07 November 2017, 15:39:29
o.K., eine mail kommt schon mal mit "cmd_1". Im Text steht jedoch "Muelltonnen:next_text" und im Betreff "FHEM Abfallerinnerung *"
ja der code war so wohl nicht vollständig. um Muelltonnen:next_text fehlen die eckigen Klammern.
und was soll denn für $DEVICE deiner meinung nach drin stehen?
Zitat von: Adolar am 07 November 2017, 15:39:29
ob sie auch einen Tag vorher zur gewünschten Zeit kommt, bekomme ich noch raus.
viel spaß!