FR24 feeder status per mqtt

Begonnen von betateilchen, 31 März 2025, 14:53:29

Vorheriges Thema - Nächstes Thema

betateilchen

Auf meinem RaspberryPi, der als fr24feeder läuft, lasse ich per cronjob einmal pro Minute folgendes Skript laufen:

#!/usr/bin/perl
use JSON;
use Net::MQTT::Simple;

my @r = split(/\n/,qx(fr24feed-status));
my %jh;

for (@r) {
  my ($name,$val) = split(/:/,$_,2);
  my @n = split(/ /,$name);
  $name = $n[-1];
  $val =~ s/\..*//;
  print "$name $val\n";
  $val =~ s/^\s+|\s+$//g;
  $jh{$name} = $val;
}

my $json = encode_json \%jh;

$ENV{MQTT_SIMPLE_ALLOW_INSECURE_LOGIN} = 1;
my $mqtt = Net::MQTT::Simple->new('<mqttServer>:1883');
   $mqtt->login('userName','passWord');
$mqtt->publish("fr24",$json);
$mqtt->disconnect();

Damit wird der aktuelle Status im topic "fr24" als json verschickt.

In FHEM kann man die Werte dann in einem MQTT2_DEVICE in readings übertragen.
Im einfachsten Fall so:

defmod mqtt_fr24 MQTT2_DEVICE
attr mqtt_fr24 readingList fr24:.* {json2nameValue(lc($EVENT))}


setstate mqtt_fr24 2025-03-31 14:50:01 ac 2
setstate mqtt_fr24 2025-03-31 14:50:01 link connected [udp]
setstate mqtt_fr24 2025-03-31 14:50:01 mlat not running
setstate mqtt_fr24 2025-03-31 14:50:01 process running
setstate mqtt_fr24 2025-03-31 14:50:01 radar t-edhi60
setstate mqtt_fr24 2025-03-31 14:50:01 receiver connected (134378 msgs/0 sync)
setstate mqtt_fr24 2025-03-31 14:50:01 timestamp 2025-03-31 12:49:53

Wozu das Ganze? In erster Linie, um mitzubekommen, wenn der Feeder - aus welchen Gründen auch immer - mal keine Daten mehr liefert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!