Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorstellung] Meine zweite Visualisierung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorstellung] Meine zweite Visualisierung

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

      Hallo @Kuddel,
      erstmal vielen Dank für deine tolle Visualisierung und dass du dein Projekt hier zur Verfügung stellst. Ich habe schon einiges von deinem Projekt umsetzten können. Dennoch hänge ich bei einigen Punkten, die ich jetzt nach und nach abarbeiten möchte.

      Ein Punkt ist das Skript das die Zeiten in der javascript.0/zeiten/ ermittelt. Bei mir kommt leider nicht alles an.
      Ich habe auch schon die ganzen Skripte aus dem Verlauf hier versucht einzulesen, leider ohne Erfolg.

      javascript.0_zeiten.PNG

      ZeitenV01.PNG

      Könntest du mir vielleicht nochmal die ganzen Scripte per .txt die zur Zeiten-Ermittlung zusenden, dann würde ich die nochmal gegen den Import der Zip-Datei aus dem ersten Post austauschen? Ich vermute das hier bei mir beim Import nicht alles problemlos funktioniert hat.

      Außerdem bin ich noch an dem Script zur Erstellung der Variablen der CCU für die VIS interessiert. Könntest du mir das auch zur Verfügung stellen?

      Ich werde dich vermutlich noch ein paar mal fragen müssen, da meine Programmierkenntnisse nicht sehr gut sind. Vielen Dank im Voraus!

      K 1 Reply Last reply Reply Quote 0
      • K
        Kuddel @David16 last edited by

        @David16

        Hier der Blockly Export von zeiten_v01 zeiten_v01.txt

        Mich wundert ein wenig, dass es bei dir als JS- und nicht als Blockly Skript angezeigt wird. Der Import hat wohl irgendwie nicht funktioniert.

        Welche Variablen von der CCU meinst du?

        D 1 Reply Last reply Reply Quote 0
        • D
          David16 @Kuddel last edited by

          @Kuddel - Jetzt ist es als Blockly integriert. Vielen Dank!
          ZeitenV01.PNG
          Ich warte bis Morgen ab, dann sehe ich ob jetzt alle Variablen befüllt im iobroker befüllt wurden.

          Wegen der CCU: Du hattest hier im dem Thread irgendwo geschrieben, dass du die Daten der Homematic-CCU, z.B. die Firmware, ausliest (ich glaube als Programm oder Skript in der CCU direkt) und diese dann in iobroker überträgst. Im Speziellem geht es mir da um das Befüllen des Views 430_CCU bzw. 431_CCU2 Infos:
          430_CCU - Homematic Info.PNG

          Kannst du mir zeigen, wie du das realisiert hast? Ich verfüge zwar über eine CCU3 aber vom Prinzip dürfte das gleich sein.

          K 1 Reply Last reply Reply Quote 0
          • K
            Kuddel @David16 last edited by Kuddel

            @David16

            c3d02b23-6fbe-424e-b0cf-dcafdc07c2fb-grafik.png

            Firmware: HM-Rega
            Duty-Cycle: HM-Rega
            Servicemeldungen: Javascript

            /*  System Homematic Servicemeldungen
            Skript erstellt Variablen Service.Homematic.*
            http://forum.iobroker.org/viewtopic.php?f=21&t=914#p9153
            
            erstellt: 03.08.2015 von paul53 - angepasst von pix
            
            */
            
            
            // Service Meldungen
            
            createState('HM-Servicemeldungen.Anzahl', 0, {"name": "Anzahl"});     // Anzahl der Service-Alarme
            createState('HM-Servicemeldungen.Text', "", {"name": "Text"});      // Service-Alarme, als Variable unter Javascript.0 anlegen
            
            var SelectorUNREACH = $('channel[state.id=*.UNREACH]');
            var SelectorSTICKY_UNREACH = $('channel[state.id=*.STICKY_UNREACH]');
            var SelectorLOWBAT = $('channel[state.id=*.LOWBAT]');
            var SelectorCONFIG_PENDING = $('channel[state.id=*.CONFIG_PENDING]');
            
            function countService(obj) {
               var anzahl    = 0;
               var text      = "";
            
               function count(id) {
                  var status = getState(id).val;                // Zustand abfragen (jedes Element)
                  if (status === true) {                        // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                     text = text + getObject(id).common.name+ "<br>"+ "<br>";                   // Zu String hinzufügen
                      ++anzahl;                                  // Zählt die Anzahl der Service-Alarme
                  }
               }
             
               SelectorUNREACH.each(function (id, i) {
                  count(id);
                  });
                  
               SelectorLOWBAT.each(function (id, i) {
                  count(id);
                  });
                  
               SelectorCONFIG_PENDING.each(function (id, i) {
                  count(id);
                  });
                  
            
               // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon Service zutreffend) ausgegeben
               //log("Homematic-Servicemeldungen: " + text);
               //log("Anzahl Homematic-Servicemeldungen: " + anzahl);
            
               // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert 
               if (!anzahl) { 
                   text = "keine Service-Meldungen vorhanden";
               }
               setState("HM-Servicemeldungen.Text", text);          // Schreibt die IDs der Datenpunkte mit Service Meldung
               setState("HM-Servicemeldungen.Anzahl", anzahl);      // Schreibt die aktuelle Anzahl der Service Meldungen
            }   
            
            SelectorUNREACH.on(function(obj) {          // bei Zustandänderung *.UNREACH in allen Gewerken
               countService(obj);
            });
            
            //SelectorSTICKY_UNREACH.on(function(obj) {   // bei Zustandänderung *.STICKY_UNREACH in allen Gewerken
               //countService(obj);
            //});
            
            SelectorLOWBAT.on(function(obj) {          // bei Zustandänderung *.LOWBAT in allen Gewerken
               countService(obj);
            });
            
            SelectorCONFIG_PENDING.on(function(obj) {   // bei Zustandänderung *.CONFIG_PENDING in allen Gewerken
               countService(obj);
            });
            
            // alternative Abfrage jede Minute
            schedule("*/1 * * * *", function () {
                countService();
            });
            
            // Ausführung bei Scriptstart
            countService();
            

            Laufzeit: Script auf CCU

            ! HomeMatic-Script
            ! UPTIME DER CCU
            ! http://www.christian-luetgens.de/homematic/cuxd/uptime/Uptime.htm
            
            string s_cuxd = "CUxD.CUX2801001:1.";
            !string s_cmd = "cat /proc/uptime | awk '// { printf \"%dT %02d:%02d\", $1/86400, $1/3600%24, $1/60%60 }'";
            string s_cmd = "cat /proc/uptime | awk '// { printf \"%d Tage, %02d Std, %02d Min\", $1/86400, $1/3600%24, $1/60%60 }'";
            dom.GetObject (s_cuxd # "CMD_SETS").State (s_cmd);
            dom.GetObject (s_cuxd # "CMD_QUERY_RET").State (1);
            dom.GetObject ("Uptime").State (dom.GetObject (s_cuxd # "CMD_RETS").State());
            
            !  Ende des Scripts
            
            

            D 1 Reply Last reply Reply Quote 0
            • D
              David16 @Kuddel last edited by David16

              @Kuddel hatte die Einstellung des Duty-Cycle nicht im HM-Rega Adapter gefunden, vielen Dank für deine Hilfestellung. Das läuft jetzt schonmal.

              Leider funktioniert kommen noch nicht die Daten des Blocky "zeiten_v01" richtig an:

              javascript.0_zeiten.PNG

              Vom Chatverlauf haben damit andere auch Probleme bzw. du hast glaube ich geschrieben dass die Nachtberechnung etc. aktuell nicht richtig funktioniert?! -Ist davon auch die Rollladenberechnung betroffen?

              Edit:
              Die Nachtzeiten funktionieren doch. Ich glaube ich habe die Wechselwirkung des Scripts verstanden...

              javascript.0_zeiten.PNG

              Wie verhalten sich denn die Rolladenzeiten? -Da stehe ich noch auf dem Schlauch?? In der "zeiten_v01" sind da auch etwas programmiert.

              K 1 Reply Last reply Reply Quote 0
              • K
                Kuddel @David16 last edited by Kuddel

                @David16 die Rolladen sind wie folgt programmiert:

                In der VIS stelle ich die Verzögerung zum öffnen / schließen im Bezug auf Sonnenauf- und Untergang ein.

                Beispiel heute:

                Sonnenaufgang: 06:31 Uhr
                Verzögerung: -30 Min
                Rollos öffnen: 06:01 Uhr

                Die Berechnung der Öffnungszeit der Rollos ist auch im Skript "zeiten" enthalten.

                Wen ich das richtig sehe, muss du nur im DP "rolladen_oeffnen_verzoegerung" bzw. "rolladen_schliessen_verzoegerung" eine Verzögerung eintragen und alle anderen Datenpunkte werden befüllt

                D 1 Reply Last reply Reply Quote 0
                • D
                  David16 @Kuddel last edited by

                  @Kuddel Ich habe eben es gestestet. Es funktioniert bei mir, vielen Dank. Ich hatte die Logik anders verstanden.

                  javascript.0_zeiten.PNG

                  Ich werde dann noch die Rollladen-Aktoren in das Script ersetzen und dann kann ich bei dem Punkt auch schon einen Haken machen.
                  Du hast mit deiner VIS echt ein tolles Projekt aufgestellt!

                  D 1 Reply Last reply Reply Quote 0
                  • A
                    ahfreezer last edited by

                    Hi Kuddel,

                    ich brauche noch mal deine Erfahrung. Ich habe mir dein Logskript genommen und wollte analog deinem Vorgehen in VIS mir ein schönes Logging bauen.

                    Mein Problem: sobald ich das Skript starte, geht mein ganzes System in die Knie. Siehe Screenhot im Spoiler


                    cdc7c499-3792-450f-b91e-9fa7b0f985e6-image.png

                    Hast du ein ähnliches verhalten?

                    Außer ein paar "clean" Filter habe ich an dem Skript eigentlich nichts verändert. Ich hatte zuerst das Javascript Update im Verdacht, weil der Effekt zeitgleich aufgetreten ist. Aber nun kann ich eindeutig das Skript als Verursache nennen...

                      {
                        id:          'javascript',
                        filter_all:  ['+++'],
                        filter_any:  [''],
                        blacklist:   ['Error'],
                        //clean:       [''],
                        clean:       ['script.js.common.Kameras.Türklingel_gedrückt:','script.js.smarthome.','rolladen.','javascript.0','info','+++ ',' +++','NAS_und_VMware.shutdown_WinNAS_v01:','adapter_starten_stoppen:','rolladen_tag_nacht:','script.js.java.wol.wol_winnas:','backup_erstellen:','briefkasten_v0_1: ','stufenbeleuchtung_v01: ','weihnachten: ','echo_stati: ','NAS_und_VMware.shutdown_synology_v0_1:','shutdown_synology_v0_1: ','weckradio: ','kueche_v0_2: ','schlafzimmer_v0_3: ','schlafzimmer_tv_v0_1: ','licht.weckzeit_v0_2: ','NAS_und_VMware.start_stop_esxp: ','wol_synology: ','steckdosen.ps4_lueftung_v0_2:','wol_daniel: ','NAS_und_VMware.wake_on_lan_v0_2: ','alexa_benachrichtigungen: ','anwesenheit: ','system_ctr_vis: ','reboot__skript: ','weckzeit_v0_2:','wol_winnas: ','wol_qnap_archiv: ','lichterkette_flur_v0_3: ','reboot_skript: '],
                        columns:     ['date','msg'],
                      },  
                      
                    

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kuddel @ahfreezer last edited by

                      @ahfreezer am besten das Skript einmal zurück setzen. also meine Filter löschen und dann Schritt für Schritt Filter für deine Bedürfnisse hinzufügen

                      1 Reply Last reply Reply Quote 0
                      • A
                        ahfreezer last edited by

                        Alles klar...du antwortest hast fast schneller als ich meine Frage stellen kann 😂
                        Danke dir. Ich setz mich heute Abend mal in Ruhe dran wenn Frau und Kinder im Bett sind und geh Stück für Stück
                        das Skript durch.

                        Ansonsten kann ich -wie die anderen- die nur noch einmal ausdrücklich für deine Vorstellung danken.
                        Dein "VIS" ist meine aktuelle Blaupause. Es gibt mir so viele Tipps und spart viel zusätzliche Recherche und ggf. unnötige Anfragen im Forum.

                        Wirklich super von dir!

                        VG
                        André

                        1 Reply Last reply Reply Quote 0
                        • R
                          ralalla last edited by ralalla

                          Könntest du noch einmal den Blockly export des Tageszeiten Fortschritt als txt Datei posten ?
                          In allen Links hier steht nämlich bei Tageszeit_Differenz und Tageszeit_Fortschritt das gleiche drinnen und das ist wohl immer das Blockly für die Differenz.

                          Hat sich erledigt, habe das "zeiten-Script" importiert, da ist ja alles drinnen.

                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Kuddel @ralalla last edited by

                            @ralalla fortschritt.txt

                            R 1 Reply Last reply Reply Quote 0
                            • R
                              ralalla @Kuddel last edited by

                              @Kuddel jep Danke, im Zeiten Script stands ja auch drinnen.

                              1 Reply Last reply Reply Quote 0
                              • D
                                David16 @David16 last edited by

                                @Kuddel Wie hast du denn den View mit dem Arbeitsstatus realisiert. Ich habe gesehen dass du hier einen Wert in den Object-Ordner javascript.0 hast:

                                javascript.0_arbeitsstatus.PNG

                                Mit was befüllst du den Wert denn? - Ich habe hierzu leider keine Anhaltspunkte finden können...

                                Außerdem möchte ich gerne, dass die Rollläden am Wochenende (Samstag und Sonntag) anstatt der ermittelten Rollo-Öffnungsszeiten im Zeiten-Script um 4 Stunden nach hinten verschieben bzw. um 10 Uhr hochfahren.

                                Über CRON habe ich hier die Tage eingefügt:

                                rollladen.Zeiten.cron.PNG

                                Ich denke aber das ist der falsche Ansatz. Hast du dazu vielleicht etwas in der zeiten_v01 eingebaut (Uhrzeit in VIS)?

                                Uhrzeit_in_VIS.PNG

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Kuddel @David16 last edited by

                                  @David16

                                  Arbeisstattus:

                                  Der Datenpunkt wird per VIS mit einer Zahl befüllt
                                  0 = Arbeit
                                  1 = Frei
                                  2 = Urlaub
                                  3 = Krank

                                  Je nach dem, was per VIS eingestellt ist, reagieren meine Skript.

                                  Beispiel: Das Wecklicht im Schlafzimmer geht nur bei 0 (Arbeit) an.
                                  Die Rollos fahren bei 2 (Urlaub) morgens nur zur Hälfte hoch

                                  Rolladen:

                                  Wenn mein Skript nur Werktags laufen soll, muss noch ein Check nach dem aktuellen Wochentag einbauen.
                                  Wenn Wochentag ungleich Samstag und ungleich Sonntag, dann .....

                                  Im selben Trigger kannst du die gleichen Bausteine verwenden mit dem Check
                                  wenn wochentag gleich Samstag oder Sonntag dann Timeout 240 Minunten und dann die ausführung (das wäre dann 4 stunden nach sonnenaufgang + bzw. - verzögerung.

                                  Du kannst fürs WE aber natürlich auch einen festen Trigger verwenden, der die Rollos immer um 10 Uhr hochfährt, unabhänging von der Zeit des Sonnenuntergangs...

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    David16 @Kuddel last edited by

                                    @Kuddel

                                    ok vielen Dank. - Wäre es dann so richtig?

                                    9deded4a-8fa6-407d-b2f0-f442645da3e2-image.png

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      Kuddel @David16 last edited by

                                      @David16 trigger in trigger geht nicht.

                                      diese blöcke musst du einbauen

                                      eea79ddd-84c9-43ee-9b5e-5e5c17d4c77f-grafik.png

                                      D 1 Reply Last reply Reply Quote 0
                                      • D
                                        David16 @Kuddel last edited by

                                        @Kuddel So wäre es dann richtig, wenn ich deinen Baustein nehme?

                                        35bc8bc2-2016-461e-86ee-e6debb09d01a-image.png

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          Kuddel @David16 last edited by

                                          @David16 ja müsste klappen

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            David16 @Kuddel last edited by

                                            @Kuddel Ok danke.

                                            Könnte man es auch so bauen, dass ich auch in der VIS sehe, dass am Samstag und am Sonntag um 10.00 Uhr die Rolladen geöffnet werden?

                                            Montag-Freitag entsprechend der derzeitigen Einstellungen und Samstag / Sonntag auf 10:00 Rolladen öffnen als feste Zeit?

                                            Parallel bin an dem Wetter, kannst du mir mal ein Screenshot zeigen welche API du aktiv hast?

                                            c4df0a91-1222-4372-bf06-74aeb2c32e2d-image.png

                                            Wenn ich alle 4 Pfade aktiv habe geht alles, ich möchte aber ungern unnötigen Datenmüll aufbereiten müssen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            407
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            148
                                            1324
                                            475215
                                            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