Stromzaehler auslesen - Alternativen

Begonnen von Wolfgang Hochweller, 15 Juni 2019, 10:21:01

Vorheriges Thema - Nächstes Thema

Wolfgang Hochweller

Ich habe jetzt einen (intelligenten) Stromzaehler bekommen, der sich ueber eine serielle Schnittstelle auslesen laesst.

Im Sicherungskasten befindet sich jetzt ausserdem noch ein Raspberry ( nicht fuer die Haussteuerung, nur fuer den Zaehler)  und ein seriell-zu-usb Interface.

Damit kann ich den Zaehler auslesen und sehe zwei Moeglichkeiten :
1. Ich installiere node-red, konvertiere die Daten zu json ( die node dafuer habe ich bekommen ) und liefere sie ueber mqtt an meine Haussteuerung.
Das funktioniert ( getestet ) , aber ich komme mit der MQTT2-Implementierung auf dem Pi irgendwie nicht zurecht.
Jedenfalls gelingt es mir nicht, in meinen MQTT2-Device irgendwelche Readings zu erzeugen.
2. Ich koennte auf dem Pi im Sicherungskasten FHEM installieren und das serielle Interface ueber ein FHEM-Modul ansprechen.
Dann muesste ich wohl die Rohdaten vom Zaehler selbst dekodieren, was ich wahrscheinlich nicht kann.
Ich habe zwar die Beschreibung ( https://www.nek.no/wp-content/uploads/2018/11/Aidon-HAN-Interface-Description-v10A-ID-34331.pdf ), ob mir das weiterhilft, weiss ich noch nicht.

2. wuerde mir am besten gefallen, da dann die Hauptarbeit nicht auf dem HaussteuerungsPi liegt.

Hat jemand Vorschlaege, wie ich das angehen kann ?

Von den Daten brauche ich eigentlich nur zwei :
momentaner Stromverbrauch
Einspeisung ins Netz ( falls meine Solarzellen mal mehr Strom liefern als ich verbrauche )



Icinger

Der spricht doch eh OBIS-Standard --> Modul 47_OBIS

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Wolfgang Hochweller

#2
Danke, habe ich gemacht.

Wenn die Definition korrekt ist, sollten dann Readings erscheinen ?

Was kann ich testen , wenn nicht ?

Ein get update fuer das Device liefert mir :



2019.06.15 11:20:09 5: Cmd: >get AMS update<
2019.06.15 11:20:09 5: SW:
2019.06.15 11:20:09 4: Wrote
2019.06.15 11:20:09 4: WEB: /fhem?detail=AMS&dev.getAMS=AMS&cmd.getAMS=get&arg.getAMS=update&val.getAMS=&XHR=1&addLinks=1&fw_id=26 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate

2019.06.15 11:20:11 4: Connection closed for WEB_10.0.0.5_64648: EOF
2019.06.15 11:20:11 4: WEB_10.0.0.5_64667 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2019-06.log; BUFLEN:0


bzw.

2019.06.15 11:42:06 4: WEB_10.0.0.5_64824 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2019-06.log; BUFLEN:0
2019.06.15 11:42:07 4: WEB_10.0.0.5_64824 GET /fhem/FileLog_logWrapper?XHR=1&inform=type=status;filter=;since=1560591725;fmt=JSON&fw_id=55×tamp=1560591726292; BUFLEN:0
2019.06.15 11:42:12 4: Connection closed for WEB_10.0.0.5_64824: EOF

KölnSolar

vorher solltest Du ja soetwas bekommen
Zitat2019.06.08 10:08:57 3: Opening zaehler device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-port0
2019.06.08 10:08:57 3: Setting zaehler serial parameters to 9600,8,N,1
2019.06.08 10:08:57 3: Init done
2019.06.08 10:08:57 3: zaehler device opened
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Wolfgang Hochweller

Das ist richtig , vorher kommt das hier :


2019.06.15 13:05:03 5: Cmd: >define AMS OBIS /dev/ttyUSB0@2400,8,E,1 SML<
2019.06.15 13:05:03 5: Loading ./FHEM/47_OBIS.pm
2019.06.15 13:05:03 1: PERL WARNING: Smartmatch is experimental at ./FHEM/47_OBIS.pm line 472, <$fh> line 41.
2019.06.15 13:05:03 1: PERL WARNING: main::OBIS_decodeTL() called too early to check prototype at ./FHEM/47_OBIS.pm line 785, <$fh> line 41.
2019.06.15 13:05:03 5: OBIS (AMS) - Opening device...
2019.06.15 13:05:03 3: Opening AMS device /dev/ttyUSB0
2019.06.15 13:05:03 3: Setting AMS serial parameters to 2400,8,E,1
2019.06.15 13:05:03 3: Init done
2019.06.15 13:05:03 3: AMS device opened
2019.06.15 13:05:03 5: Starting notify loop for AMS, 1 event(s), first is CONNECTED
2019.06.15 13:05:03 5: createNotifyHash
2019.06.15 13:05:03 5: End notify loop for AMS
2019.06.15 13:05:03 5: Cmd: >setuuid AMS 5d04b114-f33f-7425-6f20-ba32a4e06bbc9740<
2019.06.15 13:05:03 5: Cmd: >attr AMS room Zentrale<
2019.06.15 13:05:03 5: Cmd: >attr AMS valueBracket first<
2019.06.15 13:05:03 5: Cmd: >attr AMS verbose 5<
2019.06.15 13:05:03 1: Including ./log/fhem.save
2019.06.15 13:05:03 5: Cmd: >setstate AMS opened<
2019.06.15 13:05:03 5: Cmd: >setstate AMS 2019-06-15 11:56:56 state opened<
2019.06.15 13:05:03 5: Cmd: >setstate Logfile active<



Wolfgang Hochweller

#5
Die Rohdaten sehen so aus :



pi@ams:~/src/han-port-1.15 $ od -x < /dev/ttyUSB0

0000000 d682 e7e6 0f00 0040 0000 0100 0209 0902
0000020 0106 0001 8102 0aff 410b 4449 4e4f 565f
0000040 3030 3130 0202 0609 0000 0160 ff00 100a
0000060 3337 3935 3939 3932 3530 3036 3032 3931
0000100 0202 0609 0000 0160 ff07 040a 3536 3531
0000120 0302 0609 0001 0701 ff00 0006 0300 0226
0000140 0f02 1600 021b 0903 0106 0200 0007 06ff
0000160 0000 0000 0202 000f 1b16 0302 0609 0001
0000200 0703 ff00 0006 0000 0200 0f02 1600 021d
0000220 0903 0106 0400 0007 06ff 0000 8a01 0202
0000240 000f 1d16 0302 0609 0001 071f ff00 0010
0000260 0228 0f02 16ff 0221 0903 0106 2000 0007
0000300 12ff 7909 0202 ff0f 2316 8837 7e7e 2aa0
0000320 0841 1383 1304 e7e6 0f00 0040 0000 0100
0000340 0201 0903 0106 0100 0007 06ff 0000 2a03


Schicke ich das durch node-red, sieht man im Debug-Window :


6/15/2019, 1:55:12 PMnode: msgmsg.payload : Object
{ obis_list_version: "AIDON_V0001", meter_ID: "7359992905602019", meter_model: "6515", act_pow_pos: 1306, act_pow_neg: 0 ... }
6/15/2019, 1:55:13 PMnode: msgmsg.payload : Object
{ act_pow_pos: 1306 }
6/15/2019, 1:55:15 PMnode: msgmsg.payload : Object
{ act_pow_pos: 1306 }
6/15/2019, 1:55:18 PMnode: msg
msg.payload : Object
{ act_pow_pos: 1306 }

KölnSolar

wenn Du das Zählerdevice auf verbose=5 stellst, müsste doch etwas im Log kommen, wenn das device "physisch" funktioniert. Selbst wenn die seriellen Parameter falsch wären...
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Wolfgang Hochweller

#7
Das dachte ich auch, aber etwas stimmt noch nicht.
Ich oeffne das in FHEM mit den gleichen Parametern wie in node-red.
Status ist 'opened', danach passiert nichts mehr.

Ich glaube auch nicht, dass das so geht; die Daten sind ja weder Text noch SML, sondern muessen noch dekodiert werden.

Wolfgang Hochweller

Ich habe es jetzt hinbekommen :

Ueber node-red und mqtt.


cs-online

wenn das Dinge eine serielle Schnittstelle, also Anschlüsse RX/TX hat, könntest du einen ESP8266 (Wemos oder ähnliches) und ESPeasy=>Serial Server oder ESPLink nehmen und dann miitels WLAN an FHEM (Obis Modul) senden.

Grüße Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr

Wolfgang Hochweller

Danke, es funktioniert jetzt ( mit node-red und dem da eingebauten mqtt-Klienten ) super.

Stellt sich nur noch die Frage, was belastungsmaessig guenstiger ist  :

- Den MQTT-Server auf dem Raspi im Sicherungskasten alegen und die Daten mittels FHEM2FHEM auf den HauptRaspi uebertragen
- den MQTT-Server gleich auf dem HauptRaspi anlegen und sich dabei dann auch die FHEM-Installation auf dem Raspi im Sicherungskasten sparen.

Kriterium ist einzig die Belastung des HauptRaspi.

Neuhier

Ich habe FHEM auf einen RPi-Zero W im Keller am Stromkasten ( Mietshaus ).
Der sendet per FHEM2FHEM an den Haupt-Pi.

cs-online

wie performant ist der zerow denn mit FHEM drauf ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266/32 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20+S26,Shelly1/2/2.5, Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV+Speicher, alles auf einem RPI und da geht noch mehr