Smappee Integration

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

martinsteiner
Beiträge: 8
Registriert: 23.05.2015, 16:36

Smappee Integration

Beitrag von martinsteiner » 23.05.2015, 16:44

Hallo,

hat schon jemand mit der CCU die API von Smappee (http://www.smappee.com/de/) verwendet?

Das Ding ist genial und hat auch ein API (https://smappee.atlassian.net/wiki/disp ... evAPI+Home)

Die Daten sind entweder aus der Cloud abrufbar (siehe API oben), oder auch vom Webserver auf dem Gerät direkt.

Wenn ja, wäre ich für ein Beispiel sehr dankbar.

Liebe Grüsse,
Martin
120 Kanäle in 35 Geräten:
1x HM-PB-4Dis-WM, 1x HM-Sec-TiS, 2x HM-LC-Sw1-FM, 1x HM-RC-19, 3x HM-LC-Sw4-DR, 1x HM-LC-Dim1T-FM, 1x HM-LC-Sw2-FM, 2x HM-ES-PMSw1-Pl-DN-R5, 9x HM-LC-Bl1-FM, 1x HM-PB-2-WM55-2, 3x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 8x HM-TC-IT-WM-W-EU, 1x HM-WDS100-C6-O

martinsteiner
Beiträge: 8
Registriert: 23.05.2015, 16:36

Re: Smappee Integration

Beitrag von martinsteiner » 16.08.2015, 18:40

Hallo,

hab mich inzwischen selbst schlau gemacht und eine Lösung gefunden.

Wenn man CUxD installiert hat, ist es eigentlich nicht mehr so schwer. Smappee hat einen lokalen Webserver, den man abfragen kann. Somit hat man mit dem Ding wirklich einen einfachen Verbrauchsmesser. Und mit der Anbindung an die Photovoltaik Anlage kann die Optimierung des Eigenverbrauchs dann fröhlich angegangen werden.

Hab hier mal meinen Code als Beispiel eingefügt. Klar müsst ihr den Code noch ein wenig an eure Gegebenheiten anpassen (IP-Adresse von eurem SMAPPEE, oder Variablennamen).

Code: Alles auswählen

!----------------------------------------------------------
! Auslesen der Energiedaten von Smappee
! Martin Steiner / Juni 2015
! Verwendete Systemvariablen zuerst anlegen:
! - Energievorrat
! - Verbrauch Aktuell
! - Solar Aktuell
! - Verbrauch Phase 1
! - Verbrauch Phase 2
! - Verbrauch Phase 3
! - Solar Phase 1
! - Solar Phase 2
! - Solar Phase 3
!----------------------------------------------------------

var Energievorrat = dom.GetObject("Energievorrat");
var Verbrauch = dom.GetObject("Verbrauch Aktuell");
var Produktion = dom.GetObject("Solar Aktuell");
var p1 = dom.GetObject("Verbrauch Phase 1");
var p2 = dom.GetObject("Verbrauch Phase 2");
var p3 = dom.GetObject("Verbrauch Phase 3");
var p4 = dom.GetObject("Solar Phase 1");
var p5 = dom.GetObject("Solar Phase 2");
var p6 = dom.GetObject("Solar Phase 3");

!----------------------------------------------------------
! Login SMAPPEE
!----------------------------------------------------------
var command= "LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -X POST -H \"Content-Type: application/json\" -d admin http://192.168.71.38/gateway/apipublic/logon";

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(command);
!----------------------------------------------------------
! Adresse von SMAPPEE
!----------------------------------------------------------

string url="http://192.168.71.38/gateway/apipublic/reportInstantaneousValues";

!----------------------------------------------------------
! Einlesen der Website
!----------------------------------------------------------

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O -  '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string stdout = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

!----------------------------------------------------------
! auslesen der Daten (Aktuelle Energieproduktion)
!----------------------------------------------------------

anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,1500);
ende=j.Find(".");
i1=stdout.Substr(anfang,ende);
p1.State(i1.ToInteger());

stdout=j;
anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,1000);
ende=j.Find(".");
i2=stdout.Substr(anfang,ende);
p2.State(i2.ToInteger());

stdout=j;
anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,1000);
ende=j.Find(".");
i3=stdout.Substr(anfang,ende);
p3.State(i3.ToInteger());

stdout=j;
!WriteLine(stdout);
anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,800);
ende=j.Find(".");
i4=stdout.Substr(anfang,ende);
p4.State(i4.ToInteger());

stdout=j;
!WriteLine(stdout);
anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,800);
ende=j.Find(".");
i5=stdout.Substr(anfang,ende);
p5.State(i5.ToInteger());


stdout=j;
!WriteLine(stdout);
anfang=stdout.Find(" activePower"); 
anfang=anfang+13;
j=stdout.Substr(anfang,800);
ende=j.Find(".");
i6=stdout.Substr(anfang,ende);
p6.State(i6.ToInteger());

Verbrauch.State(i1.ToInteger()+i2.ToInteger()+i3.ToInteger());
Produktion.State(i4.ToInteger()+i5.ToInteger()+i6.ToInteger());
Energievorrat.State(i4.ToInteger()+i5.ToInteger()+i6.ToInteger()-(i1.ToInteger()+i2.ToInteger()+i3.ToInteger()));
Wünsche euch viel Spass beim nachbauen. :D

Gruss,
Martin
Zuletzt geändert von martinsteiner am 16.09.2015, 15:59, insgesamt 1-mal geändert.
120 Kanäle in 35 Geräten:
1x HM-PB-4Dis-WM, 1x HM-Sec-TiS, 2x HM-LC-Sw1-FM, 1x HM-RC-19, 3x HM-LC-Sw4-DR, 1x HM-LC-Dim1T-FM, 1x HM-LC-Sw2-FM, 2x HM-ES-PMSw1-Pl-DN-R5, 9x HM-LC-Bl1-FM, 1x HM-PB-2-WM55-2, 3x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 8x HM-TC-IT-WM-W-EU, 1x HM-WDS100-C6-O

Roli01
Beiträge: 102
Registriert: 06.04.2008, 23:56
Wohnort: nähe Krems/Donau
Danksagung erhalten: 3 Mal

Re: Smappee Integration

Beitrag von Roli01 » 03.09.2015, 19:33

Hallo.

Bin gerade auf deine Anleitung gestoßen und denke mir das ist genau das was ich suche.
Da du das System nun schon einige Zeit in Verwendung hast, könntest du mir deine Erfahrungen darüber berichten? (pros & contras)

Kann man von dem Webserver auch einen Gesamtzählerstand auslesen oder muss man den selber mit loggen?
Wie genau ist der Zähler gegenüber dem Original Stromzähler des Energieversorgers?

Vielen Dank im Voraus

Roland
492 Kanäle in 92 Geräten und 37 CUxD-Kanäle in 4 CUxD-Geräten:

martinsteiner
Beiträge: 8
Registriert: 23.05.2015, 16:36

Re: Smappee Integration

Beitrag von martinsteiner » 04.09.2015, 18:20

Hallo Roland,

eigentlich gibt es nur Gutes zu berichten. Das kleine Ding läuft äusserst zuverlässig. Hab es seit der Inbetriebnahme (nun doch schon mehr als 3 Monate) nicht mehr berührt. Da ist die CCU2 schon etwas weniger pflegeleicht ;)

Achtung, beim Smappee handelt es sich nicht um einen Stromzähler. Smappee misst den aktuellen Verbrauch und die aktuelle Leistung der Solaranlage. Dies ist für eine Hausautomatisierung mit PV und Eigenverbrauchsoptimierung ja auch eigentlich das Wichtigste. Somit kann ich jederzeit feststellen, wieviel Energie-Reserven ich noch habe, um die verschiedensten Verbraucher zu schalten.

Es kann via App oder Cloud auch die Leistung von einzelnen Geräten abgefragt werden. Das ist zwar ein nettes Feature, aber das verwende ich für meine Zwecke nicht. Damit kannst du z.B. feststellen, wieviel € dein Kühlschrank pro Tag, oder deine WC-Beleuchtung im Monat kostet :)

Die Genauigkeit lässt ebenfalls nichts zu wünschen übrig. Ein Vergleich mit einem prof. Leistungsmesser zeigte eine Abweichung von weniger als 0.2%.

Gruss,
Martin

Hier noch ein Cut&Paste der lokalen Web-Info von Smappee:

Instantaneous values:
voltage=231.1 Vrms
FFTComponents:
Phase 1:
current=0.763 A, activePower=134.099 W, reactivePower=114.522 var, apparentPower=176.346 VA, cosfi=75, quadrant=0, phaseshift=0.0, phaseDiff=0.0
FFTComponents:
Phase 2:
current=0.647 A, activePower=126.842 W, reactivePower=79.609 var, apparentPower=149.755 VA, cosfi=84, quadrant=0, phaseshift=0.0, phaseDiff=0.0
FFTComponents:
Phase 3:
current=0.212 A, activePower=24.586 W, reactivePower=42.461 var, apparentPower=49.066 VA, cosfi=48, quadrant=0, phaseshift=0.0, phaseDiff=0.0
FFTComponents:
Phase 4:
current=1.204 A, activePower=268.44 W, reactivePower=73.615 var, apparentPower=278.351 VA, cosfi=96, quadrant=0, phaseshift=0.0, phaseDiff=0.0
FFTComponents:
Phase 5:
current=1.203 A, activePower=267.737 W, reactivePower=75.261 var, apparentPower=278.114 VA, cosfi=96, quadrant=0, phaseshift=0.0, phaseDiff=0.0
FFTComponents:
Phase 6:
current=1.229 A, activePower=276.256 W, reactivePower=66.622 var, apparentPower=284.176 VA, cosfi=97, quadrant=0, phaseshift=0.0, phaseDiff=0.0


Phase 1, peak active power 6022.972 W at 14/06/2015 11:20:05
Phase 2, peak active power 6824.082 W at 25/07/2015 19:15:50
Phase 3, peak active power 5346.615 W at 11/08/2015 10:12:55
120 Kanäle in 35 Geräten:
1x HM-PB-4Dis-WM, 1x HM-Sec-TiS, 2x HM-LC-Sw1-FM, 1x HM-RC-19, 3x HM-LC-Sw4-DR, 1x HM-LC-Dim1T-FM, 1x HM-LC-Sw2-FM, 2x HM-ES-PMSw1-Pl-DN-R5, 9x HM-LC-Bl1-FM, 1x HM-PB-2-WM55-2, 3x HM-PB-6-WM55, 1x HM-WDS10-TH-O, 8x HM-TC-IT-WM-W-EU, 1x HM-WDS100-C6-O

Roli01
Beiträge: 102
Registriert: 06.04.2008, 23:56
Wohnort: nähe Krems/Donau
Danksagung erhalten: 3 Mal

Re: Smappee Integration

Beitrag von Roli01 » 15.09.2015, 20:24

Hi!

So Smappee is heute gekommen. Hab alles schon angeschlossen und mir wird der Verbrauch auch schon in der App angezeigt.

Ich hab nur ein Problem mit deinem Script.

Wenn ich das bei mir reinkopiere und nichts verändere und gleich eine Fehlerprüfung mache, erhalte ich einige Fehler als ausgabe.
Auch wenn ich die IP Adresse des Smappe auf meine ändere ist es das gleiche.
Systemvariablen sind auch erstellt.

Vielleicht könntest du mir bitte noch ein wenig unter die Arme greifen bitte?

Vieelen Dank im Voraus

Mit freundlichen Grüßen

Roland
492 Kanäle in 92 Geräten und 37 CUxD-Kanäle in 4 CUxD-Geräten:

Roli01
Beiträge: 102
Registriert: 06.04.2008, 23:56
Wohnort: nähe Krems/Donau
Danksagung erhalten: 3 Mal

Re: Smappee Integration

Beitrag von Roli01 » 25.12.2015, 09:43

Hi.

Ich muss mich jetzt nochmals an dich wenden.

Nachdem der Smappee jetzt einige Monate sehr stabil lief bekomme ich seit ein paar Wochen keine Werte mehr in die Homematic.
Habe mich nun mal eingeloggt und bemerkt das die am 26.11.2015 ein Softwareupdate gemacht haben.

Kann es sein das sich da etwas geändert hat?
Läuft es bei dir noch?

Vielen Dank

Roli
492 Kanäle in 92 Geräten und 37 CUxD-Kanäle in 4 CUxD-Geräten:

haanebambel
Beiträge: 9
Registriert: 06.10.2012, 19:37

Re: Smappee Integration

Beitrag von haanebambel » 14.04.2016, 12:52

Hi ihr 2,

ist zwar schon ein paar Monate her seit dem ihr euch darüber unterhalten habt, aber ich würde das ganze auch gern in meine CCU2 einbinden.

Genau wie Roland komme ich aber auch nicht direkt mit dem Script klar. Auch Scriptfehler bei der Fehlerprüfung ohne Änderung.

Könnt ihr mir kurz sagen wie genau ich das erstmal grundsätzlich anlege? CUxD ist installiert.

LG Olli

tom22
Beiträge: 56
Registriert: 24.04.2016, 18:06
System: CCU
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Smappee Integration

Beitrag von tom22 » 24.04.2016, 18:20

Hallo zusammen,

mir geht es ähnlich. Ich wollte erstmal nur die 1. Phase auslesen aber es will nicht klappen.

Kann man auf das Script evtl. nochmal genau eingehen?

Ich habe schon ein paar Scripte verwendet, habe aber vom Programmieren keine Ahnung.

Cuxd ist installiert, damit habe ich auch schon die Daten eines anderen Stromzählers abgerufen.

Für Hilfe bin ich dankbar.

Gruß
Tom

haanebambel
Beiträge: 9
Registriert: 06.10.2012, 19:37

Re: Smappee Integration

Beitrag von haanebambel » 27.04.2016, 16:09

Hi,

Rolli hat mir über PN nochmal eine kurze Anleitung geschickt.
Also zuerst die Systemvariablen alle anlegen und auf die Schreibweise achten.
CuXD installieren und ein System/Exec Gerät anlegen.
Danach das Script in ein Programm packen und unter "Wenn" eine Zeitsteuerung einstellen. Ich habe Dauerhaft alle 5 Minuten.

Trotz der Scriptfehler zeigt er mir aber komischerweise Werte an unter den Systemvariablen. Allerdings nur "Verbrauch Phase 1 -3". Verbrauch aktuell bleibt bei -20000 stehen.
Solar nutze ich nicht.
Dateianhänge
Bildschirmfoto 2016-04-27 um 16.05.33.png

haanebambel
Beiträge: 9
Registriert: 06.10.2012, 19:37

Re: Smappee Integration

Beitrag von haanebambel » 27.04.2016, 16:31

Hi zusammen,

also komischerweise kommen bei mir jetzt Werte rein. Allerdings auch bei Solar - obwohl ich kein Solar nutze/habe.
Energievorrat steht auf -102. Was soll dieser Wert sein?

AAHAAHAHA jetzt gerade kommts mir. Das ist einfach die Differenz aus Solarertrag und Verbrauch. Gut für mich dann einfach uninteressant.
Komisch ist nur das ich gar keine Solaranlage habe - woher auch immer der den Wert herholt.

LG Olli

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“