Monitor-Werte vom Host per mqtt in fhem anzeigen

Begonnen von cc13, 03 Juli 2019, 17:06:04

Vorheriges Thema - Nächstes Thema

cc13

Hallo,

ich habe fhem auf einer DietPi Installation laufen. Nachdem dieser Tage die SD-Karte defekt war und das Restore (.img-Datei) vom ganzen System natürlich nicht funktionierte, habe ich es frisch aufgesetzt. Was ich allerdings noch hatte, war ein Backup vom fhem-Ordner.

Dieses konnte ich zurückspielen und soweit läuft alles wieder. Leider fehlt mir etwas entscheidendes: Beim alten System (gleiche Hardware) hat der darunterliegende DietPi verschiedene Systemwerte per mqtt an das MQTT2_DEVICE in fhem published.

Auszug aus der Readingslist:


NetMQTTpm791:system/fhem/connection/status:.* status
NetMQTTpm791:/DietPi/cpu0_freq:.* cpu0_freq
NetMQTTpm791:/DietPi/cpu0_freq:.* cpu0_freq
NetMQTTpm791:/DietPi/cpu_freq_stat:.* cpu_freq_stat
NetMQTTpm791:/DietPi/cpu_freq_stat:.* cpu_freq_stat
NetMQTTpm791:/DietPi/cpu0_freq_stat:.* cpu0_freq_stat
NetMQTTpm791:/DietPi/cpu0_freq_stat:.* cpu0_freq_stat
NetMQTTpm791:/DietPi/cpu_freq:.* cpu_freq
NetMQTTpm791:/DietPi/cpu_freq:.* cpu_freq
NetMQTTpm791:/DietPi/cpu_temp_avg:.* cpu_temp_avg
NetMQTTpm791:/DietPi/cpu_temp_avg:.* cpu_temp_avg
NetMQTTpm791:/DietPi/fhemuptime:.* fhemuptime
NetMQTTpm791:/DietPi/fhemuptime:.* fhemuptime
NetMQTTpm791:/DietPi/ram:.* ram
NetMQTTpm791:/DietPi/ram:.* ram
NetMQTTpm791:/DietPi/cpu_idle_stat:.* cpu_idle_stat
NetMQTTpm791:/DietPi/cpu_idle_stat:.* cpu_idle_stat
NetMQTTpm791:/DietPi/swap_used_stat:.* swap_used_stat
NetMQTTpm791:/DietPi/swap_used_stat:.* swap_used_stat
NetMQTTpm791:/DietPi/uptime:.* uptime
NetMQTTpm791:/DietPi/uptime:.* uptime
NetMQTTpm791:/DietPi/fhemstarttime_text:.* fhemstarttime_text
NetMQTTpm791:/DietPi/fhemstarttime_text:.* fhemstarttime_text
NetMQTTpm791:/DietPi/fhemuptime_text:.* fhemuptime_text
NetMQTTpm791:/DietPi/fhemuptime_text:.* fhemuptime_text


Leider hat mir weder eine Suche im Internet noch in meinem fhem Backup dabei geholfen, das wieder zum Laufen zu bringen.

Kann mir bitte jemand einen Tipp geben, was ich damals gemacht habe, um das zum laufen zu bekommen? Wenn gewollt, in der zurückgespielten fhem-Umgebung ist das mqtt-device noch als RAW definition vorhanden. Dort sehe ich allerdings nicht, wie die Daten vom DietPi kommen.

Beta-User

Hmm,
das scheint mir kein DietPi-spezifisches Thema zu sein.

Die Client-ID "NetMQTTpm791" deutet auf https://metacpan.org/pod/distribution/AnyEvent-MQTT/bin/anyevent-mqtt-pub hin, anders gesagt: vermutlich hattest du ein script laufen, das die Ausgabe auf MQTT umgeleitet hat:
  # messages one per line on stdin echo message | anyevent-mqtt-pub [options] topicDas script selbst kann alles mögliche gewesen sein; unklar ist mir aber, wieso die Einträge je doppelt drin sind.

(OT: Dieser erste Querstrich im topictree kann mit manchen Clients Probleme verursachen => vielleicht zukünftig darauf verzichten, solche "dann mach ich mal" Videos 1:1 zu kopieren)

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

cc13

Hallo Beta-User,

DietPi hatte ich erwähnt, um Fragen vorzubeugen. ;-)

An die Seite mit deinem Link kann ich mich nicht erinnern. Du liegst sicher richtig mit der Vermutung, dass ein Script die Ausgabe an MQTT gepusht hat. Muss ich wohl weiter suchen, welches das war.

cc13

#3
Ich habe noch etwas weiter gesucht: Mein DietPi wird parallel auch per SYSMON Module in FHEM angezeigt. Dort sind mir die Attribute:


mqttPublish
mqttSubcribe


aufgefallen. Danach gegoogelt finde ich ein Module "MQTT_GENERIC_BRIDGE" und im fhem-log erscheint dieses als nicht definiert. Wenn ich jetzt ein:


define mqttGenericBridge MQTT_GENERIC_BRIDGE


probiere, erscheint folgendes im log-File:


2019.07.08 13:16:58 1: reload: Error:Modul 00_MQTT deactivated:
Attempt to reload Net/MQTT/Message.pm aborted.
Compilation failed in require at ./FHEM/00_MQTT.pm line 80.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 80.

2019.07.08 13:16:58 0: Attempt to reload Net/MQTT/Message.pm aborted.
Compilation failed in require at ./FHEM/00_MQTT.pm line 80.
BEGIN failed--compilation aborted at ./FHEM/00_MQTT.pm line 80.

2019.07.08 13:16:58 1: reload: Error:Modul 10_MQTT_GENERIC_BRIDGE deactivated:
Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 456.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 495.

2019.07.08 13:16:58 0: Can't continue after import errors at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 456.
BEGIN failed--compilation aborted at ./FHEM/10_MQTT_GENERIC_BRIDGE.pm line 495.


Ich muss dazu sagen, dass ich ein paar MQTT2_DEVICE laufen habe. Keine Ahnung, ob das bei der Fehlersuche eine Rolle spielt.

PS: https://forum.fhem.de/index.php/topic,90547.msg830328.html#msg830328 habe ich ausgeführt.

PPS: MQTT_GENERIC_BRIDGE konnte jetzt angelegt werden. Hatte den fhem Neustart vergessen.

Beta-User

1. Es wäre arger Zufall, wenn das was miteinander zu tun hätte (die CID "NetMQTTpm791" ist m.E. "speziell").

2. Wenn du die Daten per Sysmon reinbekommst, ist doch alles gut, dann brauchst du nicht nach dem Script suchen, sondern kannst einfach das (dann unnötige, oder?) MQTT2_DEVICE löschen.

3. Wenn (?!?) du MQTT_GENERIC_BRIDGE - aus welchen Gründen auch immer (aus anderen als den hier besprochenen) nutzen willst: Zu dem fehlenden Perl-Modul findest du (hoffentlich) im Artikel "MQTT" Hinweise dazu, dass das zum einen aus historischen Gründen erforderlich ist und welches das ist. (OK, zu langsam... Jetzt hast du vermutlich mehr installiert, als du brauchst: libmodule-pluggable-perl hätte wohl gereicht).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files