[Modul] SML-Counter zur Integration der Infrarotschnittstelle von Haushaltszählern

dump.txt (10,8 KB)
Ich hoffe, dass passt soweit?

Ansonsten hier nochmal der Mitschnitt aus CoolTerm:
HexDump.stc.zip (1,1 KB)

jo, der sendet im Klartext. Was ist das für ein Modell?
Leider ist in der zip-Datei kein Dump drin. Vielleicht versuchen wir das mal anders. Kannst du bitte einen Cutter anlegen, diesen mit dem Serial-Port von deiner Schnittstelle verbinden. Den Cutter dann auf feste Schnitte, die Länge auf 1000 Zeichen und als Sync-Zeichen 1.8.0 eintragen.
Dann nimmt er auf jeden Fall den kompletten Datensatz in eine Zeile. Diese Zeile einmal als HEX und einmal als Text in eine txt-Datei, wäre ein Träumchen. Dann gucke ich mal, ob ich daraus ein Modul gebastelt kriege.

Grüße
Jürgen

Guten Morgen,

der Lesekopf ist ein Hichi IR usb - Hier bestellt: USB IR Lesekopf EHZ Lese-Schreib-Kopf Volkszähler Hichi Smartmeter | eBay .
Der Zähler ist ein LOGAREX „LK13BE803039“

Habe jetzt kurz den Debug laufen lassen und kann darin dann ja Klartext (Roh) und HEX umändern.
dump (1).txt (62,6 KB)
In der Datei sind dann beide Ansichten.

Reicht dir das so?



Viele Grüße
Steffan

Hallo Stefan,
ich habe mir das jetzt mal intensiver angeguckt. Da sollte was gehen.
Ich bastele mal eine Beta-Version.
Grüße
Jürgen

1 „Gefällt mir“

Klasse! Hab vielen Dank für dein Engagement!

:wink:

Hallo Steffan,

es ist soweit. Die erste Beta steht jetzt zur Verfügung. Da du keinen SML- sondern einen Obis-Plain-Text-Zähler hast, hat das neue Modul auch einen eigenen Bereich.
https://community.symcon.de/t/modul-obis-counter
Bitte wechsele dorthin mit Anmerkungen und Fragen.

Ich bin gespannt, ob das Modul auf Anhieb funktioniert.
Grüße
Jürgen

Servus Jürgen,

tolles Modul, was du zur Verfügung stellst.

Ich habe es bei mir versucht und festgestellt, dass ich ebenfalls einen Zähler mit Eröffnungssequenz habe. Besteht die Möglichkeit ähnlich wie in deinem anderen Modul ([Modul] Obis Counter zur Integration der Infrarotschnittstelle von Haushaltszählern - #17 von Silberstreifen) dies hier ebenfalls mit einzubauen.

Ich habe folgenden Zähler: 2-Wege Stromzähler Easy Meter Q3CA1261, an dem ist die obere D0 Schnittstelle verplombt. (Diese würde selbstständig Daten senden.)
Als Endnutzer kann ich nur die vordere DSS-Info (D0) Schnittstelle nutzen und diese muss „angetriggert“ werden.

Denn ich habe festgestellt, wenn ich über ein Skript die nachfolgende Sequenz schicke, liest dein Modul meinen Zähler-Werte recht gut.

$str = hex2bin('1b1b1b1b0101010176033046620062007265000001007701010101010101639698007603313962006200726500000700750101010101638bb300760331416200620072650000020071016349910000001b1b1b1b1a02bd69');
SPRT_SendText (26102,$str);

(26102 ist meine Serial Instanz, an der der Lesekopf dranhängt.)

Hier ein paar Detail-Infos zu dem Datensatz des Zähler, die mir mein Energie-Versorger zur Verfügung gestellt hat:

*********************************
 Anfrage an vorderer Info-DSS 
*********************************

1b 1b 1b 1b 01 01 01 01 76 03 30 46 62 00 62 00 72 65 00 00 01 00 77 01 01 01 01 01 01 01 63 96 98 00 76 03 31 39 62 00 62 00 72 65 00 00 07 00 75 01 01 01 01 01 63 8b b3 00 76 03 31 41 62 00 62 00 72 65 00 00 02 00 71 01 63 49 91 00 00 00 1b 1b 1b 1b 1a 02 bd 69 


*********************************
 Antwort Rohdaten SML (INFO-DSS)
*********************************

1b 1b 1b 1b 01 01 01 01 76 05 00 00 30 46 62 00 62 00 72 65 00 00 01 01 76 01 01 01 0b 06 45 53 59 01 02 73 d6 92 3c 01 01 63 25 ac 00 76 05 00 00 30 47 62 00 62 00 72 65 00 00 07 01 77 01 0b 06 45 53 59 01 02 73 d6 92 3c 01 01 f1 01 77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 53 59 01 77 07 01 00 00 00 09 ff 01 01 01 01 0b 06 45 53 59 01 02 73 d6 92 3c 01 77 07 01 00 00 00 00 ff 01 01 01 01 0e 31 32 37 31 31 34 35 30 30 34 33 34 38 01 77 07 00 00 60 01 ff ff 01 01 01 01 0f 31 45 53 59 31 31 34 35 30 30 34 33 34 38 01 77 07 81 81 c7 82 08 ff 01 01 01 01 0f 51 33 43 41 31 31 38 31 20 56 35 2e 30 35 01 77 07 00 00 60 08 00 ff 01 01 01 01 65 00 04 d8 0c 01 77 07 01 00 60 5a 01 ff 01 01 01 01 04 03 41 1b 01 77 07 01 01 02 08 00 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 03 b0 01 77 07 01 01 02 08 01 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 a6 01 77 07 01 01 02 08 02 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6f 01 77 07 01 01 02 08 03 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6e 01 77 07 01 01 02 08 04 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6f 01 77 07 01 01 02 08 05 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6e 01 77 07 01 01 02 08 06 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6f 01 77 07 01 01 02 08 07 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 73 01 77 07 01 01 02 08 08 ff 63 01 10 72 62 01 65 00 04 d8 0c 62 1e 52 01 65 00 00 00 6e 01 77 07 01 00 60 05 05 ff 01 01 01 01 63 01 10 01 01 01 63 33 1c 00 76 05 00 00 30 48 62 00 62 00 72 65 00 00 02 01 71 01 63 24 03 00 00 00 1b 1b 1b 1b 1a 02 6F 33



*********************************
 Rohdaten SML stukturiert
*********************************

Send telegram (Anfrage)
1b 1b 1b 1b 01 01 01 01 
	76 
		03 31 38 
		62 00 
		62 00 
		72 
			65 00 00 01 00 
			77 
				01 
				01 
				01 
				01 
				01 
				01 
				01 
		63 96 98 
		00 
	76 
		03 31 39 
		62 00 
		62 00 
		72 
			65 00 00 07 00 
			75 
				01 
				01 
				01 
				01 
				01 
		63 8b b3 
		00 
	76 
		03 31 41 
		62 00 
		62 00 
		72 
			65 00 00 02 00 
			71 
				01 
		63 49 91 
		00 
	00 
	00 1b 1b 1b 1b 1a 02 bd 69 
End of telegram


New telegram (Antwort)
1b 1b 1b 1b 01 01 01 01 
	76 
		05 00 00 31 38 
		62 00 
		62 00 
		72 
			65 00 00 01 01 
			76 
				01 
				01 
				01 
				0b 06 45 53 59 01 02 73 d6 92 3c 
				01 
				01 
		63 13 3e 
		00 
	76 
		05 00 00 31 39 
		62 00 
		62 00 
		72 
			65 00 00 07 01 
			77 
				01 
				0b 06 45 53 59 01 02 73 d6 92 3c 
				01 
				01 
				f1 01 
					77 
						07 81 81 c7 82 03 ff 
						01 
						01 
						01 
						01 
						04 45 53 59 
						01 
					77 
						07 01 00 00 00 09 ff 
						01 
						01 
						01 
						01 
						0b 06 45 53 59 01 02 73 d6 92 3c 
						01 
					77 
						07 01 00 00 00 00 ff 
						01 
						01 
						01 
						01 
						0e 31 32 37 31 31 34 35 30 30 34 33 34 38 
						01 
					77 
						07 00 00 60 01 ff ff 
						01 
						01 
						01 
						01 
						0f 31 45 53 59 31 31 34 35 30 30 34 33 34 38 
						01 
					77 
						07 81 81 c7 82 08 ff 
						01 
						01 
						01 
						01 
						0f 51 33 43 41 31 31 38 31 20 56 35 2e 30 35 
						01 
					77 
						07 00 00 60 08 00 ff 
						01 
						01 
						01 
						01 
						65 00 04 d8 24 
						01 
					77 
						07 01 00 60 5a 01 ff 
						01 
						01 
						01 
						01 
						04 03 41 1b 
						01 
					77 
						07 01 01 02 08 00 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 03 b0 
						01 
					77 
						07 01 01 02 08 01 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 a6 
						01 
					77 
						07 01 01 02 08 02 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6f 
						01 
					77 
						07 01 01 02 08 03 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6e 
						01 
					77 
						07 01 01 02 08 04 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6f 
						01 
					77 
						07 01 01 02 08 05 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6e 
						01 
					77 
						07 01 01 02 08 06 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6f 
						01 
					77 
						07 01 01 02 08 07 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 73 
						01 
					77 
						07 01 01 02 08 08 ff 
						63 01 10 
						72 
							62 01 
							65 00 04 d8 24 
						62 1e 
						52 01 
						65 00 00 00 6e 
						01 
					77 
						07 01 00 60 05 05 ff 
						01 
						01 
						01 
						01 
						63 01 10 
						01 
				01 
				01 
		63 c5 96 
		00 
	76 
		05 00 00 31 3a 
		62 00 
		62 00 
		72 
			65 00 00 02 01 
			71 
				01 
		63 b5 fa 
		00 
	00 
	00 1b 1b 1b 1b 1a 02 15 C2
End of telegram

Hier wären die Erklärungen meiner Datenpunkte.
q3cx_datensatz_info-dss_v02_auszug.pdf (270,4 KB)

Und das kann dein Modul bereits jetzt:

Bisher fehlt mir nur die aktuelle Leistung (Bezug+ / Lieferung -) dann wäre das Modul für mich (und vielleicht andere Easymeter-Besitzer ) perfekt.

Viele Grüße
Björn

Hallo Björn,

die Initialisierungs-Sequenz kann ich gerne einbauen. Bei den Leistungsdaten kann ich Dir wahrscheinlich nicht helfen. Ich habe mir deine Unterlagen durchgelesen. Da steht nichts von Leistungen drin. Auch im Datensatz finde ich keine Leistung. Bist du sicher, dass dein Zähler Leistungen sendet? Dann schicke mir bitte mal eine dump.txt aus dem Debug deiner Zählerinstanz.
Grüße
Jürgen

V1.07 - Neu: Sende Eröffnungssequenz

So die neue Version hat jetzt wie der Obis-Counter die Möglichkeit eine Eröffnungssequenz zu schicken. Ich hoffe mal, das klappt soweit. Und vor allem hoffe ich, dass sich alle Zählerhersteller auf dieselbe Sequenz geeinigt haben. Mir schwant da böses…

Die neue Version ist wie immer zunächst als Beta im Module-Store erhältlich.
Grüße
Jürgen

Hallo Jürgen,

Danke für die schnelle Umsetzung. Die Eröffnungssequenz funktioniert bei mir super. (Um flexibler zu sein, da dir böses schwant … könnte man es u.U. als Eingabefeld oder mit einer Variablen verknüpfen. Aber mal abwarten, wie viele davon betroffen sind.)

Soweit funktioniert es super und ich habe mal das DUMP angegangen. Tatsächlich hatte ich gedacht, dass A+ und A- mir die Leistung / und Richtung angeben, aber in den OBIS Kennzahlen wären das eher die 1.7.0 und 2.70 und die hat der Zähler wohl nicht.

Wie gesagt, vielen Dank für die Umsetzung.

dump.txt (59,4 KB)

Grüße
Björn

Ich habe mir auch mal solch einen Zählerkopf bestellt um zu sehen, wie weit mein KNX Zähler vom eHz Zähler abweicht.
Mir ist aufgefallen, das gerade so bei einer „0“ Ausregelung durch die PV und Akku der KNX Zähler um gut 70-140W von dem eHz abweicht, was natürlich für eine gute Regelung nicht geht.
Bei höheren Werten passt es dann wieder. Gemessen wird mit Rogowskispulen.

Jetzt ist mir aber beim Einrichten aufgefallen, das ich z.B. die Werte im Cutter gar nicht einstellen kann, da alle ausgegraut.
Muss ich da noch etwas anderes aktivieren oder wie komme ich an die Einstellungen ran?
In der Instanz habe ich zum testen mal "Sende Eröffnungssequenz " aktiviert, aber keine Möglichkeit irgend welche Werte zu ändern …
Gibt es da noch etwas zu beachten?
Version ist die V1.07

Beim Cutter muss nichts eingestellt werden. Wenn du einen Zähler hast, der SML sendet, dann kommt das auch in der Instanz an.

  • Hast du mal geguckt, ob im Debug des Cutter überhaupt etwas ankommt?
  • Hast du bereits den Zähler per Pin freigeschaltet und
  • hast dann die Infoschnittstelle auf Senden gestellt?

Grüße
Jürgen

Hallo Jürgen,

nein ich habe den Zählerkopf noch nicht. Nur die serielle Schnittstelle ist schon mit dem Modul über den Cutter verbunden und ich hatte mich gewundert, das ich im Cutter nichts anders einstellen konnte und alles grau war.
Das Modul kann ja nicht erkennen, das der Lesekopf noch nicht dran ist.
Das Zählerdisplay hatte ich vor Jahren schon mal mit dem Pin freigeschaltet.
Muss ich die IR Ausgabe hier noch zusätzlich aktivieren?

VG,
Doc

typischerweise ja. Die ist aus Datenschutzgründen ausgeschaltet. Der Zähler könnte sich ja irgendwo im öffentlichen Bereich befinden.

Ich schau mal, wenn das Ding da ist, ob der Zähler etwas ausspuckt.

Vielen Dank erst einmal für dein Modul.

VG,
Doc

Hallo Jürgen,

erst einmal DANKE für das tolle Modul, funktioniert auch einwandfrei. Mir ist jetzt aber schon dreimal aufgefallen das Mittags wenn die Solaranlage ins Netzt speist, das Modul bei der Leistung 16.7.0 einen unplausiblen Wert schreibt (ca.16354W ) die kwh (1.8.0 und 2.8.0) sind davon nichtbetroffen. Das scheint immer dann der Fall zu sein wenn die Solaranlage einen bestimmten Wert hat oder überschreitet. Ich bekomme das leider erst Abends mit wenn ich von der Arbeit komme. Ich muss aber dazu sagen das die Solaranlage aber nur 4 Panels mit 1200KW peak hat.
Als ich den Zähler (Zweirichtungszähler DVS7412.2.G2) noch mit IO Broker und den Weidmann Köpfen ausgelesen habe, war das nicht so, ansonsten funktioniert auch alles perfekt. Der gleiche Zähler ohne Solaranlage zeigt dieses verhalten nicht.
Ist dir so ein Verhalten evtl. bekannt und welche Info´s kann ich noch liefern.

Danke schon mal vorab
Gruß Torsten

hast du die Checksummenprüfung angeschaltet? Wenn nein, dann versuche das mal. Wenn du Glück hast, ist der Spuk dann vorbei.

Wie hast du das mit IO-Broker gemacht? Gab es da ein Modul?
Grüße
Jürgen

Hatte die Einfache Datensatzprüfung und die Prüfung mit Checksumme beides aktiviert. Habe jetzt mal nur die Prüfung mit checksumme aktiviert, mal abwarten, lese alle 60 Sek. aus.

Bei IOBroker habe ich einen Adapter der Smartmeter heist, dort definierst Du auch einen Com Port und bekommst dann die Daten.

grafik

Gruß Torsten

Beides an ist schon ok. Die einfach Prüfung abzuschalten bringt da keinen Vorteil. Habe eben mal versucht, mich durch das Smartmeter-Modul von Apollon77 durchzuquälen. Finde aber aktuell noch keinen Ansatzpunkt zur Verbesserung.

Was genau passiert da bei dir? Ist nur ein einziger Wert falsch und danach passt alles wieder? Handelt es sich bei dir ggf. um dieses Problem?

Super wäre, wenn du von dem falsch interpretierten Wert einen Debug-Auszug aus der Instanz hast. Dann kann ich den SML-Code bei mir mal durchlaufen lassen. Dann findet sich das Problem an schnellsten.

Grüße
Jürgen

Hallo Jürgen,
heute waren es zwei Werte die falsch waren. Wert davor und danach wieder OK. Letzte Woche waren es locker 10 Stück die aufeinander folgend falsch waren. Dort habe ich allerdings alle 10 sek. ausgelesen. Ich schaue mal das ich den Debug laufen lasse und dann den bereich auschneiden kann. Ansonsten muss ich am WE mal schauen das ich da was mitlaufen lasse.

Ich glaube nicht das es das Problem ist, wie unter GitHub beschrieben. Ich denke das es wirklich mit der Einspeisung zu tun hat, es sieht fast so aus das wenn die Einspeisung gegen Null geht bzw. es große Sprünge gibt und dann der falsche Wert kommt. Die Auslesung ist sonst Tiptop. Aber ich schaue das ich Dir das Debug zukommen lasse.

Auf jeden Fall schon mal vielen Dank für Deine Bemühungen.

Gruß Torsten