nD-enerserve Forums
Aktuelle Leistung an Homematic übergeben - Printable Version

+- nD-enerserve Forums (https://forum.enerserve.eu)
+-- Forum: SmartPi (https://forum.enerserve.eu/forumdisplay.php?fid=1)
+--- Forum: SmartPi - Deutsch (https://forum.enerserve.eu/forumdisplay.php?fid=3)
+--- Thread: Aktuelle Leistung an Homematic übergeben (/showthread.php?tid=15)



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:

  1. Fehlende Pakete installieren (zum rechnen mit Kommazahlen)
    sudo apt-get install bc

  2. Ordner anlegen
    sudo mkdir /etc/smartpi_eric/

  3. Shell Script anlegen
    sudo nano /etc/smartpi_eric/update.sh
    Script einfügen
     
  4. sudo chmod +x /etc/smartpi_eric/update.sh 

  5. 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

  1. Man muss auf der Homematic CCU die XML-API inatalliert haben sonst funktioniert die Übergabe per http-Aufruf nicht.
  2. Dann in der Homematic unter Einstellung=>Systemvariable eine vom Typ "numerisch" mit Einheit "W" anlegen. Ich habe sie "Aktuelle Leistung" genannt.
  3. 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.
  4. Auf dem smartPI das Script wie oben beschreiben einrichten.
  5. 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,

Big Grin 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,

Big Grin habs selber gemerkt.

läuft priema!!!!

vielen dank

Gerne  Smile