Modul für Kamstrup smartmeter (speziell 38lLx3)

Begonnen von viegener, 17 April 2017, 19:03:38

Vorheriges Thema - Nächstes Thema

viegener

Nachdem ich lange mit verschiedenen fertigen Lösungen experimentiert habe, habe ich doch ein eigenes Modul (und Arduino firmware) zum Auslesen eines Kamstrup 382Lx3 (und ähnlicher ?) Zähler geschrieben. Da dieser Zähler wohl ein proprietäres Protokoll über sein IR-Schnittstelle spricht war etwas reverse engineering angesagt. Dabei habe ich davon profitiert, das es dann doch ein wenig Doku zum Protokoll für die Multical-Zähler gibt und auch etwas Vorarbeit von jemandem in Dänemark: ( https://wiki.hal9k.dk/projects/kamstrup )

Benötigt wird ein Infrarot-Schreiblesekopf (zum Beispiel aus dem volkszählerprojekt mit TTL-Ausgang), den ich über einen Arduino mit ESP8266 per WLAN mit FHEM verbunden habe. Der Arduino wickelt das eigentlich Protokoll über den IR-Lesekopf ab.
(Wenn jemand ernsthaft nachbauen will, dann kann ich dazu auch mehr Infos dazu geben)

Das Modul fragt dann regelmässig Daten zu bestimmten Registern vom Zähler ab, Intervall und Register sowie die daraus entstehenden Readings sind konfigurierbar.

Modul und der Arduino-Code finden sich immer aktuell in meinem github-Repository:

https://github.com/viegener/Telegram-fhem

Im Kamstrup-Verzeichnis das Modul 54_Kamstrup.pm (mit Doku)
Im Kamstrup.Arduino-Verzeichnis der Sketch für den Arduino

Zumindest für andere Kamstrupzähler sollte sich das Modul auch verwenden lassen (z.B. Multical-Zähler von Kamstrup)
Eine Anpassung an beliebige Zähler ist nicht angedacht, dafür gibt es bereits generische Zählermodule.


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

#1
Schade das ich dieses Thema erst jetzt finde, nachdem ich mir den ES-IEC Sensor und HM-ES-TX-WM bei ELV bestellt habe. Vielleicht probiere ich es trotzdem noch mal - ich habe ebenfalls den Kamstrup 382. Was passte denn an deiner ersten Installation mit ES-IEC nicht?

Ich würde deine Lösung sehr gerne nachbauen wollen. Ein Arduino Uno habe ich noch rumliegen :)

Kann ich nicht theoretisch den Lesekopf des ES-IEC am Arduino nutzen?
FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

@MrJackBlack: Ich bin mit dem ES-IEC leider gar nicht erfolgreich gewesen (keinerlei Daten) und ich kenne andere Kamstruk 382-Benutzer, die den HM-ES-TX-WM mit dem normalen, alten IR-Sensor funktionieren, aber nur die LED-Pulse auslesen können (meines Wissens 1000 per kWh).

Ich kenne den genauen Schaltplan des IEC-Sensors nicht, deshalb habe ich den einfachen IR-Sensor, wie er auch im Volkszähler-Protokoll verwendet wird genutzt.

Den Schaltplan meines Selbstbau-Arduino-Teils kann ich gerne bereitstellen - im wesentlichen ein Arduino, ein ESP8266 und der IR-Sensor.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

Hallo viegener,

heute oder Montag kommen die Homematic Geräte. Ich werde diese ausprobieren und zur Not zurück schicken. Ich denke mal Anfang Januar werde ich das Ganze angehen, sollte es mit dem ES-IEC Sensor nicht klappen. Vielleicht ist bei deinen Kamstrup die Schnittstelle lahmgelegt? Ach nein, geht ja nicht. Habe gerade in den Code auf deinem Github geschaut und so wie ich es verstehe ist dort eine "echte" Kommunikation eingebaut, also muss etwas vom Zähler zurück kommen.

Also, ich werde in den nächsten Tagen meine ersten Gehversuche mit dem ES-IEC Sensor hier berichten und je nachdem wie es ausgeht wäre ich sehr an deiner Lösung interessiert :)
FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

@MrJackBlack: Ja die Schnittstelle funktioniert, nach meinem Verständnis ist allerdings die Schnittstelle im Kamstrup nicht konform zu ES-IEC und deshalb bin ich nicht erfolgreich gewesen. Ich habe deshalb auf das reverse engineering von jemandem zurückgegriffen und zusammen mit den Infos von Kamstrup meine Arduino-Software gebaut. Es gibt zwar Dokumente, die bei Kamstrup von einem IEC-konformen Interface reden, allerdings habe ich das in Zusammenhang mit der Infrarot-Schnittstelle nicht hinbekommen (und in den Dokumenten ist immer von einer Schnittstelle über Pins die Rede.

Wäre sicher interessant, wenn Du IEC zum laufen bekommst, meine Lösung ist allerdings ziemlich stabil und hat mir auch noch Spass bei der Entwicklung gemacht....
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

#5
Guten Abend,

heute kam der HM-ES-TX-WM mit ES-IEC Sensor. Update habe ich direkt gemacht auf v1.2 des HM-ES-TX-WM. Wie allerdings erwartet scheint etwas nicht zu stimmen. Es werden zwar zwei IEC-Kanäle gefunden (nennt man das so?), aber da kommt nur Grüze, siehe Anhang.

Ob man was mit den Readings anfangen kann?

edit: hier mal die RawDef des HM-ES-TX-WM. Baudrate ist ja scheinbar unterschiedlich in Sende- und Empfangsrichtung (300/1200Bd). Ich habe es jetzt mal so eingestellt, geht aber auch nicht.


setstate Energiezaehler 2017-12-18 22:12:45 .R-baudrate Bd300
setstate Energiezaehler 2017-12-18 18:59:05 .R-powerMode mainPower
setstate Energiezaehler 2017-12-18 21:42:05 .R-protocolMode modeA
setstate Energiezaehler 2017-12-18 21:54:21 .R-samplPerCycl 2
setstate Energiezaehler 2017-12-18 22:01:45 .R-serialFormat s8D0PN1S
setstate Energiezaehler 2017-12-18 18:59:05 .R-transmDevTryMax 6


FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

Nun ja - die Kanäle sind das was der HM-ES-TX-WM anlegt und die 1.2 ist ja bereits erforderlich, damit der IEC erkannt wird. Im Prinzip kommen auch bei Dir keiner Daten aus dem Kamstrup.

Achso und wenn möglich besser ein list des devices machen (list Energiezaehler) statt Screenshots.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

Hallo viegener,

jo, das nächste poste ich die Def des Devices, allerdings waren dann bei mir nicht alle Readings zu sehen  ???

Jetzt stehe ich vor der Entscheidung:
Kaufe ich den ES-LED und lese so den aktuellen Stromverbrauch aus, oder bastel ich mir was nach deinen Vorgaben, bzw. den Vorgaben von Hal9k...

Welche Readings kommen bei deiner Wifi-Anbindung an? Sind deine Readings ähnlich wie bei PyKamstrup?
Energy in                 6753.0 kWh
Energy out                0.0 kWh
Energy in hi-res          6753.3242 kWh
Energy out hi-res         0.0 kWh
Voltage p1                229.0 V
Voltage p2                227.0 V
Voltage p3                229.0 V
Current p1                5.41 A
Current p2                2.12 A
Current p3                3.07 A
Power p1                  0.976 kW
Power p2                  0.475 kW
Power p3                  0.595 kW


FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

Welche Readings ist bei mir einstellbar - mit getrennten Intervallen. Momentan sind es:


R_CurrentL1
R_CurrentL2
R_CurrentL3
R_Date4ad
R_EnergyCounter
R_EnergyDaily
R_MaxPower
R_Power
R_used_4ed
R_used_4ee
R_used_4ef


Die Spannungen pro Phase lese ich bei mir nicht aus und verschiedene andere Register versuche ich immer noch zu interpretieren.

Für mich relevant ist aktueller Verbrauch - täglicher Verbrauch und Maximalverbrauch und Gesamtverbrauch

Wie gesagt man kann einfach das Register angeben und das Intervall, dann wird dafür ein Reading angelegt und regelmässig ausgelesen.

Achso: mit list ist wirklich der FHEM-Befehl list gemeint, da sind definitvi alle Readings enthalten


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

So, der IR-Lesekopf ist zusammengebaut, der Arduino geflasht und... ich bekomme nur CRC Fehler :D

Ich nutze zum testen er Original Code von Hal9k. Hattest du damit Probleme?
FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

Zitat von: MrJackBlack am 11 Januar 2018, 18:39:40
So, der IR-Lesekopf ist zusammengebaut, der Arduino geflasht und... ich bekomme nur CRC Fehler :D

Ich nutze zum testen er Original Code von Hal9k. Hattest du damit Probleme?

Gute Frage, das weiss ich gar nicht mehr. Hast Du mal versucht meinen Arduino-Sketch zu flashen?
Der sollte eigentlich auch funktionieren, wenn man ohne FHEM direkt am PC per USB-Serial anschliesst, da kann ich auch leichter unterstützen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MrJackBlack

Zitat von: viegener am 12 Januar 2018, 14:45:33
Der sollte eigentlich auch funktionieren, wenn man ohne FHEM direkt am PC per USB-Serial anschliesst, da kann ich auch leichter unterstützen

Aha, gut zu wissen. Werde ich die nächsten Tage mal probieren.

Ist die Verbindung sehr gefährdet durch Streulicht? Eventuell liegt es an der Halterung/Befestigung.
FHEM 5.8 mit Homebridge auf Intel NUC
HUE, LIGHTIFY, JeeLink, CC1101, haufen Lampen und Sensoren. Interface via TabletUI auf einem Android Tablet. Seit Neuestem auch ein Landroid S über FHEM  angesteuert

viegener

Zitat von: MrJackBlack am 15 Januar 2018, 07:29:59
Ist die Verbindung sehr gefährdet durch Streulicht? Eventuell liegt es an der Halterung/Befestigung.

Dazu kann ich nicht viel sagen - bei mir gibt es ja eigentlich kein Streulicht. Ich habe mit einem Rundmagneten die beiden IR-Dioden direkt auf dem Kamstrup montiert, dadurch gibt es bei mir kein Streulicht, da der Kamstrup ja auch eine runde magnet/Metall-Scheibe enthält.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

zwehn

Hi, bei uns im Ort (Hohenbrunn) wurde der Multical 23 Wasserzaehler von Kamstrup flaechendeckend installiert.
Mit esp easy und dem optional erhaeltlichem Pulsadapter fuer 119€ (ja ist teuer) lassen sich die Pulse einfach erkennen. Der Pulsadapter startet die kommunikation mit dem Wasserzaehler durch einmaligen buttendruck.
Nachteil der Ifrarotloesung: Der wasserzahler hat einen eingebauten Akku, der fuer 5-10 Jahre halten soll. Da die wichtigste kommunikation ueber wm bus stattfindet, ist die ir pulse loesung quasi ein add on mit prio 2 und sendet daher auch nur mit einer Aufloesung von 10 l pro puls um energie zu sparen. Per wmbus ist ein ablesen von 3 stellen hinterm komma also auf 1 l ebene moeglich und wird vom versorger bequem zum auslesen per durchfahrt in der strasse genutzt.
Problem der wmbus Loesung ist:
1: aes verschluesselung
- kamstrup setzt allerdings positiver weise nicht auf einen common key fuer den wasserversorger sondern auf einen key pro wasserzaehler. Dh je nachdem wie gut euer draht zum wasseversorger ist, koennt ihr den erfragen.
2: fhem wmbus protokoll unterstuetzt nur s und t mode. Muss ich noch weiter evaluieren.
Bin auf der suche nach mitsreitern. Has jemand das auslesen per wmbus fuer kamstrup schon hinbekommen?
Achja die techniker von kamstrup sind sehr hilfsbereit ebenso wie die wasserwerker bei uns vor ort. Der pulsadapter wurde mir per fahrrad vom sachbearbeiter direkt an drr haustuer uebergeben. Super buergerservice.
Fhem auf Proxmox VM mit MSI Cubi N8GL mit N5000: HM-USB, HM-Lan, Cul 868, Cul 433, Selbstbau CUL868MHz für Wireless M-Bus, RFXtrx; FS20, HomeMatic Rolladensteuerung, Somfy Markisensteuerung, TextToSpeech, TFA Wetter, Universalsensor Innen/Aussen, Feinstaubsensor. Div Arduino und Esp Easy projekte.

gramels

Hallo,
ich versuche meinen heute installierten Kamstrup Omnipower an FHEM zu bekommen. Kann ich das Modul auch verwenden, wenn der IR Leser (Volkszähler) direkt am FHEM (Rapsi) via USB hängt?

Grüsse

Lothar