Leistungsmesser mit Systemvariable, Skript
Moderator: Co-Administratoren
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Leistungsmesser mit Systemvarible, Skript
Jetzt, da du weißt was Klickibunti ist, kannst du ja zur Seite eins zurück.
Wenn du dort was nicht verstehst musst du halt nachfragen.
Alchy
Wenn du dort was nicht verstehst musst du halt nachfragen.
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.
Re: Leistungsmesser mit Systemvarible, Skript
Guten Morgen,
wie müsste dieses Skript angepasst werden, damit bei Zählerstand gestern und Zaehlerstand.letzter.Monat
das ganze auch in € errechnet wird?
Danke und Gruß
bibo
wie müsste dieses Skript angepasst werden, damit bei Zählerstand gestern und Zaehlerstand.letzter.Monat
das ganze auch in € errechnet wird?
Code: Alles auswählen
! akt. Zählerstand
real energy = dom.GetObject("BidCos-RF.LEQ0xxxxxx:2.ENERGY_COUNTER").Value();
! Zählerstand vorgestern einlesen
string last = dom.GetObject("Zaehlerstand.gestern").Value();
last = last.StrValueByIndex(" ",0);
! Verbrauch gestern
real verbrauch = energy - last.ToFloat();
dom.GetObject("Verbrauch.gestern").State(verbrauch.ToString(0)#" Wh");
! Zählerstand gestern speichern
dom.GetObject("Zaehlerstand.gestern").State(energy.ToString(0)#" Wh");
! Monatsverbrauch
integer tag = system.Date("%d").ToInteger();
if (tag == 1)
{ last = dom.GetObject("Zaehlerstand.letzter.Monat").Value();
last = last.StrValueByIndex(" ",0);
verbrauch = energy - last.ToFloat();
dom.GetObject("Verbrauch.letzter.Monat").State(verbrauch.ToString(0)#" Wh");
dom.GetObject("Zaehlerstand.letzter.Monat").State(energy.ToString(0)#" Wh");
}
bibo
- Dateianhänge
-
- Wie hier auf dem Bild
- HM.PNG (1.16 KiB) 2163 mal betrachtet
-
- Beiträge: 96
- Registriert: 09.06.2017, 00:19
Re: Leistungsmesser mit Systemvarible, Skript
Eine Frage habe ich hierzu wieviele Variablen muss ich denn hier anlegen. ich blicke danicht so genau durch.paul53 hat geschrieben: ↑29.10.2014, 12:17Wenn der Tagesverbrauch interessiert, muss man den Zählerstand zu einer bestimmten Zeit speichern und vom aktuellen Zählerstand abziehen.
HM Script, ausgelöst täglich um 00:01 Uhr:Code: Alles auswählen
! akt. Zählerstand real energy = dom.GetObject("BidCos-RF.LEQ0xxxxxx:2.ENERGY_COUNTER").Value(); ! Zählerstand vorgestern einlesen string last = dom.GetObject("Zaehlerstand.gestern").Value(); last = last.StrValueByIndex(" ",0); ! Verbrauch gestern real verbrauch = energy - last.ToFloat(); dom.GetObject("Verbrauch.gestern").State(verbrauch.ToString(0)#" Wh"); ! Zählerstand gestern speichern dom.GetObject("Zaehlerstand.gestern").State(energy.ToString(0)#" Wh"); ! Monatsverbrauch integer tag = system.Date("%d").ToInteger(); if (tag == 1) { last = dom.GetObject("Zaehlerstand.letzter.Monat").Value(); last = last.StrValueByIndex(" ",0); verbrauch = energy - last.ToFloat(); dom.GetObject("Verbrauch.letzter.Monat").State(verbrauch.ToString(0)#" Wh"); dom.GetObject("Zaehlerstand.letzter.Monat").State(energy.ToString(0)#" Wh"); }
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Leistungsmesser mit Systemvarible, Skript
für das gepostete Script brauchst du 4 Systemvariablen wenn ich mich nicht verzählt habe.
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.
-
- Beiträge: 96
- Registriert: 09.06.2017, 00:19
Re: Leistungsmesser mit Systemvarible, Skript
Ok vielen Dank und diese Variablen sind alle ohne Kanalzuordnung Oder?
Zuletzt geändert von alchy am 20.08.2019, 21:27, insgesamt 1-mal geändert.
Grund: sinnloses Fullquote entfernt
Grund: sinnloses Fullquote entfernt
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Leistungsmesser mit Systemvarible, Skript
Eine mögliche Kanalzuordnung der Systemvariablen spielt für das Script keine Rolle.
Ich würde sie verknüpfen um sie dann auch entsprechend bei Status und Bedienung an der richtigen Stelle zu sehen.
Allerdings ist das wie alles Geschmackssache und ich benutze eine solche Auswertung gar nicht.
Alchy
Ich würde sie verknüpfen um sie dann auch entsprechend bei Status und Bedienung an der richtigen Stelle zu sehen.
Allerdings ist das wie alles Geschmackssache und ich benutze eine solche Auswertung gar nicht.
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.
-
- Beiträge: 96
- Registriert: 09.06.2017, 00:19
Re: Leistungsmesser mit Systemvarible, Skript
Vielen Dank.
Habe die variablen mit dem Kanal2 verknüpft.
Und auch das Script im Programm eingefügt jedoch erhalte ich keine werte habe es jetzt schon zwei Tage laufen lassen habe ich irgednwas falsch gemacht?
Wäre nett wenn sich das jemand mal anschauen könnte
Habe die variablen mit dem Kanal2 verknüpft.
Und auch das Script im Programm eingefügt jedoch erhalte ich keine werte habe es jetzt schon zwei Tage laufen lassen habe ich irgednwas falsch gemacht?
Wäre nett wenn sich das jemand mal anschauen könnte
Zuletzt geändert von alchy am 22.08.2019, 22:29, insgesamt 1-mal geändert.
Grund: sinnloses Fullquote entfernt
Grund: sinnloses Fullquote entfernt
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Leistungsmesser mit Systemvarible, Skript
Nun, da deine Variablen z.B.: Server.Zaehlerstand.gestern heißen und du im Script den Namen: Zaehlerstand.gestern verwendest,
knallt dir das Script im besten Fall nur das >> Fehlerprotokoll << zu.
Du findest den Fehler nun bestimmt selber, oder?
Beseitige diesen und poste das >> Fehlerprotokoll <<
zur Ausführungszeit des Programms.
Alchy
knallt dir das Script im besten Fall nur das >> Fehlerprotokoll << zu.
Du findest den Fehler nun bestimmt selber, oder?
Beseitige diesen und poste das >> Fehlerprotokoll <<
zur Ausführungszeit des Programms.
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.
-
- Beiträge: 96
- Registriert: 09.06.2017, 00:19
Re: Leistungsmesser mit Systemvarible, Skript
Ja ok werde ich machen. Das Script hatte ich zu dem Zeitpunkt angepasst.
Übrigens stand dies im Log:
Ich hoffe es hilft weiter Danke
Code: Alles auswählen
! akt. Zählerstand
real energy = dom.GetObject("BidCos-RF.OEQ0631125:2.ENERGY_COUNTER").Value();
! Zählerstand vorgestern einlesen
string last = dom.GetObject("Server.Zaehlerstand.gestern").Value();
last = last.StrValueByIndex(" ",0);
! Verbrauch gestern
real verbrauch = energy - last.ToFloat();
dom.GetObject("Server.Verbrauch.gestern").State(verbrauch.ToString(0)#" Wh");
! Zählerstand gestern speichern
dom.GetObject("Server.Zaehlerstand.gestern").State(energy.ToString(0)#" Wh");
! Monatsverbrauch
integer tag = system.Date("%d").ToInteger();
if (tag == 1)
{ last = dom.GetObject("Server.Zaehlerstand.letzter.Monat").Value();
last = last.StrValueByIndex(" ",0);
verbrauch = energy - last.ToFloat();
dom.GetObject("Server.Verbrauch.letzter.Monat").State(verbrauch.ToString(0)#" Wh");
dom.GetObject("Server.Zaehlerstand.letzter.Monat").State(energy.ToString(0)#" Wh");
}
Übrigens stand dies im Log:
Code: Alles auswählen
Homematic-Raspberrymatic local0.err ReGaHss: ERROR: ScriptRuntimeError: ! akt. Zählerstand real energy = dom.GetObject("BidCos-RF.OEQ0631125:2.ENERGY_COUNTER").Value(); ! Zählerstand vorgestern einlesen string last = dom.GetObject("Server.Zaehlerstand.gestern").Value(); last = last.StrValueByIndex(" ",0); ! Verbrauch gestern real verbrauch = energy - last.ToFloat(); dom.GetObject("Server.Verbrauch.gestern").State(verbrauch.ToString(0)#" Wh"); ! Zählerstand gestern speichern dom.GetObject("
erver.Zaehlerstand.gestern").State(energy.ToString(0)#" Wh"); ! Monatsverbrauch integer tag = system.Date("%d").ToInteger(); if (tag == 1) { last = dom.GetObject("Server.Zaehlerstand.letzter.Monat").Value(); last = last.StrValueByIndex(" ",0); verbrauch = energy - last.ToFloat(); dom.GetObject("Server.Verbrauch.letzter.Monat").State(verbrauch.ToString(0)#" Wh"); dom.GetObject("Server.Zaehlerstand.letzter.Monat").State(energy.ToString(0)#" Wh"); } [ExecError():iseESPexec.cpp:12761]
Zuletzt geändert von alchy am 23.08.2019, 22:38, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Leistungsmesser mit Systemvarible, Skript
Tja, und das sollten die Helfer / ich dann wohl hier erraten?
Wie schwer kann es denn sein seinen Soll / Ist zustand so zu dokumentieren, das der Gegenüber auch was damit anfangen kann?
Alchy
Ich verliere immer wieder mehr die Lust hier überhaupt helfen zu wollen.
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.