Auslesen und verarbeiten Parametersatz Heizungsventil um nächsten Schaltzeitpunkt und Temperatur zu ermitteln

Virtualisierte CCU für Raspberry Pi und Clones

Moderator: Co-Administratoren

Antworten
Krischanb
Beiträge: 10
Registriert: 02.01.2018, 10:50
System: CCU

Auslesen und verarbeiten Parametersatz Heizungsventil um nächsten Schaltzeitpunkt und Temperatur zu ermitteln

Beitrag von Krischanb » 12.12.2025, 15:05

Hallo zusammen,
ich versuche einen Parametersatz eines HM-CC-RT-DN mittels eines Scriptes auszulesen, in eine Varable zu schreiben und diese dann in einem Befehl im OS direct auszuführen (Aufruf mittels CUxD). Meine piVCCU3 läuft aktuelle auf einem Raspberry Pi 3b und ich nutze den Scriptdeveloper von Black. Nochfolgend mein Code, welcher auch mit einem Testdatensatz (aktuell auskommentiert) funktioniert, um während der Entwicklung den Duty Cycle nicht zu sehr zu strapazieren.
Nun zu meinem eigentlichen Problem: Mit dem Testsatz läuft alles problemlos durch. Jedoch nicht mit dem ausgelesenen Parametersatz. Um Fehler beim Zusammensetzen des Befehls auszuschließen habe ich den Befehl kopiert, mich per ssh auf dem Raspberry, nicht der piVCCU, eingelogt und dort erfolgreich ausgeführt.
Im nächsten Schritt habe ich mich per ssh auf der piVCCU eingelogt und das Spiel dort wiederholt. Dabei ist mir dann aufgefallen, dass nur eine bestimmte Anzahl an Zeichen übernommen werden (18703 zu 1022 Zeichen).
Gibt es hier eine Beschränkung? Ich hatte erst 32 Bit vs 64 Bit Architektur in Verdacht, aber dies wieder verworfen, da ich auf der 64 Bit Systemarchitektur unterwegs bin.
Hat jemand eine Idee ob es eine Lösung zu meinem Problem gibt, oder ob ich für mein Vorhaben einen anderen Weg suchen muss oder dieses grundsätzlich begraben muss? Ich möchte anhand der aktuellen Zeit, den nächsten Schaltzeitpunkt auslesen und den Sollwert dahingehen anpassen. ("Gute Nacht-Programm" aufgrund unregelmäßiger Zeiten ins Bett zu gehen)

Code: Alles auswählen

string stdErr=""; string stdOut="";
object oDEVICE= dom.GetObject (ID_DEVICES).Get ("Heizung Wohnzimmer");
object oIFace= dom.GetObject (oDEVICE.Interface () );
string sWeekday="";
string sBefehlECHO="";
string sParam="";
string sResult="";
sParam = xmlrpc.GetParamset (oIFace, oDEVICE.Address () , "MASTER");
!sParam="<member><name>ENDTIME_MONDAY_5</name><value><i4>1440</i4></value></member><member><name>ENDTIME_MONDAY_6</name><value><i4>1440</i4></value></member><member><name>ENDTIME_MONDAY_7</name><value><i4>1440</i4></value></member>";
time tLocal = system.Date("%H:%M");
integer iMinElapsed = (system.Date("%H").ToInteger()*60) + system.Date("%M").ToInteger();
!sWeekday="MONDAY";
sWeekday=system.Date("%A").ToUpper();
sBefehlECHO="echo '" # sParam # "'| sed -r 's/<\/member>/<\/member>\/\\n/g' | sed -rn 's/.*<member><name>ENDTIME_" # sWeekday # "_([0-9]{1,2})<\/name><value><i4>([0-9]{1,4})<\/i4><\/value><\/member>.*/Time:\2 Entry:\1/pg'";
!echo "$Teststring" | sed -r 's/<\/member>/<\/member>\/\n/g' | sed -rn 's/.*<member><name>ENDTIME_MONDAY_([0-9]{1,2})<\/name><value><i4>([0-9]{1,4})<\/i4><\/value><\/member>.*/Time:\2 Entry:\1/pg'
dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State(sBefehlECHO);
dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1);
sResult = dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State();
WriteLine(sResult);
Output von pivccu-info:

Code: Alles auswählen

piVCCU version: 3.83.6-95
OS:             Debian GNU/Linux 12 (bookworm)
Kernel:         6.12.47+rpt-rpi-v8 aarch64
Kernel modules: Available
Raw UART dev:   Available
Rasp.Pi UART:   Assigned to GPIO pins
HMRF Hardware:  RPI-RF-MOD
 Connected via: GPIO@3f201000.serial (/dev/raw-uart)
 Board serial:  XXXXXXXXXXX
 Radio MAC:     0xFF0117
HMIP Hardware:  RPI-RF-MOD
 Connected via: GPIO@3f201000.serial (/dev/raw-uart)
 SGTIN:         XXXXXXXXXXXXXX
 Radio MAC:     0xBE523B
State:          RUNNING
PID:            1574
IP:             192.XXX.XXX.XXX
Link:           vethpivccu
 TX bytes:      73.74 MiB
 RX bytes:      138.79 MiB
 Total bytes:   212.53 MiB
Output von uname -a:
6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16) aarch64 GNU/Linux
Während ich diesen Post schreibe, kommt mir die Idee, das ich, zumindest für die Nachtabsenkung, die ECO-Temperatur nehmen könnte.
Nichts desto trotz wäre ich an einer Lösung / Ursache für das obige rein interessehalber interessiert.

Vielen Dank
Krischanb

Antworten

Zurück zu „piVCCU“