Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Aktuelle Leistung an Homematic übergeben
#1
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
Reply
#2
Hallo Eric,

sehr schön. Dürfen wir das in das offizielle Package integrieren?
Wenn ja, welche Lizenz?

Gruß Jens
Reply
#3
Hallo, 
Evtl ein kleines Tutorial für die systemvariable in der Homematic möglich! Wäre sehr interessant
Reply
#4
(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.
Reply
#5
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
Reply
#6
(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.
Reply
#7
hallo,

Big Grin habs selber gemerkt.

läuft priema!!!!

vielen dank
Reply
#8
(31.05.2017, 09:42)fighterzg6 Wrote: hallo,

Big Grin habs selber gemerkt.

läuft priema!!!!

vielen dank

Gerne  Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)