FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Adolar am 06 November 2017, 15:39:18

Titel: Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 15:39:18
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
Titel: Antw:Telegram Benachrichtigung
Beitrag von: nils_ am 06 November 2017, 15:56:04

da ist wohl Muelltonnen:next_tage keine Zahl, sondern ein Text.
änder mal deinen vergleich auf
[Muelltonnen:next_tage] eq "1"
Titel: Antw:Telegram Benachrichtigung
Beitrag von: kumue am 06 November 2017, 15:59:13
wollte ich auch grad schreiben... nils_ war schneller und hat recht  ;)
Bitte Code-Tags (#) verwenden
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:07:36
DANKEEE,

um 17:10 habe ich die Antwort.

NUr, warum ging es dann mit set cmd_1?

Ach, mir schwirrt der Kopf.... :o
Titel: Antw:Telegram Benachrichtigung
Beitrag von: kumue am 06 November 2017, 16:11:00
Bei set cmd_1 wird nur der Ausführungsteil ausgeführt und nicht auf die Bedingungen geschaut...
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:19:34
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?
Titel: Antw:Telegram Benachrichtigung
Beitrag von: nils_ am 06 November 2017, 16:25:10
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 ;)
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:26:57
Habe mal die "tage" in "days" geändert, nun scheint es zu laufen.


Ja, JUHU  :D

Vielen Dank
Titel: Antw:Telegram Benachrichtigung
Beitrag von: kumue am 06 November 2017, 16:28:21
und schau die mal das Attribut do always an... damit es nicht nur heute ging...
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:30:18
do always hatte ich schon gesetzt, Danke.

Wäre es sehr schwierig auszudrücken, wenn ich auch noch eine mail bekommen wollte?
Titel: Antw:Telegram Benachrichtigung
Beitrag von: nils_ am 06 November 2017, 16:33:56
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)
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:40:50
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 :)
Titel: Antw:Telegram Benachrichtigung
Beitrag von: kumue am 06 November 2017, 16:41:08
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  ;)
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 16:45:54
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
Titel: Antw:Telegram Benachrichtigung
Beitrag von: kumue am 06 November 2017, 17:18:06
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.
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 17:25:41
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 :)
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 18:02:36
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"
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 06 November 2017, 19:25:09
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
Titel: Antw:Telegram Benachrichtigung
Beitrag von: nils_ am 07 November 2017, 08:55:11
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.
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 07 November 2017, 09:35:47
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ß
Titel: Antw:Telegram Benachrichtigung
Beitrag von: Adolar am 07 November 2017, 15:39:29
@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.
Titel: Antw:Telegram Benachrichtigung
Beitrag von: nils_ am 08 November 2017, 08:01:50
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ß!