Aktuelle Leistung an Homematic übergeben - etofi - 28.05.2017
Hallo zusammen,
wer die aktuelle Gesamtleistung an eine Systemvariable der Homemtic CCU2 übergeben will anbei ein kleines Shell Script das man auf dem smartPI per Crontab aufrufen kann um den Wert zu übergeben.
Code: #!/bin/bash
round()
{
bc -l <<END_BC
define round(number,r_scale)
{
auto o_scale
o_scale = scale
scale = r_scale+1
number += 5 / (10 ^ scale)
scale = r_scale
number /= 1
scale = o_scale
return number
}
round ($1,$2)
END_BC
}
URL_Static="localhost:1080"
FILTER="\"data\":"
URL="${URL_Static}/api/1/power/now"
RESULT="`wget -qO- ${URL}`"
POSITION="`echo ${RESULT} | grep -aob ${FILTER} | grep -oE '[0-9]+'`"
RESULT=${RESULT:POSITION+7:${#RESULT}}
PHASE1=${RESULT:0:${#RESULT}-7}
#echo ${PHASE1}
URL="${URL_Static}/api/2/power/now"
RESULT="`wget -qO- ${URL}`"
POSITION="`echo ${RESULT} | grep -aob ${FILTER} | grep -oE '[0-9]+'`"
RESULT=${RESULT:POSITION+7:${#RESULT}}
PHASE2=${RESULT:0:${#RESULT}-7}
#echo ${PHASE2}
URL="${URL_Static}/api/3/power/now"
RESULT="`wget -qO- ${URL}`"
POSITION="`echo ${RESULT} | grep -aob ${FILTER} | grep -oE '[0-9]+'`"
RESULT=${RESULT:POSITION+7:${#RESULT}}
PHASE3=${RESULT:0:${#RESULT}-7}
#echo ${PHASE3}
ZUSAMMEN="`echo "scale=5; ${PHASE1} + ${PHASE2} + ${PHASE3}" | bc`"
#echo ${ZUSAMMEN}
ZUSAMMEN_GERUNDET=`round ${ZUSAMMEN} 2`
#echo ${ZUSAMMEN_GERUNDET}
wget -q "http://[IP_DER_CCU]/config/xmlapi/statechange.cgi?ise_id=[NUMMER_DER_SYSTEMVARIABLE]&new_value=${ZUSAMMEN_GERUNDET}"
Grüße
Eric
RE: Aktuelle Leistung an Homematic übergeben - jens - 30.05.2017
Hallo Eric,
sehr schön. Dürfen wir das in das offizielle Package integrieren?
Wenn ja, welche Lizenz?
Gruß Jens
RE: Aktuelle Leistung an Homematic übergeben - fighterzg6 - 30.05.2017
Hallo,
Evtl ein kleines Tutorial für die systemvariable in der Homematic möglich! Wäre sehr interessant
RE: Aktuelle Leistung an Homematic übergeben - etofi - 30.05.2017
(30.05.2017, 10:16)jens Wrote: Hallo Eric,
sehr schön. Dürfen wir das in das offizielle Package integrieren?
Wenn ja, welche Lizenz?
Gruß Jens
Klar könnt ihr machen. Lizenz? Keine Ahnung. Ist ja nur einfaches Shell Script. OpenSource oder Free?
Anbei die Schritte die ich durchgeführt habe:
- Fehlende Pakete installieren (zum rechnen mit Kommazahlen)
sudo apt-get install bc
- Ordner anlegen
sudo mkdir /etc/smartpi_eric/
- Shell Script anlegen
sudo nano /etc/smartpi_eric/update.sh
Script einfügen
- sudo chmod +x /etc/smartpi_eric/update.sh
- sudo crontab -e
Nano wählen
*/1 * * * * sudo /etc/smartpi_eric/update.sh
(30.05.2017, 14:55)fighterzg6 Wrote: Hallo,
Evtl ein kleines Tutorial für die systemvariable in der Homematic möglich! Wäre sehr interessant
- Man muss auf der Homematic CCU die XML-API inatalliert haben sonst funktioniert die Übergabe per http-Aufruf nicht.
- Dann in der Homematic unter Einstellung=>Systemvariable eine vom Typ "numerisch" mit Einheit "W" anlegen. Ich habe sie "Aktuelle Leistung" genannt.
- Dann folgenden Link aufrufen "http://[IP DER HOMEMATIC]/config/xmlapi/sysvarlist.cgi"
Da kann man dann bei der angelegten Variable unter "ise_id" die Nummer raus suchen die im Link oben im Script eingetragen werden muss.
- Auf dem smartPI das Script wie oben beschreiben einrichten.
- Fertig.
RE: Aktuelle Leistung an Homematic übergeben - fighterzg6 - 31.05.2017
hallo,
bis zu schritt 5 hat alles geklappt
habe auch nano ausgewaelt
doch wenn ich */1 * * * * sudo /etc/smartpi_eric/update.sh eingebe kommt immer
bash: */1: Datei oder Verzeichnis nicht gefunden
????
mfg
RE: Aktuelle Leistung an Homematic übergeben - etofi - 31.05.2017
(31.05.2017, 07:21)fighterzg6 Wrote: hallo,
bis zu schritt 5 hat alles geklappt
habe auch nano ausgewaelt
doch wenn ich */1 * * * * sudo /etc/smartpi_eric/update.sh eingebe kommt immer
bash: */1: Datei oder Verzeichnis nicht gefunden
????
mfg
Wo hast Du das eingegeben? In der Shell?
Wenn Du nano auswählst dann musst u musst den Eintrag ganz unten in der Datei eintragen und das dann speichern.
Danach nano zu machen und den raspberry neu starten.
RE: Aktuelle Leistung an Homematic übergeben - fighterzg6 - 31.05.2017
hallo,
habs selber gemerkt.
läuft priema!!!!
vielen dank
RE: Aktuelle Leistung an Homematic übergeben - etofi - 31.05.2017
(31.05.2017, 09:42)fighterzg6 Wrote: hallo,
habs selber gemerkt.
läuft priema!!!!
vielen dank
Gerne
|