Hauptmenü

Telegram Benachrichtigung

Begonnen von Adolar, 06 November 2017, 15:39:18

Vorheriges Thema - Nächstes Thema

Adolar

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

nils_


da ist wohl Muelltonnen:next_tage keine Zahl, sondern ein Text.
änder mal deinen vergleich auf
[Muelltonnen:next_tage] eq "1"
viele Wege in FHEM es gibt!

kumue

wollte ich auch grad schreiben... nils_ war schneller und hat recht  ;)
Bitte Code-Tags (#) verwenden

Adolar

DANKEEE,

um 17:10 habe ich die Antwort.

NUr, warum ging es dann mit set cmd_1?

Ach, mir schwirrt der Kopf.... :o

kumue

Bei set cmd_1 wird nur der Ausführungsteil ausgeführt und nicht auf die Bedingungen geschaut...

Adolar

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?

nils_

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 ;)
viele Wege in FHEM es gibt!

Adolar

Habe mal die "tage" in "days" geändert, nun scheint es zu laufen.


Ja, JUHU  :D

Vielen Dank

kumue

und schau die mal das Attribut do always an... damit es nicht nur heute ging...

Adolar

do always hatte ich schon gesetzt, Danke.

Wäre es sehr schwierig auszudrücken, wenn ich auch noch eine mail bekommen wollte?

nils_

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)
viele Wege in FHEM es gibt!

Adolar

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 :)

kumue

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  ;)

Adolar

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

kumue

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.