Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:edl-ehz:emh-ehz-h1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:channels:meters:power:edl-ehz:emh-ehz-h1 [2012/01/15 22:02] – [EMH eHZ-H] udo1hardware:channels:meters:power:edl-ehz:emh-ehz-h1 [2022/04/21 20:22] (aktuell) – daemon, logfile und port jau
Zeile 1: Zeile 1:
-====== EMH eHZ-H1 ======+====== EMH eHZ-H======
  
 {{ :hardware:channels:meters:power:edl-ehz:emh-ehz-h.jpg?nolink&150|}} {{ :hardware:channels:meters:power:edl-ehz:emh-ehz-h.jpg?nolink&150|}}
  
-Der [[http://www.emh-meter.de/de/produkte/ehz-h1/|EMH eHZ-H]] kann auch nach EN 62056-21 über die IR-Schnittstelle ausgelesen werden.\\+Der EMH eHZ-H kann nach EN 62056-21 über die IR-Schnittstelle ausgelesen werden.\\
 ===== Hardware ===== ===== Hardware =====
  
-Man benötigt den [[hardware:controllers:ir-schreib-lesekopf|IR-Lese-Kopf]]; der Zähler sendet lastabhängig alle paar Sekunden unaufgefordert ein SML-Datenpaket. Die Sendediode ist oben rechts hinter dem rechten der beiden Löcher in der Metallplatte. Gesendet wird mit 9600 Baud, 8N1. Die Signalqualität scheint sehr gut zu sein, mit einem Steckbrett-Aufbau war der Empfang ohne Abdunkelungsmaßnahmen aus mehreren cm Abstand möglich.\\ +Man benötigt den [[hardware:controllers:ir-schreib-lesekopf|IR-Schreib-Lesekopf]].\\ 
 + 
 +Der Zähler sendet lastabhängig alle paar Sekunden unaufgefordert ein [[software:sml|SML]]-Datenpaket. Die Sendediode ist oben rechts hinter dem rechten der beiden Löcher in der Metallplatte. Gesendet wird mit [[hardware:controllers:ir-schreib-lesekopf#grundlagen|9600bd, 8N1]]. Die Signalqualität scheint sehr gut zu sein, mit einem Steckbrett-Aufbau war der Empfang ohne Abdunkelungsmaßnahmen aus mehreren cm Abstand möglich.\\  
 + 
 +===== Beispielkonfiguration ===== 
 +Eine exemplarische vzlogger.conf: 
 +<code base vzlogger.conf> 
 +
 +"retry" : 3, 
 +"verbosity" : 0, 
 +"log" : "/var/log/vzlogger/vzlogger.log", 
 + 
 +"local" : { 
 + "enabled" : false, 
 + "port" : 8081, 
 + "index" : true, 
 + "timeout" : 30, 
 + "buffer" : 600 
 +}, 
 + 
 +"meters" : [{ 
 + "protocol" : "sml", 
 + "enabled" : true, 
 + "device" : "/dev/ttyUSB0", 
 + "parity" : "8N1", 
 + "baudrate" : 9600, 
 + "aggtime" : -1, 
 + "aggfixedinterval" : true, 
 + "channels": [{ 
 + "uuid" : "6836dd20-00d5-11e0-bab1-856ed5f959ae", 
 + "middleware" : "http://localhost/middleware.php", 
 + "identifier" : "1-0:1.8.0", 
 + "aggmode" : "MAX" 
 + }] 
 +
 +]} 
 +</code>
  
 ===== Beispieldaten ===== ===== Beispieldaten =====
 <code> <code>
-1B 1B 1B 1B 01 01 01 01                         Escape-Sequenz+1B 1B 1B 1B                                     Start Escape Zeichenfolge 
 +01 01 01 01                                     Start Übertragung Version 1
 76                                              Liste mit 6 Einträgen 76                                              Liste mit 6 Einträgen
    07 00 14 04 EC 6D 20                         transactionID (7 Byte)    07 00 14 04 EC 6D 20                         transactionID (7 Byte)
Zeile 125: Zeile 162:
 1A 01 64 62                                     Ende Nachricht mit Füllbyte und Prüfsumme 1A 01 64 62                                     Ende Nachricht mit Füllbyte und Prüfsumme
 00                                              Ende 00                                              Ende
 +</code>
 +
 +=====Zähler mit Shell-Skripte abfragen=====
 +
 +Um die Zähler schnell und ohne große Vorarbeit auslesen zu können, bieten sich folgende Skripte an. Für einen Dauerbetrieb sind sie jedoch weniger geeignet, da manchmal einige Zeit vergehen muss, um den Datenanfang zu erfassen.
 +
 +**HINWEIS:** für die Ausführung werden folgende Utities benötigt 
 +  *   bc
 +  *   stty
 +  *   xxd (wird mit dem vi installiert)
 +
 +====Zählerwerte ausgeben====
 +
 +Die folgenden Zeilen werden in eine Datei ''read.sh'' gespeichert und erzeugen nach deren Ausführung folgende Ausgabe:
 +
 +<code>
 +Meter 1.8.0 (from plant):     1488.36 kWh
 +Meter 2.8.0 (to plant):       1591.32 kWh
 +Total effective power (+/-):  1687.14 W
 +</code>
 +
 +<code bash>
 +#!/bin/bash
 +# read and evaluate SML output received from EMH eHZ
 +
 +# set serial device
 +INPUT_DEV="/dev/ttyUSB0"
 +
 +#set $INPUT_DEV to 9600 8N1
 +stty -F $INPUT_DEV 1:0:8bd:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 +
 +SML_START_SEQUENCE="1B1B1B1B0101010176"
 +METER_OUTPUT__START_SEQUENCE=""
 +
 +while [ "$METER_OUTPUT__START_SEQUENCE" != "$SML_START_SEQUENCE" ]
 +do
 +        METER_OUTPUT=`cat $INPUT_DEV 2>/dev/null | xxd -p -u -l 460`
 +        METER_OUTPUT__START_SEQUENCE=$(echo "${METER_OUTPUT:0:18}")
 +        if [ $METER_OUTPUT__START_SEQUENCE != $SML_START_SEQUENCE ];
 +        then
 +                echo "missed start and trying again..."
 +                #exit 1 
 +        fi
 +done
 +
 +let METER_180=0x${METER_OUTPUT:390:10}
 +VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
 +echo "Meter 1.8.0 (from plant):    " $VALUE "kWh"
 +
 +let METER_180=0x${METER_OUTPUT:347:10}
 +VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
 +echo "Meter 2.8.0 (to plant):      " $VALUE "kWh"
 +
 +let METER_180=0x${METER_OUTPUT:518:8}
 +VALUE=$(echo "scale=2; $METER_180 / 10" |bc)
 +echo "Total effective power (+/-): " $VALUE "W"
 +</code>
 +
 +
 +====HTML-Seite erzeugen====
 +
 +Die folgenden Zeilen in eine Datei ''read2html.sh'' gespeichert und als cgi-script aufgerufen, präsentieren die Zähler als HTML-Seite für einen Browser. Die Konfiguration eines http-Servers wie lighttpd muss natürlich separat erfolgen.
 +
 +<code bash>
 +#!/bin/bash
 +# read and evaluate SML output received from EMH eHZ
 +
 +# set serial device
 +INPUT_DEV="/dev/ttyUSB0"
 +
 +#set $INPUT_DEV to 9600 8N1
 +stty -F $INPUT_DEV
 +1:0:8bd:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
 +
 +SML_START_SEQUENCE="1B1B1B1B0101010176"
 +METER_OUTPUT__START_SEQUENCE=""
 +
 +while [ "$METER_OUTPUT__START_SEQUENCE" != "$SML_START_SEQUENCE" ]
 +do
 +        METER_OUTPUT=`cat $INPUT_DEV 2>/dev/null | xxd -p -u -l 365`
 +        METER_OUTPUT__START_SEQUENCE=$(echo "${METER_OUTPUT:0:18}")
 +done
 +
 +echo "Content-Type: text/html; charset=utf-8"
 +echo ""
 +echo ""
 +echo "<html>"
 +echo " <head>"
 +echo "   <title>Z&auml;hlerauswertung</title>"
 +echo "   <meta name=\"viewport\" content=\"width=device-width,
 +initial-scale=1.0, user-scalable=no\">"
 +echo " </head>"
 +echo " <body>"
 +
 +echo " <h1> Z&auml;hlerst&auml;nde </h1>"
 +
 +let METER_180=0x${METER_OUTPUT:390:10}
 +VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
 +echo " <tt>Bezug.......: " $VALUE "kWh</tt><br>"
 +
 +let METER_180=0x${METER_OUTPUT:347:10}
 +VALUE=$(echo "scale=2; $METER_180 / 10000" |bc)
 +echo " <tt>Einspeisung.: " $VALUE "kWh</tt><br>"
 +
 +let METER_180=0x${METER_OUTPUT:518:8}
 +VALUE=$(echo "scale=2; $METER_180 / 10" |bc)
 +echo " <tt>Wirkleistung: " $VALUE "W</tt>"
 +
 +echo " </body>"
 +echo "</html>"
 </code> </code>
  
hardware/channels/meters/power/edl-ehz/emh-ehz-h1.1326661373.txt.gz · Zuletzt geändert: 2012/01/15 22:02 von udo1