hardware:channels:meters:power:edl-ehz:itron_ace3000_type_260
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:channels:meters:power:edl-ehz:itron_ace3000_type_260 [2016/06/04 12:55] – [Auslesen des Zählers mittels PC oder Mac] udo1 | hardware:channels:meters:power:edl-ehz:itron_ace3000_type_260 [2023/06/21 07:51] (aktuell) – justinotherguy | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Itron ACE3000 Type 260 ====== | ====== Itron ACE3000 Type 260 ====== | ||
- | Ich möchte hier mein Projekt zum Auslesen eines Zweirichtungszählers Itron ACE3000 Type 260 mittels PHP vorstellen. | + | ===== Hardware ===== |
+ | Der ACE3000 hat eine Infrarot-Schnittstelle nach DIN EN 62056-21 Mode C-a, die für die Auswertung mit einen [[hardware: | ||
- | Da für Solaranlagen ab 01.04.2012 | + | Der Stromzähler gibt von sich aus gar keine oder nur S0-Impulse über Die Frontschnitttstelle aus. Diese Impulse |
- | Ich kann aus meinem PV-Wechselrichter (Kostal piko) die Daten direkt auslesen, so daß auch für die Ermittlung des Eigenverbrauches kein zweiter | + | Für die Kommunikation mittels d0-Protokoll muss zuerst eine Initialisierungs-Sequenz "/? |
- | Der ACE3000 | + | Zusätzlich |
- | Zusätzlich hat der Zähler eine Infrarot-Schnittstelle nach DIN EN 62056-21 Mode C-a, die für die Auswertung verwendet wurde. | + | ===== Auslesen des Zählers mittels vzlogger ===== |
+ | Das Auslesen des Zählers kann auf zwei Arten erfolgen: | ||
+ | - durch Auslesen | ||
+ | | ||
- | Benutzt hab ich dazu einen [[hardware: | + | Beide Arten können mit dem IR-Schreib-Lesekopf |
- | Udo hat mir freundlicherweise | + | ==== vzlogger.conf für d0-Daten==== |
+ | Um die d0-Daten des ACE3000 an der IR-Schnittstelle mit vzlogger und einem IR-Schreib-Lesekopf abzufragen, muss die vzlogger.conf unter /etc/ wie folgt aussehen.\\ | ||
+ | Im Frontend des Volkszaehlers muss ein Kanal mit den Einstellungen „El. Energie (Zählerstand)“, Auflösung 1 und Style = „Steps“ für Bezug erstellt werden.\\ | ||
+ | Weiter muss, bei Zweirichtungszählern, | ||
+ | Die aktuellen Zählerstände unter ' | ||
+ | <code base vzlogger.conf> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ], | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
- | ===== Konzept | + | ==== vzlogger.conf für S0-Impulse |
+ | Um die S0-Impulse des ACE3000 an der IR-Schnittstelle mit vzlogger und einem IR-Schreib-Lesekopf abzufragen, muss die vzlogger.conf unter /etc/ wie folgt aussehen.\\ | ||
+ | Im Frontend des Volkszaehlers muss ein Kanal mit den Einstellungen "El. Energie (S0-Impulse)", | ||
- | Ich möchte den Zähler auslesen und die Einzelwerte für Bezug und Einspeisung in eine vorhandene MySQL-Datenbank bei einem Webhoster speichern. Dazu benutze ich ein kleines PHP-Skript auf dem Webserver und einen Cronservice, der zyklisch alle fünf Minuten das Skript zum Auslesen der Daten aufruft. | + | <code base vzlogger.conf> |
- | Die Auswertung erfogt dann mit separaten Webseiten, das Volkszähler-Frontend benutze ich zur Zeit noch nicht | + | { |
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
- | ===== IR-Schreib-Lese-Kopf ===== | + | " |
- | Der Schreib-Lesekopf kann einfach auf den Itron aufgesetzt werden. Er hält mit dem Magnet sehr gut. Danach wird der Lesekopf mit dem YPORT verbunden. | + | { |
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | </ | ||
+ | ===== Test mittels Hterm ===== | ||
+ | In der Hterm-Konsole gibt man die Zeichen "/? | ||
- | ===== YPORT-Node ===== | + | {{: |
- | Ist das erledigt, kann der YPORT mit dem Stromnetz und und dem Router im Heimnetzwerk verbunden werden. | + | <note important> |
- | + | ||
- | Hierzu | + | |
- | + | ||
- | Der YPORT-Node wurde in Standard-Ausführung direkt ans Heimnetz geklemmt und sollte | + | |
- | + | ||
- | + | ||
- | ===== Den Itron ACE3000 Type 260 zum Antworten überreden ===== | + | |
- | + | ||
- | Der Stromzähler gibt von sich aus keinerlei Infrarot-Impulse aus, so daß zuerst eine Initialisierungs-Sequenz geschickt werden muß, um ihn zum Antworten zu bewegen. Dazu stellt man in dem Client, z.B. Hterm, 300bd, Frameformat 7E1 ein. Die Baudrate kann bei dem Zähler nicht geändert werden | + | |
- | + | ||
- | Tip: Die Impulse können mit einer Digitalkamera sichtbar gemacht werden, da Digicams im Gegensatz zum menschlichen Auge infrarotempfindlich sind. | + | |
- | + | ||
- | In der Hterm-Konsole | + | |
+ | ==== Beispielantwort ==== | ||
< | < | ||
/?! | /?! | ||
Zeile 57: | Zeile 133: | ||
Die Ausgabe kann abweichen, da der Datenblock vom Hersteller auf die Wünsche des Netzbetreibers angepasst werden kann, näheres findet man im [[http:// | Die Ausgabe kann abweichen, da der Datenblock vom Hersteller auf die Wünsche des Netzbetreibers angepasst werden kann, näheres findet man im [[http:// | ||
- | Hinweis: Da sich der ACE3000 nach der Intialisierungssequenz bemüßigt fühlt, S0-Impulse auf der Infrarot-Schnittstelle auszugeben, sollte nach Eingabe der Zeichen die < | + | ===== PHP-Script ===== |
+ | Das nachfolgende Scriptzeigt, | ||
- | ===== Routing ===== | + | < |
- | + | ||
- | Funktioniert die manuelle Ausgabe, kann man sich an die externe Anbindung wagen. Dazu ist im Heimrouter ein Forwarding auf den YPORT anzulegen. Es muss dabei der Port 7970 weitergeleitet werden, die Weiterleitung von Port 80 ist nicht notwendig. Wie das geht, sollte im Benutzerhandbuch des Routers nachlesbar sein | + | |
- | + | ||
- | ===== PHP-Abfrage ===== | + | |
- | + | ||
- | Die nachfolgende Abfrage zeigt, wie man mit dem genannten Equipment die Daten des Zählers abfragen kann. Die Ausgabe benötigt ca. 6-10 Sekunden bis zur Anzeige. Die Variablenwerte können dann nach Wunsch in eigenen Projekten weiterverwendet werden. | + | |
- | + | ||
- | < | + | |
<?php | <?php | ||
$zeilen = 8; // es sollten soviele Zeilen abgefragt | $zeilen = 8; // es sollten soviele Zeilen abgefragt | ||
Zeile 105: | Zeile 174: | ||
Das Auslesen einer fixen Anzahl von Zeilen hat gegenüber der ebenfalls möglichen Abfrage von Einzelzeichen den Vorteil, daß der Socket möglichst schnell wieder geschlossen wird. Bei mir ist die Abfrage nach 7 Sekunden erledigt. | Das Auslesen einer fixen Anzahl von Zeilen hat gegenüber der ebenfalls möglichen Abfrage von Einzelzeichen den Vorteil, daß der Socket möglichst schnell wieder geschlossen wird. Bei mir ist die Abfrage nach 7 Sekunden erledigt. | ||
- | ===== Abfrage mit Bash-Script ===== | + | ===== Bash-Script ===== |
Hier ein Beispiel für die Abfrage mit einem Bash-Script und Berechnung der " | Hier ein Beispiel für die Abfrage mit einem Bash-Script und Berechnung der " | ||
Zeile 113: | Zeile 182: | ||
Die Laufzeit für die Abfrage beider Zähler liegt zwischen 18 und 26s. | Die Laufzeit für die Abfrage beider Zähler liegt zwischen 18 und 26s. | ||
- | < | + | < |
#!/bin/bash | #!/bin/bash | ||
Zeile 263: | Zeile 332: | ||
===== Python-Script für Testzwecke ===== | ===== Python-Script für Testzwecke ===== | ||
Hier noch ein Script eines Users: | Hier noch ein Script eines Users: | ||
- | < | + | < |
### | ### | ||
import serial | import serial | ||
Zeile 297: | Zeile 366: | ||
### | ### | ||
</ | </ | ||
- | |||
- | ===== Auslesen des Zählers mittels vzlogger ===== | ||
- | |||
- | Das Auslesen des Zählers kann auf zwei Arten erfolgen:\\ | ||
- | 1. durch Auslesen der d0-Daten.\\ | ||
- | 2. durch Erfassen der s0-Impulse.\\ | ||
- | |||
- | Der Zähler muss aufgefordert werden um seine Daten per d0 zu senden. Baudrate: 300bd, Frameformat: | ||
- | Wird er nicht aufgefordert, | ||
- | Beide Arten können mit dem IR-Schreib-Lesekopf erfasst und mit vzlogger ausgewertet werden. Aber immer nur eine Art auf einmal.\\ | ||
- | ===== vzlogger.conf für d0-Daten===== | ||
- | Um die d0-Daten des ACE3000 an der IR-Schnittstelle mit vzlogger und einem IR-Schreib-Lesekopf abzufragen, muss die vzlogger.conf unter /etc/ wie folgt aussehen. Darauf achten, dass hinter der letzten geschweiften Klammer kein Leerzeichen oder eine Leerzeile erzeugt wird. | ||
- | Im Frontend des Volkszaehlers muss ein Kanal mit den Einstellungen „El. Energie (Zählerstand)“, | ||
- | Weiter muss ein zweiter Kanal mit den Einstellungen „El. Energie (Zählerstand)“, | ||
- | Nicht vergessen die aktuellen Zählerstände unter ' | ||
- | Die dadurch erstellten UUIDs (auf das (i) neben dem Kanal klicken um die UUID sichtbar zu machen) werden in die vzlogger.conf eingetragen.\\ | ||
- | Dazu am Besten den im Image vorhandenen Editor ' | ||
- | Nach Bearbeiten der vzlogger.conf immer ein 'sudo reboot' | ||
- | |||
- | < | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ], | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | ] | ||
- | } | ||
- | </ | ||
- | ===== vzlogger.conf für s0-Impulse===== | ||
- | |||
- | Um die S0-Impulse des ACE3000 an der IR-Schnittstelle mit vzlogger und einem IR-Schreib-Lesekopf abzufragen, muss die vzlogger.conf unter /etc/ wie folgt aussehen. Darauf achten, dass hinter der letzten geschweiften Klammer kein Leerzeichen oder eine Leerzeile erzeugt wird.\\ | ||
- | Im Frontend des Volkszaehlers muss ein Kanal mit den Einstellungen "El. Energie (S0-Impulse)", | ||
- | Nach Bearbeiten der vzlogger.conf immer ein 'sudo reboot' | ||
- | |||
- | < | ||
- | |||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | |||
- | " | ||
- | |||
- | { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | } | ||
- | } | ||
- | ] | ||
- | } | ||
- | |||
- | </ | ||
- | |||
hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260.1465037732.txt.gz · Zuletzt geändert: 2016/06/04 12:55 von udo1