TIME_ON_SUM lässt sich nicht mehr auslesen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von metaxa » 28.05.2021, 08:46

Hallö!
Ich habe seit sicher 7 Jahren meine Poolsteuerung zu meiner Zufriedenheit laufen. Neben Solarsteuerung berechne ich dynamisch die notwendige Pumpenlaufzeit. Dazu habe ich mir eben vor etlichen Jahren ein CUxD Universal Wrapper Device angelegt:
CUxD Wrapper.jpg
Uwe stellt mit damit seit Ewigkeiten den Datenpunkt "TIME_ON_SUM" zur Verfügung. Diesen frage tgl. um 19:00 Uhr ich in einem Script ab um die Restleufzeit zu berechnen.

Code: Alles auswählen

var tmpH = dom.GetObject("CUxD.CUX9001003:1.TIME_ON_SUM").Value().ToInteger();
WriteLine ("akt. PoPuLaufzeit in Minuten heute: " + tmpH);
Ich bekomme nur nach jedem Neustart der piVCCU den richtigen Wert zurückgeliefert. Danach kommt nur noch "0".

Ausser Updates der PIVCCU und CUxD habe ich im Winter nichts an der Config geändert.

Hat bitte irgendwer eine Idee wo ich suchen könnte?
LG, mxa

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

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von Baxxy » 06.06.2021, 16:55

metaxa hat geschrieben:
28.05.2021, 08:46
Ausser Updates der PIVCCU und CUxD habe ich im Winter nichts an der Config geändert.
Leider schreibst du nicht welche Versionen von piVCCU und CUxD bei Dir installiert sind.

Ich habe einen Test auf RaspberryMatic 3.57.5.20210525 mit CUxD 2.6 durchgeführt und konnte hier keine Probleme beim Auslesen von "TIME_ON_SUM" eines CUxD (90) Universal Wrapper Device - Funktion: State feststellen.

Das Mini-Script nutzt den Kanalnamen Anstelle einer Seriennummer und sieht wie folgt aus:

Code: Alles auswählen

integer tos = channels.Get ("Name_deines_State_Wrapper_Kanals").DPByHssDP ("TIME_ON_SUM").Value().Round(0).ToInteger();
WriteLine ("akt. PoPuLaufzeit in Minuten heute:  "# tos);
Kannst Du ja mal testen.

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von metaxa » 08.06.2021, 10:48

Baxxy hat geschrieben:
06.06.2021, 16:55
Leider schreibst du nicht welche Versionen von piVCCU und CUxD bei Dir installiert sind.
piVCCU3
CCU-Firmware: 3.57.5
CUxD Version 2.6
Baxxy hat geschrieben:
06.06.2021, 16:55
Das Mini-Script nutzt den Kanalnamen Anstelle einer Seriennummer und sieht wie folgt aus:

Code: Alles auswählen

WriteLine ("Start alt:");
var tmpH = dom.GetObject("CUxD.CUX9001003:1.TIME_ON_SUM").Value().ToInteger();
WriteLine ("akt. PoPuLaufzeit in Minuten heute: " + tmpH);
WriteLine ("Ende alt:");

WriteLine ("Start neu:");
integer tos = channels.Get ("CUX Laufzeit PPumpe").DPByHssDP ("TIME_ON_SUM").Value().Round(0).ToInteger();
WriteLine ("akt. PoPuLaufzeit in Minuten heute:  "# tos);
WriteLine ("Ende neu:");

WriteLine("Hallo Welt!");
bringt:

Code: Alles auswählen

Start alt:
akt. PoPuLaufzeit in Minuten heute: 0
Ende alt:
Start neu:
CUxD Wrapper 01.jpg
LG, mxa

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

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von Baxxy » 08.06.2021, 14:18

metaxa hat geschrieben:
08.06.2021, 10:48
bringt:
Ok. Ich hatte ja geschrieben...
Baxxy hat geschrieben:
06.06.2021, 16:55
Das Mini-Script nutzt den Kanalnamen
Laut Screenshot hast du aber den Gerätenamen eingetragen. Das funktioniert dann nur wenn Kanal:1 des Gerätes exakt so heißt wie das Gerät selbst. (was man aber vermeiden sollte und bei Dir vermutlich nicht der Fall ist, sieht man auf dem Screenshot leider nicht)

Hier noch was zum Testen mit etwas "Errorhandling".

Code: Alles auswählen

string kanal_string = "Beleuchtung Couchtisch:1 - State Wrapper";  !- hier den Kanalnamen (Kanal:1 des State-Wrapper Devices) eintragen. Nicht den Gerätenamen!!!
string dp_string = "TIME_ON_SUM";
!- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
real tos_real; integer tos_integer; integer tos_integer_round;
object kanal_dev = channels.Get (kanal_string);
if (kanal_dev) {
    object kanal_dp = kanal_dev.DPByHssDP (dp_string);
     if (kanal_dp) {
         tos_real = kanal_dp.Value();
         tos_integer = tos_real.ToInteger();
         tos_integer_round = tos_real.Round(0).ToInteger();
WriteLine ("tos_real:\t\t  "# tos_real);
WriteLine ("tos_integer:\t\t  "# tos_integer);
WriteLine ("tos_integer_round:\t  "# tos_integer_round);
}
else { WriteLine("Datenpunkt: "# dp_string #" nicht gefunden!"); }
}
else { WriteLine("Kanalname: "# kanal_string #" nicht gefunden!"); }

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von metaxa » 10.06.2021, 19:52

Baxxy hat geschrieben:
08.06.2021, 14:18
metaxa hat geschrieben:
08.06.2021, 10:48
bringt:
Ok. Ich hatte ja geschrieben...
Baxxy hat geschrieben:
06.06.2021, 16:55
Das Mini-Script nutzt den Kanalnamen
Muuurksss.... sorry, ich habe das für mich falsch übersetzt, du hast vollkommen recht.

Neuer Versuch:

Code: Alles auswählen

WriteLine ("Start alt:");
var tmpH = dom.GetObject("CUxD.CUX9001003:1.TIME_ON_SUM").Value().ToInteger();
WriteLine ("akt. PoPuLaufzeit in Minuten heute: " + tmpH);
WriteLine ("Ende alt:");

WriteLine ("");

WriteLine ("Start neu:");
string kanal_string = "CUX Laufzei PPumpe:1";  !- hier den Kanalnamen (Kanal:1 des State-Wrapper Devices) eintragen. Nicht den Gerätenamen!!!
string dp_string = "TIME_ON_SUM";
!- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
real tos_real; integer tos_integer; integer tos_integer_round;
object kanal_dev = channels.Get (kanal_string);
if (kanal_dev) {
    object kanal_dp = kanal_dev.DPByHssDP (dp_string);
     if (kanal_dp) {
         tos_real = kanal_dp.Value();
         tos_integer = tos_real.ToInteger();
         tos_integer_round = tos_real.Round(0).ToInteger();
WriteLine ("tos_real:\t\t  "# tos_real);
WriteLine ("tos_integer:\t\t  "# tos_integer);
WriteLine ("tos_integer_round:\t  "# tos_integer_round);
}
else { WriteLine("Datenpunkt: "# dp_string #" nicht gefunden!"); }
}
else { WriteLine("Kanalname: "# kanal_string #" nicht gefunden!"); }
WriteLine ("Ende neu:");
bringt:

Code: Alles auswählen

Start alt:
akt. PoPuLaufzeit in Minuten heute: 0
Ende alt:

Start neu:
tos_real:		  0.000000
tos_integer:		  0
tos_integer_round:	  0
Ende neu:
Würde ich jetzt die PIVCCU neu durchstarten, wird es funktionieren. Leider nur sehr kurzzeitig.

LG, mxa

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von metaxa » 10.06.2021, 20:19

metaxa hat geschrieben:
10.06.2021, 19:52
Würde ich jetzt die PIVCCU neu durchstarten, wird es funktionieren. Leider nur sehr kurzzeitig.
Nach dem Neustart:

Code: Alles auswählen

Start alt:
akt. PoPuLaufzeit in Minuten heute: 300
Ende alt:

Start neu:
tos_real:		  300.630000
tos_integer:		  300
tos_integer_round:	  301
Ende neu:
Edit nach 16 Stunden:

Code: Alles auswählen

Start alt:
akt. PoPuLaufzeit in Minuten heute: 0
Ende alt:

Start neu:
tos_real:		  0.000000
tos_integer:		  0
tos_integer_round:	  0
Ende neu:
Da ist i'wo der Wurm drinnen .....
LG, mxa

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

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von Baxxy » 14.06.2021, 16:44

metaxa hat geschrieben:
10.06.2021, 20:19
Da ist i'wo der Wurm drinnen .....
Sieht so aus. Leider habe ich keine weitere Idee warum der Datenpunkt des CUxD-Devices nach einer gewissen Zeit nur noch "0" ausgibt. Solange kein SUM_RESET ausgeführt wird oder anderweitig der Wert gelöscht wird sollte der fortlaufend weiterzählen.

Grüße
Baxxy

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TIME_ON_SUM lässt sich nicht mehr auslesen

Beitrag von metaxa » 16.06.2021, 13:02

Ich leider auch nicht. Bin auf iO zur Berechnung ausgewichen und stelle den Wert meiner CCU zur Verfügung.
Danke für deine Bemühungen!

LG, mxa

Antworten

Zurück zu „HomeMatic allgemein“