Leistungsmesser mit Systemvariable, Skript

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Suenzihome
Beiträge: 96
Registriert: 09.06.2017, 00:19

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Suenzihome » 25.08.2019, 22:35

Hallo alchy
Verstehe deine Antwort nicht so ganz. Ich habe doch alles so angepasst wie es eigentlich sein soll. Nur leider werden die Systemvariablen nicht gefüllt.
Ist denn in dem Script ein Fehler?
Den Systemvariablen habe ich Kanal 2 vom Schaltaktor zugeordnet.
Kann man den irgenwas aus der Fehlermeldung vom Log herauslesen?

Bitte helft mir.
Lg

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

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von alchy » 25.08.2019, 23:35

Was gibt es daran
alchy hat geschrieben:
23.08.2019, 22:52
Wie schwer kann es denn sein seinen Soll / Ist zustand so zu dokumentieren, das der Gegenüber auch was damit anfangen kann?

nicht zu verstehen. :roll:
Denk doch selber mal drüber nach.
Du postest ein Script, welches du so gar nicht einsetzt, sondern in geänderter Form und fragst was da falsch wäre.
Ich sehe, das der Name der Systemvariable auf der CCU nicht zum Script passt, teile es dir mit und du sagt, das hatte ich schon angepasst.
Das baut auf.

Suenzihome hat geschrieben:
25.08.2019, 22:35
Den Systemvariablen habe ich Kanal 2 vom Schaltaktor zugeordnet.
Wie ich oben schon schrieb, das ist egal.

Suenzihome hat geschrieben:
25.08.2019, 22:35
Kann man den irgenwas aus der Fehlermeldung vom Log herauslesen?
Ja ein ScriptRuntimeError: also brauchst du dich über leere Systemvariablen nicht wundern.
Suenzihome hat geschrieben:
25.08.2019, 22:35
Ist denn in dem Script ein Fehler?
Naja, vielleicht suboptimal wahrscheinlich sogar überflüssig, aber durchlaufen sollte es schon.
Da dein jetzt gepostetes Script zu den Namen der Systemvariablen passt, darfst du jetzt noch den Typ der Systemvariablen ändern von Zahl in Zeichenkette.
Dann sollte das Script beim zweiten Ausführen durchlaufen.
(Den Monatswert kriegst du natürlich erst am nächsten 1. oder du passt die entsprechende Zeile

if (tag == 1)

kurz mal zum Testen an...

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.

Suenzihome
Beiträge: 96
Registriert: 09.06.2017, 00:19

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Suenzihome » 26.08.2019, 18:53

Hallo Alchy

Danke für die Hilfe. Sorry das mit den anpassen der Variablennamen hatte ich halt vergessen zu sagen.
Die Variablen habe ich noch in Zeichenkette geändert. Heute sollt ich dann ein Ergebnis haben. Zumindestens steht jetzt schon mal der Wert des Gerätezählers vom Schaltaktor in der Variable "Server.Zaehlerstand.Gestern"
Danke.

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

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von alchy » 26.08.2019, 20:38

Suenzihome hat geschrieben:
26.08.2019, 18:53
Zumindestens steht jetzt schon mal der Wert des Gerätezählers vom Schaltaktor in der Variable "Server.Zaehlerstand.Gestern"
Jetzt wird das Script das tun, was es sollte.
Wie ich schon oben schrieb, alles was mit Monatswerten zu tun hat, wird erst am nächsten 1. passieren, es sei denn du passt das Script an.

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.

Sebastian05
Beiträge: 18
Registriert: 13.12.2019, 00:03
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Sebastian05 » 23.12.2019, 00:15

Hat auch bei mir geklappt, vielen Dank dafür!

Eine Verständnisfrage habe ich noch dazu:
- bei Abfragen der "svEnergyCounter_1234_0001Dxxxxxxxxx:6" wird der CCU-interne Wertespeicher abgefragt, den man ja auch per Script zurücksetzen kann (also keine Anfrage an die Steckdose gesendet?)
- bei Abfragen an ""HmIP-RF.0001Dxxxxxxxxx:6.ENERGY_COUNTER"" wird der Wertespeicher der Steckdose abgefragt -> wird dort dann jedes Mal eine aktuelle Verbindung zur Steckdose aufgebaut oder "nur" der aktuell in der CCU hinterlegte Wert der Steckdose genutzt?

Ich spiele nämlich auch mit dem Gedanken, in AIO-NEO den aktuellen Leistungswert anzuzeigen und wollte dafür dieses Script mit recht kurzem Intervall nutzen, mache mir jedoch bei zu kurzem Intervall (z.B. 30 Sekunden) Sorgen um den Duty-Cycle...
alchy hat geschrieben:
17.02.2015, 22:58
...
ich unterbiete mit nur einer Zeile :mrgreen:
sollte funktionieren.

Code: Alles auswählen

dom.GetObject("leistung").State(dom.GetObject("BidCos-RF.KEQ012345678:2.POWER").Value());
...
Alchy
unterwegs getippelt

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

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von alchy » 23.12.2019, 19:06

HMIP-BSM_Energiezähler.jpg

Energiezähler CCU = interne Systemvariable (dein Beispiel: svEnergyCounter_1234_0001Dxxxxxxxxx:6)
Energiezähler Gerät = Datenpunkt Messwertkanal (dein Beispiel: HmIP-RF.0001Dxxxxxxxxx:6.ENERGY_COUNTER)

Das eine ist eine Systemvariable das andere ein Kanaldatenpunkt.
Beides wäre mit der Methode .Value() abzufragen wodurch bei beiden keine Verbindung zur Steckdose aufgebaut wird.

Beispielabfrage:

Code: Alles auswählen

WriteLine("Energiezähler CCU :\t"#dom.GetObject("svEnergyCounter_60238_000855699C334D:7").Value());
WriteLine("Ennergiezähler Gerät:\t"#dom.GetObject("HmIP-RF.000855699C334D:7.ENERGY_COUNTER").Value());


Ausgabe:
HMIP-BSM_Energiezähler_scriptausgabe.jpg

Ich setze den Neokram nicht ein aber wieso muss man da etwas periodisch abfragen, was periodisch aktualisiert wird?
oder anders gefragt: Wieso zeigst du nicht den Datenpunkt des Messwertkanals an, sondern schreibst den Wert in eine Systemvariable um ihn dann anzuzeigen? Ist Neo nicht in der Lage Datenpunkte anzuzeigen?
Und wenn man dann schon denkt dies tun zu müssen, dann synchronisiert man die Systemvariable mit dem Datenpunkt und fängt erst Recht nicht an ein Zeitmodul mit kurzem Intervall dafür zu benutzen. Aber nur meine Meinung zu dem Irrsinn der so läuft. :shock:

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.

Luzzzmann
Beiträge: 14
Registriert: 04.03.2018, 18:39
Hat sich bedankt: 5 Mal

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Luzzzmann » 26.10.2020, 13:22

Guten Tag zusammen,

mein Gesamt-Stromzähler in der CCu zählt nicht mehr weiter. Der Aktuelle Verbrauch läuft, auch Diagramme werden fortgeschrieben.
Aber der Gesamt-Zählerstand verändert sich nicht mehr. Ich hatte ihn mal per scriopt auf den tatsächlichen Stand meinem Stromzählers gesetzt. Dann lief es erstmal, jetzt ist er aber schon längere Zeit stehen geblieben. Auch ein Reset in der Pocket Home APP auf "0" lässt ihn nicht weiterlaufen.

Beim Gaszähler läuft er weiter.

Habt ihr einen Tip für mich ?

Vielen Dank im Voraus.

Gruss

Daimler
Beiträge: 9115
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Daimler » 12.02.2021, 20:13

Hallo Alchy,

ich habe hier ein kleines Problem auf 2 CCUen mit deinem tollen Script . 8)
Und erschlage mich nicht, ist mit Sicherheit nur ein dummer Fehler, aber ich finde ihn einfach nicht. :roll:

Hier das Ergebnis deines 'getütelten :roll: ' ise_ID Scripts - Alles super:

CCU1
HMIP-PSM - 0001D7098D9D32, HmIP-FSM - 000895699E692B

Code: Alles auswählen

svEnergyCounter_3793_0001D7098D9D32:6 225920.200000
svEnergyCounter_7738_000895699E692B:5 12154.800000
Das geht:
Geht2.JPG

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_7738_000895699E692B:5").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_SW1_IP_M_1").State(energy);
Das geht nicht:
Geht nicht2.JPG

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_3793_0001D7098D9D32:6:").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_STM_IP_1").State(energy);
SYSVar_2.JPG

CCU2
HM-ES-PMSw1-DR - MEQ0420711 und MEQ0420891

Code: Alles auswählen

svEnergyCounter_30937_MEQ0420711:2 67284.999996
svEnergyCounter_34130_MEQ0420891:2 1816086.298908
Das geht:
Geht.JPG

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_30937_MEQ0420711:2").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_SW1M_1").State(energy);
das nächste wieder nicht:
Geht nicht.JPG

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_34130_MEQ0420891:2").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_SW1M_2").State(energy);
SYSVar_1.JPG

Ein

Code: Alles auswählen

WriteLine("Energiezähler CCU :\t"#dom.GetObject("svEnergyCounter_3793_0001D7098D9D32:6").Value());
WriteLine("Energiezähler CCU :\t"#dom.GetObject("svEnergyCounter_7474_0001D7098D9D56:6").Value());
WriteLine("Energiezähler CCU :\t"#dom.GetObject("svEnergyCounter_8020_0001D709A1058F:6").Value());
WriteLine("Energiezähler CCU :\t"#dom.GetObject("svEnergyCounter_7738_000895699E692B:5").Value());
liefert

Code: Alles auswählen

Energiezähler CCU :	225923.400000
Energiezähler CCU :	1504288.500000
Energiezähler CCU :	1346676.000000
Energiezähler CCU :	12154.800000
Und bei 17 HM-ES-PMSw1-Pl auf CCU2 läuft auch alles perfekt.

Die Programme werden laut Zeitstempel ausgeführt.
Ich habe die Programme bereit teilweise gelöscht und neu angelegt - immer the same.

Wo zum Geier habe ich das Brett vor'm Schädel?
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

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

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von alchy » 13.02.2021, 11:44

Kann das zwar grad nicht komplett lesen aber es fällt schon beim Durchsehen auf dem Handy auf:
Daimler hat geschrieben:
12.02.2021, 20:13
geht nicht.....
var energy = dom.GetObject("svEnergyCounter_3793_0001D7098D9D32:6:").Value().ToString(1)#" Wh";
Ich hatte doch auch irgendwo ein Script gepostet, wo man alle diese Systemvariablen per Copy & Paste verwenden kann.

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.

Daimler
Beiträge: 9115
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

Re: Leistungsmesser mit Systemvariable, Skript

Beitrag von Daimler » 13.02.2021, 13:23

Hi,

wusste doch - auf dich ist Verlass. :D

Zum. bei den HMIP-PSM bin ich jetzt einen Schritt weiter - das geht jetzt - wunnebar. :D
Und das war beim
alchy hat geschrieben:
13.02.2021, 11:44
Copy & Paste
passiert und ich habs nicht gesehen. :shock:
Danke!

Aber bei den HM-ES-PMSw1-DR stand ich nach wie vor vor dem Brett und konnte hier beim besten Willen keinen Unterschied feststellen.
Geht:

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_30937_MEQ0420711:2").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_SW1M_1").State(energy);
Geht nicht:

Code: Alles auswählen

var energy = dom.GetObject("svEnergyCounter_34130_MEQ0420891:2").Value().ToString(1)#" Wh";
dom.GetObject("Zaehler_SW1M_2").State(energy[attachment=0]Sysvar.JPG[/attachment]
Sysvar.JPG
Sysvar.JPG (21.38 KiB) 1455 mal betrachtet
Ich habe dann zusätzlich die SysVars gelöscht und neu angelegt - jetzt geht es.

Danke dir auf jeden Fall für deine Mühe.
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“