FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mynameisfu am 06 Januar 2018, 23:12:05

Titel: Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 06 Januar 2018, 23:12:05
ich bekomme es leider nicht auf kette denn Code statt mit Pushover sondern mit pushbullet zu versenden , ich hatte schon 1zu1 getauscht aber es hatte nicht funktioniert.
hat jemand das ganze schon umgesetzt.
lg fu




#Pushover-Benachrichtigung bei leeren Batterien
define BatteryLowPushover at *19:00:00 { if ( $mday <= 6 && $wday == 0 )\
{if (ReadingsVal("AZ.Fenster.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Arbeitszimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("BZ.Fenster.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("BZ.KlimaClimate", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer Klimasensor' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("BZ.Tuer.Geschlossen", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Badezimmer Tür' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("FL.Tuerschloss", "battery", "-1") eq "low")\
  {fhem ("set PushoverJayFHEM msg 'Flur Türschloss' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
}
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 01:35:57
Hi,


was genau ist denn das Problem? Was sagt das log?


Grüße,


Oli

Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 01:45:37
hi das Problem ist das ich nur pushbullet nutze, aber er nichts versendet
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 01:52:19
auch wenn ich mich wiederhole... Was sagt das Log? Funktioniert pushbullet generell? Ist PushoverJayFHEM dein Pushbullet-Device? (Dann denke mal über die Benamsung nach)
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 09:12:59
sorry ich stelle mich immer etwas an mit dem log, Pushbullet funktioniert ich pushe schon eine andere sache und die kommt sauber an.
jetzt wollte ich diesen code als batterieüberwachung nutzen aber der versendet nur mit Pushover wie man in dem code oben sieht.
das ist der den ich gerne benutzen würde.
{ {if (ReadingsVal("ESPEasy_ESP_Ella:", "batteryLevel", "-1") eq "low")\
  {fhem ("set Push message  'Ella' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("ESPEasy_ESP_Mia", "batteryLevel", "-1") eq "low")\
  {fhem ("set Push message  'Badezimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("ESPEasy_ESP_gast", "batteryLevel", "-1") eq "low")\
  {fhem ("set Push message  'Badezimmer Klimasensor' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("ESPEasy_ESP_Schlafzimmer", "batteryLevel", "-1") eq "low")\
  {fhem ("set Push message  'Badezimmer Tür' 'Bitte Batterie tauschen' '' 0 ''")}\
};;\
{if (ReadingsVal("ESPEasy_ESP_bad", "batteryLevel", "-1") eq "low")\
  {fhem ("set Push message  'Flur Türschloss' 'Bitte Batterie tauschen' '' 0 ''")}\
}
}


da mekert er rum das :
dif_Batteriewarnung DOIF: no left bracket of condition: { {if (ReadingsVal("ESPEasy_ESP_Ella:", "batteryLevel", "-1") eq "low")\   {fhem ("set Push message  'Ella' 'Bitte Batterie tauschen' '' 0 ''")}\  };;\  {if (ReadingsVal("ESPEasy_ESP_Mia", "batteryLevel", "-1") eq "low")\   {fhem ("set Push message  'Badezimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}\  };;\  {if (ReadingsVal("ESPEasy_ESP_gast", "batteryLevel", "-1") eq "low")\   {fhem ("set Push message  'Badezimmer Klimasensor' 'Bitte Batterie tauschen' '' 0 ''")}\  };;\  {if (ReadingsVal("ESPEasy_ESP_Schlafzimmer", "batteryLevel", "-1") eq "low")\   {fhem ("set Push message  'Badezimmer Tür' 'Bitte Batterie tauschen' '' 0 ''")}\  };;\  {if (ReadingsVal("ESPEasy_ESP_bad", "batteryLevel", "-1") eq "low")\   {fhem ("set Push message  'Flur Türschloss' 'Bitte Batterie tauschen' '' 0 ''")}\  } }

in welchen log soll ich nachschauen?
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 09:48:15
Nun, das ist doch schon hilfreicher :-) Die Fehlermeldung ist ja ziemlich eindeutig... Die Syntax des DOIF passt nicht, sowohl die Bedingung als auch der Ausführungsteil müssen immer von runden Klammern umschlossen sein.
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 12:37:25
ok danke hat geklappt das er es annimmt aber im log steht nichts und ankommen tut auch nichts.

({if (ReadingsVal("ESPEasy_ESP_Ella:", "batteryLevel", "-1") eq "low")
  {fhem ("set Push message  'Ella' 'Bitte Batterie tauschen' '' 0 ''")}
};;
{if (ReadingsVal("ESPEasy_ESP_Mia", "batteryLevel", "-1") eq "low")
  {fhem ("set Push message  'Badezimmer Fenster' 'Bitte Batterie tauschen' '' 0 ''")}
};;
{if (ReadingsVal("ESPEasy_ESP_gast", "batteryLevel", "-1") eq "low")
  {fhem ("set Push message  'Badezimmer Klimasensor' 'Bitte Batterie tauschen' '' 0 ''")}
};;
{if (ReadingsVal("ESPEasy_ESP_Schlafzimmer", "batteryLevel", "-1") eq "low")
  {fhem ("set Push message  'Badezimmer Tür' 'Bitte Batterie tauschen' '' 0 ''")}
};;
{if (ReadingsVal("ESPEasy_ESP_bad", "batteryLevel", "-1") eq "low")
  {fhem ("set Push message  'Flur Türschloss' 'Bitte Batterie tauschen' '' 0 ''")}
})


Auszug aus dem Eventmonitor

2018-01-07 12:25:31 DOIF dif_Batteriewarnung cmd_nr: 1
2018-01-07 12:25:31 DOIF dif_Batteriewarnung cmd: 1
2018-01-07 12:25:31 DOIF dif_Batteriewarnung cmd_event: set_cmd_1
2018-01-07 12:25:31 DOIF dif_Batteriewarnung cmd_1
2018-01-07 12:25:31 DOIF dif_Batteriewarnung delayCounter: 2
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 12:45:22
Die geschweiften Klammern stimmen so auch nicht... Warum verwendest du überhaupt so viel perl? Das ist bei FHEM Kommandos nicht notwendig (und macht die Klammerung nicht einfacher)
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 12:50:34
 ;D ich bin nur auf das gestoßen, ich möchte wen der wert der Batterie von 3.3v unterschritten wird einfach eine Push nachricht via Pushbullet haben, aber ich glaube das ich etwas unfähig bin :/
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: maci am 07 Januar 2018, 13:12:41
Zitat von: mynameisfu am 07 Januar 2018, 12:50:34
;D ich bin nur auf das gestoßen, ich möchte wen der wert der Batterie von 3.3v unterschritten wird einfach eine Push nachricht via Pushbullet haben, aber ich glaube das ich etwas unfähig bin :/
Glaub ich nicht.

Ich hatte das Problem auch mit Pushbullet.
Bei mir kam es nur bis zu Webseite, aber am Smartphone nie angekommen.

Bin jetzt zu Pushover gewechselt, Kostet zwar einmalig ein paar Euro, aber dafür funktioniert es.
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 15:01:24
Probier's mal so ungefähr


([ESPEasy_ESP_Ella:batteryLevel] eq "low")
(set Push message  'Ella' 'Bitte Batterie tauschen')
DOELSEIF (..)

Wenn's nicht funktioniert bitte ein komplettes list des doifs (list <devicename> in der Kommandozeile,

Grüße,

Oli
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 18:03:11
hi das ist mir wirklich unangenehm aber wenn ich list <dif_Batteriewarnung> in die Komandozeile eingebe dan kommt nichts :/
der Push löst nicht automatisch aus sondern nur sen ich ihn mit set cmd1 auslöse. sorry für meine inkompetens.
lg Fu

defmod dif_Batteriewarnung DOIF ([ESPEasy_ESP_Ella:batteryLevel] eq "low")\
(set Push message  'Ella' 'Bitte Batterie tauschen')\
([ESPEasy_ESP_Mia:batteryLevel] eq "low")\
(set Push message  'Mia' 'Bitte Batterie tauschen')\
([ESPEasy_ESP_gast:batteryLevel] eq "low")\
(set Push message  'Gast' 'Bitte Batterie tauschen')\
([ESPEasy_ESP_bad:batteryLevel] eq "low")\
(set Push message  'Bad' 'Bitte Batterie tauschen')\
([ESPEasy_ESP_Schlafzimmer:batteryLevel] eq "low")\
(set Push message  'Schlafzimmer' 'Bitte Batterie tauschen')\
DOELSEIF (..)
attr dif_Batteriewarnung userattr delayCounter
attr dif_Batteriewarnung delayCounter 2
attr dif_Batteriewarnung do always
attr dif_Batteriewarnung notexist "novalue"
attr dif_Batteriewarnung userReadings delayCounter { AttrVal($name,"delayCounter",0);; }

setstate dif_Batteriewarnung cmd_1
setstate dif_Batteriewarnung 2018-01-07 01:57:07 Mi_Vacuum ok
setstate dif_Batteriewarnung 2018-01-07 17:49:11 cmd 1.9
setstate dif_Batteriewarnung 2018-01-07 17:49:11 cmd_event set_cmd_1
setstate dif_Batteriewarnung 2018-01-07 17:49:11 cmd_nr 1
setstate dif_Batteriewarnung 2018-01-07 17:49:11 cmd_seqnr 9
setstate dif_Batteriewarnung 2018-01-07 17:49:11 delayCounter 2
setstate dif_Batteriewarnung 2018-01-07 17:49:11 state cmd_1



ich hoffe das hilft irgendwie :D
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 19:14:28
du musst list dif_Batteriewarnung eingeben ;-)


und du musst dir wirklich mal die sehr umfangreiche DOIF-Doku in der commandref ansehen, sonst wird das nix...

Grüße,

Oli
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 20:32:45
wird erledigt :D wenn ich etwas zeit finde.


Internals:
   DEF        ([ESPEasy_ESP_Ella:batteryLevel] eq "low")
(set Push message  'Ella' 'Bitte Batterie tauschen')
([ESPEasy_ESP_Mia:batteryLevel] eq "low")
(set Push message  'Mia' 'Bitte Batterie tauschen')
([ESPEasy_ESP_gast:batteryLevel] eq "low")
(set Push message  'Gast' 'Bitte Batterie tauschen')
([ESPEasy_ESP_bad:batteryLevel] eq "low")
(set Push message  'Bad' 'Bitte Batterie tauschen')
([ESPEasy_ESP_Schlafzimmer:batteryLevel] eq "low")
(set Push message  'Schlafzimmer' 'Bitte Batterie tauschen')
DOELSEIF (..)
   NAME       dif_Batteriewarnung
   NR         1023
   NTFY_ORDER 50-dif_Batteriewarnung
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2018-01-07 20:20:05   Device          ESPEasy_ESP_Ella
     2018-01-07 01:57:07   Mi_Vacuum       ok
     2018-01-07 17:49:11   cmd             1.9
     2018-01-07 17:49:11   cmd_event       set_cmd_1
     2018-01-07 17:49:11   cmd_nr          1
     2018-01-07 17:49:11   cmd_seqnr       9
     2018-01-07 20:20:05   delayCounter    2
     2018-01-07 20:20:05   e_ESPEasy_ESP_Ella_batteryLevel 4.00
     2018-01-07 17:49:11   state           cmd_1
   Condition:
     0          ReadingValDoIf($hash,'ESPEasy_ESP_Ella','batteryLevel') eq "low"
     1          ..
   Devices:
     0           ESPEasy_ESP_Ella
     all         ESPEasy_ESP_Ella
   Do:
     0:
       0          set Push message  'Ella' 'Bitte Batterie tauschen'
       1          [ESPEasy_ESP_Mia:batteryLevel] eq "low"
       2          set Push message  'Mia' 'Bitte Batterie tauschen'
       3          [ESPEasy_ESP_gast:batteryLevel] eq "low"
       4          set Push message  'Gast' 'Bitte Batterie tauschen'
       5          [ESPEasy_ESP_bad:batteryLevel] eq "low"
       6          set Push message  'Bad' 'Bitte Batterie tauschen'
       7          [ESPEasy_ESP_Schlafzimmer:batteryLevel] eq "low"
       8          set Push message  'Schlafzimmer' 'Bitte Batterie tauschen'
     1:
       0
     2:
   Helper:
     event      absent
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev ESPEasy_ESP_Ella
     triggerEvents:
       absent
     triggerEventsState:
       state: absent
   Internals:
   Itimer:
   Readings:
     0           ESPEasy_ESP_Ella:batteryLevel
     all         ESPEasy_ESP_Ella:batteryLevel
   Regexp:
     0:
     1:
     All:
   State:
     State:
   Trigger:
Attributes:
   delayCounter 2
   do         always
   notexist   "novalue"
   userReadings delayCounter { AttrVal($name,"delayCounter",0); }
   userattr   delayCounter
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 07 Januar 2018, 23:00:59
ich habe es jetzt mal zum testen einfach mal so gemacht.

(["ESPEasy_ESP_Ella:batteryLevel"] < 3.5 ) (set Push message 'Ella' 'Bitte Batterie tauschen')

dadurch das es ein Paar viele Tage dauert ehe ich die batterie runter habe hab ich es mal mit dem unteren code zum testen gemacht, da habe ich aber das Problem das er permanent Push Narichten Versendet.


(["Terrasse"] .*ON ) (set Push message 'Ella' 'Bitte Batterie tauschen')
der push kommt also funktioniren

oder habe ich einen Denkfehler, aber wen zb die temperatur auf unter 3.3 geht dann Triggert er doch auch permanent oder?

LG Fu
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: KernSani am 07 Januar 2018, 23:25:45
du kannst beim auslösendem Device das Attribut event-on-change-reading setzen, dann wird nur getriggert, wenn es sich ändert (also im Batterie-Fall - wenn er einmal auf low ist, bleibt er da wohl auch und es werden keine neuen Events generiert)
Oder: Du nimmst das "do always" im DOIF raus, dann wird das DOIF auch nur ausgeführt, wenn zwischendrin eine Änderung stattgefunden hat
Titel: Antw:Monatliche Benachrichtigung per Pushbullet
Beitrag von: mynameisfu am 08 Januar 2018, 20:35:44
hi er sendet mir jetzt nur noch 3 Nachrichten pro Auslöser :D