[Gelöst] Statusänderung von UWZ soll Info per Telebot senden

Begonnen von Gear, 30 April 2018, 10:18:22

Vorheriges Thema - Nächstes Thema

Gear

#15
@Dia81
Ist dein Problem noch besändig?
Ich müsste schauen ob ich heute Abend dran denke, dann könnnte ich mein Notify posten.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Dia81

Zitat von: Gear am 07 März 2019, 06:48:19
@Dia81
Ist dein Problem noch besändig?
Ich müsste schauen ob ich heute Abend dran denke, dann könnnte ich mein Totify posten.

Ungefähr 1 1/2 Jahre zu spät... aber ja das Problem ist weiterhin nicht gelöst ;)

Gear

Hatte nicht mitbekommen, dass da noch was kam, sry...

Also ich habe das so, dass ich immer wenn sich etwas an den UWZ Daten ändert, eine Nachricht bekomme, so willst du das auch haben oder?

Lass mich die Tage mal schauen, dann kann ich meine Lösung dazu posten, wenn Interesse besteht. =)


Beste Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Gear

Guten Abend Dia81, also ich habe es über ein Notify gelöst, ist evtl nicht schön geschrieben, aber es waren meine ersten Schritte in Perl.

Mein UWZ Device heißt: OUT.Unwetterwarnung
Mein Telegram Bot heißt: TeleBot

Bitte so ändern, dass es für dich passt.

Im eigentlichen liest es nur die Werte aus, also WarnCount, Level und die Farbe und vergleicht die mit zu vor gesetzten Readings, ob diese ungleich sind, wenn ja, wird gepushed via Telegram.
Es werden die Anzahl der Warnungen angegeben und die Farbe, anschließend werden dann die Einzelheiten aufgelistet.

Läuft bei mir seit damals ohne Probleme.

Viel Spaß damit! =)

define Notify.Unwetterwarnung notify OUT.Unwetterwarnung:lastConnection:..*.values.captured.in.*.*.s\
{\
my $WarnCount = ReadingsVal($NAME,'WarnCount',0);;\
my $WarnLevel = ReadingsVal($NAME,'WarnUWZLevel',0);;\
my $WarnLevelColor = ReadingsVal($NAME,'WarnUWZLevel_Color',0);;\
\
my $LastWarnCount = ReadingsVal($NAME,'LastWarnCount',0);;\
my $LastWarnLevel = ReadingsVal($NAME,'LastWarnUWZLevel',0);;\
my $LastWarnLevelColor = ReadingsVal($NAME,'LastWarnUWZLevel_Color',0);;\
\
\
if(($WarnCount ne $LastWarnCount) or ($WarnLevel ne $LastWarnLevel) or ($WarnLevelColor ne $LastWarnLevelColor))\
{\
  fhem("setreading $NAME LastWarnCount $WarnCount");;\
  fhem("setreading $NAME LastWarnUWZLevel $WarnLevel");;\
  fhem("setreading $NAME LastWarnUWZLevel_Color $WarnLevelColor");;\
  \
  my $WarnMSG = "Die Aktuelle Unwetterwarnstufe ist ". ucfirst($WarnLevelColor) .".\nAktuelle Anzahl der Warnungen: ". $WarnCount .".";;\
  \
  for(my $i = 0;; $i < $WarnCount;; $i++)\
  {\
   $WarnMSG .= "\n\nWarnung ". ($i + 1) .":\n". ReadingsVal($NAME,'Warn_'. $i .'_LongText',0);;\
  }\
  \
  fhem("set TeleBot msg $WarnMSG");;\
}\
}



Beste Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <