Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Duty Cycle anzeigen!

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Duty Cycle anzeigen!

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      knopers1 last edited by

      Hallo Kollegen,

      ich würde gerne in VIS eine Anzeige mit Duty-Cycle einbauen.

      Ich habe eine schöne Beschreibung gefunden.

      https://homematic-forum.de/forum/viewto … 31&t=35097

      Hierbei kann man mit hilfe des Scriptes die Wete auslesen lassen.

          ! DutyCycle CCU mit HM Script und CUxD.exec (c) by Alchy v 0.1
          dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("echo 'load tclrpc.so; puts [xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces ]'|tclsh |grep -o 'DUTY_CYCLE.[0-9]*.'");
          dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
          if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("Status_DutyCycle")){dom.GetObject(ID_SYSTEM_VARIABLES).Get("Status_DutyCycle").State((dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex(" ",1)).ToFloat());}
          WriteLine((dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex(" ",1)).ToFloat());
      
      

      Vorher muß man aber ein Im CUxD unter "Geräte" ein neues "Gerät" vom Typ "(28) System" mit der Funktion "Exec" erzeugen. Dies habe ich auch getan. Beim Script-Test erhalte ich in der CCU ein Wert 15.000000 ???

      ich komme nicht ganz in der Beschreibung weiter….

      Zitat:

      Zum Speichern des Wertes in einer Systemvariablen, einfach jedes Vorkommen im Script von: Status_DutyCycle ersetzen mit dem Namen der Systemvariablen Typ Zahl, welche Ihr vorher angelegt habt.

      Ich würde gerne jetzt diese Zahl 15:000000 (sind es 15%) ??? in einer Systtem variable speichern. Wie soll die Variable heißen? Muß sie zwingend jetzt Status_DutyCycle heißen ??? (siehe Script)
      1526_unbenannt2.jpg

      1 Reply Last reply Reply Quote 0
      • L
        looxer01 last edited by

        Hi,

        …oder du machst das ueber das tcl script. Ich mache das schon laenger so - ohne Probleme.

        Falls du Interesse hast, die Kurzbeschreibung.

        Dieses Script auf der CCU unter addons mit Filename dutyccu.tcl ablegen

        ! ````
        #!/bin/tclsh
        #
        # Ermitteln des duty cycle der CCU
        # =================================================
        # Michael Thelen aka Black in Juni 2016
        #
        # Aufruf mit
        # tclsh dutyccu.tcl <sernr><sysvar>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"
        }</sysvar></sysvar></sernr>

        
        Dann die CCU- Variable anlegen - hier sind es die DC_LAN1 und DC_LAN2 und DCLAN3 (also CCU und zwei Lan Adapter)
        
        und dann ein einfaches CCU script anlegen periodisch alle 2 Minuten einplanen:
        
        >! ````
          string stdout;
            string stderr;
            system.Exec("tclsh /usr/local/addons/dutyccu.tcl KEQ102xxxx DC_LAN1", &stdout, &stderr);
        >! ````
        Das Beispiel zeigt nur die Variable DC_LAN1\. Ich habe dann noch zwei scripte fuer DC_LAN2 und DC_LAN3
        
        ueber system.Exec brauchst du dir eh keine Sorgen mehr zu machen. CUXD brauchst du dafuer nicht.
        
        Dann die Variablen in VIS einbauen. Objekt mit sql verbinden. dann gibts eine schöne grafik wie hier:
        
         ![305_dc.jpg](/assets/uploads/files/305_dc.jpg) 
        
        vG Looxer
        1 Reply Last reply Reply Quote 0
        • K
          knopers1 last edited by

          Ales klar, hab jetzt nur mit dem Script am laufen. Die Variable wird alle 10 min. aktualisiert. Eine Kennlinie kann ich mit Float-Adapter erstellen.

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Für alle, die nicht so firm im CCU2 Dateisystem sind:

            In der CCU2 ist der Zugriff per SSH ja nicht standardmäßig aktiviert. Daher in der Webui / Systemeinstellungen/ Sicherheit das Kästchen SSH anhaken und ein Passwort vergeben.

            Dann kann man per putty oder terminal auf die CCU2 zugreifen:

            ssh root@IP.DER.CCU.2
            
            ````Man wird nach dem soeben vergebenen Passwort gefragt und befindet sich dann im Dateisystem.
            
            Mit````
            cd /usr/local/addons/
            ````und anschliessend````
            ls
            ````kann man das Verzeichnis schon mal sehen (vermutlich leer)
            
            Jetzt am besten ein neues Putty oder Terminalfenster öffnen und mit````
            scp quellverzeichnis/dutyccu.tcl root@IP.DER.CCU.2:/usr/local/addons
            ````die tcl-Datei kopieren (tcl-Datei mit einem Editor mit dem oben gezeigten Code füllen). Passwort-Eingabe wie oben. Fertig.
            
            Im ersten Fenster kann man nun mit````
             ls
            ````die Datei sehen.
            
            Gruß
            
            Pix
            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              @pix:

              Für alle, die nicht so firm im CCU2 Dateisystem sind: `
              Ich glaube mich zu rrinnern, dass alchy genau dafür ein reines HM Skript gemacht hatte um den DC auszulesen.

              Damit brauchte man nicht ins Dateisystem einzugreifen.

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • K
                knopers1 last edited by

                und genau dazu habe ich ein Thread oben im ersten Post verlinkt. 😉

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  :evil: Überlesen und zu spät gesehen. Naja, vielleicht braucht trotzdem jemand die Anleitung (wenn er keinen CUXD hat).

                  Pix

                  1 Reply Last reply Reply Quote 0
                  • Dutchman
                    Dutchman Developer Most Active Administrators last edited by

                    @pix:

                    :evil: Überlesen und zu spät gesehen. Naja, vielleicht braucht trotzdem jemand die Anleitung (wenn er keinen CUXD hat).

                    Pix `

                    oder es ohne CUxD loesen moechte, thanks !

                    1 Reply Last reply Reply Quote 0
                    • lobomau
                      lobomau last edited by

                      @looxer01:

                      Hi,

                      …oder du machst das ueber das tcl script. Ich mache das schon laenger so - ohne Probleme.

                      Falls du Interesse hast, die Kurzbeschreibung.

                      Dieses Script auf der CCU unter addons mit Filename dutyccu.tcl ablegen

                      ! ````
                      #!/bin/tclsh
                      #
                      # Ermitteln des duty cycle der CCU
                      # =================================================
                      # Michael Thelen aka Black in Juni 2016
                      #
                      # Aufruf mit
                      # tclsh dutyccu.tcl <sernr><sysvar>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"
                      }</sysvar></sysvar></sernr>

                      
                      Dann die CCU- Variable anlegen - hier sind es die DC_LAN1 und DC_LAN2 und DCLAN3 (also CCU und zwei Lan Adapter)
                      
                      und dann ein einfaches CCU script anlegen periodisch alle 2 Minuten einplanen:
                      
                      >! ````
                        string stdout;
                          string stderr;
                          system.Exec("tclsh /usr/local/addons/dutyccu.tcl KEQ102xxxx DC_LAN1", &stdout, &stderr);
                      >! ````
                      Das Beispiel zeigt nur die Variable DC_LAN1\. Ich habe dann noch zwei scripte fuer DC_LAN2 und DC_LAN3
                      
                      ueber system.Exec brauchst du dir eh keine Sorgen mehr zu machen. CUXD brauchst du dafuer nicht.
                      
                      Dann die Variablen in VIS einbauen. Objekt mit sql verbinden. dann gibts eine schöne grafik wie hier:
                      
                      dC.JPG
                      
                      vG Looxer `  
                      

                      Den Duty Cycle möchte ich mir auch gerne auf diese Weise anzeigen lassen. Mir ist nicht klar welches Gerät du mit "KEQ102xxxx" meinst. Hat die CCU2 auch so eine Homematic-Seriennummer?

                      1 Reply Last reply Reply Quote 0
                      • TomT
                        TomT last edited by

                        @lobomau:

                        Den Duty Cycle möchte ich mir auch gerne auf diese Weise anzeigen lassen. Mir ist nicht klar welches Gerät du mit "KEQ102xxxx" meinst. Hat die CCU2 auch so eine Homematic-Seriennummer? `

                        Das ist die Seriennummer deiner CCU2.

                        Findest du, wenn du in der WebUI ganz rechts oben auf den Button HILFE klickst.

                        Bei Info erscheint es dann in der Liste SERIENNUMMER :

                        Das ist genau genommen nicht die CCU Seriennummer, sondern die des Funkmoduls in der CCU…

                        Grüße

                        Tom

                        1 Reply Last reply Reply Quote 0
                        • M
                          mrMuppet last edited by

                          Ich revive das hier gerade mal: Ich hab im CCU2 den Duty-cycle über CuxD und das Wrapper Gerät realisiert. Leider wird mir das Gerät als Datenpunkt im Broker nicht angezeigt. Habe REGA und RPC schon neu gestartet. Oder muss ich noch ein RPC-Adapter für den CuxD anlegen?

                          1 Reply Last reply Reply Quote 0
                          • R
                            RappiRN Most Active last edited by

                            Welche hm-rega Version hast du? Ich meine, dass mit dem letzten Update (1.6.6) genau diese Funktion eingarbeitet wurde. Dann erschien bei mir, bei den Ordnern, ein Ordner, wo Daten der CCU angezeigt werden, u.a. DutyCycle und Firmware.

                            Enrico

                            1 Reply Last reply Reply Quote 0
                            • M
                              mrMuppet last edited by

                              @RappiRN:

                              Welche hm-rega Version hast du? Ich meine, dass mit dem letzten Update (1.6.6) genau diese Funktion eingarbeitet wurde. Dann erschien bei mir, bei den Ordnern, ein Ordner, wo Daten der CCU angezeigt werden, u.a. DutyCycle und Firmware. `

                              Stimmt, steht auch so im changelog. Kann aber bei mir nicht finden. Wo siehtst du diesn Ordner? Bei den Datenpunkten von REGA oder RPC? Hab jetzt gerade, auf die Schnelle, bei beiden nichts gefunden.

                              Edit: Hallo Suchfunktion! Habs http://forum.iobroker.net/viewtopic.php?t=7927.

                              1 Reply Last reply Reply Quote 0
                              • moelski
                                moelski last edited by

                                wollte mich nur mal kurz für das hier bedanken.

                                Kann jetzt auch meine DutyCycles protokollieren 8-)

                                Grüße

                                1 Reply Last reply Reply Quote 0
                                • ruhr70
                                  ruhr70 last edited by

                                  Ich muss mal ganz blöd nachfragen…

                                  Welche Erkenntnisse ziehe ich denn aus dem Ergebnis?

                                  Z.B. aus dem Diagramm hier oben im Post.

                                  Sprich, was mache ich dann damit?

                                  1 Reply Last reply Reply Quote 0
                                  • Dutchman
                                    Dutchman Developer Most Active Administrators last edited by

                                    @ruhr70:

                                    Ich muss mal ganz blöd nachfragen…

                                    Welche Erkenntnisse ziehe ich denn aus dem Ergebnis?

                                    Z.B. aus dem Diagramm hier oben im Post.

                                    Sprich, was mache ich dann damit? `

                                    Es hilft dir zu ermitteln zu welchen Zeitpunkten dein duty cycle Hohe Werte aufweisen zB zur Fehlersuche 🙂

                                    –-----------------------

                                    Send from mobile device

                                    Das schöne ios hat Auto Korrektur zum k****

                                    Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                                    1 Reply Last reply Reply Quote 0
                                    • moelski
                                      moelski last edited by

                                      Moin !

                                      Ich würde die Frage mal erweitern wollen … Welche Infos kann man sonst noch aus der CCU abgreifen die einem bei der Fehlersuche ggf. helfen?

                                      Denn wenn ich mir diese Zeile ansehe "xmlrpc http://127.0.0.1:2001/ listBidcosInterfaces" und die folgenden ...

                                      Dann muss da ne Menge mehr Infos raus kommen :?:

                                      Grüße

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      815
                                      Online

                                      31.6k
                                      Users

                                      79.4k
                                      Topics

                                      1.3m
                                      Posts

                                      11
                                      17
                                      4649
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo