98_TD3511_OOE.pm für Siemens AMIS-Zähler vom EVU - Netz Oberösterreich

Begonnen von bertl, 12 März 2024, 11:59:02

Vorheriges Thema - Nächstes Thema

bertl

Hallo Interessierte,

nachdem ich lange gesucht und nichts passendes gefunden habe, hier meine Lösung für die Integration des Siemens AMIS-Multifunktionszähler TD3511 welcher vom Energieversorgungsunternehmen (EVU) Netz Oberösterreich (Netz-OÖ) verbaut ist.
Leider funktioniert das OBIS-Modul für diesen von der Netz-OÖ speziell konfigurierten Zähler nicht und im passenden OBIS Forum wurde/konnte mir leider nicht geholfen werden.

Mein Setup:
IR-Lesekopf welcher mittels USB am Raspberry Pi 3 Model B (FHEM-Server) hängt.
Ich verwende den ELV Lesekopf mit USB-Schnittstelle USB-IEC.

Beschreibung was das Modul macht:
Das Modul TD3511_OOE (OOE für OberÖsterreich) ließt die Daten des AMIS-Stromzähler TD3511 (Netz-OÖ) mit IR-Schnittstelle via USB Schreiblesekopf aus.
Der AMIS-Zähler führt im 1-min-Takt eine Suchabfrage (Primäradresse "0xF0") nach einem geeigneten Endgerät durch.
Dieser muss das Telegramm mit einem Acknowledgement "0xE5" quittieren.
Nachdem der AMIS-Zähler das Acknowledgement "0xE5" empfangen hat, beginnt er im Sekundentakt die Zählerdaten auszusenden.
Das Endgerät muss jedes dieser Telegramme mit einem "0xE5" quittieren, damit der AMIS-Zähler die Zählerdaten weiter aussendet.
Bleiben 10 Quittierungen durch das Endgerät aus, wechselt der AMIS-Zähler wieder in den Suchmodus zurück.
Das Telegramm ist mit 9600 Baud, 8 Bit, 1 Stoppbit und gerader Parität zu senden.
Die Zählerdaten sind mit symmetrischer Verschlüsselung (nach OMS, AES-128, "encryption mode 5") gesichert.

Definition in FHEM:
define <name> TD3511_OOE <device> <key>
<name>   Bezeichnung des Gerätes
<device> gibt den seriellen Port an
<key>      AES-Schlüssel welchen man von der Netz-OÖ bekommt

Über das Attribut interval kann man das Abrufintervall der Daten angeben.
Ist kein Intervall angegeben, wird standardmäßig 60 Sekunden verwendet.

Laut Netz-OÖ kann sich der AES-Schlüssel ändern, daher kann dieser mit
set <name> key 00112233445566778899AABBCCDDEEFFjederzeit geändert werden.

Folgende Werte werden vom Zähler ausgegeben und vom Modul in Readings geschrieben:
  Date_Time    0.9.1+0.9.2   Datum + Uhrzeit
  Energy_import_kWh    1.8.0   Zählerstand Energie A+ (Wirkenergie)
  Energy_export_kWh    2.8.0   Zählerstand Energie A- (Wirkenergie)
  Energy_import_kVarh    3.8.1   Zählerstand Energie R+ (Blindenergie)
  Energy_export_kVarh    4.8.1   Zählerstand Energie R+ (Blindenergie)
  Power_import_kW    1.7.0   momentane Wirkleistung P+
  Power_export_kW    2.7.0   momentane Wirkleistung P-
  Power_import_kVar    3.7.0   momentane Blindleistung Q+
  Power_export_kVar    4.7.0   momentane Blindleistung Q-
  Energy_counter_kWh    1.128.0   Inkassozählwerk

Gutes Gelingen
Robert