Strompreis abfragen

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

Moderator: Co-Administratoren

Antworten
Sebastian65432
Beiträge: 116
Registriert: 14.05.2018, 19:50
Danksagung erhalten: 8 Mal

Strompreis abfragen

Beitrag von Sebastian65432 » 18.06.2018, 17:44

Hallo,

ich habe mir für die HMIP-PSM ein skript zusammengeschraubt, mit dem ich den Energieverbrauch und Kosten ermitteln kann. Derzeit trage ich im Skript den Strompreis ein, allerdings fände ich es eleganter, wenn ich ihn direkt übernehmen könnte ( Einstellungen -> Systemsteuerung -> Allgemeine Einstellungen). Komme ich da irgendwie dran?

Derzeit sieht der Teil aus meinen Skript so aus:

Code: Alles auswählen

var stromkosten = 0.25;

var lm = dom.GetObject(type # " aktueller Monat").Value();
var lmeuro = lm * stromkosten;
var lmausgabe = lm.ToString(2) # " kWh, " # lmeuro.ToString(2) # " Euro" ;
i.State(lmausgabe);
klappt auch soweit. Habe schon irgendwas mit GAS ENERGY_COUNTER gefunden - aber das ist wohl eine Sackgasse.
Grüße, Sebastian

tubozz
Beiträge: 60
Registriert: 11.01.2018, 22:13
Danksagung erhalten: 3 Mal

Re: Strompreis abfragen

Beitrag von tubozz » 18.06.2018, 22:04

Code: Alles auswählen

/etc/config/energyPrice
da stehen die Preise drin. Kannst du daraus in die CCU einlesen.
irgendwie beschleicht mich das Gefühl, das wer fehlt.

Xel66
Beiträge: 14067
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 577 Mal
Danksagung erhalten: 1491 Mal

Re: Strompreis abfragen

Beitrag von Xel66 » 18.06.2018, 22:57

In dem Script in diesem Thread, wird die "Variable" ausgelesen. Kannst Du vielleicht als Design-Vorlage benutzen. Ansonsten ist die Wikimatic-Seite auch recht interessant.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Sebastian65432
Beiträge: 116
Registriert: 14.05.2018, 19:50
Danksagung erhalten: 8 Mal

Re: Strompreis abfragen

Beitrag von Sebastian65432 » 21.06.2018, 09:16

Vielen Dank, hat geklappt.

Falls auf dieses Thema mal jemand durch die Suche aufmerksam wird: Der folgende Code gibt den Strompreis aus den Systemeinstellungen in der Variable "price" wieder. Der Code stammt nicht von mir!

Code: Alles auswählen

! Abholen der Stromkosten aus den Systemeinstellungen:
var priceKey = "curPrice";
string stdout;string stderr;
string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|sed -r \"s/\\"//g\"'";
system.Exec(cmd, &stdout, &stderr);
string sep = "\n";
string part;
string strCur;
real price;

foreach(part,stdout.Split(sep)) {
  string key = part.StrValueByIndex(":",0);
  string val = part.StrValueByIndex(":",1);
  if (key==priceKey){
    price = val.ToFloat();
  }
  if (key=="currency") {
    strCur=val;
  }
}
WriteLine(price);

Peter-HER
Beiträge: 20
Registriert: 25.04.2019, 09:33
Hat sich bedankt: 5 Mal

Re: Strompreis abfragen

Beitrag von Peter-HER » 29.06.2020, 18:57

Hallo zusammen,
heute habe ich auf die aktuelle Firmware 3.51.6.20200621 gewechselt.
Bisher hat dieses Script hervorragend funktioniert. Nach dem Wechsel
erhalte ich die Fehlermeldung: Error 1 at row 5 col 71 near ^g\"'";

Hier noch einmal das Script:
===============

Code: Alles auswählen

! Abholen der Stromkosten aus den Systemeinstellungen:
var priceKey = "curPrice";
string stdout;string stderr;
string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|sed -r \"s/\\"//g\"'";
system.Exec(cmd, &stdout, &stderr);
string sep = "\n";
string part;
string strCur;
real price;

foreach(part,stdout.Split(sep)) {
  string key = part.StrValueByIndex(":",0);
  string val = part.StrValueByIndex(":",1);
  if (key==priceKey){
    price = val.ToFloat();
  }
  if (key=="currency") {
    strCur=val;
  }
}
WriteLine(price);
===============
Mein Linux-Kenntnisse reichen leider nicht aus um den Fehler zu finden.
Hat jemand hier mehr Glück oder Erfahrung?

VG Peter
Zuletzt geändert von alchy am 29.06.2020, 21:24, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
RaspberryMatic mit RPI-RF-MOD;
XML-Api; CUxD; RedMatic; EMail;CCU-Historian
6 x HM-TC-IT-WM-W-EU; 8 x HM-CC-RT-DN; 12 x HM-Sec-SCo
2 x HM-LC-Sw1PBU-FM; 1 x HM-LC-Sw2PBU-FM; 2 x HM-PB-2-WM55-2
2 x HM-ES-PMSw1-DR
0,3 x Erfahrung
DebMatic auf RaspPi 3B+ mit RPI-RF-MOD und LTE-Router als Alarmanlage
1 x HmIP-SWDO-I
1 x USV mit apcupds
1 x VPN (zum Heimnetz)
Test mit DebMatic auf RaspPi 3B ohne Funkmodul
3 x SwissOne SH140 Steckdosenleiste (Tasmota)
2 x Gosuna SP1 (Tasmota)

Benutzeravatar
Baxxy
Beiträge: 10604
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Strompreis abfragen

Beitrag von Baxxy » 29.06.2020, 19:11

Peter-HER hat geschrieben:
29.06.2020, 18:57
Hat jemand hier mehr Glück oder Erfahrung?
Hat nix mit Glück zu tun sondern liegt an den Änderungen der Rega seit RaspberryMatic 3.51.6.20200621.
Hier hat jmaus das korrigiert, sollte für dich passen.

alchy
Beiträge: 10744
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 671 Mal

Re: Strompreis abfragen

Beitrag von alchy » 29.06.2020, 21:51

Sollte auch noch gehen

Code: Alles auswählen

string stdout;string stderr;
string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|grep -o curPrice.*'"; 
system.Exec(cmd, &stdout, &stderr);
string price = (stdout.StrValueByIndex(":",1)).Substr(1,4);
WriteLine("Ausgabe:\n" #price);
WriteLine("Fehler:\n" #stderr);
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

funzel1607
Beiträge: 132
Registriert: 13.10.2015, 14:34
Hat sich bedankt: 2 Mal

Re: Strompreis abfragen

Beitrag von funzel1607 » 28.08.2020, 23:58

Habe gesehen, dass man mit

Code: Alles auswählen

.Substr(1,6);
auch den ganzen Wert auslesen kann, was bei tausenden kWh schon was ausmachen sollte.

Gibt es das auch noch für den Gaspreis?

Danke!

Benutzeravatar
Baxxy
Beiträge: 10604
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Strompreis abfragen

Beitrag von Baxxy » 29.08.2020, 00:14

funzel1607 hat geschrieben:
28.08.2020, 23:58
den ganzen Wert auslesen kann
Das kommt ein bisschen darauf an wie viele Nachkommastellen du auf der Eingabeseite der Zentrale eingegeben hast.

Code: Alles auswählen

0.32  entspricht .Substr(1,4)
0.329 entspricht .Substr(1,5)
usw...
funzel1607 hat geschrieben:
28.08.2020, 23:58
Gibt es das auch noch für den Gaspreis?
Klar... einfach die Zeile:

Code: Alles auswählen

string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|grep -o curPrice.*'";
durch

Code: Alles auswählen

string cmd = "/bin/sh -c 'cat /etc/config/energyPrice|grep -o gasPrice.*'";
ersetzen.

Antworten

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