Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] LOGO! & Wochenschaltuhr

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    320

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

[gelöst] LOGO! & Wochenschaltuhr

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
61 Beiträge 9 Kommentatoren 10.8k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • VumerV Offline
    VumerV Offline
    Vumer
    schrieb am zuletzt editiert von
    #36

    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 Antwort Letzte Antwort
    0
    • SteffS Offline
      SteffS Offline
      Steff
      schrieb am zuletzt editiert von
      #37

      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ß

      ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
      Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

      1 Antwort Letzte Antwort
      0
      • VumerV Offline
        VumerV Offline
        Vumer
        schrieb am zuletzt editiert von
        #38

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

        1 Antwort Letzte Antwort
        0
        • SteffS Offline
          SteffS Offline
          Steff
          schrieb am zuletzt editiert von
          #39

          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ß

          ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
          Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

          1 Antwort Letzte Antwort
          0
          • VumerV Offline
            VumerV Offline
            Vumer
            schrieb am zuletzt editiert von
            #40

            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 Antwort Letzte Antwort
            0
            • SteffS Offline
              SteffS Offline
              Steff
              schrieb am zuletzt editiert von
              #41

              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!

              ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
              Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #42

                @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));
                });
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • SteffS Offline
                  SteffS Offline
                  Steff
                  schrieb am zuletzt editiert von
                  #43

                  Hallo paul53,

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

                  Gruß Steffen

                  ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
                  Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

                  1 Antwort Letzte Antwort
                  0
                  • VumerV Offline
                    VumerV Offline
                    Vumer
                    schrieb am zuletzt editiert von
                    #44

                    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 Antwort Letzte Antwort
                    0
                    • SteffS Offline
                      SteffS Offline
                      Steff
                      schrieb am zuletzt editiert von
                      #45

                      Hallo paul53,

                      danke funzt problemlos!

                      @Vumer

                      was meinst Du mit "LOGO –> PC"?

                      Gruß

                      ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
                      Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

                      1 Antwort Letzte Antwort
                      0
                      • VumerV Offline
                        VumerV Offline
                        Vumer
                        schrieb am zuletzt editiert von
                        #46

                        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 Antwort Letzte Antwort
                        0
                        • SteffS Offline
                          SteffS Offline
                          Steff
                          schrieb am zuletzt editiert von
                          #47

                          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ß

                          ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
                          Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

                          1 Antwort Letzte Antwort
                          0
                          • VumerV Offline
                            VumerV Offline
                            Vumer
                            schrieb am zuletzt editiert von
                            #48

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

                            A 1 Antwort Letzte Antwort
                            0
                            • SteffS Offline
                              SteffS Offline
                              Steff
                              schrieb am zuletzt editiert von
                              #49

                              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ß

                              ioBroker auf Intel NUC 7CJYH / Debian 11 / States in Redis / Objects in JSONL / Repo --> Beta / HM CCU2 V2.61.7 / Siemens LOGO! (0BA7 / 0BA8)
                              Admin V7.4.7 / Node V20.18.1 / NPM V10.8.2 / JSC V7.0.6 / JSE V8.8.3

                              1 Antwort Letzte Antwort
                              0
                              • VumerV Offline
                                VumerV Offline
                                Vumer
                                schrieb am zuletzt editiert von
                                #50

                                @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 Antwort Letzte Antwort
                                0
                                • F Offline
                                  F Offline
                                  Farmer-cb
                                  schrieb am zuletzt editiert von
                                  #51

                                  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 `

                                  smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

                                  5 x Echo Show, 2 x Echo Dot

                                  Elektroniker86E 1 Antwort Letzte Antwort
                                  0
                                  • F Offline
                                    F Offline
                                    Farmer-cb
                                    schrieb am zuletzt editiert von
                                    #52

                                    Hat sich erledigt, bin selber drauf gekommen

                                    @Farmer-cb:

                                    Servus

                                    wie machst du das mit den Checkboxen für die Wochentage???

                                    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

                                    smartes Haus durch Digitalstrom, enocean, SPS S7-1215, Homematik, Motioneye, iobroker auf einem HP-mini mit Proxmox

                                    5 x Echo Show, 2 x Echo Dot

                                    1 Antwort Letzte Antwort
                                    0
                                    • VumerV Offline
                                      VumerV Offline
                                      Vumer
                                      schrieb am zuletzt editiert von
                                      #53

                                      @Farmer-cb:

                                      Hat sich erledigt, bin selber drauf gekommen `
                                      Hi

                                      das ist der basic - Bool Checkbox, aber der basic - Bool Select ist auch interessant

                                      Schöne Grüße

                                      1 Antwort Letzte Antwort
                                      0
                                      • VumerV Offline
                                        VumerV Offline
                                        Vumer
                                        schrieb am zuletzt editiert von
                                        #54

                                        @paul53:

                                        Hier die beiden Funktionen:

                                        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);
                                        }
                                        

                                        EDIT: Habe das Skript noch für Zeiten < 0:10 Uhr und < 1:00 Uhr angepasst. `
                                        hab es für mich ein bisschen angepasst. Damit im vis anstatt 7:00, 07:00 angezeigt wird. So kann man das z.B mit 21:00 zentrieren.

                                        function logotime2str(time) {
                                           var x = parseInt(time, 10).toString(16);
                                           if(parseInt(x) < 10) return '00:0' + x;
                                           if(parseInt(x) < 100) return '00:' + x;
                                           if(parseInt(x) < 1000) return '0' + 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);
                                        }
                                        

                                        Hoffe dass ich nichts falsch gemacht habe, angezeigt wird das richtig und Fehler im Log sind auch keine.

                                        Schöne Grüße

                                        1 Antwort Letzte Antwort
                                        0
                                        • F Farmer-cb

                                          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 `

                                          Elektroniker86E Offline
                                          Elektroniker86E Offline
                                          Elektroniker86
                                          schrieb am zuletzt editiert von
                                          #55

                                          @Farmer-cb sagte in [gelöst] LOGO! & Wochenschaltuhr:

                                          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 `

                                          Hallo liebe LOGO Fans,

                                          das Thema ist zwar etwas alt aber ich muss das hier nochmal aufgreifen.......

                                          Wie funktioniert das nun mit den Checkboxen ?
                                          Da braucht man doch bestimmt ein Script um die Wochentage umzurechnen oder ?

                                          Kann mir da vielleicht jemand unter die Arme greifen?

                                          SteffS 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          776

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe