Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Die Wort-Uhr

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    11
    1
    117

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

Die Wort-Uhr

Scheduled Pinned Locked Moved Visualisierung
vis
53 Posts 9 Posters 7.4k Views 17 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    Langer
    wrote on last edited by Langer
    #1

    Hallo zusammen,

    mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

    Uhr.png

    Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

    Wenn es einer möchte, melden.

    MfG
    Wastl

    Ps.
    Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

    Nachtrag: Die Uhr zeigt 9:14:21 an.

    sigi234S Meister MopperM OliverIOO 5 Replies Last reply
    3
    • L Langer

      Hallo zusammen,

      mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

      Uhr.png

      Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

      Wenn es einer möchte, melden.

      MfG
      Wastl

      Ps.
      Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

      Nachtrag: Die Uhr zeigt 9:14:21 an.

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by
      #2

      @langer

      Bitte möchte Sie.

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      L 1 Reply Last reply
      0
      • L Langer

        Hallo zusammen,

        mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

        Uhr.png

        Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

        Wenn es einer möchte, melden.

        MfG
        Wastl

        Ps.
        Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

        Nachtrag: Die Uhr zeigt 9:14:21 an.

        Meister MopperM Online
        Meister MopperM Online
        Meister Mopper
        wrote on last edited by
        #3

        @langer Supercool, da habe ich auch Interesse :+1:

        Proxmox und HA

        L 1 Reply Last reply
        0
        • Meister MopperM Meister Mopper

          @langer Supercool, da habe ich auch Interesse :+1:

          L Offline
          L Offline
          Langer
          wrote on last edited by Langer
          #4

          @meister-mopper
          @sigi234

          Hier das JavaScript:

          let cronSekunde = '* * * * * *';                                                    // Wird jede Sekunde ausgeführt
          let cronMinute  = "*/1 * * * *";                                                    // Wird jede Minute ausgeführt       
          let cronText    = "*/5 * * * *";                                                    // Wird alle 5 Minuten ausgeführt                                  
          
          let dp = "0_userdata.0.vis.Uhr.";                                                   //Erster Teil des Datenpunktes
          
          clearSekunden();
          showSekunden();
          showMinute();
          showText();
          
          async function showSekunden() {                                                     //LED Sekunden anzeigen  
          
              let sekunde = new Date().getSeconds();                                          //Aktuelle Sekunde holen
            
              let dp_Sekunde = '';
              let farbe = 'black';
          
              dp_Sekunde = dp + 'Sekunden.s' + sekunde.toString();    	                    //Datenpunkt festlegen
              
              if (sekunde > 1) {  	                                                        //Ist die Sekunde > 1 wird die 
                  setState(dp + 'Sekunden.s' + (sekunde - 1).toString(), 'black', true);      //LED Sekunde - 1 ausgeblendet
              } else {
                  setState(dp + 'Sekunden.s59' , 'black', true);                              //Ist die Sekunde < 1 wird die 
              };                                                                              //LED 59 Sekunde ausgeblendet
              
              if (sekunde > 0) {
                  setState(dp_Sekunde, 'yellow', true);                                       //LED Sekunde wird angezeigt
              };
          };
          
          async function showMinute() {                                                       //LED Minuten anzeigen
          
              let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
              let rest = minute % 5;                                                          //Minute durch 5 teilen und den Rest speichern
             
              if (rest == 0) {                                                                //Ist der rest 0 alle DP auf false setzten
                  setState(dp + 'Minuten.Minute_1', '#2e2e2e', true);
                  setState(dp + 'Minuten.Minute_2', '#2e2e2e', true);
                  setState(dp + 'Minuten.Minute_3', '#2e2e2e', true);
                  setState(dp + 'Minuten.Minute_4', '#2e2e2e', true);
              } else if (rest == 1) {                                                         //Minute = 6 oder 11 oder 16 usw.
                  setState(dp + 'Minuten.Minute_1', 'orange', true);                          //LED Minute 1 wird orange
              } else if (rest == 2) {                                                         //Minute = 7 oder 12 oder 17 usw.
                  setState(dp + 'Minuten.Minute_2', 'orange', true);                          //LED Minute 2 wird orange
              } else if (rest == 3) {                                                         //usw
                  setState(dp + 'Minuten.Minute_3', 'orange', true);
              } else if (rest == 4) {
                  setState(dp + 'Minuten.Minute_4', 'orange', true);
              };
          };
          
          async function showText() {                                                         //Zeit als Text wird angezeigt
          
              let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
              let stunde = new Date().getHours();                                             //Aktuelle Stunde holen
             
              clearUhr();                                                                     //alle dp in text auf false setzten
          
              if (minute >= 5 && minute <= 9) {                                               //Uhr Texte Minuten erstellen Start
                  setState(dp + 'Text.fuenf_Minuten', true, true);
                  setState(dp + 'Text.nach', true, true);
              } else if (minute >= 10 && minute <= 14) {
                  setState(dp + 'Text.zehn_Minuten', true, true);
                  setState(dp + 'Text.nach', true, true);
              } else if (minute >= 15 && minute <= 19) {
                  setState(dp + 'Text.viertel', true, true);
                  setState(dp + 'Text.nach', true, true);
              } else if (minute >= 20 && minute <= 24) {
                  setState(dp + 'Text.zwanzig', true, true);
                  setState(dp + 'Text.nach', true, true);
              } else if (minute >= 25 && minute <= 29) {
                  setState(dp + 'Text.fuenf_Minuten', true, true);
                  setState(dp + 'Text.vor', true, true);
                  setState(dp + 'Text.halb', true, true);
              } else if (minute >= 30 && minute <= 34) {
                  setState(dp + 'Text.halb', true, true);
              } else if (minute >= 35 && minute <= 39) {
                  setState(dp + 'Text.fuenf_Minuten', true, true);
                  setState(dp + 'Text.nach', true, true);
                  setState(dp + 'Text.halb', true, true);
              } else if (minute >= 40 && minute <= 44) {
                  setState(dp + 'Text.zwanzig', true, true);
                  setState(dp + 'Text.vor', true, true);
              } else if (minute >= 45 && minute <= 49) {
                  setState(dp + 'Text.viertel', true, true);
                  setState(dp + 'Text.vor', true, true);
              } else if (minute >= 50 && minute <= 54) {
                  setState(dp + 'Text.zehn_Minuten', true, true);
                  setState(dp + 'Text.vor', true, true);
              } else if (minute >= 55 && minute <= 59) {
                  setState(dp + 'Text.fuenf_Minuten', true, true);
                  setState(dp + 'Text.vor', true, true);                                      //Uhr Texte Minuten erstellen Ende
              };
          
              if (stunde > 12 && stunde < 24) {                                               //Wenn Stunde > 12 und kleiner 24 ist
                  stunde -= 12;                                                               //12 abziehen. Nur 12 Stunden anzeige
              };
          
              if (minute > 24) {                                                              //Von 0 - 24 Text nach stunde
                  stunde += 1;                                                                //Von 25 - 59 Text vor stunde
              };
              
              if (minute >= 0 && minute <= 4) {                                               //Ist Minute 0 - 4 dann stunde + uhr
                  setState(dp + 'Text.uhr', true, true);        
              };
          
              if (stunde == 1 && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                  setState(dp + 'Text.ein', true, true);
              } else if (stunde == 1 && minute > 0) {
                  setState(dp + 'Text.ein', true, true);
                  setState(dp + 'Text.s', true, true);
              } else if (stunde == 2) {
                  setState(dp + 'Text.zwei', true, true);
              } else if (stunde == 3) {
                  setState(dp + 'Text.drei', true, true);
              } else if (stunde == 4) {
                  setState(dp + 'Text.vier', true, true);
              } else if (stunde == 5) {
                  setState(dp + 'Text.f', true, true);
                  setState(dp + 'fuenf_Stunde', true, true);
              } else if (stunde == 6) {
                  setState(dp + 'Text.sechs', true, true);
              } else if (stunde == 7) {
                  setState(dp + 'Text.sieben', true, true);
              } else if (stunde == 8) {
                  setState(dp + 'Text.acht', true, true);
              } else if (stunde == 9) {
                  setState(dp + 'Text.n', true, true);
                  setState(dp + 'Text.neun', true, true);
              } else if (stunde == 10) {
                  setState(dp + 'Text.zehn_Stunde', true, true);
                  setState(dp + 'Text.n', true, true);
              } else if (stunde == 11) {
                  setState(dp + 'Text.f', true, true);
                  setState(dp + 'Text.elf', true, true);
              } else if (stunde == 12 || stunde == 0) {
                  setState(dp + 'Text.zwoelf', true, true);                                   //Uhr Texte Stunde erstellen Ende
              };
          };
          
          function clearSekunden() {                                                          //LED Sekunden werden ausgeblendet   
              let sekundenSelector = $(dp + "Sekunden.*");
              sekundenSelector.each(function(id, i) {
                  setState(id, 'black', true);
              });
          };
          
          function clearUhr() {                                                               //Text zurücksetzten   
              let sekundenSelector = $(dp + "Text.*");
              sekundenSelector.each(function(id, i) {
                  setState(id, false, true);
              });
          };
          
          schedule(cronSekunde, function () {showSekunden();});                               //Funktion Sekunden anzeigen aufrufen, jede Sekunde
          
          schedule(cronMinute, function () {showMinute();});                                  //Funktion Minute anzeigen aufrufen, jede Minute
          
          schedule(cronText, function () {showText();});                                      //Funktion Text anzeigen aufrufen, alle 5 Minuten
          
          

          und hier die VIS als Zip-File (zu gross)
          Die_Uhr.zip

          Ich hoffe ich habe beim Hochladen keine Fehler gemacht, ansonsten melden.

          Und DANKE das es Euch gefällt!!

          MfG
          Wastl

          Ps.
          Hier noch die Funktion zum Erstellen der Datenpunkte:

          let statesToCreate = [
          
          ['vis.Uhr.Text.fuenf_Minuten',     	{'name':'5 Minuten',  'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.zehn_Minuten',     	{'name':'10 minuten', 'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.nach',              	{'name':'nach',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.viertel',           	{'name':'viertel',    'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.zwanzig',           	{'name':'zwanzig',    'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.vor',           	    {'name':'vor',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.halb',           	{'name':'halb',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          
          ['vis.Uhr.Text.ein',           	    {'name':'ein',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.s',           	    {'name':'eins',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.uhr',           	    {'name':'Uhr',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.zwei',           	{'name':'Zwei',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.drei',           	{'name':'drei',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.drei_Stunde',       	{'name':'3 Stunde',   'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.vier',           	{'name':'vier',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.fuenf_Stunde',     	{'name':'5 Stunde',   'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.sechs',           	{'name':'sechs',      'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.sieben',           	{'name':'sieben',     'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.acht',           	{'name':'acht',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.neun',           	{'name':'neun',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.zehn_Stunde',     	{'name':'10 Stunde',  'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.elf',           	    {'name':'elf',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.zwoelf',           	{'name':'zwoelf',     'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.n',           	    {'name':'n',          'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          ['vis.Uhr.Text.f',           	    {'name':'f',          'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
          
          ['vis.Uhr.Minuten.Minute_1',       	{'name':'Minute 1',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
          ['vis.Uhr.Minuten.Minute_2',       	{'name':'Minute 2',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
          ['vis.Uhr.Minuten.Minute_3',       	{'name':'Minute 3',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
          ['vis.Uhr.Minuten.Minute_4',       	{'name':'Minute 4',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
          
          ['vis.Uhr.Sekunden.s1',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s2',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s3',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s4',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s5',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s6',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s7',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s8',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s9',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s10',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s11',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s12',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s13',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s14',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s15',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s16',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s17',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s18',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s19',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s20',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s21',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s22',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s23',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s24',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s25',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s26',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s27',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s28',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s29',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s30',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s31',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s32',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s33',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s34',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s35',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s36',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s37',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s38',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s39',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s40',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s41',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s42',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s43',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s44',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s45',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s46',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s47',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s48',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s49',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s50',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s51',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s52',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s53',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s54',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s55',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s56',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s57',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s58',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s59',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          ['vis.Uhr.Sekunden.s60',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
          
          ];
          
          createUserStates('0_userdata.0', true, statesToCreate);
          
          dslraserD 1 Reply Last reply
          1
          • sigi234S sigi234

            @langer

            Bitte möchte Sie.

            L Offline
            L Offline
            Langer
            wrote on last edited by
            #5

            @sigi234

            Sigi, habe eine Bitte:

            Du hast mal ein Widget für Laufschrift bereit gestellt, habe das Widget auch runtergeladen und bekomme es nicht hin die folgende Anzeige zu erstellen:

            Aussentemperatur: 22.27 °C Datenpunkt: javascript.0.Wetterstation.Aussentemperatur
            Wettertrend: baldiger Regen javascript.0.Wetterstation.Wetter_Trend

            Wo oder was muß ich da an Deinem Widget ändern????

            Vorab Vielen Dank für Deine Antwort.

            Hier das Widget von Dir:

            [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"<marquee direction=\"right\" scrollamount=\"15\" style=\"height: 100px;\">{yamaha.0.Realtime.NETRADIO.SONG}<br></marquee>"},"style":{"left":"216px","top":"582px","width":"524px","height":"175px","z-index":"2","font-size":"large"},"widgetSet":"basic"}]
            

            MfG
            Wastl

            sigi234S 1 Reply Last reply
            0
            • L Langer

              @sigi234

              Sigi, habe eine Bitte:

              Du hast mal ein Widget für Laufschrift bereit gestellt, habe das Widget auch runtergeladen und bekomme es nicht hin die folgende Anzeige zu erstellen:

              Aussentemperatur: 22.27 °C Datenpunkt: javascript.0.Wetterstation.Aussentemperatur
              Wettertrend: baldiger Regen javascript.0.Wetterstation.Wetter_Trend

              Wo oder was muß ich da an Deinem Widget ändern????

              Vorab Vielen Dank für Deine Antwort.

              Hier das Widget von Dir:

              [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"<marquee direction=\"right\" scrollamount=\"15\" style=\"height: 100px;\">{yamaha.0.Realtime.NETRADIO.SONG}<br></marquee>"},"style":{"left":"216px","top":"582px","width":"524px","height":"175px","z-index":"2","font-size":"large"},"widgetSet":"basic"}]
              

              MfG
              Wastl

              sigi234S Online
              sigi234S Online
              sigi234
              Forum Testing Most Active
              wrote on last edited by
              #6

              @langer sagte in Eine besondere Uhr:

              javascript.0.Wetterstation.Wetter_Trend

              [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html":"<marquee direction=\"right\" scrollamount=\"15\" style=\"height: 100px;\">{javascript.0.Wetterstation.Aussentemperatur}<br></marquee>\n\n<marquee direction=\"right\" scrollamount=\"15\" style=\"height: 100px;\">{javascript.0.Wetterstation.Wetter_Trend}<br></marquee>"},"style":{"left":"700px","top":"608px","width":"524px","height":"175px","z-index":"4","font-size":"large","color":"#ffffff"},"widgetSet":"basic"}]
              

              Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Immer Daten sichern!

              1 Reply Last reply
              1
              • L Langer

                Hallo zusammen,

                mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

                Uhr.png

                Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

                Wenn es einer möchte, melden.

                MfG
                Wastl

                Ps.
                Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

                Nachtrag: Die Uhr zeigt 9:14:21 an.

                sigi234S Online
                sigi234S Online
                sigi234
                Forum Testing Most Active
                wrote on last edited by
                #7

                @langer

                Welche DP müssen angelegt werden?

                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                Immer Daten sichern!

                L 1 Reply Last reply
                0
                • sigi234S sigi234

                  @langer

                  Welche DP müssen angelegt werden?

                  L Offline
                  L Offline
                  Langer
                  wrote on last edited by
                  #8

                  @sigi234

                  Oben ist doch das Skript für die Erstellung der DP's.

                  MfG
                  Wastl

                  sigi234S 1 Reply Last reply
                  0
                  • NashraN Offline
                    NashraN Offline
                    Nashra
                    Most Active Forum Testing
                    wrote on last edited by Nashra
                    #9

                    Hm, bekomme die DP nicht angelegt :thinking_face:

                    12:26:17.078	error	javascript.0 (862) script.js.Allerlei.VIS-Uhr-DP: ReferenceError: createUserStates is not defined
                    12:26:17.078	error	javascript.0 (862) at script.js.Allerlei.VIS-Uhr-DP:96:1
                    12:26:17.078	error	javascript.0 (862) at script.js.Allerlei.VIS-Uhr-DP:99:3
                    

                    Gruß Ralf
                    Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    L 1 Reply Last reply
                    0
                    • NashraN Nashra

                      Hm, bekomme die DP nicht angelegt :thinking_face:

                      12:26:17.078	error	javascript.0 (862) script.js.Allerlei.VIS-Uhr-DP: ReferenceError: createUserStates is not defined
                      12:26:17.078	error	javascript.0 (862) at script.js.Allerlei.VIS-Uhr-DP:96:1
                      12:26:17.078	error	javascript.0 (862) at script.js.Allerlei.VIS-Uhr-DP:99:3
                      
                      L Offline
                      L Offline
                      Langer
                      wrote on last edited by Langer
                      #10

                      @nashra

                      Sorry, habe eine Funktion vergessen:

                      /**
                       * Create states under 0_userdata.0 or javascript.x
                       * Current Version:     https://github.com/Mic-M/iobroker.createUserStates
                       * Support:             https://forum.iobroker.net/topic/26839/
                       * Autor:               Mic (ioBroker) | Mic-M (github)
                       * Version:             1.2 (20 October 2020)
                       * Example:             see https://github.com/Mic-M/iobroker.createUserStates#beispiel
                       * -----------------------------------------------
                       * PLEASE NOTE: Per https://github.com/ioBroker/ioBroker.javascript/issues/474, the used function setObject() 
                       *              executes the callback PRIOR to completing the state creation. Therefore, we use a setTimeout and counter. 
                       * -----------------------------------------------
                       * @param {string} where          Where to create the state: '0_userdata.0' or 'javascript.x'.
                       * @param {boolean} force         Force state creation (overwrite), if state is existing.
                       * @param {array} statesToCreate  State(s) to create. single array or array of arrays
                       * @param {object} [callback]     Optional: a callback function -- This provided function will be executed after all states are created.
                       */
                      function createUserStates(where, force, statesToCreate, callback = undefined) {
                       
                          const WARN = false; // Only for 0_userdata.0: Throws warning in log, if state is already existing and force=false. Default is false, so no warning in log, if state exists.
                          const LOG_DEBUG = false; // To debug this function, set to true
                          // Per issue #474 (https://github.com/ioBroker/ioBroker.javascript/issues/474), the used function setObject() executes the callback 
                          // before the state is actual created. Therefore, we use a setTimeout and counter as a workaround.
                          const DELAY = 50; // Delay in milliseconds (ms). Increase this to 100, if it is not working.
                      
                          // Validate "where"
                          if (where.endsWith('.')) where = where.slice(0, -1); // Remove trailing dot
                          if ( (where.match(/^((javascript\.([1-9][0-9]|[0-9]))$|0_userdata\.0$)/) == null) ) {
                              log('This script does not support to create states under [' + where + ']', 'error');
                              return;
                          }
                      
                          // Prepare "statesToCreate" since we also allow a single state to create
                          if(!Array.isArray(statesToCreate[0])) statesToCreate = [statesToCreate]; // wrap into array, if just one array and not inside an array
                      
                          // Add "where" to STATES_TO_CREATE
                          for (let i = 0; i < statesToCreate.length; i++) {
                              let lpPath = statesToCreate[i][0].replace(/\.*\./g, '.'); // replace all multiple dots like '..', '...' with a single '.'
                              lpPath = lpPath.replace(/^((javascript\.([1-9][0-9]|[0-9])\.)|0_userdata\.0\.)/,'') // remove any javascript.x. / 0_userdata.0. from beginning
                              lpPath = where + '.' + lpPath; // add where to beginning of string
                              statesToCreate[i][0] = lpPath;
                          }
                      
                          if (where != '0_userdata.0') {
                              // Create States under javascript.x
                              let numStates = statesToCreate.length;
                              statesToCreate.forEach(function(loopParam) {
                                  if (LOG_DEBUG) log('[Debug] Now we are creating new state [' + loopParam[0] + ']');
                                  let loopInit = (loopParam[1]['def'] == undefined) ? null : loopParam[1]['def']; // mimic same behavior as createState if no init value is provided
                                  createState(loopParam[0], loopInit, force, loopParam[1], function() {
                                      numStates--;
                                      if (numStates === 0) {
                                          if (LOG_DEBUG) log('[Debug] All states processed.');
                                          if (typeof callback === 'function') { // execute if a function was provided to parameter callback
                                              if (LOG_DEBUG) log('[Debug] Function to callback parameter was provided');
                                              return callback();
                                          } else {
                                              return;
                                          }
                                      }
                                  });
                              });
                          } else {
                              // Create States under 0_userdata.0
                              let numStates = statesToCreate.length;
                              let counter = -1;
                              statesToCreate.forEach(function(loopParam) {
                                  counter += 1;
                                  if (LOG_DEBUG) log ('[Debug] Currently processing following state: [' + loopParam[0] + ']');
                                  if( ($(loopParam[0]).length > 0) && (existsState(loopParam[0])) ) { // Workaround due to https://github.com/ioBroker/ioBroker.javascript/issues/478
                                      // State is existing.
                                      if (WARN && !force) log('State [' + loopParam[0] + '] is already existing and will no longer be created.', 'warn');
                                      if (!WARN && LOG_DEBUG) log('[Debug] State [' + loopParam[0] + '] is already existing. Option force (=overwrite) is set to [' + force + '].');
                                      if(!force) {
                                          // State exists and shall not be overwritten since force=false
                                          // So, we do not proceed.
                                          numStates--;
                                          if (numStates === 0) {
                                              if (LOG_DEBUG) log('[Debug] All states successfully processed!');
                                              if (typeof callback === 'function') { // execute if a function was provided to parameter callback
                                                  if (LOG_DEBUG) log('[Debug] An optional callback function was provided, which we are going to execute now.');
                                                  return callback();
                                              } else {  // no callback, return anyway
                                                  return;
                                              }
                                          } else {
                                              // We need to go out and continue with next element in loop.
                                              return; // https://stackoverflow.com/questions/18452920/continue-in-cursor-foreach
                                          }
                                      } // if(!force)
                                  }
                      
                                  // State is not existing or force = true, so we are continuing to create the state through setObject().
                                  let obj = {};
                                  obj.type = 'state';
                                  obj.native = {};
                                  obj.common = loopParam[1];
                                  setObject(loopParam[0], obj, function (err) {
                                      if (err) {
                                          log('Cannot write object for state [' + loopParam[0] + ']: ' + err);
                                      } else {
                                          if (LOG_DEBUG) log('[Debug] Now we are creating new state [' + loopParam[0] + ']')
                                          let init = null;
                                          if(loopParam[1].def === undefined) {
                                              if(loopParam[1].type === 'number') init = 0;
                                              if(loopParam[1].type === 'boolean') init = false;
                                              if(loopParam[1].type === 'string') init = '';
                                          } else {
                                              init = loopParam[1].def;
                                          }
                                          setTimeout(function() {
                                              setState(loopParam[0], init, true, function() {
                                                  if (LOG_DEBUG) log('[Debug] setState durchgeführt: ' + loopParam[0]);
                                                  numStates--;
                                                  if (numStates === 0) {
                                                      if (LOG_DEBUG) log('[Debug] All states processed.');
                                                      if (typeof callback === 'function') { // execute if a function was provided to parameter callback
                                                          if (LOG_DEBUG) log('[Debug] Function to callback parameter was provided');
                                                          return callback();
                                                      }
                                                  }
                                              });
                                          }, DELAY + (20 * counter) );
                                      }
                                  });
                              });
                          }
                      }
                      

                      Habe die Funktion in global abgelegt.

                      MfG
                      Wastl

                      1 Reply Last reply
                      1
                      • L Langer

                        Hallo zusammen,

                        mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

                        Uhr.png

                        Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

                        Wenn es einer möchte, melden.

                        MfG
                        Wastl

                        Ps.
                        Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

                        Nachtrag: Die Uhr zeigt 9:14:21 an.

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        wrote on last edited by
                        #11

                        @langer sagte in Eine besondere Uhr:

                        Hallo zusammen,

                        mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

                        Uhr.png

                        Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

                        Wenn es einer möchte, melden.

                        MfG
                        Wastl

                        Ps.
                        Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

                        Nachtrag: Die Uhr zeigt 9:14:21 an.

                        Darf ich die wordclock in den Adapter Mytime als vis Widget mit aufnehmen?

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        L 1 Reply Last reply
                        0
                        • OliverIOO OliverIO

                          @langer sagte in Eine besondere Uhr:

                          Hallo zusammen,

                          mit Hilfe aus dem Forum habe ich hier mal eine "andere" Uhr, diese will ich als Bildschirmschoner einsetzten.

                          Uhr.png

                          Die 4 Led's in den Ecken stellen die Minuten dar. Die gelbe Led die jeweilige Sekunde. Der Text selbst erklärend.

                          Wenn es einer möchte, melden.

                          MfG
                          Wastl

                          Ps.
                          Eine Bitte, sollte es Er Sie Es haben wollen und Er Sie Es verbessert das JavaScript oder die Darstellung bitte ich um Rückmeldung, da ich immer noch nicht fit in JavaScript und Vis bin!!

                          Nachtrag: Die Uhr zeigt 9:14:21 an.

                          Darf ich die wordclock in den Adapter Mytime als vis Widget mit aufnehmen?

                          L Offline
                          L Offline
                          Langer
                          wrote on last edited by
                          #12

                          @oliverio

                          Aber immer.
                          Warte bitte noch einen Moment, habe gerade noch eine Idee, die ich umsetzten will. Wenn fertig folgt, ich hoffe es funktioniert, die neue Version.

                          MfG
                          Wastl

                          1 Reply Last reply
                          0
                          • L Langer

                            @sigi234

                            Oben ist doch das Skript für die Erstellung der DP's.

                            MfG
                            Wastl

                            sigi234S Online
                            sigi234S Online
                            sigi234
                            Forum Testing Most Active
                            wrote on last edited by
                            #13

                            @langer sagte in Eine besondere Uhr:

                            @sigi234

                            Oben ist doch das Skript für die Erstellung der DP's.

                            MfG
                            Wastl

                            Werden nicht angelegt. Welche Admin Version hast du?

                            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Immer Daten sichern!

                            L 1 Reply Last reply
                            0
                            • sigi234S sigi234

                              @langer sagte in Eine besondere Uhr:

                              @sigi234

                              Oben ist doch das Skript für die Erstellung der DP's.

                              MfG
                              Wastl

                              Werden nicht angelegt. Welche Admin Version hast du?

                              L Offline
                              L Offline
                              Langer
                              wrote on last edited by
                              #14

                              @sigi234

                              Admin: 4.2.1
                              Node.js: 12.22.2
                              npm: 6.14.13

                              MfG
                              Wastl

                              sigi234S L 2 Replies Last reply
                              0
                              • L Langer

                                @sigi234

                                Admin: 4.2.1
                                Node.js: 12.22.2
                                npm: 6.14.13

                                MfG
                                Wastl

                                sigi234S Online
                                sigi234S Online
                                sigi234
                                Forum Testing Most Active
                                wrote on last edited by
                                #15

                                @langer sagte in Eine besondere Uhr:

                                @sigi234

                                Admin: 4.2.1
                                Node.js: 12.22.2
                                npm: 6.14.13

                                MfG
                                Wastl

                                Aha, habe Admin 5

                                Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                Immer Daten sichern!

                                1 Reply Last reply
                                0
                                • L Langer

                                  @sigi234

                                  Admin: 4.2.1
                                  Node.js: 12.22.2
                                  npm: 6.14.13

                                  MfG
                                  Wastl

                                  L Offline
                                  L Offline
                                  Langer
                                  wrote on last edited by
                                  #16

                                  Es hat sich ein kleiner Fehler beim Kopieren von Zeilen eingeschlichen, bitte Ändern:

                                  Funktion showText Zeile 108

                                  ist

                                  if (stunde == 1 && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                                          setState(dp + 'Text.ein', true, true);
                                      } else if (stunde == 1 && minute > 0) {
                                          setState(dp + 'Text.ein', true, true);
                                  

                                  ändern nach

                                  if ((stunde == 1 || stunde == 13) && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                                          setState(dp + 'Text.ein', true, true);
                                      } else if ((stunde == 1 || stunde == 13) && minute > 0) {
                                          setState(dp + 'Text.ein', true, true);
                                  
                                  1 Reply Last reply
                                  0
                                  • L Langer

                                    @meister-mopper
                                    @sigi234

                                    Hier das JavaScript:

                                    let cronSekunde = '* * * * * *';                                                    // Wird jede Sekunde ausgeführt
                                    let cronMinute  = "*/1 * * * *";                                                    // Wird jede Minute ausgeführt       
                                    let cronText    = "*/5 * * * *";                                                    // Wird alle 5 Minuten ausgeführt                                  
                                    
                                    let dp = "0_userdata.0.vis.Uhr.";                                                   //Erster Teil des Datenpunktes
                                    
                                    clearSekunden();
                                    showSekunden();
                                    showMinute();
                                    showText();
                                    
                                    async function showSekunden() {                                                     //LED Sekunden anzeigen  
                                    
                                        let sekunde = new Date().getSeconds();                                          //Aktuelle Sekunde holen
                                      
                                        let dp_Sekunde = '';
                                        let farbe = 'black';
                                    
                                        dp_Sekunde = dp + 'Sekunden.s' + sekunde.toString();    	                    //Datenpunkt festlegen
                                        
                                        if (sekunde > 1) {  	                                                        //Ist die Sekunde > 1 wird die 
                                            setState(dp + 'Sekunden.s' + (sekunde - 1).toString(), 'black', true);      //LED Sekunde - 1 ausgeblendet
                                        } else {
                                            setState(dp + 'Sekunden.s59' , 'black', true);                              //Ist die Sekunde < 1 wird die 
                                        };                                                                              //LED 59 Sekunde ausgeblendet
                                        
                                        if (sekunde > 0) {
                                            setState(dp_Sekunde, 'yellow', true);                                       //LED Sekunde wird angezeigt
                                        };
                                    };
                                    
                                    async function showMinute() {                                                       //LED Minuten anzeigen
                                    
                                        let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                        let rest = minute % 5;                                                          //Minute durch 5 teilen und den Rest speichern
                                       
                                        if (rest == 0) {                                                                //Ist der rest 0 alle DP auf false setzten
                                            setState(dp + 'Minuten.Minute_1', '#2e2e2e', true);
                                            setState(dp + 'Minuten.Minute_2', '#2e2e2e', true);
                                            setState(dp + 'Minuten.Minute_3', '#2e2e2e', true);
                                            setState(dp + 'Minuten.Minute_4', '#2e2e2e', true);
                                        } else if (rest == 1) {                                                         //Minute = 6 oder 11 oder 16 usw.
                                            setState(dp + 'Minuten.Minute_1', 'orange', true);                          //LED Minute 1 wird orange
                                        } else if (rest == 2) {                                                         //Minute = 7 oder 12 oder 17 usw.
                                            setState(dp + 'Minuten.Minute_2', 'orange', true);                          //LED Minute 2 wird orange
                                        } else if (rest == 3) {                                                         //usw
                                            setState(dp + 'Minuten.Minute_3', 'orange', true);
                                        } else if (rest == 4) {
                                            setState(dp + 'Minuten.Minute_4', 'orange', true);
                                        };
                                    };
                                    
                                    async function showText() {                                                         //Zeit als Text wird angezeigt
                                    
                                        let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                        let stunde = new Date().getHours();                                             //Aktuelle Stunde holen
                                       
                                        clearUhr();                                                                     //alle dp in text auf false setzten
                                    
                                        if (minute >= 5 && minute <= 9) {                                               //Uhr Texte Minuten erstellen Start
                                            setState(dp + 'Text.fuenf_Minuten', true, true);
                                            setState(dp + 'Text.nach', true, true);
                                        } else if (minute >= 10 && minute <= 14) {
                                            setState(dp + 'Text.zehn_Minuten', true, true);
                                            setState(dp + 'Text.nach', true, true);
                                        } else if (minute >= 15 && minute <= 19) {
                                            setState(dp + 'Text.viertel', true, true);
                                            setState(dp + 'Text.nach', true, true);
                                        } else if (minute >= 20 && minute <= 24) {
                                            setState(dp + 'Text.zwanzig', true, true);
                                            setState(dp + 'Text.nach', true, true);
                                        } else if (minute >= 25 && minute <= 29) {
                                            setState(dp + 'Text.fuenf_Minuten', true, true);
                                            setState(dp + 'Text.vor', true, true);
                                            setState(dp + 'Text.halb', true, true);
                                        } else if (minute >= 30 && minute <= 34) {
                                            setState(dp + 'Text.halb', true, true);
                                        } else if (minute >= 35 && minute <= 39) {
                                            setState(dp + 'Text.fuenf_Minuten', true, true);
                                            setState(dp + 'Text.nach', true, true);
                                            setState(dp + 'Text.halb', true, true);
                                        } else if (minute >= 40 && minute <= 44) {
                                            setState(dp + 'Text.zwanzig', true, true);
                                            setState(dp + 'Text.vor', true, true);
                                        } else if (minute >= 45 && minute <= 49) {
                                            setState(dp + 'Text.viertel', true, true);
                                            setState(dp + 'Text.vor', true, true);
                                        } else if (minute >= 50 && minute <= 54) {
                                            setState(dp + 'Text.zehn_Minuten', true, true);
                                            setState(dp + 'Text.vor', true, true);
                                        } else if (minute >= 55 && minute <= 59) {
                                            setState(dp + 'Text.fuenf_Minuten', true, true);
                                            setState(dp + 'Text.vor', true, true);                                      //Uhr Texte Minuten erstellen Ende
                                        };
                                    
                                        if (stunde > 12 && stunde < 24) {                                               //Wenn Stunde > 12 und kleiner 24 ist
                                            stunde -= 12;                                                               //12 abziehen. Nur 12 Stunden anzeige
                                        };
                                    
                                        if (minute > 24) {                                                              //Von 0 - 24 Text nach stunde
                                            stunde += 1;                                                                //Von 25 - 59 Text vor stunde
                                        };
                                        
                                        if (minute >= 0 && minute <= 4) {                                               //Ist Minute 0 - 4 dann stunde + uhr
                                            setState(dp + 'Text.uhr', true, true);        
                                        };
                                    
                                        if (stunde == 1 && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                                            setState(dp + 'Text.ein', true, true);
                                        } else if (stunde == 1 && minute > 0) {
                                            setState(dp + 'Text.ein', true, true);
                                            setState(dp + 'Text.s', true, true);
                                        } else if (stunde == 2) {
                                            setState(dp + 'Text.zwei', true, true);
                                        } else if (stunde == 3) {
                                            setState(dp + 'Text.drei', true, true);
                                        } else if (stunde == 4) {
                                            setState(dp + 'Text.vier', true, true);
                                        } else if (stunde == 5) {
                                            setState(dp + 'Text.f', true, true);
                                            setState(dp + 'fuenf_Stunde', true, true);
                                        } else if (stunde == 6) {
                                            setState(dp + 'Text.sechs', true, true);
                                        } else if (stunde == 7) {
                                            setState(dp + 'Text.sieben', true, true);
                                        } else if (stunde == 8) {
                                            setState(dp + 'Text.acht', true, true);
                                        } else if (stunde == 9) {
                                            setState(dp + 'Text.n', true, true);
                                            setState(dp + 'Text.neun', true, true);
                                        } else if (stunde == 10) {
                                            setState(dp + 'Text.zehn_Stunde', true, true);
                                            setState(dp + 'Text.n', true, true);
                                        } else if (stunde == 11) {
                                            setState(dp + 'Text.f', true, true);
                                            setState(dp + 'Text.elf', true, true);
                                        } else if (stunde == 12 || stunde == 0) {
                                            setState(dp + 'Text.zwoelf', true, true);                                   //Uhr Texte Stunde erstellen Ende
                                        };
                                    };
                                    
                                    function clearSekunden() {                                                          //LED Sekunden werden ausgeblendet   
                                        let sekundenSelector = $(dp + "Sekunden.*");
                                        sekundenSelector.each(function(id, i) {
                                            setState(id, 'black', true);
                                        });
                                    };
                                    
                                    function clearUhr() {                                                               //Text zurücksetzten   
                                        let sekundenSelector = $(dp + "Text.*");
                                        sekundenSelector.each(function(id, i) {
                                            setState(id, false, true);
                                        });
                                    };
                                    
                                    schedule(cronSekunde, function () {showSekunden();});                               //Funktion Sekunden anzeigen aufrufen, jede Sekunde
                                    
                                    schedule(cronMinute, function () {showMinute();});                                  //Funktion Minute anzeigen aufrufen, jede Minute
                                    
                                    schedule(cronText, function () {showText();});                                      //Funktion Text anzeigen aufrufen, alle 5 Minuten
                                    
                                    

                                    und hier die VIS als Zip-File (zu gross)
                                    Die_Uhr.zip

                                    Ich hoffe ich habe beim Hochladen keine Fehler gemacht, ansonsten melden.

                                    Und DANKE das es Euch gefällt!!

                                    MfG
                                    Wastl

                                    Ps.
                                    Hier noch die Funktion zum Erstellen der Datenpunkte:

                                    let statesToCreate = [
                                    
                                    ['vis.Uhr.Text.fuenf_Minuten',     	{'name':'5 Minuten',  'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.zehn_Minuten',     	{'name':'10 minuten', 'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.nach',              	{'name':'nach',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.viertel',           	{'name':'viertel',    'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.zwanzig',           	{'name':'zwanzig',    'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.vor',           	    {'name':'vor',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.halb',           	{'name':'halb',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    
                                    ['vis.Uhr.Text.ein',           	    {'name':'ein',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.s',           	    {'name':'eins',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.uhr',           	    {'name':'Uhr',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.zwei',           	{'name':'Zwei',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.drei',           	{'name':'drei',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.drei_Stunde',       	{'name':'3 Stunde',   'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.vier',           	{'name':'vier',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.fuenf_Stunde',     	{'name':'5 Stunde',   'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.sechs',           	{'name':'sechs',      'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.sieben',           	{'name':'sieben',     'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.acht',           	{'name':'acht',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.neun',           	{'name':'neun',       'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.zehn_Stunde',     	{'name':'10 Stunde',  'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.elf',           	    {'name':'elf',        'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.zwoelf',           	{'name':'zwoelf',     'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.n',           	    {'name':'n',          'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    ['vis.Uhr.Text.f',           	    {'name':'f',          'type':'boolean', 'read':true, 'write':true, 'role':'info', 'def': false }],
                                    
                                    ['vis.Uhr.Minuten.Minute_1',       	{'name':'Minute 1',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
                                    ['vis.Uhr.Minuten.Minute_2',       	{'name':'Minute 2',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
                                    ['vis.Uhr.Minuten.Minute_3',       	{'name':'Minute 3',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
                                    ['vis.Uhr.Minuten.Minute_4',       	{'name':'Minute 4',   'type':'string', 'read':true, 'write':true, 'role':'info', 'def': '#2e2e2e' }],
                                    
                                    ['vis.Uhr.Sekunden.s1',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s2',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s3',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s4',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s5',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s6',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s7',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s8',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s9',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s10',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s11',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s12',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s13',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s14',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s15',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s16',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s17',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s18',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s19',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s20',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s21',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s22',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s23',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s24',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s25',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s26',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s27',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s28',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s29',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s30',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s31',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s32',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s33',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s34',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s35',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s36',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s37',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s38',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s39',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s40',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s41',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s42',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s43',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s44',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s45',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s46',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s47',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s48',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s49',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s50',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s51',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s52',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s53',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s54',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s55',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s56',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s57',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s58',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s59',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    ['vis.Uhr.Sekunden.s60',             {'name':'Sekunde 1',  'type':'string', 'read':true, 'write':true, 'role':'info', 'def': 'black' }],
                                    
                                    ];
                                    
                                    createUserStates('0_userdata.0', true, statesToCreate);
                                    
                                    dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #17

                                    @langer sagte in Eine besondere Uhr:

                                    Hier noch die Funktion zum Erstellen der Datenpunkte:

                                    Ich weiß nicht ob es wichtig ist/wird...?

                                    Beim boolschen Wert als role Info?

                                    https://www.iobroker.net/#de/documentation/dev/stateroles.md

                                    L 1 Reply Last reply
                                    0
                                    • dslraserD dslraser

                                      @langer sagte in Eine besondere Uhr:

                                      Hier noch die Funktion zum Erstellen der Datenpunkte:

                                      Ich weiß nicht ob es wichtig ist/wird...?

                                      Beim boolschen Wert als role Info?

                                      https://www.iobroker.net/#de/documentation/dev/stateroles.md

                                      L Offline
                                      L Offline
                                      Langer
                                      wrote on last edited by Langer
                                      #18

                                      Hallo,

                                      hier eine etwas andere Darstellung.

                                      Zuerst die etwas angepasste Funktion

                                      let cronSekunde = '* * * * * *';                                                    // Wird jede Sekunde ausgeführt
                                      let cronMinute  = "*/1 * * * *";                                                    // Wird jede Minute ausgeführt       
                                      let cronText    = "*/5 * * * *";                                                    // Wird alle 5 Minuten ausgeführt                                  
                                      let farbe       = 'yellow';
                                      
                                      let dp = "0_userdata.0.vis.Uhr.";                                                   //Erster Teil des Datenpunktes
                                      
                                      clearSekunden();
                                      showSekunden();
                                      showMinute();
                                      showText();
                                      
                                      async function showSekunden() {                                                     //LED Sekunden anzeigen  
                                      
                                          let sekunde = new Date().getSeconds();                                          //Aktuelle Sekunde holen
                                        
                                          let dp_Sekunde = '';
                                          let farbe = 'black';
                                      
                                          dp_Sekunde = dp + 'Sekunden.s' + sekunde.toString();    	                    //Datenpunkt festlegen
                                          
                                          if (sekunde > 0) {  	                                                        //Ist die Sekunde > 1 wird die 
                                              setState(dp + 'Sekunden.s' + (sekunde - 1).toString(), 'black', true);      //LED Sekunde - 1 ausgeblendet
                                          } else {
                                              setState(dp + 'Sekunden.s59' , 'black', true);                              //Ist die Sekunde < 1 wird die 
                                          };                                                                              //LED 59 Sekunde ausgeblendet
                                          
                                      //    if (sekunde >= 0) {
                                      //        setState(dp_Sekunde, 'yellow', true);                                       //LED Sekunde wird angezeigt
                                      //    };
                                          if (sekunde % 10 == 0) {
                                                farbe = 'cyan';
                                          } else if (sekunde % 5 == 0) {
                                              farbe = 'red';
                                          } else {
                                              farbe = 'yellow';
                                          };
                                      
                                          setState(dp_Sekunde, farbe, true);                                       //LED Sekunde wird angezeigt
                                      };
                                      
                                      async function showMinute() {                                                       //LED Minuten anzeigen
                                      
                                          let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                          let rest = minute % 5;                                                          //Minute durch 5 teilen und den Rest speichern
                                         
                                          if (rest == 0) {                                                                //Ist der rest 0 alle DP auf false setzten
                                              setState(dp + 'Minuten.Minute_1', '#2e2e2e', true);
                                              setState(dp + 'Minuten.Minute_2', '#2e2e2e', true);
                                              setState(dp + 'Minuten.Minute_3', '#2e2e2e', true);
                                              setState(dp + 'Minuten.Minute_4', '#2e2e2e', true);
                                          } else if (rest == 1) {                                                         //Minute = 6 oder 11 oder 16 usw.
                                              setState(dp + 'Minuten.Minute_1', 'orange', true);                          //LED Minute 1 wird orange
                                          } else if (rest == 2) {                                                         //Minute = 7 oder 12 oder 17 usw.
                                              setState(dp + 'Minuten.Minute_2', 'orange', true);                          //LED Minute 2 wird orange
                                          } else if (rest == 3) {                                                         //usw
                                              setState(dp + 'Minuten.Minute_3', 'orange', true);
                                          } else if (rest == 4) {
                                              setState(dp + 'Minuten.Minute_4', 'orange', true);
                                          };
                                      };
                                      
                                      async function showText() {                                                         //Zeit als Text wird angezeigt
                                      
                                          let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                          let stunde = new Date().getHours();                                             //Aktuelle Stunde holen
                                         
                                          clearUhr();                                                                     //alle dp in text auf false setzten
                                      
                                          if (minute >= 5 && minute <= 9) {                                               //Uhr Texte Minuten erstellen Start
                                              setState(dp + 'Text.fuenf_Minuten', true, true);
                                              setState(dp + 'Text.nach', true, true);
                                          } else if (minute >= 10 && minute <= 14) {
                                              setState(dp + 'Text.zehn_Minuten', true, true);
                                              setState(dp + 'Text.nach', true, true);
                                          } else if (minute >= 15 && minute <= 19) {
                                              setState(dp + 'Text.viertel', true, true);
                                              setState(dp + 'Text.nach', true, true);
                                          } else if (minute >= 20 && minute <= 24) {
                                              setState(dp + 'Text.zwanzig', true, true);
                                              setState(dp + 'Text.nach', true, true);
                                          } else if (minute >= 25 && minute <= 29) {
                                              setState(dp + 'Text.fuenf_Minuten', true, true);
                                              setState(dp + 'Text.vor', true, true);
                                              setState(dp + 'Text.halb', true, true);
                                          } else if (minute >= 30 && minute <= 34) {
                                              setState(dp + 'Text.halb', true, true);
                                          } else if (minute >= 35 && minute <= 39) {
                                              setState(dp + 'Text.fuenf_Minuten', true, true);
                                              setState(dp + 'Text.nach', true, true);
                                              setState(dp + 'Text.halb', true, true);
                                          } else if (minute >= 40 && minute <= 44) {
                                              setState(dp + 'Text.zwanzig', true, true);
                                              setState(dp + 'Text.vor', true, true);
                                          } else if (minute >= 45 && minute <= 49) {
                                              setState(dp + 'Text.viertel', true, true);
                                              setState(dp + 'Text.vor', true, true);
                                          } else if (minute >= 50 && minute <= 54) {
                                              setState(dp + 'Text.zehn_Minuten', true, true);
                                              setState(dp + 'Text.vor', true, true);
                                          } else if (minute >= 55 && minute <= 59) {
                                              setState(dp + 'Text.fuenf_Minuten', true, true);
                                              setState(dp + 'Text.vor', true, true);                                      //Uhr Texte Minuten erstellen Ende
                                          };
                                      
                                          if (stunde > 12 && stunde < 24) {                                               //Wenn Stunde > 12 und kleiner 24 ist
                                              stunde -= 12;                                                               //12 abziehen. Nur 12 Stunden anzeige
                                          };
                                      
                                          if (minute > 24) {                                                              //Von 0 - 24 Text nach stunde
                                              stunde += 1;                                                                //Von 25 - 59 Text vor stunde
                                          };
                                          
                                          if (minute >= 0 && minute <= 4) {                                               //Ist Minute 0 - 4 dann stunde + uhr
                                              setState(dp + 'Text.uhr', true, true);        
                                          };
                                      
                                          if ((stunde == 1 || stunde == 13) && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                                              setState(dp + 'Text.ein', true, true);
                                          } else if ((stunde == 1 || stunde == 13) && minute > 0) {
                                              setState(dp + 'Text.ein', true, true);
                                              setState(dp + 'Text.s', true, true);
                                          } else if (stunde == 2) {
                                              setState(dp + 'Text.zwei', true, true);
                                          } else if (stunde == 3) {
                                              setState(dp + 'Text.drei', true, true);
                                          } else if (stunde == 4) {
                                              setState(dp + 'Text.vier', true, true);
                                          } else if (stunde == 5) {
                                              setState(dp + 'Text.f', true, true);
                                              setState(dp + 'Text.fuenf_Stunde', true, true);
                                          } else if (stunde == 6) {
                                              setState(dp + 'Text.sechs', true, true);
                                          } else if (stunde == 7) {
                                              setState(dp + 'Text.sieben', true, true);
                                          } else if (stunde == 8) {
                                              setState(dp + 'Text.acht', true, true);
                                          } else if (stunde == 9) {
                                              setState(dp + 'Text.n', true, true);
                                              setState(dp + 'Text.neun', true, true);
                                          } else if (stunde == 10) {
                                              setState(dp + 'Text.zehn_Stunde', true, true);
                                              setState(dp + 'Text.n', true, true);
                                          } else if (stunde == 11) {
                                              setState(dp + 'Text.f', true, true);
                                              setState(dp + 'Text.elf', true, true);
                                          } else if (stunde == 12 || stunde == 0) {
                                              setState(dp + 'Text.zwoelf', true, true);                                   //Uhr Texte Stunde erstellen Ende
                                          };
                                      };
                                      
                                      function clearSekunden() {                                                          //LED Sekunden werden ausgeblendet   
                                          let sekundenSelector = $(dp + "Sekunden.*");
                                          sekundenSelector.each(function(id, i) {
                                              setState(id, 'black', true);
                                          });
                                      };
                                      
                                      function clearUhr() {                                                               //Text zurücksetzten   
                                          let sekundenSelector = $(dp + "Text.*");
                                          sekundenSelector.each(function(id, i) {
                                              setState(id, false, true);
                                          });
                                      };
                                      
                                      schedule(cronSekunde, function () {showSekunden();});                               //Funktion Sekunden anzeigen aufrufen, jede Sekunde
                                      
                                      schedule(cronMinute, function () {showMinute();});                                  //Funktion Minute anzeigen aufrufen, jede Minute
                                      
                                      schedule(cronText, function () {showText();});                                      //Funktion Text anzeigen aufrufen, alle 5 Minuten
                                      
                                      

                                      Hier die View als Text:

                                      Uhr_Rund.txt

                                      und hier ein Bild:

                                      Uhr_Rund.png

                                      Änderungen:
                                      Darstellung Rund
                                      Sekunden Led's alle 5 Sekunden rot und alle 10 Sekunden cyan.

                                      Unten noch eine Laufschrift mit Aussentemperatur und Aktuellem Wetter von der Wetterstation, Dank an @sigi234 .

                                      Mfg
                                      Wastl

                                      liv-in-skyL 1 Reply Last reply
                                      2
                                      • L Langer

                                        Hallo,

                                        hier eine etwas andere Darstellung.

                                        Zuerst die etwas angepasste Funktion

                                        let cronSekunde = '* * * * * *';                                                    // Wird jede Sekunde ausgeführt
                                        let cronMinute  = "*/1 * * * *";                                                    // Wird jede Minute ausgeführt       
                                        let cronText    = "*/5 * * * *";                                                    // Wird alle 5 Minuten ausgeführt                                  
                                        let farbe       = 'yellow';
                                        
                                        let dp = "0_userdata.0.vis.Uhr.";                                                   //Erster Teil des Datenpunktes
                                        
                                        clearSekunden();
                                        showSekunden();
                                        showMinute();
                                        showText();
                                        
                                        async function showSekunden() {                                                     //LED Sekunden anzeigen  
                                        
                                            let sekunde = new Date().getSeconds();                                          //Aktuelle Sekunde holen
                                          
                                            let dp_Sekunde = '';
                                            let farbe = 'black';
                                        
                                            dp_Sekunde = dp + 'Sekunden.s' + sekunde.toString();    	                    //Datenpunkt festlegen
                                            
                                            if (sekunde > 0) {  	                                                        //Ist die Sekunde > 1 wird die 
                                                setState(dp + 'Sekunden.s' + (sekunde - 1).toString(), 'black', true);      //LED Sekunde - 1 ausgeblendet
                                            } else {
                                                setState(dp + 'Sekunden.s59' , 'black', true);                              //Ist die Sekunde < 1 wird die 
                                            };                                                                              //LED 59 Sekunde ausgeblendet
                                            
                                        //    if (sekunde >= 0) {
                                        //        setState(dp_Sekunde, 'yellow', true);                                       //LED Sekunde wird angezeigt
                                        //    };
                                            if (sekunde % 10 == 0) {
                                                  farbe = 'cyan';
                                            } else if (sekunde % 5 == 0) {
                                                farbe = 'red';
                                            } else {
                                                farbe = 'yellow';
                                            };
                                        
                                            setState(dp_Sekunde, farbe, true);                                       //LED Sekunde wird angezeigt
                                        };
                                        
                                        async function showMinute() {                                                       //LED Minuten anzeigen
                                        
                                            let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                            let rest = minute % 5;                                                          //Minute durch 5 teilen und den Rest speichern
                                           
                                            if (rest == 0) {                                                                //Ist der rest 0 alle DP auf false setzten
                                                setState(dp + 'Minuten.Minute_1', '#2e2e2e', true);
                                                setState(dp + 'Minuten.Minute_2', '#2e2e2e', true);
                                                setState(dp + 'Minuten.Minute_3', '#2e2e2e', true);
                                                setState(dp + 'Minuten.Minute_4', '#2e2e2e', true);
                                            } else if (rest == 1) {                                                         //Minute = 6 oder 11 oder 16 usw.
                                                setState(dp + 'Minuten.Minute_1', 'orange', true);                          //LED Minute 1 wird orange
                                            } else if (rest == 2) {                                                         //Minute = 7 oder 12 oder 17 usw.
                                                setState(dp + 'Minuten.Minute_2', 'orange', true);                          //LED Minute 2 wird orange
                                            } else if (rest == 3) {                                                         //usw
                                                setState(dp + 'Minuten.Minute_3', 'orange', true);
                                            } else if (rest == 4) {
                                                setState(dp + 'Minuten.Minute_4', 'orange', true);
                                            };
                                        };
                                        
                                        async function showText() {                                                         //Zeit als Text wird angezeigt
                                        
                                            let minute = new Date().getMinutes();                                           //Aktuelle Minute holen
                                            let stunde = new Date().getHours();                                             //Aktuelle Stunde holen
                                           
                                            clearUhr();                                                                     //alle dp in text auf false setzten
                                        
                                            if (minute >= 5 && minute <= 9) {                                               //Uhr Texte Minuten erstellen Start
                                                setState(dp + 'Text.fuenf_Minuten', true, true);
                                                setState(dp + 'Text.nach', true, true);
                                            } else if (minute >= 10 && minute <= 14) {
                                                setState(dp + 'Text.zehn_Minuten', true, true);
                                                setState(dp + 'Text.nach', true, true);
                                            } else if (minute >= 15 && minute <= 19) {
                                                setState(dp + 'Text.viertel', true, true);
                                                setState(dp + 'Text.nach', true, true);
                                            } else if (minute >= 20 && minute <= 24) {
                                                setState(dp + 'Text.zwanzig', true, true);
                                                setState(dp + 'Text.nach', true, true);
                                            } else if (minute >= 25 && minute <= 29) {
                                                setState(dp + 'Text.fuenf_Minuten', true, true);
                                                setState(dp + 'Text.vor', true, true);
                                                setState(dp + 'Text.halb', true, true);
                                            } else if (minute >= 30 && minute <= 34) {
                                                setState(dp + 'Text.halb', true, true);
                                            } else if (minute >= 35 && minute <= 39) {
                                                setState(dp + 'Text.fuenf_Minuten', true, true);
                                                setState(dp + 'Text.nach', true, true);
                                                setState(dp + 'Text.halb', true, true);
                                            } else if (minute >= 40 && minute <= 44) {
                                                setState(dp + 'Text.zwanzig', true, true);
                                                setState(dp + 'Text.vor', true, true);
                                            } else if (minute >= 45 && minute <= 49) {
                                                setState(dp + 'Text.viertel', true, true);
                                                setState(dp + 'Text.vor', true, true);
                                            } else if (minute >= 50 && minute <= 54) {
                                                setState(dp + 'Text.zehn_Minuten', true, true);
                                                setState(dp + 'Text.vor', true, true);
                                            } else if (minute >= 55 && minute <= 59) {
                                                setState(dp + 'Text.fuenf_Minuten', true, true);
                                                setState(dp + 'Text.vor', true, true);                                      //Uhr Texte Minuten erstellen Ende
                                            };
                                        
                                            if (stunde > 12 && stunde < 24) {                                               //Wenn Stunde > 12 und kleiner 24 ist
                                                stunde -= 12;                                                               //12 abziehen. Nur 12 Stunden anzeige
                                            };
                                        
                                            if (minute > 24) {                                                              //Von 0 - 24 Text nach stunde
                                                stunde += 1;                                                                //Von 25 - 59 Text vor stunde
                                            };
                                            
                                            if (minute >= 0 && minute <= 4) {                                               //Ist Minute 0 - 4 dann stunde + uhr
                                                setState(dp + 'Text.uhr', true, true);        
                                            };
                                        
                                            if ((stunde == 1 || stunde == 13) && minute == 0) {                                               //Uhr Texte Stunde erstellen Start
                                                setState(dp + 'Text.ein', true, true);
                                            } else if ((stunde == 1 || stunde == 13) && minute > 0) {
                                                setState(dp + 'Text.ein', true, true);
                                                setState(dp + 'Text.s', true, true);
                                            } else if (stunde == 2) {
                                                setState(dp + 'Text.zwei', true, true);
                                            } else if (stunde == 3) {
                                                setState(dp + 'Text.drei', true, true);
                                            } else if (stunde == 4) {
                                                setState(dp + 'Text.vier', true, true);
                                            } else if (stunde == 5) {
                                                setState(dp + 'Text.f', true, true);
                                                setState(dp + 'Text.fuenf_Stunde', true, true);
                                            } else if (stunde == 6) {
                                                setState(dp + 'Text.sechs', true, true);
                                            } else if (stunde == 7) {
                                                setState(dp + 'Text.sieben', true, true);
                                            } else if (stunde == 8) {
                                                setState(dp + 'Text.acht', true, true);
                                            } else if (stunde == 9) {
                                                setState(dp + 'Text.n', true, true);
                                                setState(dp + 'Text.neun', true, true);
                                            } else if (stunde == 10) {
                                                setState(dp + 'Text.zehn_Stunde', true, true);
                                                setState(dp + 'Text.n', true, true);
                                            } else if (stunde == 11) {
                                                setState(dp + 'Text.f', true, true);
                                                setState(dp + 'Text.elf', true, true);
                                            } else if (stunde == 12 || stunde == 0) {
                                                setState(dp + 'Text.zwoelf', true, true);                                   //Uhr Texte Stunde erstellen Ende
                                            };
                                        };
                                        
                                        function clearSekunden() {                                                          //LED Sekunden werden ausgeblendet   
                                            let sekundenSelector = $(dp + "Sekunden.*");
                                            sekundenSelector.each(function(id, i) {
                                                setState(id, 'black', true);
                                            });
                                        };
                                        
                                        function clearUhr() {                                                               //Text zurücksetzten   
                                            let sekundenSelector = $(dp + "Text.*");
                                            sekundenSelector.each(function(id, i) {
                                                setState(id, false, true);
                                            });
                                        };
                                        
                                        schedule(cronSekunde, function () {showSekunden();});                               //Funktion Sekunden anzeigen aufrufen, jede Sekunde
                                        
                                        schedule(cronMinute, function () {showMinute();});                                  //Funktion Minute anzeigen aufrufen, jede Minute
                                        
                                        schedule(cronText, function () {showText();});                                      //Funktion Text anzeigen aufrufen, alle 5 Minuten
                                        
                                        

                                        Hier die View als Text:

                                        Uhr_Rund.txt

                                        und hier ein Bild:

                                        Uhr_Rund.png

                                        Änderungen:
                                        Darstellung Rund
                                        Sekunden Led's alle 5 Sekunden rot und alle 10 Sekunden cyan.

                                        Unten noch eine Laufschrift mit Aussentemperatur und Aktuellem Wetter von der Wetterstation, Dank an @sigi234 .

                                        Mfg
                                        Wastl

                                        liv-in-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        wrote on last edited by
                                        #19

                                        @langer

                                        tolle arbeit !

                                        ist es möglich,

                                        • alle farben als variblen , oben im sript zu definieren (z.b die orangen vierecke und die frbe der uhrzeit - also "zehn nach fünf" - zehn und fünf in einer farbe und das "nach" in einer anderen

                                        • kann man das "es ist" evtl auch als variable einführen ?

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        L 2 Replies Last reply
                                        0
                                        • liv-in-skyL liv-in-sky

                                          @langer

                                          tolle arbeit !

                                          ist es möglich,

                                          • alle farben als variblen , oben im sript zu definieren (z.b die orangen vierecke und die frbe der uhrzeit - also "zehn nach fünf" - zehn und fünf in einer farbe und das "nach" in einer anderen

                                          • kann man das "es ist" evtl auch als variable einführen ?

                                          L Offline
                                          L Offline
                                          Langer
                                          wrote on last edited by
                                          #20

                                          @liv-in-sky

                                          Deine Wünsche sind machbar, dauert aber einen Moment, weil meine bessere Hälfte für das Wochenende "Arbeiten am Haus" vorgesehen hat.

                                          Aber ich werde es am Montag in Angriff nehmen.

                                          Des weiteren wird es noch eine 3 Version der Uhr geben und zwar als Pyramide.

                                          MfG
                                          Wastl

                                          1 Reply Last reply
                                          2
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          523

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe