NEWS
Gelöst: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung
-
@Pete0815 sagt eigentlich schon alles.
Einen Reed Kontakt per USB anzuhängen und dafür noch einen ESP zu verwenden, finde ich etwas Overkill.
An einen Reed Kontakt kannst du auch 10m Kabel hängen, das ist überhaupt kein Problem. Dann hängst du ein Ende an GND und das andere an einen der GPIOs des Raspi. Mit dem rpi2 Adapter kannst du dann diesen GPIO auf Input mit pull-up konfigurieren und dann solltest du den Zustand des Reed Kontaktes im entsprechenden Datenpunkt sehen. Zu testen wäre das ja einfach mit einem Magneten.
-
@unclesam
genau hinschauen hilft . Ich habe den s0 Ausgang mit dem Anschluß des Reed Kontaktes verwechselt :
Wenn ich aber jetzt richtig sehe, dann wäre dies der Reed Kontakt (weißes Kabel):
Nun einfach diese 2 Adern auf 3,3V/GND und einen GPIO legen. Ob diese GPIO von einem RPI oder von einem ESP stammen ist ja von der Funktion erst einmal unabhängig. Aus der HomeMatic Lösung deute ich, dass @DatzerF den RPI für nichts anderes benutzt und er auch bei voller Funktion des ReedKontaktes auf ihn verzichten könnte. Somit finde ich ein ESP8266 (1W vs 5W) keine schlechte Option um einfach den Kontakt auszuwerten und per Wifi zum IOBroker zu schicken.
zB wie hier: https://forum.iobroker.net/topic/27923/anleitung-gaszähler-mit-nodemcu-espeasy -
@pete0815 der Volkszähler Lesekopf mit der (eigentlich ist es eine) Erweiterung um dem Reed-Kontoakt macht genau was er soll.
Der vzlogger verwendet den Reed-Kontakt als S0 - Device, zählt Impulse und liefert je Impuls eine 1. Der Lesekopf ist eigentlich ein IR-Lesekopf für Stromzähler und wurde um die Reed-Kontakt erweitert, so mein Verständnis.
Mit der Positionierung habe ich keinerlei Probleme, das passt. Der Zählt genau das was er soll.Das Kernproblem ist in meinen Worten als Nicht-Techniker, dass immer wieder mal (sporadisch) die WLAN-Verbindung abkackt, oder vom vzlogger das usb-device nicht mehr erkannt wird.
Ist die WLAN - Verbindung weg, zählt der vzlogger zwar weiter, die Daten kommen aber nicht mehr am ioBroker an. Das lässt sich (vermute ich) dadurch beheben, dass ich die notwendigen Daten nur auf dem ioBroker - Slave im Heizraum speichere und dort auch die notwendigen Blockly zur Berechnung des Gas-Verbrauches laufen lasse.
Das zweite Problem, das immer wieder mal auftritt ist, das Problem, dass der vzlogger, der Raspi oder was auch immer den USB-Anschluss nicht mehr erkennt und die S0-Impulse nicht mehr zählt.Wenn ich Dich und @UncleSam richtig verstehe, dann müsste ich eigentlich "nur" den Reed vom Lesekopf trennen und die zwei Adern mit (welchen gleich nochmal?) GPIO - Pins verbinden. Auf der lokalen iOBroker - Instanz (Slave) des Raspi im Heizraum den Adapter RPI2 installieren und passend konfigurieren um die Impulse abzugreifen und als Datenpunkt zu speichern?
-
@pete0815 sagte in Frage: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung:
Aus der HomeMatic Lösung deute ich, dass @DatzerF den RPI für nichts anderes benutzt und er auch bei voller Funktion des ReedKontaktes auf ihn verzichten könnte.
Leider nein, an dem Raspi im Heizraum hängt auch noch der Gaskessel und wird per fhem ausgewertet und geloggt.
-
@datzerf said in Frage: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung:
@pete0815 der Volkszähler Lesekopf mit der (eigentlich ist es eine) Erweiterung um dem Reed-Kontoakt macht genau was er soll.
Der vzlogger verwendet den Reed-Kontakt als S0 - Device, zählt Impulse und liefert je Impuls eine 1. Der Lesekopf ist eigentlich ein IR-Lesekopf für Stromzähler und wurde um die Reed-Kontakt erweitert, so mein Verständnis.
Mit der Positionierung habe ich keinerlei Probleme, das passt. Der Zählt genau das was er soll.Wenn Du dir dort 100% sicher bist ok. Durch nicht 100%tigen Sitz oder ggf. auch Verschleiß des Kontaktes könnte ich mir auch eine entsprechende Fehlfunktion erklären.
Das Kernproblem ist in meinen Worten als Nicht-Techniker, dass immer wieder mal (sporadisch) die WLAN-Verbindung abkackt, oder vom vzlogger das usb-device nicht mehr erkannt wird.
Ist die WLAN - Verbindung weg, zählt der vzlogger zwar weiter, die Daten kommen aber nicht mehr am ioBroker an. Das lässt sich (vermute ich) dadurch beheben, dass ich die notwendigen Daten nur auf dem ioBroker - Slave im Heizraum speichere und dort auch die notwendigen Blockly zur Berechnung des Gas-Verbrauches laufen lasse.Prinzipiell bin ich da voll bei Dir. Wie die Slavefunktion von iobroker arbeitet bzw. mit Pufferung und Verbindungsabbrücken umgeht, kann ich aber nicht sagen. Eine einfache Softwarelösung die keine Impulse sondern ausgewertete Zählerstände per Wifi schickt sollte hier etwas tolleranter gegen Ausfälle sein. Wenn der Zählerstand mal flöten geht, nicht schlimm dann kommt er halt in den nächsten paar Sekunden....
Das zweite Problem, das immer wieder mal auftritt ist, das Problem, dass der vzlogger, der Raspi oder was auch immer den USB-Anschluss nicht mehr erkennt und die S0-Impulse nicht mehr zählt.
Klingt komisch für mich. Das steckt simple/bewährte Technik aus heutiger Sicht hinter und der entsprechende Chip sollte gerade an einem RPI total stabil laufen, aber wie auch immer.
Wenn ich Dich und @UncleSam richtig verstehe, dann müsste ich eigentlich "nur" den Reed vom Lesekopf trennen und die zwei Adern mit (welchen gleich nochmal?) GPIO - Pins verbinden. Auf der lokalen iOBroker - Instanz (Slave) des Raspi im Heizraum den Adapter RPI2 installieren und passend konfigurieren um die Impulse abzugreifen und als Datenpunkt zu speichern?
Ja, den GPIO kannst Du Dir aussuchen und im Adaptermenü entsprechend konfigurieren bzw. aktiv schalten:
Den Rest würde ich hierraus entnehmen(Video):
https://haus-automatisierung.com/software/iobroker/2021/02/28/iobroker-gaszaehler-reed-kontakt.html -
@pete0815 sagte in Frage: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung:
Den Rest würde ich hierraus entnehmen(Video):
https://haus-automatisierung.com/software/iobroker/2021/02/28/iobroker-gaszaehler-reed-kontakt.htmlDas hab ich auf dem ioBroker - Master bereits in einer für mich passenden Variante umgesetzt
Auf dem Master speichere ich die per Node-Red vom vzlogger auf dem Slave generierten Impulse. Berechne die Verbrauchten Kubikmeter und berechne Preise und kWh.Vielen Dank für die Tips und Hinweise, werde mal den Lesekopf „zerlegen“ und den Reed-Kontakt direkt per GPIO an den Slave anschließen...
-
Hallo allseits,
jetzt habe ich den Lesekopf doch nicht zerlegt, da dieser einen S0 - Ausgang mit Waco-Klemmen beschaltet hat.
Hier der Stromlauf- / Bestückungsplan des Lesekopfes.
Statt dessen habe ich den +S0 an der Wago-Klemme des Lesekopfes mit dem als Eingang konfigurierten GPIO-Port 22 (PIN 15) des Raspi verbunden. -S0 an der Wago-Klemme des Lesekopfes mit GND (PIN 6).
Der Lesekopf ist auch weiterhin per USB verbunden.
Meine Idee war, dass ich damit auch die Signale abgreifen kann. Das funktioniert soweit auch, am GPIO 22 sehe ich Statusänderungen / Impulse, die passen von der Anzahl und der Zeit aber nicht zu den Impulsen die von vzlogger gezählt werden.
Habe ich da einen Gedankenfehler, oder einfach nur was falsch konfiguriert oder zusammengesteckt?
Statusänderungen am GPIO 22:
Impulse die der vzlogger gezählt hat, die Anzahl der Impulse passen:
Viele Grüße
Franz -
der S0 Ausgang hat derzeit keine Spannungversorgung, somit der RPI auch keine true Werte ....
In der Angabe zur Hardware steht, dass die Spannungversorgung über die USB-Wandwarze zu erfolgen hat. Was das bedeutet klicke ich gerade noch fröhlich zusammen
Edit: Die Verdrahtung ist wie folgt zu änden:
S0+ an Pin 1 des RPI (3,3V) und S0- an GPIO22 (zum detektieren).
-
@pete0815
wollte gerade schreiben, dass der USB - Anschluss nach wie vor gesteckt ist....
Vielen Dank, ändere ich gleich mal ab. -
@pete0815
kaum steckt man richtig an kommt auch was an....
-
@datzerf
Ja, die Versorgung des S0 Ausgangs hat losgelöst davon zu erfolgen.
"Wandwarze" habe ich nur ewig nicht gehört und klingt erstmal komischWie oben beschrieben, gibst Du jetzt mit PIN1 aktiv 3,3V auf den S0 Ausgang und er schaltet das bei einem Impuls auf Deinen GPIO22/s0-/PIN15.
Hoffe das klappt so, da der s0 mit 5V-20V spezifiziert ist. Wir geben da gerade aber nur 3,3V drauf(könnte etwas wenig sein). Ich bin da aber lieber vorsichtig, da der GPIOs des RPI nur 3,3V verträgt. Erhöhen und 5V mit PIN2 da drauf geben geht immer noch.
-
@pete0815 sagte in Frage: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung:
Hoffe das klappt so, da der s0 mit 5V-20V spezifiziert ist. Wir geben da gerade aber nur 3,3V drauf(könnte etwas wenig sein). Ich bin da aber lieber vorsichtig, da der GPIOs des RPI nur 3,3V verträgt. Erhöhen und 5V mit PIN2 da drauf geben geht immer noch.
Und wenn das nicht geht, nimmst du dann z.B. einen PCF8574, den du mit den 5V des Raspi speist (und natürlich am I2C des Raspi anhängst) - der liefert dann auch auf seinem Output 5V. Under PCF8574 kann mit dem i2c Adapter in ioBroker eingebunden werden. Läuft bei mir einwandfrei.
-
So, habe den Lesekopf wie von @Pete0815 vorgeschlagen von der Wago-Klemme direkt mit PIN 1 (3,3V) und PIN 15 (GPIO 22) verbunden und diese Woche laufen lassen.
Das gute Stück zählt, jedoch werden zu Viele Impulse gezählt. Neben den echten Impulsen, die auch vom noch laufenden VZ-Logger registriert werden kommen wahllos weitere Impulse an, die auch registriert werden. Das können auch keine Impulse sein, die vom "Prellen" kommen.
Gestern hab ich mir ein Breadboard bestellt um die Schaltung wie von Matthias Kleine aufzubauen und dann mal zu sehen ob dann nur die "echten" Impulse gezählt werden.
Hätte nie gedacht, dass ich mal (wenn man das schon so nennen darf) Schaltungen zusammenstecke -
@datzerf
Nur als Idee. Der vzlogger ist konfigurierbar wie er die Impulse zählt. Hab das mal vor Jahren von steigende auf fallende Flanke geändert oder umgekehrt.Was ich damit sagen möchte, hast Du mal die Impulse (die Gezählten) geprüft, ob es zusätzliche Impulse z.B. durch die fallende Flanke des Kontaktes sind? Da der Gaszähler nicht konstant dreht (zum Glück ) dürfte solche Impulse auch unterschiedliche Abstände zueinander haben. Grob dürften es dann aber die doppelte Menge sein.
-
@pete0815 die vzlogger.conf lässt soweit ich weis (auch mit dem vzlogger.conf editor) die Einstellung nicht her.
Es ist aber tatsächlich so, dass die Anzahl grob doppelt so hoch ist.
vzlogger zählt um 12:12:37 / 12:00:40 / 11:53:12 / 11:43:09
GPIO zählt um 12:12:37 / 12:10:42 / 12:00:40 / 11:57:58 / 11:53:11 / 11:50:20 / 11:43:08Der vzlogger registriert und speichert den Impuls dann wenn der Magnet aus der Zählwalze am Reed - Kontakt "Eintrifft". Um 12:12:37 kommt also dann die 7 der zweiten Nachkommastelle der Zählwalze zum Kontakt.
Dann liefert auch der GPIO einen Impuls. Zusätzlich aber auch ca. 2 Minuten vorher. Da war aber scheinbar nix los. Vor allem dauert es keine 2 Minuten bis 0,1 Kubikmeter Gas verbrannt sind, die Zählwalze also einmal vollständig durchgelaufen ist.Womit ich bereits experimentiert habe, sind die Einstellungen für den GPIO direkt am RasPi. Habe mit
raspi-gpio set 22 ip pu
bzw.
raspi-gpio set 22 ip pd
die Einstellung geändert ob der Port auf Pull-Up bzw. Pull-Down reagieren soll.
Aber das Ergebnis war identisch.Gezählte Impulse des vzlogger - 18 Impulse
Gezählte Impulse des GPIO - 32 Impulse
-
hab nochmal gekramt und die Einstellung die ich meinte bezog sich auf "die kleine Erweiterung" vom volkszähler projekt. Diese Erweiterung hat 2x s0 Eingänge die auf GPIO17 und 18 landen.
Möchte man die Erkennung definieren ergänzt man in der Datei rc.lokal zB Folgendes:
Um jetzt zu Deinem Aufbau zurück zu kommen, wird der Reed Kontakt am Input des MAX6816 Chips eingespeist und am Output hängt der s0 Ausgang den Du jetzt auf den Raspberry gelegt hast.
Um wirklich sicher zu sein wie der s0 Ausgang arbeitet und ob man ihn evtl. sogar konfigurativ beeinflußen kann, würde ich in der volkszähler Mailliste erfragen: https://wiki.volkszaehler.org/contact
Lt. dem Schaltdiagramm geht der Eingang aber 1:1 auf den s0 Ausgang. Der Max6816 ist ein Debouncer der das Entprellen des Reedkontaktes übernimmt. Somit sollte am s0 nichts verändert ausgegeben werden.
Deine Aufzeichnungen geben als Quelle den Javascript-Adapter an. Hast Du mal rein den GPIO22 im Vergleich aufgezeichnet?
-
@Pete0815
Vielen Dank für Deine Unterstützung und Geduld!
Final, war die Lösung jetzt doch der einfachste Weg. Ich habe mich nicht nur bezüglich des Blockly sondern auch mit der technischen Anbindung des Reed-Kontaktes an dem Beispiel von Matthias Kleine (auch an Ihn vielen Dank für die Infos und Tips, die er auf seiner Web-Site postet) gehalten.
Den Reed-Kontakt habe ich von Lesekopf entfernt und (momentan noch) mit einem Bread-Board und und zwischengeschaltetem Pull-Down Widerstand an die GPIO - Kontakte angeschlossen.
Jetzt wird richtig gezählt, keine doppelten Einträge usw.
Die vzlogger-Middleware ist deaktiviert.Grüße
DatzerF -
@datzerf
Danke fürs Feedback und freut mich zu hören, dass es eine funktionierende Lösung gibt. Gebe natürlich gerne zu, dass mein Antrieb auch daran besteht Lösungen bzw. Fehler zu finden und dadurch für die Zukunft etwas zu lernen. Darum wurmt mich das natürlich immer etwas, wenn offene Fragen bleiben, aber es muß ja auch noch Potential für die Zukunft gebenBeste Grüße
-
@datzerf sagte in Gelöst: Gaszähler-Ersatz für vorhandene vzlogger-Anbindung:
Den Reed-Kontakt habe ich von Lesekopf entfernt und (momentan noch) mit einem Bread-Board und und zwischengeschaltetem Pull-Down Widerstand an die GPIO - Kontakte angeschlossen.
Grundsätzlich kannst du den pull-down auch einfach per Software im Raspi aktivieren, dann brauchst du keine zusätzliche "Schaltung" ausserhalb.
-
@unclesam, habe ich zwischendrin mal aktiviert, hat aber nicht zu 100% funktioniert. Es waren immer wieder doppelte Werte vorhanden, die zeitlich eng zusammen lagen.
Gruß