Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] LOGO! & Wochenschaltuhr

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] LOGO! & Wochenschaltuhr

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

      Super!!! Danke!!!

      habe es bei mir korrigiert.

      Noch eine blöde Frage

      Unter Skripte kann man einen neuen Ordner und eine neue Gruppe erstellen. Wo ist der Unterschied?

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

        @Vumer:

        Unter Skripte kann man einen neuen Ordner und eine neue Gruppe erstellen. Wo ist der Unterschied? `
        Ich kenne nur die Möglichkeiten eine neue Gruppe oder ein neues Skript (innerhalb einer Gruppe) zu erstellen. Wo findest Du "neuen Ordner erstellen" ?

        S 1 Reply Last reply Reply Quote 0
        • Vumer
          Vumer last edited by

          Sorry, mein Fehler.

          Muss eine neu Brille bestellen und Schrift vergrößern. ordner und ordnen. Ich schäme mich.

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

            Hallo Vumer,

            genau diese Funktion habe ich auch gesucht!! Bin ja auch mit der LOGO 8 unterwegs.

            Allerdings kriege ich die beiden Scripts nicht zum laufen. Habe die beiden Funktionen (logotime2str und str2logotime) als separate Globale Scripte angelegt. Dann das Script zum Aufrufen der beiden Funktionen als Common-Script angelegt. Die beiden Variablen darin habe ich für meine Bedürfnisse angepasst. Hier habe ich schon die erste Frage: –> die Konstante idLogo ist soweit klar aber die folgende const idVis muss die "von Hand" angelegt werden?

            Die Scripte laufen scheinbar ohne Fehler (Objektansicht ioBroker zeigt beim Common.Script true, bei den beiden Globalen Scripten jedoch false) aber es wird keine Variable erzeugt bzw. diese hat den Wert "null".

            Steff

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

              Hallo Steff,

              Hast du auch einen Datenpunkt angelegt?

              So habe ich das gemacht

              Unter global habe ich mit dem name Converter

              function logotime2str(time) {
                 var x = parseInt(time, 10).toString(16);
                 if(parseInt(x) < 10) return '0:0' + x;
                 if(parseInt(x) < 100) return '0:' + x;
                 if(parseInt(x) < 1000) return x.slice(0, 1) + ':' + x.slice(1, 3);
                 return x.slice(0, 2) + ':' + x.slice(2, 4);
              }
              
              function str2logotime(str) {  // str im Format "hh:mm:ss"
                 var x = str.split(':');
                 x = parseInt(x[0] + x[1], 16).toString(10);
                 return parseInt(x);
              }
              ````angelegt.
              
              Unter common habe ich eine neue Gruppe mit dem Name LOGO erstellt
              
              Unter die Gruppe LOGO einen Skrip für die erste Uhr mit dem Name Uhr1-1_Ein
              

              createState("LOGO.Uhr1-1_Ein", 0);

              const idLogo = 's7.0.DBs.DB1.B023-a1';
              const idVis = 'javascript.0.LOGO.Uhr1-1_Ein';

              on(idLogo, function(dp) {
              setStateDelayed(idVis, logotime2str(dp.state.val), 5000);
              });

              on(idVis, function(dp) {
              setState(idLogo, str2logotime(dp.state.val));
              });

              Unter dem Name Uhr1-1_Aus
              

              createState("LOGO.Uhr1-1_Aus", 0);

              const idLogo = 's7.0.DBs.DB1.B023-b1';
              const idVis = 'javascript.0.LOGO.Uhr1-1_Aus';

              on(idLogo, function(dp) {
              setStateDelayed(idVis, logotime2str(dp.state.val), 5000);
              });

              on(idVis, function(dp) {
              setState(idLogo, str2logotime(dp.state.val));
              });

              und so weiter, erstellt
              
              Schöne Grüße
              1 Reply Last reply Reply Quote 0
              • Steff
                Steff last edited by

                Hallo Vumer,

                schon gesehen…., ich habe noch ordentlich was aufzuholen in Sachen JScript :oops:

                Die Datenpunkte waren das Problem. Jetzt werden die zwar angelegt allerdings immer noch mit "0"-Werten. :shock: Ist das so normal?

                Gruß

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

                  ender mal im Datenpunkte unter Objekte die 0 in 9:30

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

                    Jackpot!!

                    Das ist echt genial.

                    …und wieder was gelernt - die Datenpunkte wurden ja mit 0 angelegt. Macht das Sinn die Punkte gleich mit einem "richtigen" Wert sprich Uhrzeit anzulegen?

                    Gruß

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

                      Falsches Gedanke

                      Der Script macht nur was wenn sich der Wert verendert, damit er nicht immer leuft. z.B wenn du in der LOGO die Zeit verenderst dann aktualisiert der Skript das. Oder du nimms im vis dem Widget "Jqui ctrl Input Datetime" umd stellst die Uhr im vis ein
                      2071_zwischenablage01.jpg

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

                        OK, das macht Sinn.

                        Ich dachte das gibt ein Problem beim Neustarten von ioBroker. Habe aber gerade mal neu gestartet, ist alle so wie es

                        sein soll!

                        Dann kann ich mich jetzt ja an die Wochentage der Schaltuhr ranmachen.

                        Danke nochmals!

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

                          @Steff:

                          Macht das Sinn die Punkte gleich mit einem "richtigen" Wert sprich Uhrzeit anzulegen? `
                          Sauberer ist es.

                          const idLogo = 's7.0.DBs.DB1.B023-a1';
                          const nameVis = 'LOGO.Uhr1-1_Ein';
                          const idVis = 'javascript.' + instance + '.' + nameVis;
                          
                          createState(nameVis, '0:00', {type: 'string'});
                          
                          on(idLogo, function(dp) {
                             setStateDelayed(idVis, logotime2str(dp.state.val), 5000);
                          });
                          
                          on(idVis, function(dp) {
                             setState(idLogo, str2logotime(dp.state.val));
                          });
                          
                          1 Reply Last reply Reply Quote 0
                          • Steff
                            Steff last edited by

                            Hallo paul53,

                            danke für die Rückmeldung, bin gerade unterwegs. Sobald ich wieder vor meiner Kiste sitze probiere ich das aus.

                            Gruß Steffen

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

                              Hallo paul53,

                              wie immer genial! Danke!

                              ich habe aber die '0:00' rausgenommen, der Grund ist: wenn man dem Skript startet überschreibt er die Zein in der LOGO in 0:00. Das ist nicht gut.

                              Es reicht die LOGO neu zu starten, danach greift der Skript und wir haben die richtige Zeit.

                              const idLogo = 's7.0.DBs.DB1.B023-a1';
                              const nameVis = 'LOGO.Uhr1-1_Ein';
                              const idVis = 'javascript.' + instance + '.' + nameVis;
                              
                              createState(nameVis, {type: 'string'});
                              
                              on(idLogo, function(dp) {
                                 setStateDelayed(idVis, logotime2str(dp.state.val), 5000);
                              });
                              
                              on(idVis, function(dp) {
                                 setState(idLogo, str2logotime(dp.state.val));
                              });
                              

                              @Steff

                              es reicht im LOGO!Soft "LOGO -> PC" auszuführen

                              Schöne Grüße

                              S 1 Reply Last reply Reply Quote 0
                              • Steff
                                Steff last edited by

                                Hallo paul53,

                                danke funzt problemlos!

                                @Vumer

                                was meinst Du mit "LOGO –> PC"?

                                Gruß

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

                                  2071_logo2pc.jpg
                                  es reicht aber auch die LOGO für ein Paar sek zustopen und danach starten

                                  so das neue/aktualisierte Werte am Skript ankommen. Weil werend des Anhaltens gehen die Werte im S7 Adapter auf "0"

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

                                    Hallo Vumer,

                                    habe das gerade mit dem Stoppen und Starten ausprobiert. Bei mir wird die zuvor eingegebene Zeit trotzdem gespeichert.

                                    Ich werde das mal im Auge behalten. In jedem Fall ist das mit den Schaltuhren eine Super Lösung geworden!!

                                    Gruß

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

                                      bei mir sieht es während des Anhaltens so aus
                                      2071_logo-stop.jpg

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

                                        Hi,

                                        Sieht bei mir auch so aus.

                                        Nach dem Starten der Logo habe ich wieder den alten Wert drin!

                                        Evtl. liegt es daran, das meine Schaltuhren nur auf Impulsausgabe parametriert sind.

                                        Gruß

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

                                          @Steff:

                                          Nach dem Starten der Logo habe ich wieder den alten Wert drin! `
                                          so soll es auch sein. Deine LOGO's sind ja alle programmiert und die Zeiten ungefähr richtig eingestellt. Jetzt kannst du die im vis oder unter Objekte wenn nötig anpassen.

                                          Wenn du jetzt einen neuen Skript für eine andere Uhr erstellst hast zuerst dem Wert "null". Nach LOGO anhalten und starten hast du die aktuelle Zeiten aus die LOGO.

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            Farmer-cb last edited by

                                            Servus

                                            wie machst du das mit den Checkboxen für die Wochentage???
                                            4639_zeitschaltuhr.png

                                            @Vumer:

                                            Falsches Gedanke

                                            Der Script macht nur was wenn sich der Wert verendert, damit er nicht immer leuft. z.B wenn du in der LOGO die Zeit verenderst dann aktualisiert der Skript das. Oder du nimms im vis dem Widget "Jqui ctrl Input Datetime" umd stellst die Uhr im vis ein `

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            441
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            61
                                            7949
                                            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