Sample.pdf (278,2 KB)
So, es ist vollbracht. Noch nicht in Symcon, aber ich habe soeben eine Verbindung via Trudi (Offizielles Ausleseprogramm) aufnehmen können.
Alle Aussagen sind gültig für die Westnetz. Mein ganz ernst gemeinter Dank geht an die Mitarbeiterin Frau Julia Röhrle Externe Mitarbeiterin der DMS GmbH im Auftrag der Westnetz GmbH. Bei mir lag diese ganze Problematik an folgenden Problemen:
Meine Beauftragung für den MEDACO Zugang funktionierte nicht über die MEDACO Web Oberfläche. Statt eines HAN Profils wurde das Web Profil eingerichtet. Da geht nichts mit HAN.
Wenn das passiert ist:
- mit medaco@westnetz.de Kontakt aufnehmen, mit der Aufforderung die Token noch einmal freizuschalten, um euch für das HAN Profil zu registrieren
- Wichtig! Wenn ihr die Mail bekommen habt, das die Token neu freigeschaltet wurden unbedingt mit einer anderen Email Adresse bei medaco registrieren
- Wie es dann abläuft, habe ich in der Sample,pdf angehängt
- Anschließend kurze Email an medaco, das alte Medaco Profil zu löschen
- Das Setzen der Passworte dauert ein paar Minuten
Jetzt habe ich soviel Zeit verschwendet und es wäre in 5 Minuten erledigt gewesen, wenn die Registrierung am Anfang so wie gewünscht gelaufen wäre…
Aktuell bin ich etwas ausgelastet, in wie weit ich dazu komme ein Skript für die Auswertung zu basteln, weiss ich noch nicht, lasse es euch aber wissen.
Mit dem Mikrotik Router und meiner VRF Config läuft das erstmal super. @koenisch die funktioniert so bei mir, wie ich sie dir per PN gesendet habe.
Sorry, beim Mikrotik muss ich nacharbeiten. Port 4 macht was er soll, Port 3 nicht.
Korrekturen habe ich in der Mikrotik Config gemacht. Beide Zähler funktionieren jetzt. Aber ich werde das jetzt erstmal testen. Aber mit funktionierenden Anmeldedaten kann man wenigstens vernünftig testen.
Hiermit kann ich schonmal erfolgreich den aktuellen Zählerstand auslesen.
<?php
/**
* Discovery & Testskript für PPC Smart Meter Gateway (HAN)
* Power Plus Communications AG
*/
/**
* PPC HAN CGI Zugriff in PHP
* Umsetzung des Python-Skripts
*/
$host = "EPPC0000000000"; // PPC Gateway
$ip = "192.168.1.200"; // IP-Adresse des HAN-Ports;
$user = "HAN-Benutzername"; // HAN-User (vom Netzbetreiber)
$password = "HAN Passwort"; // HAN-Passwort
$url = "https://$ip/cgi-bin/hanservice.cgi";
// CURL-Session vorbereiten
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$password");
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
if ($response === false) {
die("Fehler: " . curl_error($ch));
}
// Header + Body trennen
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$body = substr($response, $header_size);
// Session-Cookie extrahieren
preg_match('/Set-Cookie:\s*([^;]*)/i', $headers, $matches);
$cookie = isset($matches[1]) ? $matches[1] : "";
curl_close($ch);
// Token aus dem HTML <input>
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($body);
$xpath = new DOMXPath($dom);
$tokenNode = $xpath->query('//input')->item(0);
$token = $tokenNode ? $tokenNode->getAttribute('value') : "";
// Step 2: meterform anfordern
$postData = http_build_query([
'tkn' => $token,
'action' => 'meterform'
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Cookie: $cookie"]);
$res2 = curl_exec($ch);
curl_close($ch);
// Meter-ID extrahieren
$dom->loadHTML($res2);
$sel = $dom->getElementById('meterform_select_meter');
$mid = "";
if ($sel && $sel->firstChild) {
$mid = $sel->firstChild->getAttribute('value');
}
// Step 3: showMeterProfile
$postData = http_build_query([
'tkn' => $token,
'action' => 'showMeterProfile',
'mid' => $mid
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Cookie: $cookie"]);
$res3 = curl_exec($ch);
curl_close($ch);
// Werte aus Tabelle #metervalue
$dom->loadHTML($res3);
$result = [];
$ids = [
"table_metervalues_col_wert" => "value",
"table_metervalues_col_einheit" => "unit",
"table_metervalues_col_timestamp" => "timestamp",
"table_metervalues_col_istvalide" => "isvalid",
"table_metervalues_col_name" => "name",
"table_metervalues_col_obis" => "obis"
];
foreach ($ids as $id => $key) {
$node = $dom->getElementById($id);
$result[$key] = $node ? trim($node->textContent) : "";
}
// Ausgabe
echo $result['timestamp'] . " " . $result['value'] . " " . $result['unit'] . PHP_EOL;
Für heute ist Schluss. Ich werde jetzt mal die actions Scannen. Aktuell habe ich nur meterform genutzt für den Zählerstand.
20.09.2025
So. Ist ausgetestet. Lasst es. Funktioniert grundsätzlich. Ich habe einen Zähler mit Bezug (OBIS 1.8.0) und Einspeisung (OBIS 2.8.0). Es wird nur 2.8.0 zur Verfügung gestellt. 1.8.0 kann man weder mit TRUDI noch mit dem Webinterface (hanservice.cgi) abrufen.
Der andere Zähler hat nur Ertrag, der liefert nur 2.8.0. In medaco waren alle Zähler sichtbar. Die Leistung in Watt ist nicht abrufbar. Ich wollte das nicht glauben, ist aber so. Zumindest bei dieser Firmware.
Warum man da keine dokumentiere Rest API zu Verfügung stellen kann, who knows.
Meine Lösung klickt sich jetzt quasi durch die hanservice.cgi Weboberfläche. Neuland lässt grüssen. Kompliziert und nutzlos, zumindest bei dieser Implementation der PPC Gateways für Westnetz.
Jetzt habe ich noch eine Mail ans BDMV gesendet, wird auch nichts bringen:
Sehr geehrte Damen und Herren,
im Zuge des Rollouts intelligenter Messsysteme wurde auch bei mir ein Smart Meter Gateway (Hersteller PPC, smgw-bootstream v902, Messstellenbetreiber Westnetz, Installationsdatum 24.03.2025) installiert.
Ich habe als technisch versierter Anwender versucht, die vom Gesetzgeber vorgesehene Transparenzschnittstelle (HAN-Schnittstelle) zu nutzen, um meine Verbrauchs- und Einspeisedaten auszuwerten.
Leider musste ich feststellen, dass die Schnittstelle in der Praxis praktisch unbrauchbar ist:
Über die HAN-Schnittstelle wird lediglich der OBIS-Wert 2.8.0 (Einspeisung) ausgegeben.
Der für Endkunden relevante Wert 1.8.0 (Bezug) wird nicht bereitgestellt.
Weitere OBIS-Werte (z. B. Momentanleistung, Spannungen, Ströme), die für ein modernes Energiemanagement essenziell wären, sind nicht verfügbar.
Anstelle einer maschinenlesbaren und standardisierten Schnittstelle (z. B. REST-API oder MQTT) bietet das Gateway nur eine veraltete, formularbasierte Oberfläche (CGI), die schwer automatisierbar ist, auch wenn ich das problemlos technisch lösen konnte.
Damit verfehlt die HAN-Schnittstelle ihr eigentliches Ziel: den Endkunden transparent über Verbrauch und Einspeisung zu informieren und eine Grundlage für Energieeffizienz, Eigenverbrauchsoptimierung und Sektorenkopplung zu schaffen.
Vor diesem Hintergrund möchte ich Sie bitten, sich für eine zeitgemäße Weiterentwicklung der Smart Meter Gateways einzusetzen.
Konkret sollte die HAN-Schnittstelle mindestens folgende Anforderungen erfüllen:
Bereitstellung aller relevanten OBIS-Werte (Bezug, Einspeisung, Momentanleistung, Spannungen, Ströme).
Standardisierte, maschinenlesbare Schnittstelle (REST-API oder MQTT), die sich in moderne Energiemanagement- und Smart-Home-Systeme integrieren lässt.
Einheitliche Umsetzung durch alle zertifizierten Gateway-Hersteller.
Ich halte es für dringend erforderlich, dass die gesetzlichen Vorgaben (Messstellenbetriebsgesetz, BSI-TR-03109) an dieser Stelle überarbeitet werden, damit die kostspielig eingeführten Smart Meter auch den versprochenen Nutzen für Verbraucher und Energiewende erbringen.
Mit freundlichen Grüßen
An die Bundesnetzagentur ist das auch raus. 
Und sorry für diesen langen Post.