NEWS
Adapter "smartmeter"
-
-
Das ist jetzt das Problem.A besten nicht die /dev/tty... nutzen weil sich die auch bei reboots ändern können - deswegen nutzt Smartmeter und ein paar andere Adapter die ich schon umgebaut habe die /dev/serial/by-id/... Pfade ... Die änder sich auch bei Reboots nicht
-
-
@Malz1902 Du könntest statt 'Geht nicht' oder 'Hab ich schon' auch mal die Rückmeldungen aus der Konsole Mal bekannt geben.
-
@Thomas-Braun said in Adapter "smartmeter":
@Malz1902 Du könntest statt 'Geht nicht' oder 'Hab ich schon' auch mal die Rückmeldungen aus der Konsole Mal bekannt geben.
Im Log im ioBroker steht immer noch der gleiche Fehler wie gestern auch.
Was meinst Du mit Rückmeldung aus der Konsole?
-
@Malz1902
Ich hatte oben gefragt, wohin der Stick gelinkt wird, z. B. -
@Thomas-Braun said in Adapter "smartmeter":
@Malz1902
Ich hatte oben gefragt, wohin der Stick gelingt wird, z. B./dev/serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.07__Embed_with_CMSIS-DAP_L4300302-if00 -> ../../ttyACM0
-
Habe jetzt den CC neu geflasht und geht wieder alles
-
Ich verwende den Smartmeter-Adpater mit 3 Instsanzen um 3 Landis & Gyr 2WR5 Wärmezähler auszulesen. Prinzipiell funktionert das seit knapp einem Jahr. Allerdings habe ich eine extrem hohe CPU-Auslastung.
Leider liefert der 2WR5 mit dem Standard-Sign-On (?) außer dem Zählerstand kaum weitere interessanten Daten. Deswegen verwende ich "#" als Sign-On, um z.B. auch aktuelle Vorlauf/Rücklauf-Temperauren, Durchfluss und aktuelle Wärmemenge zu erhalten. Insgesamt ca. 10-15 interessante Wert. Leider liefert der 2WR5 aber mit "#" insgesamt über 600 Werte.
Ein Auszählvorgang dauert dann am Raspberry PI 3 (als Slave) ca. 45 Sekunden und lastet einen Kern bis auf die ersten Sekunden durchgängig mit >= 97% aus. Laufen alle drei Auslesevorgänge parallel, sind 3 der 4 Kerne komplett ausgelastet.
Ich bin alles andere als ein nodejs Experte. Aber zwei mögliche Ursachen kommen mir in den Sinn:
- Wenn ich den Code bzw. die Debug-Ausgaben richtig interpretiere wird während dem Empfang der Rohdaten immer mal zwischendurch geparst, um zu prüfen, ob das Ende erreicht ist. Eventuell ist das Parsen ab einer gewissen Datenmenge langsam. Ich hab ein kleines Testprogramm geschrieben, das direkt smartmeter-obis verwendet (Konsole, außerhalb iobroker). Im Debug-Mode 2 sieht man, dass am Anfang (z.B. 5 Zeilen an Daten in der Console) alles noch sehr schnell geht und die CPU eher so bei 10% bis max. 20% ist. Aber dann wird es deutlich langsamer und die CPU-Usage schnellt auf ca. 100% rauf. Die Consolen-Ausgabe selbst dürfte es nicht sein, weil die CPU-Usage geht auch bei Debug-Mode 1 rauf. Falls das das Problem ist: gäbe es da einen Ansatz das Parsen zu optimieren?
- Auf Github unter serialport findet man auch vereinzelt Anfragen wegen hoher CPU-Auslastung. Angeblich dürfte serialport diesbezüglich nicht optimal implementiert sein. Allerdings ging es da um Auslastungen im Bereich von 20%.
PS: Ich hatte den Smartmeter-Adapter via GUI immer aktualisiert. Hab aber gestern festgestellt, dass laut "iobroker update" am Slave noch alte Adapter-Versionen installiert waren. Hab via Konsole upgegradet. Bin jetzt auf nodejs 12.18.1, Smartmeter 3.1.2, smartmeter-obis 2.1.2 und serialport 8.0.8
-
Hi,
naja bei gewissen Datenmengen und "Langsamen" Übertragungen kann das so sein. Wie oft liesst Du es denn aus? Zum Parsen der nachricht werden Regex verwendet.keine Ahnung ob man das weiter optimieren kann.
Wenn Du magst leg ein Issue in der smartmeter-obis Lib an, aber keine Ahnung wann ich zu sowas komme ... auf jeden Fall brauche ch debug damit ich es nachstellen kann.Ich hatte den Smartmeter-Adapter via GUI immer aktualisiert. Hab aber gestern festgestellt, dass laut "iobroker update" am Slave noch alte Adapter-Versionen installiert waren. Hab via Konsole upgegradet.
Du musst im Admin unter "Adapter" oben den entsprechenden Hosts auswählen! Adapterinstallationen/-updates wirken sich nur auf den Host aus.
-
Kann man mit dem smartmeter eigentlich auch Stromzwischenzähler mit S0 schnittstelle auslesen? Oder geht das dann nur über nen ESP8266
-
@Malz1902 Hallo, bin kein smartmeter-Adapter Spezialist. Aber der Smartmeter Adapter bietet keine Digitalinputs an, wie man sie für einen S0-Zähler bräuchte.
Also braucht man zumindest etwas dazwischen, welches die Werte dem smartmeter Adapter anbietet. Entweder per Netzwerk, also z.B. als TCP Server oder als eingelagerte JSON Datei. Da kann man sich Lösungen vorstellen.
Aber für mich war es einfacher und schneller einen ESP8266 zu nehmen, ESPEasy drauf Pulse Counter ausgewählt und ein JS-Script zu schreiben, welches sich um die Kumulation der Daten kümmert. -
@Malz1902 S0 als "Impulsschmittstelle" geht nicht per Smartmeter (weil s0 ist nicht "Smart" - sorry) Wenn du die Impulse in iobroker reinbekommst gibt es aber andere Adapter die die verarbeiten und dir einen kW Wert ermitteln können und sowas
-
bekomme ab und zu folgende meldung im log:
(1513) Error while parsing SML message: Error: Wrong TL-Field 0xb7 for SmlValue!: Message: 1b1b1b1b0101010176050af0f28562006200726301017601010503a5a62d0b090149534b000423ab3a010163e9ae0076050af0f28662
was sagt die aus?
-
@Malz1902 Wenn es nur "ab und an " ist dann heisst das das "ab und an " mal die Nachricht kaputt ist. Gründe könnten schlechte Schirmung des USB kabels sein, der Kopf sitzt nicht korrekt oder der Kopf hängt nicht an einem aktiven Hub oder sowas
-
@apollon77
war wirklich ein Fehler im Kabel, eine Ader war lose. Klappt jetzt wieder ohne Probleme -
Hallo, super Forum, super Adapter (smartmeter).
Ich habe zwei Zähler (EMH u. Hager). Beide mit bereits vorhandenem Lesekopf ehz001.
Ich würde diese gerne an iobroker (docker auf synology) anbinden.
Aufgrund der Distanz (1x mind. 8m würde ich das gerne per Lan tun.
Habt Ihr mir Tipps zu der Konstellation? Oder am Besten einen schon getesteten Seriell zu Lan Adapter (bezahlbar)?
Wenn es doch lieber USB sein sollte, mit welchem Adapter bei der Länge am Besten?
Vielen Dank. -
@Matis sagte in Adapter "smartmeter":
Aufgrund der Distanz (1x mind. 8m würde ich das gerne per Lan tun.
Habt Ihr mir Tipps zu der Konstellation? Oder am Besten einen schon getesteten Seriell zu Lan Adapter (bezahlbar)?
Wenn es doch lieber USB sein sollte, mit welchem Adapter bei der Länge am Besten?Ja, serial <-> Eth habe ich im Einsatz bzw. getestet - zumindest wenn es um die unidirektionale "Info- Schnittstelle" geht. Bei D0 weiß ich es nicht. Dazu hätte ich unten noch serial <-> RS485 <-> USB
Es gibt die Firma USRIOT, welche solche Serial <-> LAN oder auch Serial <-> WLAN Adapter anbietet.
Die günstigste Variante für 2 Serial (mit etwas anlöten und in ein Gehäuse stecken) heißt USR-TCP232-E2, Herstellerseite. Ich habe meinen über Aliexpres vom Händler JMTTOP bekomen, ali-Nummer 32761343349 . Lieferzeit bei mir 14 Werktage. Keine Werbung, einfach nur Nennung eines Händlers, der günstig war und bei mir funktioniert hat. Der Hersteller hat auch einen Shop aber hohe Versandkosten. Ansonsten Vorsicht, ich hatte aus Unkenntnis auch mal ein Modul einer anderen Fa gekauft, welches ich nicht zum Laufen bekommen habe.
Der E2 hat 2 serielle Eingänge. Zu Beachten: Das Teil ist ein 3.3V Modul. Man kann es zwar mit 5V speisen, aber I/O ist 3.3V. Wenn Dein Leskopf 5V Ausgänge hat, brauchst Du eine Pegelwandler, Die billigen mit MOSFets gehen.
Das Gerät kommt leider erst mal mit fixer IP 192.168.0.7 daher. Das kann man aber auf DHCP umstellen und dann reiht sich das Modul in das Haus-LAN ein.
Es hat dann eine Website unter seiner IP und man kann die Baudrate der seriellen Schnittstelle(n) und eine Portnummer für den Eth Zugriff einstellen.
Bei der bidirektionalen D0-Schnittstelle wird aber während des Betriebs die Baudrate geändert. Da ich keinen solchen Zähler habe, weiß ich nicht, ob das mit dieser Lösung funktioniert.Für die USB-Lösung bietet sich eine RS485 Schnittstelle an. Dafür gibt es kostengünstige Module aus China. Zum Einen TTL <-> RS485 Wandler und für das andere Ende RS485 <-> USB Wandler. In vielerwei Konfiguration. Von ganz einfach mit CH340G als Wandler bis hin zu einem FTDI und zusätzlicher galvanischer Trennung.
Vor RS232 rate ich explizit ab. Würde zwar bei der Länge noch gehen aber der Markt ist überflutet von schlechten "Max232", "Max3232", die heiß werden und ausfallen, wenn sie denn überhaupt gehen. Falls man schon irgendwo RS232 hätte, dann notfalls ein Modul von Pollin. Das hat bei mir funktioniert, scheint noch Altbestand zu sein.Meinen derzeitigen Dauereinsatz eines Schwestermoduls für RFLInk habe ich dort beschrieben. Diese Modul hat noch einen RS485 frei, an den ich dann den Smartmeter anschließe, wenn er endlich eingebaut ist. Das Konzept habe ich auch schon mal getestet, aber noch nicht im Dauereinsatz.
Der Smartmeter-Adapter unterstützt TCP-Server direkt, so daß man die virtuelle COM Schnittstelle dafür nicht braucht. -
habe bei mir vom Zähler/Lesekopf ein Cat5e Kabel zum Server gelegt, ca 10 Meter. Nutze davon 4 Adern, 4 Adern an den Lesekopf gelötet und die anderen 4 Adern an einen CP2102 USB zu TTL
Auf das LAN Kabel 4 Depond Stecker gecrimpt, klappt Perfekt
Ist zwar USB aber klappt auch super
-
@Malz1902 Hängt vom Störpegel der Umgebung ab. Kann klappen. TTL <-> RS485 sowie RS485 <-> USB Konverter kosten ca. 1 EUR das Stück (mittlerweile + Porto) und dann hat man mehr Störsicherheit und kann einfachere und dünnere Leitung nehmen. Letzteres war für mich wichtig, weil ich die dünnere Leitung noch durch vorhandene Löcher durchquetschen konnte.