Volkszähler und MQTT

steffen-8472-

Benutzer
Mitglied seit
06. Feb 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich betreibe aktuell einen USB-Lesekopf der mir aktuelle Daten meines Stromzählers ausliest. Dies geschieht in einem Docker Container in ioBroker. Leider hat das ganze einen entscheidenden Nachteil. Wenn die Synology aus welchem Grund auch immer neu gestartet wird, startet der ioBroker nicht solange der Lesekopf keine entsprechenden Rechte zugewiesen bekommen hat. Ein zweiter Nachteil ist dass die Daten in nur einer Hausautomation zur Verfügung stehen.

Daher wollte ich das ganze von der Struktur umstellen: der Lesekopf soll separat ausgelesen und die Daten sollen per MQTT gepublished werden.

Nun die Frage aller Fragen: geht das ? und falls ja, wie ? Darf auch gerne ein Docker Image sein 😊

Steffen
 

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
4.537
Punkte für Reaktionen
1.813
Punkte
214
Moin,

vorab: Ich habe weder von ioBroker noch dem Volkszähler wirklich Ahnung da ich Home Assistant nutze. :)

Was das separat auslesen betrifft: Was für einen Lesekopf benutzt Du denn? Irgend so eine fertige kommerzielle Lösung die per Cloud (oder so) funktioniert, oder die in solchen Fällen eher übliche Methode per Lesekopf mit ESP32 oder ESP8266 und Tasmota Firmware?

Da ich ioBroker nicht nutze kann ich auch nicht ganz nachvollziehen welchen Weg die Daten jetzt bei Dir nehmen. Normal wäre eigentlich das der Lesekopf per Tasmota und MQTT die Daten an einen MQTT Broker sendet. Von dem können dann die MQTT-Daten per MQTT Client abgerufen werden. Wobei es dabei keine Rolle spielt welche Anwendung, oder welches Smarthome-System, die Daten dann abruft, solange diese bzw. dies ein MQTT Client ist, bzw. der darunter läuft.

Wo und warum dann bei Dir noch Volkszähler ins Spiel kommt und warum ioBroker nur startet wenn Du dem Lesekopf nach einen Reboot erneut die entsprechenden Rechte zuweist, kann ich leider nicht nachvollziehen. Dazu müsstest Du dann erst einmal ein wenig mehr schreiben zu dem wie und warum. :)

Wie erwähnt wäre der eher normale Weg: Lesekopf mit Tasmota --> Tasmota sendet die MQTT-Daten an einen MQTT Broker --> Von dort kann ein beliebiger MQTT Client die Daten abrufen und entsprechend anzeigen, auswerten und weiter verarbeiten. Im Fall von Home Assistant spielt es dann auch keine Rolle wo der MQTT Broker läuft. Das kann entweder direkt unter Home Assistant als Addon sein, oder halt auch extern z.B. auf dem Synology NAS per z.B. Eclipse Mosquitto.
Tasmota_Zähler.pngTasmota_Zähler_MQTT.pngTasmota_Zähler_HA.png

Soweit ich weiß kann der ioBroker doch sowohl MQTT Broker als auch MQTT Client sein. Daher sollte es doch funktionieren wenn Du irgendwo einen MQTT Broker laufen lässt und von diesem dann per ioBroker MQTT Client die Daten abrufst. Aber wie und wann bei Dir Volkszähler ins Spiel kommt weiß ich halt nicht, aber bei dem wird m.W. doch per vzlogger.conf (oder so) auch der MQTT Broker hinterlegt, zu dem die Daten dann gesendet werden sollen.

VG Jim
 

steffen-8472-

Benutzer
Mitglied seit
06. Feb 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hi Jim,

danke für deine Antwort :)

Sorry, wenn ich etwas konfus war. Der ioBroker, Home Assistant oder andere haben mit meinem Fall erstmal nichts zu tun.

Tatsächlich habe ich solch eine Lesekopf der mittels USB Kabel direkt mit der Synology verbunden ist.
Lesekopf.jpg
Ich denke Tasmota kann ich nicht aufspielen. Daher war ja mein Gedanke/Frage, wie ich die gelesenen Werte zum MQTT publishen kann.
 

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
4.537
Punkte für Reaktionen
1.813
Punkte
214
OK das war in #1 dann tatsächlich etwas "konfus"/ungenau beschrieben. :) Du hast geschrieben
ich betreibe aktuell einen USB-Lesekopf der mir aktuelle Daten meines Stromzählers ausliest. Dies geschieht in einem Docker Container in ioBroker.
und möchtest jetzt das.
wie ich die gelesenen Werte zum MQTT publishen kann.
Lt. dem Foto hast Du einen SA0013 Lesekopf von Bayha. Dieser ist hier beschrieben: https://bayha-electronics.de/wiki/usb-lese-schreibkopf/
Wenn man sich dort dann die von Bayha verlinkten Tutorials anschaut - z.B. das zur Einbindung unter ioBroker - ist dort beschrieben das sich auf dem Lesekopf bereits Tasmota befindet und Du somit - wie ich schon geschrieben hatte - die Daten des Lesekopfes an jeden MQTT Broker senden und dann von dort mit jedem MQTT Client abrufen kannst.

Tasmota_MQTT.png

Bildquelle

Mich wundert jetzt allerdings das Du schreibst das Du Tasmota nicht aufspielen kannst. Du musst den Lesekopf doch auch mal erstmalig eingerichtet haben und solltest dann eigentlich wissen wie Du das gemacht hast und welche Firmware und Einstellmöglichkeiten es bei dem Lesekopf gibt. :unsure:

Daher kann ich hier erst einmal nichts weiter schreiben, da (mir) nicht klar ist was Du da genau hast, bzw. gemacht hast. Das Gewünschte, sprich "gelesenen Werte zum MQTT publishen" kannst Du halt wie bereits beschieben machen. Da Du den USB-Lesekopf ja bereits jetzt an die DS angeschlossen und die Daten an einen Docker Container (ioBroker) lieferst, sollte das Thema USB-Treiber wieder unter DSM7 einbinden ja auch schon abgehakt sein und bei Dir funktionieren.

VG Jim
 
Zuletzt bearbeitet:

steffen-8472-

Benutzer
Mitglied seit
06. Feb 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Wir kommen meinem Problem näher 😊

Wenn ich den USB Lesekopf im ioBroker betreibe, dann ist die USB Schnittstelle exklusiv für den ioBroker reserviert. Daher der Gedanke die Daten separat auszulesen und mittels MQTT zu Publishen 😊
 

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
4.537
Punkte für Reaktionen
1.813
Punkte
214
Hatte ich ja bereits gepostet.:) Auf der DS einen MQTT Broker laufen lassen - z.B. Eclipse Mosquitto - den USB Lesekopf dort einbinden bzw. durchreichen und dann die MQTT Daten des Lesekopfes dahin senden lassen. Dann kannst Du von jedem MQTT Client - incl. IoBroker - aus die Daten von dem Eclipse Mosquitto abrufen.

Welchen MQTT Broker Du dann wie auf der DS installierst und wie Du das dann mit der Einbindung des USB Lesekopfes machst (Stichwort: Treiber für DSM7) musst Du Dir dann überlegen und dazu Dich mal ein wenig einlesen. Wenn Du ein DS Plus-Modell hättest könntest Du sogar z.B. theoretisch eine VM mit Home Assistant installieren und darunter dann einen MQTT Broker. Auch von diesen könntest Du dann die MQTT Daten per ioBroker MQTT Client abrufen. Oder auch gleich den ioBroker kompl. durch Home Assistant ersetzen. :LOL:

BTW: In einem anderen Beitrag hier von Dir hast Du geschrieben das Du auch noch einen Raspi hast. Auch damit und darüber wären dann zusätzlich noch alle möglichen Spielarten möglich.

VG Jim
 

steffen-8472-

Benutzer
Mitglied seit
06. Feb 2023
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hatte ich ja bereits gepostet.:) Auf der DS einen MQTT Broker laufen lassen - z.B. Eclipse Mosquitto - den USB Lesekopf dort einbinden bzw. durchreichen und dann die MQTT Daten des Lesekopfes dahin senden lassen. Dann kannst Du von jedem MQTT Client - incl. IoBroker - aus die Daten von dem Eclipse Mosquitto abrufen.

Genau das habe ich ja vor.

Eclipse Mosquitto läuft (nativ) - check :)
USB Treiber sind da - check :)

Wie bekomm ich denn den USB Lesekopf in den Mosquitto ???

Eine Alternative wäre einen zweiten ioBroker laufen zu lassen, nur des MQTT's Willen :) aber ob das von den Ressourcen her gesehen die Beste Lösung kann bezweifelt werden :-D

Aber immerhin wäre somit gewährleistet, dass der Haupt-ioBroker der unser Haus steuert, im Falle eines Reboots auch wieder Rebooted, und nicht auf bestimmte händische Prozesse wartet...
 

Jim_OS

Benutzer
Sehr erfahren
Mitglied seit
05. Nov 2015
Beiträge
4.537
Punkte für Reaktionen
1.813
Punkte
214
Auf der DS einen MQTT Broker laufen lassen - z.B. Eclipse Mosquitto - den USB Lesekopf dort einbinden bzw. durchreichen und dann die MQTT Daten des Lesekopfes dahin senden lassen.
Das hatte ich etwas missverständlich geschrieben. Sorry. :) Ich meinte das der an die DS angeschlossene USB Lesekopf grundsätzlich funktioniert, sprich dessen WebGUI ansprechbar ist.

Der USB Lesekopf muss nicht über den Eclipse Mosquitto "gesteuert" werden, sondern er muss lediglich dahin seine Daten senden. Leider bist Du hier nicht darauf eingegangen was auf dem Lesekopf für eine Firmware installiert ist und ob es sich dabei dann - wie von Bayha beschrieben - um Tasmota handelt. Auch hast Du hier dann nichts geschrieben wie Du Tasmota bzgl. MQTT dann eingerichtet hast.

Der USB Lesekopf ist lediglich ein MQTT Client der seine Daten dann an einen MQTT Broker (hier Eclipse Mosquitto) sendet. Diese Daten können dann von jedem im LAN vorhandenen MQTT Client auch wieder abgerufen werden. D.h. im einfachsten Fall läuft auf der DS der Eclipse Mosquitto und im Tasmota WebGUI (siehe Screenshot in #4) brauchst Du als Host nur noch die IP des Eclipse Mosquitto eintragen. Oder anderes gesagt: Wenn ich hier meinen Wifi Lesekopf mit auf dem auf der DS installierten Eclipse Mosquitto benutzen wollte, braucht ich diesen auch nicht irgendwie bei dem Eclipse Mosquitto "einbinden", sondern ich muss im WebGUI von Tasmota nur die IP des Eclipse Mosquitto eintragen, sodass der Wifi Lesekopf dahin seine Daten sendet.

Wenn ich den Eclipse Mosquitto unter der DS nutzen würde müsste ich halt nur im Tasmota WebGUI meines Lesekopfes die IP des Eclipse Mosquitto als Host eintragen und unter HA dann per HA MQTT Client Integration die Daten vom Eclipse Mosquitto auf der DS abrufen.

Bsp.: Hier hätte der Eclipse Mosquitto auf der DS die IP 192.168.111.100 und ich könnte unter HA über den Standard-Port 1883 dann alle MQTT Daten abrufen die der Eclipse Mosquitto von irgendwelchen MQTT Clients - incl. dem Lesekopf - empfängt.

HA_MQTT_Client.png
Wie Du das am Ende dann bei Dir mit dem ioBroker, dem Volkszähler den Du ja auch noch erwähnt hat, oder whatever umsetzt kann ich Dir nicht sagen da ich wie gesagt HA benutze.

Anders wäre es z.B. wenn ich einen Zigbee Dongle per USB an die DS anschließe und diesen dann in einem Docker Container oder einer VM nutzen wollte. Damit das funktioniert müssen für den USB Zigbee Dongle bei einem Betrieb in einem Docker Container Treiber geladen werden - in dem Fall unter DSM. Wenn ich den USB Zigbee Dongle unter einer VM nutzen wollte braucht ich keine Treiber unter DSM, sondern die Treiber werden dann unter der VM vom dem dort installierten System (z.B. HA) zur Verfügung gestellt.

VG Jim
 
Zuletzt bearbeitet:


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!