debmatic Duty Cycle

Debian/Ubuntu basierte CCU

Moderator: Co-Administratoren

Antworten
braindead
Beiträge: 532
Registriert: 28.11.2014, 21:20
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

debmatic Duty Cycle

Beitrag von braindead » 21.04.2019, 10:13

Hallo,

da ich jetzt mal etwas Zeit habe, möchte ich mein Problem beim Speichern des Duty Cycles in einer Systemvariable angehen. Weil es keinen Bereich für debmatic gibt, erstelle ich den Thread im piVCCU Bereich. Eins noch vorweg: Ich bin Linux Laie. :-)

debmatic läuft bei mir in einer 64bit Debian Proxmox VM grundsätzlich ohne Probleme. CUxD ist installiert un funktioniert soweit auch. Ich nutze die HB-RF-USB Platine. Lediglich das Speichern des DC in einer Systemvariable funktioniert nicht.

Mit folgendem Script versuche ich den DC in eine Variable zu schreiben, was aber nicht funktioniert.

Code: Alles auswählen

! HomeMatic-Script
! DUTY CYCLE ABFRAGEN
! http://www.christian-luetgens.de/homematic/cuxd/dutycycle/Duty_Cycle.htm

dom.GetObject ("CUxD.CUX2801001:1.CMD_SETS").State("echo 'load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]'|tclsh | awk '// { printf $10 }'");
dom.GetObject ("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string s_reply = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

dom.GetObject ("CCU.DutyCycle").State (s_reply.ToFloat());

!  Ende des Scripts
Wenn ich mich via SSH connecte und nur den TCL Befehl probiere, dann kommt folgende Meldung:

Code: Alles auswählen

root@debmatic:~# echo 'load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]'|tclsh | awk '// { printf $11 }'
couldn't load file "tclrpc.so": tclrpc.so: wrong ELF class: ELFCLASS32
Kann es sein, dass es ein 32bit / 64bit Problem gibt? Wie ich das Problem beheben?
Zuletzt geändert von Roland M. am 12.05.2019, 12:04, insgesamt 1-mal geändert.
Grund: Thema verschoben
Gruß,
Markus

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: debmatic Duty Cycle

Beitrag von deimos » 21.04.2019, 10:37

Hi,

funktioniert bei mir einwandfrei. Kann es sein, dass du tcl zusätzlich installiert hast und daher nicht das in debmatic eingebaute verwendet wird?

Viele Grüße
Alex

braindead
Beiträge: 532
Registriert: 28.11.2014, 21:20
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: debmatic Duty Cycle

Beitrag von braindead » 21.04.2019, 11:23

Hi Alex,

bewusst habe ich das nicht installiert. Kann ich das manuell deinstallieren und dann die richtige Version installieren? Wenn ja, wie?
Gruß,
Markus

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: debmatic Duty Cycle

Beitrag von deimos » 21.04.2019, 11:51

Hi,

mit debmatic wird die richtige Version mitgeliefert. Das ist eine spezielle aus dem OCCU Repository. Du könntest debmatic neu installieren mit

Code: Alles auswählen

sudo apt install --reinstall debmatic
Dann wird das unter /bin/tclsh installiert.

Viele Grüße
Alex

braindead
Beiträge: 532
Registriert: 28.11.2014, 21:20
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: debmatic Duty Cycle

Beitrag von braindead » 21.04.2019, 12:14

deimos hat geschrieben:
21.04.2019, 11:51
Dann wird das unter /bin/tclsh installiert.
Obwohl ich debmatic neu installiert habe, funktionierte das Script nicht. Der Fehler blieb der selbe. Dann ist mir Dein Hinweis ins Auge gesprungen und ich habe das Script angepasst. Jetzt klappt es auch bei mir.

Code: Alles auswählen

! HomeMatic-Script
! DUTY CYCLE ABFRAGEN
! http://www.christian-luetgens.de/homematic/cuxd/dutycycle/Duty_Cycle.htm

dom.GetObject ("CUxD.CUX2801001:1.CMD_SETS").State("echo 'load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]'|/bin/tclsh | awk '// { printf $10 }'");
dom.GetObject ("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string s_reply = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

dom.GetObject ("CCU.DutyCycle").State (s_reply.ToFloat());

!  Ende des Scripts
Gruß,
Markus

Antworten

Zurück zu „debmatic“