Leistungsmessung Schaltaktor Zeit in Variable speichern

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Semmy
Beiträge: 165
Registriert: 05.02.2017, 14:12
Danksagung erhalten: 1 Mal

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Semmy » 26.05.2020, 13:45

Xel66 hat geschrieben:
26.05.2020, 13:24
Semmy hat geschrieben:
26.05.2020, 06:52
Könnte man hier noch irgendwie die Stunden mit einbringen?
Da hier die Basis die Minuten sind, ist vielleicht für Deine Anforderung eines der Betriebsstundenzählerscripts geeigneter. das Wrapperdevice ist sehr ressourcensparend. Da jetzt noch irgendwelche Scripts hinterzubauen um die Anzeige auf ein Format zu bekommen, was die anderen Lösungen gleich out of the box machen ist irgendwie von hinten durch die Brust ins Auge. Da sind Lösungen, die auf Ein- und Ausschaltzeitpunkte getriggert werden, deutlich besser geeignet.

Gruß Xel66
Hallo
Ok, dann werde ich mal so ein Betriebsstunderzählerscript probieren. Hast du da einen Tipp, welches dafür infrage kommen könnte?

Viele Grüße
Semmy
Raspberrymatic 3+
Raspberrymatic LAN-Gateway

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

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Xel66 » 26.05.2020, 14:00

Semmy hat geschrieben:
26.05.2020, 13:45
...Tipp, welches dafür infrage kommen könnte?
Das hier oder das hier seheinen brauchbare Lösungen zu sein. Habe aber keines davon in Betrieb, weil mir die Industrieminuten des Wrapperdevices für meine "Überwachung" reichen.

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

Semmy
Beiträge: 165
Registriert: 05.02.2017, 14:12
Danksagung erhalten: 1 Mal

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Semmy » 26.05.2020, 14:33

Xel66 hat geschrieben:
26.05.2020, 14:00
Semmy hat geschrieben:
26.05.2020, 13:45
...Tipp, welches dafür infrage kommen könnte?
Das hier oder das hier seheinen brauchbare Lösungen zu sein. Habe aber keines davon in Betrieb, weil mir die Industrieminuten des Wrapperdevices für meine "Überwachung" reichen.

Gruß Xel66
Hallo

Habe deine Tipp mal testweise probiert, scheint erstmal zu funktionieren. Ich möchte aber wieder die Betriebsstunden z.B. 2.50 in 2.30 angezeigt bekommen in eine Variable. wie müsste hier der Eintrag sein?

Gruß
Semmy
Raspberrymatic 3+
Raspberrymatic LAN-Gateway

Semmy
Beiträge: 165
Registriert: 05.02.2017, 14:12
Danksagung erhalten: 1 Mal

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Semmy » 26.05.2020, 14:47

Semmy hat geschrieben:
26.05.2020, 14:33
Xel66 hat geschrieben:
26.05.2020, 14:00
Semmy hat geschrieben:
26.05.2020, 13:45
...Tipp, welches dafür infrage kommen könnte?
Das hier oder das hier seheinen brauchbare Lösungen zu sein. Habe aber keines davon in Betrieb, weil mir die Industrieminuten des Wrapperdevices für meine "Überwachung" reichen.

Gruß Xel66
Hallo

Habe deine Tipp mal testweise probiert, scheint erstmal zu funktionieren. Ich möchte aber wieder die Betriebsstunden z.B. 2.50 in 2.30 angezeigt bekommen in eine Variable. wie müsste hier der Eintrag sein?

Script funktioniert nicht, wenn immer nur ca. 10 Sekunden eingeschaltet wird, wird die Zeit nicht addiert.

Gruß
Semmy
Raspberrymatic 3+
Raspberrymatic LAN-Gateway

Semmy
Beiträge: 165
Registriert: 05.02.2017, 14:12
Danksagung erhalten: 1 Mal

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Semmy » 26.05.2020, 15:20

Hallo

Ist es denn auch möglich, beim CUxD-Wrapperdevice in TIME_ON_SUM eine Zeit manuell einzusetzen. Nach Neustart ist diese ja auf null gestellt.

Gruß
Semmy
Raspberrymatic 3+
Raspberrymatic LAN-Gateway

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

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Xel66 » 26.05.2020, 23:47

Semmy hat geschrieben:
26.05.2020, 15:20
...TIME_ON_SUM eine Zeit manuell einzusetzen. Nach Neustart ist diese ja auf null
Nö, ist sie nicht. Ich habe gerade kürzlich neu gestartet und habe Zeiten drin, die weit länger als der letzte Reboot sind. Und in der Anleitung steht ja auch ausdrücklich drin, dass diese einen Reboot überleben. Und einen Startwert kann man manuell in den Geräteeinstellungen setzen. Alternativ müsste man das über das Schreiben des PARAMSET MASTER erledigen. Aber das ist ja unnötig.

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

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

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Xel66 » 26.05.2020, 23:56

Semmy hat geschrieben:
26.05.2020, 14:33
Ich möchte aber wieder die Betriebsstunden z.B. 2.50 in 2.30 angezeigt bekommen in eine Variable. wie müsste hier der Eintrag sein?
Dann subtrahiere doch 0.2.

Sorry, aber mit den Brocken kann man nichts anfangen. Ich weiß ja noch nicht mal, was Du gemacht hast. Das Script rechnet mit seinen eigenen Systemvariablen. Daher kann man diese nicht umformatieren. Oder man müsste das Script selber umbauen. Alternativ musst Du den umformatierten Wert in eine separate Systemvariable schreiben. Dazu musst du eben aus der Variablen die Sekunden, Minuten und Stunden errechnen und dann einen String aus den Ergebnissen zusammenbauen. Mit einer einfachen Wandlung .ToTime() geht es eben nicht, weil die Zeitbasis der 01.01.1970 01:00:00 Uhr ist. Es kommt also als formatierte Uhrzeit immer eine Stunde zu viel raus.

Ich habe jetzt mal was für's Wrapperdevice zusammengetippt. Ist nicht schön, sollte aber funktionieren. Ich lese den Datenpunkt ein (summe), danach extrahiere ich die Minuten und Sekunden (minsec) und errechne anschließend noch die Anzahl der vollen Stunden (stunden). Danach baue ich aus beiden Ergebnissen einen String (dauer) zusammen, den man dann in eine Systemvariable schreiben kann. Ich weiß, nicht sehr kreativ, aber vielleicht hat ja jemand eine schönere Idee.

Code: Alles auswählen

real summe = (dom.GetObject("CUxD.CUX9001002:1.TIME_ON_SUM").Value());
time minsec = (summe*60).ToTime().Format("%M:%S");
string stunden = (summe/60).ToInteger();
string dauer = stunden #":"# minsec.ToString(); 
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

Semmy
Beiträge: 165
Registriert: 05.02.2017, 14:12
Danksagung erhalten: 1 Mal

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Semmy » 28.05.2020, 07:23

Hallo

Ich habe gerade damit Probleme:
time zeit = (dom.GetObject("CUxD.CUX9001003:1.TIME_ON_SUM").Value()*60).ToTime().Format("%M:%S");
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Systemariablenname").State(zeit);

Bei TIME_ON_SUM wird 123.18 angezeigt und bei Systemariablenname wird dann 3:10 angezeigt, da stimmt doch was nicht,oder?

Damit funktioniert es jetzt:
real summe = (dom.GetObject("CUxD.CUX9001002:1.TIME_ON_SUM").Value());
time minsec = (summe*60).ToTime().Format("%M:%S");
string stunden = (summe/60).ToInteger();
string dauer = stunden #":"# minsec.ToString();

Gruß
Semmy
Raspberrymatic 3+
Raspberrymatic LAN-Gateway

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

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Baxxy » 28.05.2020, 09:41

Xel66 hat geschrieben:
26.05.2020, 23:56
vielleicht hat ja jemand eine schönere Idee
Schöner würde ich nicht behaupten, aber ein bisschen anders. :wink:

Code: Alles auswählen

integer TimeOnSUM = (123.18).ToInteger(); ! Alternativ die Daten aus einem CUxD-State-Wrapper Device holen
integer SecOn = TimeOnSUM*60; ! Umrechnen in Sekunden
integer DaysOn = SecOn / 86400; ! Tage berechnen
integer MinsOn = (SecOn % 3600) / 60; ! Minuten berechnen
integer HoursOn = (TimeOnSUM-DaysOn*1440) / 60; ! Stunden berechnen
WriteLine("Laufzeit: " # TimeOnSUM #" Minuten. Das sind "# DaysOn #" Tag(e) " # HoursOn #" Stunden und " # MinsOn #" Minuten");
Damit überwache ich die Laufzeiten meiner Elektroheizungen im Ferienhaus. Rein zu statistischen Zwecken.
Beim Script hatte ich damals Hilfe von Alchy.

Grüße
Baxxy

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

Re: Leistungsmessung Schaltaktor Zeit in Variable speichern

Beitrag von Xel66 » 28.05.2020, 11:40

Baxxy hat geschrieben:
28.05.2020, 09:41
Schöner würde ich nicht behaupten, aber ein bisschen anders. :wink:
Ist so ähnlich, nur dass ich mir die Umrechnung der Minuten und Sekunden durch die Umwandlung in .ToTime() gespart habe. Also lag ich nicht ganz so falsch.

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

Antworten

Zurück zu „HomeMatic allgemein“