NEWS
Adapter "smartmeter"
-
Installier iobroker und den Smartmeter Adapter auf dem Raspi im Keller und mache ihn zum Slave.
So habe ich es auch.
Alles weitere machen wir dann -
@rewenode sagte in Adapter "smartmeter":
Was mir sonst noch einfällt:
- Am (Keller)Raspi seriell to Lan
Da habe ich aber keine Erfahrung. Und die daten müssten dann irgendwie in den Smartmeter-Adapter
Versuche mal diesen Weg. Der Smartmeter Adapter hat einen "TCP Eingang". Also mit ser2net ist das einen Versuch wert. Ich hatte das mal testweise an einem Orange Pi mit Homematic drauf im Einsatz für Zigbee. In meiner speziellen Konstellation wurde es allerdings instabil und hat sich immer nach ein paar Tagen aufgehängt.
Aber ich habe schon von anderen gelesen, bei denen es funktioniert.
Ich habe es letztlich mit speziellen seriell <-> Ethernet Wandlern gelöst (stabil seit Jahren, sowohl beim Smartmeter, Zigbee und anderen Einsätzen). Die gibt es für LAN, WLAN als Fertiggerät und als Modul. USRIOT und mittlerweile auch Wavershare.
Ich habe einiges davon in einem Guide erläutert https://forum.iobroker.net/topic/36936/guide-zwangsumstellung-auf-smartmeter-freut-euch-drauf?_=1676783193077 Viel Erfolg. - Am (Keller)Raspi seriell to Lan
-
@klassisch sagte in Adapter "smartmeter":
Versuche mal diesen Weg. Der Smartmeter Adapter hat einen "TCP Eingang". Also mit ser2net ist das einen Versuch wert. Ich hatte das mal testweise an einem Orange Pi mit Homematic drauf im Einsatz für Zigbee. In meiner speziellen Konstellation wurde es allerdings instabil und hat sich immer nach ein paar Tagen aufgehängt.
Danke für den Tip. Bin beim Lesen schon bei socat hängengeblieben. Werde beide testen und berichten. In der Smartmeterkonstellation würde es mich prinzipiell auch nicht stören, den Dienst jede Nacht neu zu starten.
In dem Fall müßte ich ja den Umweg über MQTT eigentlich gar nicht machen.@haselchen Ja, wenn nichts geht, ist es einen Versuch wert.
Aber wie gesagt, ist nur ein Raspi 1 und ich habe da noch einen Postfix-Docker-Container am laufen.Danke schon mal für die Tips.
Gruß und schönen Sonntag
Reiner -
@rewenode ob socat tut hängt davon ab was dein Zähler macht und so. Wenn es einer ist der einfach regelmäßig die Daten ausgibt dann kein Problem. Wenn es aber d0 als Protokoll mit seriell request/response und baud rate Änderung ist dann ist sogar raus.
Wenn der raspi daneben steht warum dann nicht wirklich. Einfach iobroker Slave drauf und fertig? Dann direkt anschließen. Nur nen ttl zu usb wandler brauchst dann noch oder so.
-
@apollon77 sagte in Adapter "smartmeter":
Wenn es aber d0 als Protokoll mit seriell request/response und baud rate Änderung ist dann ist sogar raus.
Laut Handbuch
6.1 Aufbau der Datentelegramme
Telegramm Mode (D:) Baudrate: Byte-Format:
nach DIN EN 625056-21 9600 Baud (Z=5) (7,even,1)2*DO
Info nach EN50470-1 10.000 Imp./kWh
MSB mit detaillierten Messwerten nach EN 625056-21Beide unidirektional. Also kein request/response ? Oder interpretiere ich das falsch?
Die DIN's finde ich nicht so auf die Schnelle jedenfalls nicht kostenlos;-)
Dafür sind aber etliche Demodatensätze zu finden.
Also mach ich mich dann mal in den Keller, klöppel den TTL Lesekopf an den Raspi und versuche mal sinnvolle Daten zu bekommen.Werde berichten
Gruß
Reiner -
@rewenode sagte in Adapter "smartmeter":
Die DIN's finde ich nicht so auf die Schnelle j
die erste ist SML, die zweite sind Impulse, also nichts für Smartmeter!
-
@rewenode sagte in Adapter "smartmeter":
Habe einen eBZ DD3
welchen?
die weiteren Kennungen sind entscheidend!
SMZ1 hat SML, der ODZ1 arbeitet mit D0 -
@homoran sagte in Adapter "smartmeter":
SMZ1 hat SML, der ODZ1 arbeitet mit D0
ODZ1
@apollon77 Habe diesbezüglich nochmal eine Nachfrage (falls ich nicht zu sehr nerve).
Da meine Produktivumgebung recht groß ist, will ich da kein Risiko eingeben was die Umstellung Master-Slave angeht.Ausgangslage:
-
ioB im Docker Container auf einem Rock4.
Alle Instanzen/node.js/npm auf aktuellem Stand.
Läuft seit Jahren perfekt -
Raspi 1 im Keller mit Postfix im Docker Container
Werkelt i.d.R. so vor sich hin:
top - 09:34:37 up 104 days, 18:12, 1 user, load average: 0.07, 0.07, 0.01 Tasks: 94 total, 1 running, 93 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.3 us, 1.6 sy, 0.0 ni, 96.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 429.5 total, 90.7 free, 67.6 used, 271.2 buff/cache MiB Swap: 100.0 total, 99.5 free, 0.5 used. 308.7 avail Mem
Was ich vorhabe:
a. ioB auf dem Rock64 soll zum Master werden. Alle derzeitigen Instanzen sollen auf dem Master verbleiben
b. auf Raspi im Keller soll ein neuer Slave hinzukommen.
- als Docker-Container.
- Darin nur eine Instanz - Smartmeter
Port durchreichen sollte ja nicht viel anders gehen als im Docker auf dem Master
Fragen:
- Kann ich den derzeitigen ioB so migrieren, dass alle Instanzen ohne Änderungen/Einschränkungen weiter im Master laufen?
- Läuft der Master ohne Einschränkungen weiter, wenn der slave abstürzt oder nicht erreichbar ist? Dass dann die Daten vom Smartmeter fehlen ist klar.
- Kann der slave temporär oder auf Dauer deaktiviert werden, ohne den master jedesmal wieder als Einzelsystem migrieren zu müssen?
Gruß und danke an euch
Reiner -
-
@rewenode sagte in Adapter "smartmeter":
Läuft der Master ohne Einschränkungen weiter, wenn der slave abstürzt oder nicht erreichbar ist? Dass dann die Daten vom Smartmeter fehlen ist klar.
Kann der slave temporär oder auf Dauer deaktiviert werden, ohne den master jedesmal wieder als Einzelsystem migrieren zu müssen?Ich hab eine ähnliche Konfiguration (iob auf proxmox container und raspi-slave für das smartmeter).
Zu 2. Frage: Wenn ich den Raspi mal runterfahre z.B. wg nodes update dann werden die Instanzen im Master als inaktiv angezeigt, alles läuft weiter stabil
Zu 3. Frage: Klar geht das , siehe Frage 2, du kannst auch die Instanzen beliebig hin und her schieben zwischen Master und Slave, also z.B. den Smartmeter-Adapter auf den Master ziehen und danach den Slave deaktivieren. -
@amg_666 sagte in Adapter "smartmeter":
Wenn ich den Raspi mal runterfahre z.B. wg nodes update dann werden die Instanzen im Master als inaktiv angezeigt, alles läuft weiter stabil
Mit im Master als inaktiv angezeigt meinst du die Instanzen auf dem slave denke ich mal?
Danke, das beruhigt mich schonmal.
-
@rewenode sagte in Adapter "smartmeter":
Instanzen auf dem slave denke ich mal?
ja klar, wenns die Instanzen auf dem Master wären, wäre das sub-optimal
Ich hab den Raspi jetzt mal kurz gestoppt und das sieht dann so aus:
Slave läuft:
Slave ist offline:
und wenn ich den wieder starte wirds wieder grün... -
@amg_666 Danke für deine Mühe!
Dann werde ich heute Nacht mal das komplette gemountete /opt/iobroker sichern und dann gehts los.
Ist bei mir nicht ganz so trivial, weil der ioBroker bei mir mit redis läuft, das ebenfalls in einem eigenen Container werkelt. -
@amg_666 sagte in Adapter "smartmeter":
Ich hab eine ähnliche Konfiguration (iob auf proxmox container und raspi-slave für das smartmeter).
das ist das Gegenteil!
@rewenode sagte in Adapter "smartmeter":
auf Raspi im Keller soll ein neuer Slave hinzukommen.
als Docker-Container.
Darin nur eine Instanz - Smartmeterdu willst wirklich auf einem Pi1, das schon einige Klimmzüge bedarf um dort iob zu installieren, noch zusätzlich einen Docker installieren?
Außerdem lief da ja beteits noch mehr. -
@homoran sagte in Adapter "smartmeter":
du willst wirklich auf einem Pi1, das schon einige Klimmzüge bedarf um dort iob zu installieren, noch zusätzlich einen Docker installieren?
Außerdem lief da ja beteits noch mehr.Schwachbrüstig ja. Ob er für die eine Instanz noch brauchbar ist will ich rausfinden.
Generell habe ich habe vor Jahren einen Pi 3 mit ioB rausgeschmissen, weil der mit seinem 1GB alle paar Tage verabschiedet hat.
Außerdem läuft da ja schon ein docker-container (mit Postfix) drauf und der scheint nicht annähernd ausgelastet.
Prinzipiell (und das bitte nur als meine Erfahrung/Meinung interpretieren) würde ich sowas nicht mehr ohne Docker machen. Wer einmal unter Docker mit iob/redis/influx/grafana u.a. eine Maschine gewechselt hat wird docker unbedingt zu schätzen wissen. Da kopierst du dann nur eine kleine yml und gehst Kaffee trinken Und da spielt es noch nicht mal eine Rolle ob dein Zielsystem Linux/Mac zur Not auch Windows ist.Ganz allgemein habe ich festgestellt, dass Docker-container kaum mehr Leistung benötigen als native Installationen im Gegensatz zu virtuellen Maschinen.
-
@rewenode sagte in Adapter "smartmeter":
Generell habe ich habe vor Jahren einen Pi 3 mit ioB rausgeschmissen, weil der mit seinem 1GB alle paar Tage verabschiedet hat.
und der Pi1 hat bestenfalls die Hälfte, wenn er älter ist sogar nur 256MB.
Schwierig wird es auch schon mit dem nodejs, da der Pi1 ein ARM v6 ist, für den es von nodesource keine fertige Version mehr gibt.
-
@homoran sagte in Adapter "smartmeter":
und der Pi1 hat bestenfalls die Hälfte, wenn er älter ist sogar nur 256MB.
Ja, ich werde sehen. Zur Not muß da halt wenigstens ein Pi3+ ran. Auch wenn ich Dinge nicht gern wegwerfe, wenn sie es noch irgendwie tun
-
@rewenode sagte in Adapter "smartmeter":
ich werde sehen
ich habe vor etwa einem Jahr (oder länger) ein ioBroker auf einem Pi1 installiert.
Da kommt es auf jedes freie Bit an.@rewenode sagte in Adapter "smartmeter":
Zur Not muß da halt wenigstens ein Pi3+ ran.
wobei + oder nicht irrelevant ist.
Aber der reicht auf jeden Fall für ioBroker + smartmeter.Ich habe bisher einen Pi2 im Schaltschrank gehabt, mit noch ein paar weiteten Instanzen. Ohne Probleme.
-
@homoran Kurzer Zwischenstand.
Also mit deinen Argumenten insbesondere der sterbenden ARM V6 Architektur hast du absolut recht.Ich habe mir ja in den Kopf gesetzt einen Raspi 1 der da direkt neben dem Zähler steht mit zu nutzen. Und da kamen mehrere Möglichkeiten in Frage.
-
Meine bevorzugte Lösung ioB als Slave im Dockercontainer
Scheitert daran, dass die von mit bevorzugte Lösung (buanet/iobroker) ARM v6 nicht mehr unterstützt.
Nun habe ich zwar die Möglichkeiten, ein eigenes Base-Image (z.B. das sehr schlanke alpine) einzusetzen, aber da müßte ich vieles umstricken und auf Architektur-Kompatibilität testen. Vor Jahren als das buanet-Image ARMv8 noch nicht unterstützt hat, habe ich das für meinen Rock64 gemacht. Muss man nicht haben, den Aufwand für einen Pi1 -
Volkszähler
Da läßt sich zwar ein gut gepflegtes Image (stefanschoof/volkszaehler) für ARMv6 finden, aber ich brauche ja nur den Teil TTL-Lesekopf -> Lan -> ioB -
Seriell->Lan mit socat/ser2net
Habe ich kurz getestet. War etwas instabil. Das will ich aber nochmal genauer betrachten. Kann sein, dass es nicht an socat/ser2net lag, weil ich ähnliche Probleme beim Lesen der seriellen Schnittstelle mit Grabserial festgestellt habe. Warum auch immer.
Wegen der Probleme mit Grabserial habe ich mir ein eigenes kleines Python-Script gebastelt. So als Minimal-Serial-Reader.
Und weil das (zu mindest bis jetzt) stabil läuft und das D0 Datagram wirklich recht simpel und zudem gut dokumentiert ist, habe ich es um paho-mqtt erweitert und schicke die Daten per mqtt an ioB. Dabei habe ich die Topic-Struktur so gemacht, dass sie einigermaßen kompatibel zum Smartmeter-Adapter ist.
Falls der Raspi 1 dann mal das Zeitliche segnet und ich im Keller dann einen ioB-Slave einsetzte, hoffe ich, dass sich die nötigen Änderungen an der Grafana-Auswertung damit in Grenzen halten.Nochmals Danke für die Tips
-
-
@rewenode sagte in Adapter "smartmeter":
aber da müßte ich vieles umstricken
Was musst du denn umstricken, wenn du eine Basisconfig plus iob auf einer Speicherkarte installierst und dann in deinem Raspi nutzt? Da ist doch bis auf die Slave-Einrichtung nichts weiter zu tun. Im iob dann den smartmeter-adapter installieren und einrichten.
Docker ist zwar nice, aber bei einem Raspi, der nichts macht ausser den Stromzähler zu lesen brauchst du imho keine gr0ßartigen zusätzlichen Umgebungen. Wenn da wirklich mal was kaputt geht ist das schnell wieder aufgesetzt.Vielleicht hab ich es falsch verstanden, aber warum brauchst du ein "gut gepflegtes Image" für den Volkszähler? Du brauchst ein ios lite und den iobroker, mehr nicht.
Anleitung Installation -
@amg_666 sagte in Adapter "smartmeter":
@rewenode sagte in Adapter "smartmeter":
aber da müßte ich vieles umstricken
Das "umstricken" bezog sich die Änderungen am Dockerfile bei Änderung des Base-Image
Was musst du denn umstricken, wenn du eine Basisconfig plus iob auf einer Speicherkarte installierst und dann in deinem Raspi nutzt? Da ist doch bis auf die Slave-Einrichtung nichts weiter zu tun. Im iob dann den smartmeter-adapter installieren und einrichten.
Ja, das könnte ich noch testen. Da auf dem Raspi1 aber auf alle Fälle ein Docker-Container mit Postfix läuft ist abzuwarten, ob die Ressourcen reichen.
Aber ja, mal eben schnell meine SD-Card geclont und das Ganze testen ist ja schnell gemacht.Docker ist zwar nice, aber bei einem Raspi, der nichts macht ausser den Stromzähler zu lesen ...
s.o.
Vielleicht hab ich es falsch verstanden, aber warum brauchst du ein "gut gepflegtes Image" für den Volkszähler?
Habe das lediglich als Variante zum Auslesen des Smartmeter betrachtet und da wußte ich noch nicht, dass es so einfach ist den Zähler per python auszulesen. Und das "gut gepflegt" bezog sich darauf, dass es offiziell kein ARMv6 Image von Volkszähler.org gibt.
Und über die grundlegenden Vor-/Nachteile von Installationen Nativ/Container will ich hier nicht diskutieren. Das artet dann oft unsachlich aus.
Du brauchst ein ios lite und den iobroker, mehr nicht.
Anleitung InstallationDanke für den Link. Werde ich auf alle Fälle probieren und hoffen, dass der Pi-1 mit seinem parallel laufendem Postfix-Container dafür nicht zu schwachbrüstig ist.
Wenn es klappt, bin ich mit meiner Python-Frickelei jedenfalls nicht dümmer geworden