Rainer-Rebhan

Hausautomatisierung

EHZ Manager Software

Für die Nutzung der SML-Manager-SW sind folgende Vorrausetzungen notwendig: Die Installation der kostenlosen ADURINO Programmier-SW http://arduino.cc/en/Main/Software auf ihren PC. Diese SW ist komplett kostenlos und stellt eine moderne Programmier-Umgebung für alle ARDUINO-Board z.V. Mit diesem Programm kann sowohl als Editor programmiert (C++) und auch die Hardware mit dem Arduino-Programm (.ino) anschliessend geladen werden. Nach der Installation muss man sich mit der ARDUINO - Programmierumgebung vertraut machen. Es erfolgt auch die Installation des USB-Anschluss der Boards für die Programübertragung den Debug-Monitor ... usw. Nicht vergessen: Laden der Libraries in die Arduino-Entwicklungsumgebung und dann laden der eHZ-SML-Manager SW (eHZ_SMLD_V01) in die Programmierumgebung. Die Software muß (u.U.) an den verwendeten eHZ angepasst werden. Ich selbst habe einen Zweirichtungszähler der FA. EMH im Einsatz - hierfür ist die SW schon angepasst. Um diese Anpassung vorzunehmen sind die folgenden Schritte durchzuführen: Auslesen der SML Daten aus ihrem Zähler mit Hilfe des Lesekopfes und eines TTL-Serial -USB Umsetzers. Diesen gibt es z.B. hier fertig : ELV (Bausatz, ist aber fertig) Mini-USB-Modul UM2102. Als SML-Daten-Monitor ist dieses Free-Programm gut geeignet : HTerm.exe. Die Einstellungen im Programm sind Hex-Anzeige 9600 Baud und der vom USB-Treiber installierte COM-Anschluss. Damit lässt sich der SML-Datenstrom darstellen und z.B. als Datei aufzeichnen. Der SML-Datensatz wird ca. alle 1(-4) Sek. vom eHZ wiederholt und ist prizipiell immer gleich aufgebaut. Der SML-Datenanfang ist immer derselbe, das SML-Datenende auch. Jedoch ist die Anzahl der gesendeten Bytes unterschiedlich. Es muß deshalb die Gesamt-Anzahl der Bytes ermittels werden. Für die weitere Vorgehensweise habe ich einen speziellen Text verfasst den ich dann, auf Anforderung per Email, zur Verfügung stelle. Die Zählerstaände und weitere Informationen der Zähler sind im SML-Datensatzes vorhanden , diese Byte-Stellen werden im Programm hinterlegt. Damit ist das SML-Manager-Programm in der Lage ihre eHZ-SML-Daten nach dem Auslesen zu interpretieren, auszuwerten und z.V. zu stellen. Ich gebe gerne Hilfestellung bei der Durchführung der Anpassung der SW. Die Zählerstände können hausintern z.B. über das interne Wlan übertragen werden. Hierzu werden vom eHZ-Manager die Daten in das JSON-Format umgesetzt. Hier ein Beispiel für das JSON Format und ein Sende-Request um die Zähler-Daten vom eHZ-Manager anzufordern. Das Beispiel zeigt den HTTP-Request der die Daten (JSON-Format) vom eHZ-Manger anfordert und der Callback die Daten aufnimmt.

JSON Beispiel


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<meta http-equiv="pragma" content="no-cache">
<title>JSON_eHZ_Test</title>
</head>

Javascript -Teil

<script language="javascript" type="text/javascript"> var eHZ_Server = "xxx.xxx.xxx.xxx"; IP Adresse des ARDUINO Ethernet Shield z.B 192.168.1.20 var ZWert_Lieferung = ""; var ZWert_Bezug = ""; function eHZ_Callback(json_data) { var str = json_data; var len = json_data.length; if (str.search('eHZ-Lieferung')) { var ab = str.indexOf(":"); var bis = str.indexOf(","); ZWert_Lieferung = str.slice(ab+1,bis); } if (str.search('eHZ-Bezug')) { var ab = str.indexOf(":",30); var bis = str.indexOf("}"); ZWert_Bezug = str.slice(ab+1,bis); } document.getElementById("jsoninfo_0").innerHTML = json_data; document.getElementById("jsoninfo_1").innerHTML = ZWert_Lieferung; document.getElementById("jsoninfo_2").innerHTML = ZWert_Bezug; } function eHZ_Request() { var data = document.createElement('script'); data.src = "http://192.168.2.20/?callback=eHZ_Callback"; data.type='text/javascript'; document.getElementsByTagName("head")[0].appendChild(data); } </script>

HTML-Teil

<body bgcolor="#ffffff"> <!-- onload="setTimeout('eHZ_Request()',500);" ---> <H2>eHZ SML Manager Stromwerte</H2> <font face="arial" size="3"> <b>JSON-Daten vom eHZ:</b> <div id = "jsoninfo_0"></div><br> Strom-Lieferung: <span id = "jsoninfo_1"></span><br> Strom-Bezug: <span id = "jsoninfo_2"></span> <br><br> <form> Dieser <input type="button" value="Request" onclick="eHZ_Request();"> liefert aktuelle Daten. </form></font> </body> </html>

Weitere Information erhalten sie gerne per EMail

Alle Programme zur Hausautomatisierung gibt es hier weiter
nach oben zurueck weiter