Enecsys Monitoring System

Aus FHEMWiki
Version vom 7. Mai 2019, 10:11 Uhr von Krikan (Diskussion | Beiträge) (Kategorie korrigiert)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

MiniJoule / Enecsys Monitoring System

Die Wechselrichter von Enecsys haben Zigbee Transceiver eingebaut, die die aktuellen Energiewerte der angeschlossenen Solarpanels übertragen. Dazu gibt es von Enecsys einen Gateway (z.B. bei MiniJoule zu beziehen), der die Daten aufbereitet und an einen Webservice bei Enecsys überträgt.

Da das Protokoll der Daten noch nicht entschlüsselt ist, gibt es derzeit nur die Möglichkeit das Flash Webinterface zu nutzen, um sich die Daten anzuschauen.

Mit folgendem Script ist es möglich, die aktuellen Verbrauchswerte auszulesen und in FHEM einzubinden. Dazu legt man sich in FHEM ein Dummy-Device an und lässt das Script per Timer alle 2 Minuten aufrufen:

FHEM Config:

define Photovoltaik dummy 
 define pv_timer at +*00:02:00 "/Users/akw/enecsys.sh"

Shell script:

#!/bin/sh
 USERNAME="<EMAIL>"
 PASSWORD="<PASSWORD>"
 FILEPATH=/tmp
 
 touch $FILEPATH/cookies.txt
 curl -s https://monitor.enecsys.net/ews/InstallationService.asmx/GetCurrentInstallationStatus -b $FILEPATH/cookies.txt > $FILEPATH/soap.xml
 
 grep -q "No valid installation id available in session" $FILEPATH/soap.xml
 
 if [ "$?" = 0 ]; then
 	echo "Session expired!"
 
 	curl -s https://monitor.enecsys.net/default.aspx?q=login -c $FILEPATH/cookies.txt > $FILEPATH/page.html
 	VIEWSTATE=$(cat $FILEPATH/page.html | awk -F\" '/__VIEWSTATE/ { print $8 }')
 	EVENTVALIDATION=$(cat $FILEPATH/page.html | awk -F\" '/__EVENTVALIDATION/ { print $8 }')
 	rm -f $FILEPATH/page.html
 
 	echo "Posting login..."	
 	curl -s https://monitor.enecsys.net/ -b $FILEPATH/cookies.txt -c $FILEPATH/cookies.txt \
 		--data-urlencode "__VIEWSTATE=$VIEWSTATE" \
 		--data-urlencode "__EVENTVALIDATION=$EVENTVALIDATION" \
 		--data-urlencode "login1%24UserName=$USERNAME" \
 		--data-urlencode "login1%24Password=$PASSWORD" \
 		--data-urlencode "login1%24btnLogin=Login" > /dev/null
 	
 	echo "Loading loginChoice.aspx..."
 	curl -s https://monitor.enecsys.net/Pages/loginChoice.aspx -b $FILEPATH/cookies.txt -c $FILEPATH/cookies.txt > /dev/null
  	
 	echo "Loading customerInstallations.aspx..."
 	curl -s https://monitor.enecsys.net/Pages/customerInstallations.aspx -b $FILEPATH/cookies.txt -c $FILEPATH/cookies.txt > /dev/null
 else
 	POWER=$(cat $FILEPATH/soap.xml | awk -F"[<>]" '/<CurrentACPower>/ { print $3 }')
 	rm -f $FILEPATH/soap.xml
 	echo "W: $POWER"
 	/Users/akw/src/fhem/fhem.pl 7073 "set Photovoltaik W: $POWER"
 fi


Links