Zwischenzähler mit S0 und FHEM auslesen, was brauche ich alles?

Begonnen von Jackie, 15 November 2024, 06:54:52

Vorheriges Thema - Nächstes Thema

Jackie

Hallo,

ich setze seit lngerem FHEM auf einem Raspi 3B+ ein um Heizung, Wechselrichter, Bleuchtung (Conbee) etc. zu steuern. Nun habe ich für meine Wärmepumpe einen Zwischenzähler bekommen, und zwar ein Eltako DSZ15D 2x80A. Dieser hat als Schnittstelle einen S0 Bus, und genau den würde ich gerne mit dem Raspi ebenfalls auslesen, wobei der Raspi ca. 3m vom Zählerschrank entfernt steht.

Ich bin beim Thema Microcontroller Anfänger, würde mir aber so grob folgendes Vorstellen:
- Als Microcontroller würde ich so einen ESP8266 nehmen, wäre das Modell geeignet? https://www.amazon.de/gp/product/B0754W6Z2F/
- Da müssten dann irgendwie der S0 Bus an GND und einen der GPIO Pins angeklemmt werden, evtl. mit Widerstand davor, wenn ja, wie groß sollte der sein? Hat da jemand ein Verkabelungsbeispiel oder ein Schaubild für mich?
- Vom ESP dann weiter per USB an einen der 4 USB Ports des Raspi, und Einbindung in FHEM via https://fhem.de/commandref_modular.html#ArduCounter
- In FHEM müssten dann die Impulse irgendwie gezählt werden.

Ihr seht, so grob habe ich einen Plan im Kopf, aber mir fehlen noch die Details, oder auch Hinweise wo ich eklatante Denkfehler begehe. Wie würdet ihr das ganze angehen? Ziel wäre es, den Zähler nicht mehr in regelmäßigen Abständen visuell auszulesen, sondern die Werte regelmäßig sauber in FHEM loggen zu können.

Ich bin für alle Tipps und Implementierungsvorschläge sehr dankbar :-)

Du darfst diesen Dateianhang nicht ansehen.
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Beta-User

An sich ist das beschriebene Vorgehen m.E. ok.
Zitat von: Jackie am 15 November 2024, 06:54:52Als Microcontroller würde ich so einen ESP8266 nehmen, wäre das Modell geeignet?
"Geeignet" ist relativ. Ich würde heutzutage nicht zum ESP8266 greifen, sondern (für WLAN) zu einem ESP32. Kostet kaum mehr, ist aber stabiler. Die Dinger gibt es und direkt mit LAN-Port (kann aber sein, dass man dann die firmware selber bauen müßte).

Da du aber gar kein WLAN brauchst, würde ich hier eher direkt zu einem Arduino (mit "ordentlichem" USB-Seriell-Wandler, siehe Wiki) greifen. Auf die Schnelle gesucht so was (mit FTDI) https://www.ebay.de/itm/315900119288?_skw=arduino+ftdi&itmmeta=01JCQ76C0JQ5GD7Q3EPF1PDB5E&hash=item498d1d48f8%3Ag%3AxsEAAOSw621k-qIZ&itmprp=enc%3AAQAJAAAA4HoV3kP08IDx%2BKZ9MfhVJKkSx5aILW%2BkHUtKNbmdDLixIdaD6cXH1G1emvbeAL3LeTwUu8oOH0UStaTxoyahzhTa9n8oJGdu25ofaNbHSwjR4uK6jpIQ06IECXbwmqqEHXaUUScnr%2FfHG9jh1eWls7Ubud%2F6Hz81Qb2ajMLyz%2Bfz4862lKcv9NJZeZ3VjOzI62fuvmZ7OmgwPfvjUr3r9h4ZUCn9FE3E3sKSBN4ximrS7LGcsnqrq%2Bq9EmKeo3XhykbXxt51P7%2FtQU9Ys307bml4bXeYrAm1CItF5JNno0H1%7Ctkp%3ABFBMwMCZ5-Vk&var=614380049789
Kommt mir sehr teuer vor, sollte eigentlich nicht viel mehr wie 3 Euro kosten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Jackie

Danke, ich habe gerade noch folgenden interessanten Beitrag gefunden:

https://wiki.volkszaehler.org/hardware/controllers/s0-an-rs232

Das hätte natürlich den Charme, dass wenige Bauteile benötigt werden, und ich per RS232toUSB Converter recht einfach an den Zählimpuls kommen könnte, Raspi ist ja ohnehin vorhanden. Dazu hätte ich aber noch zwei Fragen:

1.) Mit welchem Modul zähle ich dann in FHEM die Impulse? Gibt's da was elegantes?
2.) Ist das elektrisch sicher, im Sinne von: was ist wenn der S0 (dahinter steckt wohl ein Optokoppler intern im Eltako Zähler) eine zu hohe Spannung anliegt, brate ich mir damit unter Umständen den RS232toUSB Adapter, im schlimmsten Fall den Raspi?

Welche Lösung würdet ihr bevorzugen?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Stelaku

Mit hour counter könnte man die Impulse zählen.
Ich mache das direkt auf einen freien gpio auf den Raspberry Pi.
Die SO Schnittstelle ist nichts anderes als ein Optokoppler der vom Rest des Zählers galvanisch getrennt einen Schalter auf minus schaltet. Ganz einfach ausgedrückt. Wenn du da einen gpio auf den plus SO klemmst und einen gnd Pin vom raspi auf SO minus werden die Impulse vom raspi erkannt und können vom RPI_GPIO Modul in fhem sichtbar gemacht werden.


Beta-User

Imo sollte man Hardware und Steuerung trennen. Ergo finde ich persönlich Pi-basierte Lösungen "pfui" und würde hier immer einen Arduino (nano) einsetzen - habe aber auch immer ein paar davon rumliegen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

juergen012

Moin, hast Du dir schon mal den Arducounter angeschaut? Läuft hier sehr gut mit ElectricityCalculator. Ist zuerst etwas "fummelig".
Gruß j.
Fhem unter Proxmox

Jackie

Zitat von: juergen012 am 16 November 2024, 11:02:49Moin, hast Du dir schon mal den Arducounter angeschaut? Läuft hier sehr gut mit ElectricityCalculator. Ist zuerst etwas "fummelig".
Gruß j.

Danke, würdest Du den Code teilen wie genau du es eingebunden hast? Würde mich sehr interessieren. Dankeschön
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Jackie

Ich bräuchte noch einen Tipp wie man den Arduino schaltungstechnisch am besten mit dem s0 verbindet,also einfach S0+ auf einen Eingang und S0- auf GND oder noch einen Widerstand dazwischen, und wenn ja wie dimensioniert und wo?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Beta-User

Zitat von: Jackie am 17 November 2024, 09:23:28Ich bräuchte noch einen Tipp wie man den Arduino schaltungstechnisch am besten mit dem s0 verbindet,also einfach S0+ auf einen Eingang und S0- auf GND oder noch einen Widerstand dazwischen, und wenn ja wie dimensioniert und wo?
Zu S0 siehe https://wiki.fhem.de/wiki/ArduCounter#Configuration_of_ArduCounter_digital_counters.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

juergen012

Zu ElectricityCalculator
https://wiki.fhem.de/wiki/ElectricityCalculator
Fhem unter Proxmox

juergen012

Mein Code:
Arducounter:
defmod AC ArduCounter 172.16.10.80 80
attr AC DbLogExclude .*
attr AC enableHistory 1
attr AC event-on-change-reading .*
attr AC flowUnitTime 3600000
attr AC group Gateway
attr AC interval 30 300
attr AC pinD5 falling pullup min 25
attr AC pulsesPerUnit 1000
attr AC readingsWatcher 30,,RSSI
attr AC room Strom,System
attr AC userReadings Zaehler monotonic {ReadingsVal("AC","pinD5",0)/1000}\

ElectricityCalculator:
defmod Stromzaehler ElectricityCalculator AC:Zaehler.*
attr Stromzaehler BasicPricePerAnnum 0
attr Stromzaehler Currency €
attr Stromzaehler DbLogExclude .*
attr Stromzaehler DbLogInclude AC_Zaehler_PowerCurrent
attr Stromzaehler DecimalPlace 3
attr Stromzaehler ElectricityCounterOffset -0.077000000001135
attr Stromzaehler ElectricityKwhPerCounts 1
attr Stromzaehler ElectricityPricePerKWh 0.3000
attr Stromzaehler MonthOfAnnualReading 10
attr Stromzaehler MonthlyPayment 111.0
attr Stromzaehler ReadingDestination CalculatorDevice
attr Stromzaehler SiPrefixPower W
attr Stromzaehler alias Stromzähler
attr Stromzaehler event-on-change-reading .*
attr Stromzaehler room Strom
attr Stromzaehler stateFormat AC_Zaehler_PowerCurrent

Fhem unter Proxmox

Jackie

Danke, den Wiki Eintrag Habe ich gesehen,aber da lese Ich nicht im Detail wo evtl noch ein Widerstand in die Schaltung muß. Oder habt ihr direkt s0+ auf Eingang und s0- auf GND?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

juergen012

Fhem unter Proxmox

Otto123

Zitat von: Jackie am 17 November 2024, 13:59:24Danke, den Wiki Eintrag Habe ich gesehen,aber da lese Ich nicht im Detail wo evtl noch ein Widerstand in die Schaltung muß.
Kein extra Bauteil, der Widerstand ist im Chip verbaut:
ZitatThe optional keyword pullup activates the pullup resistor for the given Pin.
Der so Ausgang ist ja nur ein "Schalterkontakt"
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz