Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter mytime

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter mytime

    This topic has been deleted. Only users with topic management privileges can see it.
    • OliverIO
      OliverIO @looxer01 last edited by OliverIO

      @looxer01

      im edit mode wird nicht live aktualisiert nur im runtime mode
      die datenpunkte ändern sich ebenfalls nicht während des ablaufs, da beim start
      die datenpunkte start und end berechnet und gesetzt werden. das wäre auch sehr ressourcenaufwändig, da ja jede sekunde dann uU diverse Datenpunkte aktualisiert werden müssen. Der Adapter prüft während des Ablaufs nur, ob ein Countdown Timer beendet ist und setzt dann endsprechend auf end
      die widgets nehmen diese informationen und berechnen dann die live ansicht
      Ich sehe gerade du hast "Start" eingegeben. Der korrekte Befehl ist "start"
      Da muss ich wohl mal noch die Befehle auf Kleinbuchstaben anpassen.

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

        @oliverio
        ich habe zur automatisierung ein Script im Einsatz.
        Dieses setzt die entsprechenden Komandos.
        Ich nahm an, dass ich nur die Namen der neuen Objektstuktur ändern muss.
        Scheint aber nicht so zu sein.

        //------------------------------------------------------------------------------ 
        // Einstellungsbereich 
        //------------------------------------------------------------------------------ 
        // Timer  Licht
        var HundLicht1 =  'hm-rpc.1.0008A0C992FE50.2.STATE'/*Licht Nordseite aussen STATE*/
        var HundLicht2 = 'hm-rpc.1.0025A0C9A3AD70.10.STATE'/*Licht aussen Wald STATE*/
        var HundLicht3 = 'hm-rpc.1.0025A0C9A3AD70.6.STATE'/*Licht aussen Gartenhuette Lichterkette STATE*/
        
        var IDBenjiLichtTimer =  'mytime.0.Countdowns.Benjilicht.timer' // ID Timer von mytime in millisekunden    
        var IDBenjiLichtEndTime = 'mytime.0.Countdowns.BenjiLicht.end'/*endTime in Millisec*/
        var IDBenjiLichtAction = 'mytime.0.Countdowns.BenjiLicht.action'/*action*/
        var IDBenjiLichtCmd = 'mytime.0.Countdowns.BenjiLicht.cmd'/*cmd*/
        var IDBenjiLichtSollZeit = 'javascript.0.Licht.BenjiLichtEinschaltzeitMan'/*Manuelles Ausschalten in xx Minuten*/
        
        var TestModus = false; // bei false wird das Liht nicht eingeschaltet aber ein log eintrag geschrieben
        //------------------------------------------------------------------------------ 
        // Einstellungsbereich 
        //------------------------------------------------------------------------------ 
        
        var AutoStop      = false; // zur Unterscheidung ob der Stop manuell aus VIS kommt oder hier im Programm gesetzt wurde
        CreateStates();
        
        //------------------------------------------------------------------------------ 
        // Beginn Subsricptions 
        //------------------------------------------------------------------------------ 
        
        // Wenn manuelle Laufzeit verändert wurde, dann update in adapter DP myTime
        on({id: IDBenjiLichtSollZeit, change: 'any'}, function(obj) {                                                         // Event: Licht ein gedrückt
           log("TimerSollZeit Benji aendern auf " + (getState(IDBenjiLichtSollZeit).val * 60*1000) + " Minuten");
           setState(IDBenjiLichtTimer, getState(IDBenjiLichtSollZeit).val * 60*1000);                      // minuten in Millisek umrechnen
        }) // endon
        
        
        // Wenn Timer stoppt dann soll der Status auf STOP gesetzt werden und der Licht wird gestoppt
        on({id: IDBenjiLichtAction, val: "end" }, function(obj) {                                                         // Event: Licht ein gedrückt
           if (!obj.state.ack) {return};
           log("Countdown nach Ablauf auf Stop gesetzt " + obj.id + " " + obj.state.val)
           setState(IDBenjiLichtCmd, "stop");
           AutoStop = true;
           if (!TestModus) {
               setState(HundLicht1,false);
               setState(HundLicht2,false);
               setState(HundLicht3,false);
           }else {
               log( "BenjiLicht Simulation aus")
           }
        }) // endon
        
        
        // Wenn Timer manuell gestoppt wurde dann wird der Licht wird gestoppt
        on({id: IDBenjiLichtAction, val: "stop" }, function(obj) {                                                         // Event: Licht ein gedrückt
           if (!obj.state.ack) {return};
           if (!AutoStop) {
               log("Timer BenjiLicht gestoppt manuell gesetzt " + obj.id + " " + obj.state.val)
               setState(IDBenjiLichtCmd, "stop");
               AutoStop = true;
               if (!TestModus) {
               setState(HundLicht1,false);
               setState(HundLicht2,false);
               setState(HundLicht3,false);
               }else {
                   log( "BenjiLichtsimulation aus")
               }
           }
        }) // endon
        
        
        // Wenn der Timer auf RUN wechsel dann soll das Licht eingeschaltet werden
        on({id: IDBenjiLichtAction, val: "run" }, function(obj) {                                                         // Event: Licht start gedrückt
        if (!obj.state.ack) {return};
           log("Benjilicht wird eingeschaltet " + obj.id + " " + obj.state.val)
           if (!TestModus) {
               setState(HundLicht1,true);
               setState(HundLicht2,true);
               setState(HundLicht3,true);
           }else {
               log( "BenjiLichtsimulation ein")
           }
           AutoStop = false;
        }) // endon
        
        
        
        
        //------------------------------------------------------------------------------ 
        // Beginn Create States 
        //------------------------------------------------------------------------------ 
        function  CreateStates () {
        createState(IDBenjiLichtSollZeit, 20 ,  {read: true, write: true, type: 'number', name: 'BenjiLicht Bei manuellem einschalten anzahl der Minuten Laufzeit'  , desc: 'Manuelle BenjiLichtzeit in Minuten'});
        
        } // endfunction
        

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @looxer01 last edited by

          @looxer01

          eigentlich ja.
          Der Hauptknoten ist jetzt Countdowns als devices
          und ein Timer nun als channel.
          Aber vom schreiben her dürfte es kein unterschied machen.
          Die Datenpunktnamen auf der untersten ebene haben sich nicht geändert.

          Oben im Screenshot hast du halt bei cmd Start reingeschrieben, also mit großem S
          und das hat er so nicht erkannt. wird aber in der nächsten Version verbessert worden sein.
          wenn du aber start mit kleinem s reinschreibst dann funktioniert das.

          Ansonsten bitte log
          wie gesagt du wirst in den datenpunkten nur beim start eines timers und beim beenden Veränderungen sehen. aber kein herunterzählen. warum hatte ich ja schon geschrieben.

          arteck L 2 Replies Last reply Reply Quote 0
          • arteck
            arteck Developer Most Active @OliverIO last edited by arteck

            @oliverio da ist aber noch ein wurm drin...
            der müsste hier auf 20 sek stehen

            d216e79b-1244-4d88-a05b-606090792cdd-grafik.png

            171ccb4e-51cc-41bc-b118-0670f2488887-grafik.png

            wenn ich den starte ..dann beginnt der bei 1525101b-d723-4574-b7c0-1282a3f51531-grafik.png

            bei 11 geht der dann auf 0

            das ist die einstellung
            96467f77-b25c-4f94-b64f-fdaa65832e25-grafik.png

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @arteck last edited by

              @arteck

              Überprüfe bitte die zeiteinstellungen von Server und Client.
              Die start und Ende Zeit wird vom Server gesetzt und auf dem Client dann berechnet.
              Wenn es da zu Differenzen kommt entstehen diese Effekte.
              Am besten einen ntp Dienst auf beiden konfigurieren.

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

                @oliverio
                Hi,
                vielen Dank fuer die Unterstützung.
                Ich hatte mehrere Probleme. Meine Widgets haben ein "Start" statt "start" gesendet.
                Wie du schriebst, war das in der alten Version möglich.

                Im Javascript hatte ich zudem das Problem, dass ich auf ein acknowledge gewartet habe, das jetzt aber nicht mehr gesendet wird.

                Beide Punkte habe ich angepasst und es funktioniert jetzt wieder.

                Allerdings habe ich noch ein Problem mit dem Widget. Es zeigt keinen Zeitverbrauch an.
                Gab es denn ein neues Widget dazu, dass das dieses hier ersetzt ?
                myTime_003.JPG
                Dabei beziehe ich mich auf das Widget: MyTime CountDown Circle

                EDIT: ist gefixt und funktioniert. Es stimmte etwas nicht mit der Zuordnung zum Datenpunkt "timer". Nach Auswahl des Datenpunktes im Widget funktioniert wieder alles wie vorher. Bin nicht sicher was es war aber sieht ja so aus, dass der Datenpunkt falsch war (mehrfach kontrolliert - strange)

                vG Looxer

                OliverIO 2 Replies Last reply Reply Quote 0
                • OliverIO
                  OliverIO @looxer01 last edited by

                  @looxer01

                  ok, sehr gut.
                  Danke fürs testen

                  1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @looxer01 last edited by

                    @looxer01 sagte in Test Adapter mytime:

                    "Start" statt "start"

                    In Version 1.2.1 kann man den Befehl eingeben wie man möchte,
                    er wird dann intern in Kleinbuchstaben umgewandelt.
                    Es kann sein, das das früher so schon drin war, aber der Adapter wurde sehr stark bearbeitet, so das es gut sein kann, das Kleinigkeiten "verschwunden worden sind"

                    1 Reply Last reply Reply Quote 1
                    • OliverIO
                      OliverIO last edited by

                      Neue Version v1.2.2

                      • leider ist ein Test Fragment noch übrig geblieben, welches hiermit wieder entfernt wird
                        https://forum.iobroker.net/topic/78123/vis-ladebildschirm-steht-oben-links-test?_=1731961686604
                      • Ansonsten gab es nur minimale Verbesserungen unter der Haube, welche kein eigene Release benötigen
                      OliverIO 1 Reply Last reply Reply Quote 1
                      • OliverIO
                        OliverIO @OliverIO last edited by

                        @oliverio sagte in Test Adapter mytime:

                        Neue Version v1.2.2

                        • leider ist ein Test Fragment noch übrig geblieben, welches hiermit wieder entfernt wird
                          https://forum.iobroker.net/topic/78123/vis-ladebildschirm-steht-oben-links-test?_=1731961686604
                        • Ansonsten gab es nur minimale Verbesserungen unter der Haube, welche kein eigene Release benötigen

                        die Version wird nun im stable angekommen

                        1 Reply Last reply Reply Quote 0
                        • S
                          stefan.cloer last edited by

                          @OliverIO wenn ich in der Instanz auf "Zeitreihen" wechsle bekomme ich folgende Anzeige:

                          10cb6620-5398-4fc0-aaa7-1c7f869fc2fb-image.png

                          Mache ich da was falsch oder klappen die Zeitreihen in der Adapter Überarbeitung noch nicht richtig?

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @stefan.cloer last edited by

                            @stefan-cloer

                            Hm ok muss ich testen.
                            Kannst du mir no h die Version des iobrokers und Admin Adapters nennen?

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              stefan.cloer @OliverIO last edited by

                              @oliverio Admin-Adapter 7.1.5 und js-controller 7.0.6

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @stefan.cloer last edited by OliverIO

                                @stefan-cloer

                                Danke, muss mal noch was prüfen.
                                Mach bitte zur Sicherheit mal noch iob upload all

                                Nachtrag:
                                ich habe es versucht auf einem testserver mit den gleichen versionen nachzuvollziehen. ich habe den adapter auch komplett deinstalliert und erneut installiert. klappt alles.
                                Evtl den Adapter ebenfalls komplett deinstallieren/installieren
                                oder iob restart

                                Nochmal Nachtrag:
                                Du hattest auch aus einem repo installiert?
                                Direkt von github geht nicht, da dort bestimmte compile Dateien nicht vorhanden sind. Die sind nur im Paket vorhanden.

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  stefan.cloer @OliverIO last edited by

                                  @OliverIO,

                                  Nochmal Nachtrag:
                                  Du hattest auch aus einem repo installiert?
                                  Direkt von github geht nicht, da dort bestimmte compile Dateien nicht vorhanden sind. Die sind nur im Paket vorhanden.

                                  hier lag der Fehler, hatte direkt von github installiert. Danke 💪

                                  mcm1957 1 Reply Last reply Reply Quote 0
                                  • arteck
                                    arteck Developer Most Active @OliverIO last edited by arteck

                                    @oliverio sagte in Test Adapter mytime:

                                    @arteck
                                    Wenn es da zu Differenzen kommt entstehen diese Effekte.
                                    Am besten einen ntp Dienst auf beiden konfigurieren.

                                    was.. wie ich denke der timer wird NUR am Server berechnet..

                                    also

                                    bei start timestamp merken und subtrahieren von gerade laufenden ... und ab ins widget damit
                                    was hat der client mit zu tun ??? (ist bei mir ein FireHD10)

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @arteck last edited by

                                      @arteck sagte in Test Adapter mytime:

                                      gerade laufenden

                                      genau es wird der aktuelle timestamp vom Ende timestamp abgezogen.
                                      Der Ende Timestamp wird auf dem server berechnet.
                                      der aktuelle timestamp wird für das widget auf dem client berechnet.
                                      auf dem server wird er ebenefalls berechnet um dann den timerstatus entsprechend schalten zu können.

                                      Alles andere würde eine kontinuierliche kommunikation zwischen client und server benötigen um die aktuelle zeit/timestamp an den client zu übertragen, was aus meiner sicht unnötig und ressourcenverschwendend sein würde. ausserdem ist nicht garantiert, das die datenänderungen pünktlich auf dem client eintreffen. das würde zu sprüngen in der sekundenanzeige führen.

                                      ubuntu und debian habe zeitsync bereits eingebaut und eigentlich aktiviert.

                                      arteck 1 Reply Last reply Reply Quote 0
                                      • arteck
                                        arteck Developer Most Active @OliverIO last edited by arteck

                                        @oliverio dann wird es aber nie passen in sek bereich... auf dem client (Tablet)

                                        das linux timesync hat ist mir klar.. ich verstehe trotzdem dein Konstrukt nicht

                                        du hast eine WS verbindung zur Visu.. wo ist das Problem ??? du bekommst nie 100% timesync zwischen Client (Tablet) und Server im sekunden Bereich..
                                        ergo
                                        die Berechnung nur auf dem Server und rüber damit zur VIS .. wie jedes andere Widget auch.. sekunden tick...

                                        wo ist dann das unnötige ???

                                        OliverIO 1 Reply Last reply Reply Quote 0
                                        • mcm1957
                                          mcm1957 @stefan.cloer last edited by mcm1957

                                          @stefan-cloer said in Test Adapter mytime:

                                          hier lag der Fehler, hatte direkt von github installiert. Danke 💪

                                          Das sollte optimaler Weise der Adapter nicht erlauben wenn es wegen irgendwelchen Implementierungsdetails nicht funktioniert. IoBroker erlaubt solche Adapter zu kennzeichnen damit es auf den Usersystemen keine / weniger 🙂 Probleme gibt.

                                          Hab mal ein Issue dazu erstellt.
                                          https://github.com/oweitman/ioBroker.mytime/issues/866

                                          Ist sicher nicht prior - kostet aber auch keum Aufwand.

                                          mcm1957 created this issue in oweitman/ioBroker.mytime

                                          closed Please add nogit flag as this adapter cannot be installed directly from github #866

                                          1 Reply Last reply Reply Quote 0
                                          • OliverIO
                                            OliverIO @arteck last edited by OliverIO

                                            @arteck sagte in Test Adapter mytime:

                                            dann wird es aber nie passen in sek bereich... auf dem client (Tablet)

                                            das verstehe ich nicht so ganz warum es nie passen wird?
                                            hier bei mir laufen diverse geräte und der server, auf dem iobroker läuft, alle mit synchronisierter zeit.
                                            die skripte schalten dann auch, wenn die sekunden im widget auf 0 gehen. (wie gesagt, schalten auf dem server, anzeige auf dem client)
                                            es mag sein, das es da ein paar millisekunden drift gibt, aber definitiv nicht im sekunden bereich. wenn dann ist das gerät nicht zeitsynchronisiert.
                                            idR ermittelt der ntp dienst automatisch die abweichungsrate des ocillators auf dem gerät und stellt dann selbst den polling interval ein. ntp berücksichtigt sogar die latenz vom ntp server, so das selbst das korrigiert wird.

                                            in den fällen wo hier im forum seit 2020 differenzen gemeldet worden sind, war es immer ein nicht/falsch konfigurierter oder deaktivierter ntp dienst.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            800
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter mytime test widget
                                            47
                                            497
                                            88181
                                            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