Duty_Cycle CCU2 als SysVar

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

justl82
Beiträge: 127
Registriert: 23.03.2015, 16:55
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von justl82 » 30.11.2016, 09:37

JRiemann hat geschrieben:Oder per WinSCP für Windows auf der CCU einloggen, den Ordner /usr/local/ öffnen, Mausklick rechte Taste, neu > Datei, ein Editorfenster öffnet sich, Skript einfügen, speichern. Rechtsklick auf die Datei, Eigenschaften, Schreibrechte auf 755 stellen. Fertig.
So hats geklappt vielen Dank.

LG Micha

Benutzeravatar
FBK2904
Beiträge: 454
Registriert: 22.03.2016, 17:12
System: Alternative CCU (auf Basis OCCU)
Wohnort: Bei Ludwigsburg
Hat sich bedankt: 80 Mal
Danksagung erhalten: 42 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von FBK2904 » 01.12.2016, 21:11

Sodele,

ich habe es jetzt endlich nach wochenlangen zögern heute auch installiert und bin begeistert :D !
Herzlichen Dank an "Herbert_Testmann" und "Black" für Ihre tolle Arbeit und seitenweise Geduld mit den Usern !

Noch ein allgemeiner, "kleiner" Tipp von mir an alle.
Auf den ersten paar Seiten wurden immer wieder Lösungsvorschläge (meist Scripte) aufgezeigt, um an die Seriennummer
der CCU zu kommen.
Es geht / ist aber ganz einfach und man muss nicht einmal aufstehen oder auf das Verpackungschild schauen :roll:

Einfach auf der WebUI rechts oben auf "Hilfe" klicken und im erscheinenden Feld "Info" steht es dann an dritter Stelle :mrgreen: :mrgreen: :mrgreen:

Grüssle
Frank
Dateianhänge
CCU - Seriennummer.PNG
Grüssle,
Frank
--------------------------
System: CCU3 (RM 3.75.7.20240420) mit Stabantenne (www.stall.biz)
Geräte: 56x HM (classic) / 13x HmIP / 8x CUxD /16x virtuelle Gruppen / 4x PioTek-Tracker V4 FTTB & FAM-USB-Gateway
Addons: XML-API 2.3 / CUx-Daemon 2.11 / CUxD-Highcharts 1.45 / Programme drucken 2.6
Sonstige: SDV v5.03.04 G / AIO Creator NEO v3.1.0 mit 2x Samsung Tab SM-T580 (Root & Android 10 [LineageOS 17.1 by TALUAtXDAi])

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von joesch » 13.12.2016, 21:43

Ich ermittle den DutyCycle für die CCU2 sowie den LAN-Adapter und schreibe sie mit dem skript in eine Sysvar. Das funktioniert zuverlässig.
Nun möchte ich die Werte mit dem CuxD-Highcharts loggen. Dazu nutze ich nachfolgendes Zentralenprogramm mit folgendem Skript:

Code: Alles auswählen

object o = dom.GetObject("$src$"); 
if (o) {
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());
}
Allerdings findet sich in den Highcharts nur der Wert für die CCU, nicht für den LAN-Adapter. Hat jemand eine Idee, woran das liegen könnte?

Vielen Dank schon mal!
joesch
Dateianhänge
Unbenannt1.PNG
Unbenannt1.PNG (3.4 KiB) 3352 mal betrachtet
Unbenannt.PNG
Unbenannt.PNG (23.51 KiB) 3352 mal betrachtet

BadenPower

Re: Duty_Cycle CCU2 als SysVar

Beitrag von BadenPower » 13.12.2016, 22:36

DC_LAN1 lößt das Programm auch nie aus, da der Trigger auf "bei Änderung" steht und der Wert von der Systemvariable im Regelfall immer "größer oder gleich 0" ist.

erik
Beiträge: 776
Registriert: 31.10.2007, 13:32
Hat sich bedankt: 6 Mal
Danksagung erhalten: 6 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von erik » 13.12.2016, 23:17

Hallo,

super Beitrag.

Funktioniert soweit prima. Meine CCU2 hat einen DC von 25, mein GW 6. Wie kann ich die "Verursacher" finden und eventuell besser dem GW zuordnen, so daß der DC runter geht?

Aktueller Ausbau:
Anzahl Kanäle 307
Anzahl Geräte 85

und da soll noch mehr kommen.... 120 Geräte schaffe ich bestimmt......

Erik

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von Familienvater » 13.12.2016, 23:53

Hi,

wurde zum Glück nicht schon ziemlich oft beschrieben, und: 25% DC heißt, da ist noch 75% Luft nach oben -> Das ist am Ende des grünen Bereichs, ich würde das noch nicht als gelb Bezeichnen.
Aber klar, es macht Sinn, sich mal die Ursachen anzuschauen, vielleicht kann man auch noch 5-10% rausholen.
Solange der DC nicht öfters über 70%-80% geht, und dauerhaft unter 30-40% ist, kann es "normal" sein, hängt aber von zuviel Faktoren ab, um das globalgalaktisch zu pauschalisieren.
Wer z.B. 80 TFKs hat, und nur 2 Schaltaktoren, da ist das ggf. zuviel für, wer 40 netzbetriebene Schaltaktoren hat, und auch noch 10 Energiemeßaktoren, die spontan Daten senden dürfen, da sind 25% "wenig", das könnte auch mehr sein.

Der Familienvater

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von joesch » 14.12.2016, 11:30

BadenPower hat geschrieben:DC_LAN1 lößt das Programm auch nie aus, da der Trigger auf "bei Änderung" steht und der Wert von der Systemvariable im Regelfall immer "größer oder gleich 0" ist.
Vielen Dank für den Tipp. Das war noch ein anderes Problem auf der zweiten CCU2, wo der Wert DC_LAN_1 gar nicht aktualisiert wurde. Vielen Dank - da habe ich den Wald vor lauter Bäumen nicht gesehen.
Allerdings wird bei Triggerung "auf Aktualisierung" der Wert für DC_LAN_1 nicht in HighCharts dargestellt :?:

VG,
joesch

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von joesch » 14.12.2016, 20:51

OK - Problem ist gelöst. Der LAN-Adapter war im Netzwerk nicht erreichbar :roll:

Manchmal ärgert mich das schon: Alle möglichen Servicemeldungen, der Ausfall einer solchen Komponente wird aber nicht als Servicemeldung dargestellt :(

VG,
joesch

deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von deifel » 19.12.2016, 13:41

Hallo zusammen,

ich möchte gerne meinen DC loggen und habe mich an dieser Umsetzung hier versucht.
Leider funktioniert die Abfrage bzw. das Ausführen der TCL-Datei nicht. Cuxd selbst läuft.
Ich nutze YAHM auf einem Raspi und bin nach der Anleitung hier vorgegangen.

Die tcl-Datei habe ich allerdings direkt auf dem Raspi mit dem Nano-Editor erstellt und im Verzeichnis var/lib/lxc/root/usr/local gespeichert.
755-Rechte zum Ausführen sind vergeben (Ausführen darf JEDER).

Das Script, welches ich über die Homematic UI ausführe, ist folgendes:

Code: Alles auswählen

    #!/bin/tclsh
    #
    # Ermitteln des duty cycle der CCU
    # =================================================
    # Michael Thelen aka Black in Juni 2016
    #
    # Aufruf mit
    # tclsh dutyccu.tcl KEQXXX DC_CCU oder
    # Wenn nur eine CCU da ist mit
    # tclsh dutyccu.tcl CCU2 <SYSVAR>
    # =================================================

    load tclrpc.so
    load tclrega.so

    #Beide Übergabeparameter aus CMD holen
    set item1 [lindex $argv 0]
    set item2 [lindex $argv 1]
    # item1 enthält den Suchbegriff
    # item2 enthält den Namen der Systemvariablen
    # Seriennummer ist item2 eingepackt in 2 "*"
    set sernr ""
    append sernr "*" $item1 "*"

    set r [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]
    set dutycycle -1
    set lines [split [string map [list "ADDRESS" "\x00"] $r] "\x00"]
        # und nun durch alle teile mal durch
       foreach line $lines {
          set treffer [string match $sernr $line]
          # Seriennummer wurde gefunden
          if {$treffer==1} {
              regexp "DUTY_CYCLE (.*?) " $line dummy dutycycle
             break
             #dann aber auch break der schleife
          }
    }
    # Es wurde ein Dutycycle gefunden ()
    if {$dutycycle != -1} {
       set rega_cmd ""
       append rega_cmd "dom.GetObject('$item2').State('$dutycycle');"
       rega_script $rega_cmd
            puts "Success - Duty Cycle: $dutycycle"
    }
   
Die Variable DC_CCU ist als Typ Zahl mit Wert 0-1000 angelegt. Sie wird aber beim Ausführen des Scriptes nicht aktualisiert.

Test ich das Ganze mit folgendem Script, erhalte ich als Rückgabe ebenfalls nichts, was wohl draus schließen lässt, dass die tcl-Datei nicht ausgeführt wird:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("tclsh /usr/local/dutyccu.tcl KEQ0XXXX DC_CCU");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
WriteLine("Rückgabe: " #dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State());
Über System.exec gehts ebenfalls nicht.

Hat jemand eine Idee, wo der Fehler liegen kann? Habe ich die Datei ins richtige Verzeichnis? War das Erstellen mit dem Nano-Editor ein Fehler?

Danke im Voraus für Eure Hilfe.

Grüße
Frank

deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Re: Duty_Cycle CCU2 als SysVar

Beitrag von deifel » 19.12.2016, 14:00

Fehler zwar nicht gefunden, aber eine Lösung...
Da ich nur meine CCU2 abfragen möchte, habe ich die Seriennummer einfach durch CCU2 ersetzt.
Jetzt bekomme ich die Werte...
Immer über 20 und oft schwappt die Sache auf 100 und meine CCU2 produziert entsprechende Kommunikations-Fehlermeldungen...
Jetzt ist die Frage für mich, wie ich den/die Übertäter rausfinden kann...!?

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“