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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. VIS-Widget-Wunsch: Countdown

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

VIS-Widget-Wunsch: Countdown

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
63 Beiträge 21 Kommentatoren 21.3k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #7

    @htrecksler:

    @Bluefox - womit machst Du diese schönen animierten Screenshots? `

    http://forum.iobroker.org/viewtopic.php … 5357#p5360

    😉

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #8

      Hallo Bluefox,
      @Bluefox:

      Javascript:

      createState('countdown', 10);
      createState('afterCount', false);
      createState('countTrigger', false);
      function count() {
          setTimeout(function () {
              var timer = getState('countdown').val || 10;
              if (timer > 1) {
                  setState('countTrigger', false);
                  setState('countdown', timer - 1);
                  count();
              } else {
                  setState('countdown', 0);
                  setState('afterCount', true);
              }
          }, 1000);
      }
      
      on('countTrigger', function (obj) {
          if (obj.newState.val === true || obj.newState.val === 'true' || obj.newState.val == 1) {
              setState('countdown', 10);
              setState('afterCount', false);
              count();
          }    
      });
      

      Widgets:

      ! [ { "tpl": "tplHqButton", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.countTrigger", "min": "false", "max": "true", "iconName": "img/bulb_off.png", "btIconWidth": "56", "offsetAuto": "true", "leftOffset": "15", "topOffset": "55", "timeAsInterval": "true", "infoLeftFontSize": "12", "infoFontRightSize": "12" }, "style": { "left": "64px", "top": "61px" }, "widgetSet": "hqWidgets" }, { "tpl": "tplHqCircle", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.countdown", "min": "0", "max": "10", "step": "1", "displayPrevious": "true", "readOnly": true, "unit": "s" }, "style": { "left": "174px", "top": "58px" }, "widgetSet": "hqWidgets" }, { "tpl": "tplHqButton", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.afterCount", "min": "false", "max": "true", "iconName": "img/bulb_off.png", "btIconWidth": "56", "offsetAuto": "true", "leftOffset": "15", "topOffset": "55", "timeAsInterval": "true", "infoLeftFontSize": "12", "infoFontRightSize": "12" }, "style": { "left": "274px", "top": "61px" }, "widgetSet": "hqWidgets" } ] `
      vielen Dank für die Hilfe! Es funktioniert sehr zuverlässig und braucht nicht annähernd so viel Saft wie mein altes Skript.

      Unter DashUI hatte ich einen Countdown, der bei Abwesenheit nach 50s die Alarmanlage (Variable) auf scharf schaltete. Eine Besonderheit: Der Countdown musste unterbrochen werden können, falls man vor Ablauf des Countdowns doch wieder in die Wohnung geht. Das Skript verwendete die Systemzeit, damit der Countdown immer gleicht schnell ablief, auch wenn der Rechner unter hoher Last lief.

      Sah so aus:

      ! 261_bildschirmfoto_2015-05-17_um_13.45.31.jpg
      ! A L T E S S K R I P T - bitte nicht verwenden!

      /* Alarmanlage Scharfschaltung Countdown
      >! Erstellung der Variablen Scharfschaltung Gesamtdauer und Timer Countdown (für VIS)
      Die Variable working sorgt dafür, dass der Timer nur einmal gestartet wird
      */
      >! createState('Alarmanlage_Timer_Gesamtdauer', 40, {forceCreation: true}, {name: 'Alarmanlage Timer Gesamtdauer', type: 'number'}); // kann vom User geändert werden
      createState('Alarmanlage_Scharfschaltung_Countdown', 0, {forceCreation: true}, {name: 'Alarmanlage Scharfschaltung Countdown', type: 'number'});  // zur Anzeige in VIS
      >! var idAlarmanlage = "javascript.0.Alarmanlage"/*Status Alarmanlage (r)*/,      // Variable Alarmanlage ValueList: 'unscharf;scharf'
          idAnwesenheit = "javascript.0.Anwesenheit"/*Status Anwesenheit*/,          // Variable Anwesenheit (abwesend; anwesend)
          idRestzeitTimer = "javascript.0.Alarmanlage_Scharfschaltung_Countdown",    // Variable mit der Restzeit des Counters in Sekunden aus JavaScript Funktion timer()
      >!     working = false, // timer läuft
          abbruch = false, // timer soll abgebrochen werden
      
          // Folgende Variable wird erstmal nicht verwendet, in Zeile 84 wird der wert erstmal manuell eingegeben
          idStartzeit = "javascript.0.Alarmanlage_Timer_Gesamtdauer";                // Variable legt die Countdown Dauer ins s fest
      >! // Die Gesamtzeit in Sekunden kann vom User eingetragen eingetragen. Hier erfolgt Meldung bei Änderung
      subscribe( {
          id: idStartzeit,
          change: 'ne'
      }, function (data) { // Status ändert sich
          log('Neue Dauer für Countdown bis Alarmscharfschaltung eingestellt: ' + data.newState.val + ' Sekunden');
      });
      >! function timer(time,update,complete) {
          var start = new Date().getTime();
          var interval = setInterval(function() {
              working = true;
              var anwesenheit = getState(idAnwesenheit),
                  now = time-(new Date().getTime()-start),
                  restzeit = Math.floor(now/1000);
              setState(idRestzeitTimer, restzeit);
              if (now % 1000 === 0 ) { // diese drei Zeilen können nach dem Testen gelöscht werden
                  log('Countdown Rest: ' + restzeit + 's','info'); 
              }
              if (now <= 0) {
                  clearInterval(interval);
                  complete();
                  setState(idRestzeitTimer, 0);
                  working = false;
              }
              if (anwesenheit.val === 1) { // wenn während des Countdowns auf Anwesenheit geschaltet wird
                  clearInterval(interval);
                  complete();
                  log('Javascript-Timer zur VIS Anzeige wegen Anwesenheit abgebrochen.');
                  setState(idRestzeitTimer, 0);
                  setState(idAlarmanlage, 0);
              }
              if (abbruch === true) {
                  clearInterval(interval);
                  complete();
                  setState(idRestzeitTimer, 0);
                  setState(idAlarmanlage, 0);
                  working = false;
                  log('Javascript-Timer zur VIS Anzeige wegen Abbruch-Code durch Anwesenheit abgebrochen.');
              }
          });
      }
      >! // Abbruch des Timers bei einsetzender Anwesenheit und Start des Timers bei einsetzender Abwesenheit timer(startzeit 40s, restzeit, aktionen danach)
      subscribe( {
          id: idAnwesenheit, 
          change: 'ne'
      }, function (data) {
          if (data.newState.val === 1 && data.oldState.val !== 1) { // Anwesenheit hergestellt
              abbruch = true;
              timer(0,0,
                  function() { // what to do after
                      setState(idRestzeitTimer, 0);
                      setState(idAlarmanlage, 0);
                      working = false;
                      log('Working: ' + working);
                  }
              );
          } else if (data.newState.val === 0) { // Abwesenheit hergestellt
              log('Working: ' + working);
              if (working !== true) { // wenn Timer noch nicht läuft
                  var eingabe_startzeit = 40, // vom User eingegeben - später kommt der Wert aus der Variable idStartzeit
                      startzeit = 1000 * Math.floor(eingabe_startzeit);
                      log(eingabe_startzeit);
                      log(startzeit);
                      log('TimerStart!');
                  timer(
                      startzeit, // in Millisekunden (zB 40000)
                      function(timeleft) { // über den Datenpunkt idRestzeitTimer kann hier die Restzeit ausgelesen werden (Zeile 39)
                      },
                      function() { // Nach Ablauf des Timers
                          log('Javascript-Timer zur VIS Anzeige bis Alarmscharfschaltung abgelaufen', 'info');
                          working = false;
                          setState(idAlarmanlage, 1);
                          log('Alarmanlage nach Ablauf des Countdowns eingeschaltet.','info');
                      }
                  ); // Ende timer()
              } // Ende Working   
          } // Ende Abwesenheit
      });
      

      Ich habe die Portierung zu ioBroker aber nicht hinbekommen, deshalb bin ich dir sehr dankbar für diese tolle und vielseitig nutzbare Lösung mit der Kombination Javascript Adapter und VIS-Widget.

      Ich habe im Widget einfach unter Allgemein/Wert/Max: {javascript.0.countdown} eingetragen (siehe Edit). Damit muss ich das Widget nicht mehr ändern, wenn ich mich für eine andere Zeit entscheide.

      Sichtbar ist das Widget nur, wenn javascript.0.countdown > 0.

      Zwei Fragen bleiben noch: Wo kann ich die Farbe des Widgets ändern (hellblau zu rot), und geht bei dir auch nur die maximale Kantenlänge von 200px für die Kreisrunde Darstellung?

      Gruß 😄

      Pix

      Edit: Habe eine weitere Variable Countdown_Gesamtzeit erstellt (die kann ich ändern, ohne das Skript zu editieren). Und diese steht natürlich hinter max: {javascript.0.Countdown_Gesamtzeit}

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #9

        @pix:

        Zwei Fragen bleiben noch: Wo kann ich die Farbe des Widgets ändern (hellblau zu rot) `
        48_circle.jpg
        @pix:

        und geht bei dir auch nur die maximale Kantenlänge von 200px für die Kreisrunde Darstellung? `
        Das ist ein Bug. Danke.

        Du kannst jetzt schon /opt/iobroker/node_modules/iobroker.vis/www/widgets/hqWidgets/js/hqWidgets.js Zeile 1017

        var $knobDiv = $scalaInput.knob({
                        width:   $div.width(),
                        release: function () ...
        
        

        auf

        var $knobDiv = $scalaInput.knob({
                        width:   $div.width(),
                        height:   $div.height(),
                        release: function () ...
        
        

        Ändern und dann in /opt/iobroker:

        npm upload vis
        
        

        schreiben und jetzt schon damit arbeiten.

        J 1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #10

          Hallo Bluefox,

          danke für die schnelle Hilfe.

          Ist der Befehl korrekt?
          @Bluefox:

          Ändern und dann in /opt/iobroker:

          CODE: ALLES AUSWÄHLEN

          npm upload vis

          schreiben und jetzt schon damit arbeiten. `

          npm-Hilfe sagt, upload gibt es nicht.

          Usage: npm <command></command>
          
          where <command></command> is one of:
              add-user, adduser, apihelp, author, bin, bugs, c, cache,
              completion, config, ddp, dedupe, deprecate, docs, edit,
              explore, faq, find, find-dupes, get, help, help-search,
              home, i, info, init, install, isntall, issues, la, link,
              list, ll, ln, login, ls, outdated, owner, pack, prefix,
              prune, publish, r, rb, rebuild, remove, repo, restart, rm,
              root, run-script, s, se, search, set, show, shrinkwrap,
              star, stars, start, stop, submodule, t, tag, test, tst, un,
              uninstall, unlink, unpublish, unstar, up, update, v,
              version, view, whoami
          
          

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            schrieb am zuletzt editiert von
            #11

            @pix:

            Hallo Bluefox,

            danke für die schnelle Hilfe.

            Ist der Befehl korrekt?
            @Bluefox:

            Ändern und dann in /opt/iobroker:

            CODE: ALLES AUSWÄHLEN

            npm upload vis

            schreiben und jetzt schon damit arbeiten. `

            npm-Hilfe sagt, upload gibt es nicht.

            Usage: npm <command></command>
            
            where <command></command> is one of:
                add-user, adduser, apihelp, author, bin, bugs, c, cache,
                completion, config, ddp, dedupe, deprecate, docs, edit,
                explore, faq, find, find-dupes, get, help, help-search,
                home, i, info, init, install, isntall, issues, la, link,
                list, ll, ln, login, ls, outdated, owner, pack, prefix,
                prune, publish, r, rb, rebuild, remove, repo, restart, rm,
                root, run-script, s, se, search, set, show, shrinkwrap,
                star, stars, start, stop, submodule, t, tag, test, tst, un,
                uninstall, unlink, unpublish, unstar, up, update, v,
                version, view, whoami
            
            

            Gruß

            Pix `
            Nicht korrekt.

            es muss````
            iobroker upload vis

            
            sein. (in /opt/iobroker)
            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #12

              Hallo,
              @Bluefox:

              Widgets:

              ! [ { "tpl": "tplHqButton", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.countTrigger", "min": "false", "max": "true", "iconName": "img/bulb_off.png", "btIconWidth": "56", "offsetAuto": "true", "leftOffset": "15", "topOffset": "55", "timeAsInterval": "true", "infoLeftFontSize": "12", "infoFontRightSize": "12" }, "style": { "left": "64px", "top": "61px" }, "widgetSet": "hqWidgets" }, { "tpl": "tplHqCircle", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.countdown", "min": "0", "max": "10", "step": "1", "displayPrevious": "true", "readOnly": true, "unit": "s" }, "style": { "left": "174px", "top": "58px" }, "widgetSet": "hqWidgets" }, { "tpl": "tplHqButton", "data": { "visibility-cond": "==", "visibility-val": 1, "oid": "javascript.0.afterCount", "min": "false", "max": "true", "iconName": "img/bulb_off.png", "btIconWidth": "56", "offsetAuto": "true", "leftOffset": "15", "topOffset": "55", "timeAsInterval": "true", "infoLeftFontSize": "12", "infoFontRightSize": "12" }, "style": { "left": "274px", "top": "61px" }, "widgetSet": "hqWidgets" } ] `
              leider sind die schönen Countdown Widgets aus VIS verschwunden. Ich vermute, das liegt an den fehlenden hqWidgets, korrekt?

              Gruß

              Pix

              ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

              1 Antwort Letzte Antwort
              0
              • htreckslerH Offline
                htreckslerH Offline
                htrecksler
                Forum Testing
                schrieb am zuletzt editiert von
                #13

                ja, ich denke schon, meine (wenigen) hqWidgets sind auch seit dem letzten Update verschwunden.

                Aber lange kann es nicht mehr dauern. Es gibt immerhin schon den neuen hqWidget-Adapter.

                Allerdings noch ohne Widgets. Auch wenn man diesen als Instanz hinzufügt hat man in vis noch keine Widgets.

                Es sei denn ich mach irgendwas falsch.

                Aber so ist die Vorfreude auf die hqWidgets größer 😄 😄 😄

                Gruss Hermann

                ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #14

                  bei mir waren in dem Paket einzelne widgets enthalten.

                  muss msl zu hause nachsehen, ob die nach dem update noch drin sind.

                  Gesendet von meinem Cynus T7 mit Tapatalk

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

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

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • htreckslerH Offline
                    htreckslerH Offline
                    htrecksler
                    Forum Testing
                    schrieb am zuletzt editiert von
                    #15

                    Ja, zwischendurch waren mal ein paar Widgets mit dem Hinweis "Beta" da.

                    Aber seit gestern (js-controller 0.7.5 und vis 0.6.5) sind die weg.

                    Wie gesagt, den Adapter habe ich als Instanz hinzugefügt und dann sowohl den vis-Adapter als auch den web-Adapter neu geladen.

                    Anschließend sogar (musste eh mal wieder sein) das ganze System rebootet.

                    Aber ich habe in vis auf der linken Seite keine hqwidgets mehr

                    Gruss Hermann

                    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                    1 Antwort Letzte Antwort
                    0
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #16

                      @htrecksler:

                      Ja, zwischendurch waren mal ein paar Widgets mit dem Hinweis "Beta" da.

                      Aber seit gestern (js-controller 0.7.5 und vis 0.6.5) sind die weg.

                      Wie gesagt, den Adapter habe ich als Instanz hinzugefügt und dann sowohl den vis-Adapter als auch den web-Adapter neu geladen.

                      Anschließend sogar (musste eh mal wieder sein) das ganze System rebootet.

                      Aber ich habe in vis auf der linken Seite keine hqwidgets mehr `
                      filename="HQ-widgets.jpg" index="0">~~
                      Bei mir sind sie da.

                      Ich weiss nicht mehr, da war aber viel über einander zu installieren und reboot und…

                      So richtig auf Anhieb lief das auch nicht

                      Gesendet von meinem LIFETAB_S785X mit Tapatalk

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

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

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • htreckslerH Offline
                        htreckslerH Offline
                        htrecksler
                        Forum Testing
                        schrieb am zuletzt editiert von
                        #17

                        na toll… ich will auch :? 😮

                        Gruss Hermann

                        ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          pix
                          schrieb am zuletzt editiert von
                          #18

                          Hab im laufenden System

                          ./iobroker upgrade iobroker.vis
                          

                          ausgeführt. Danach waren die hqwidgets und damit die Countdowns wieder da.

                          Gruß

                          Pix

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          1 Antwort Letzte Antwort
                          0
                          • htreckslerH Offline
                            htreckslerH Offline
                            htrecksler
                            Forum Testing
                            schrieb am zuletzt editiert von
                            #19

                            Der Befehl für Windows war irgendwie anders, aber ich finde den Post nicht mehr.

                            Ich glaube ich werde morgen mal den Visa-Adapter löschen nachdem ich eine komplettsicherung gemacht habe.

                            EDIT:

                            Geschafft. Unter Windows ist das in einer Admin Dos Box im ioBroker Verzeichnis der Befehl:

                            iobroker upgrade iobroker.vis
                            
                            

                            Dann dauerts einen Moment und dann kommt ganz viel Data…

                            Und jetzt hab ich 5 hqWidgets ... Yes, ich liebe es wenn etwas funktioniert...
                            378_thermostatsteuerung.js

                            Gruss Hermann

                            ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                            1 Antwort Letzte Antwort
                            0
                            • BluefoxB Offline
                              BluefoxB Offline
                              Bluefox
                              schrieb am zuletzt editiert von
                              #20

                              @htrecksler:

                              Der Befehl für Windows war irgendwie anders, aber ich finde den Post nicht mehr.

                              Ich glaube ich werde morgen mal den Visa-Adapter löschen nachdem ich eine komplettsicherung gemacht habe. `
                              Du gehst mit der Konsole, da wo iobroker liegt. (Ich denke, die Konsole muss admin-Rechte haben)

                              cd C:\Program Files\ioBroker
                              iobroker upgrade iobroker.vis
                              
                              
                              1 Antwort Letzte Antwort
                              0
                              • htreckslerH Offline
                                htreckslerH Offline
                                htrecksler
                                Forum Testing
                                schrieb am zuletzt editiert von
                                #21

                                Danke Bluefox.

                                Siehe mein Edit im letzten Post.

                                Ich hab einfach probiert und irgendwann hatte ich es dann.

                                Trotzdem Danke.

                                Hast Du schon eine "Roadmap" für weitere hqWidgets?

                                Aber nicht falsch verstehen… ich bin sehr geduldig.

                                Gruss Hermann

                                ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                                1 Antwort Letzte Antwort
                                0
                                • BluefoxB Offline
                                  BluefoxB Offline
                                  Bluefox
                                  schrieb am zuletzt editiert von
                                  #22

                                  Momentan bin ich an Rolladen: 48_shutter.gif
                                  Danach will ich Tür und Schloss machen. Dann weiß ich nicht.

                                  1 Antwort Letzte Antwort
                                  0
                                  • P Offline
                                    P Offline
                                    pix
                                    schrieb am zuletzt editiert von
                                    #23

                                    Hall Bluefox,
                                    @Bluefox:

                                    Momentan bin ich an Rolladen: `
                                    hui, das freut mich. Zwar offtopic: Wie schon mal beschrieben, wünsche ich mir, das Level auch umkehren zu können (Level 100% bedeutet Rollladen zu [bei Homepilot], statt auf [bei Homematic)].

                                    Gruß,

                                    Pix

                                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                    1 Antwort Letzte Antwort
                                    0
                                    • T Offline
                                      T Offline
                                      thomassch
                                      schrieb am zuletzt editiert von
                                      #24

                                      Hallo,

                                      was macht die Zeile
                                      > var timer = getState('countdown').val || 10;

                                      ??

                                      bei mir zählt leider der Countdown fast doppelt zu schnell ??

                                      Ich habe den Countdown über eine Variabel im trigger ON drin.

                                      Funktioniert soweit auch alles, aber eben nur fast doppelt so schnell ?

                                      // Idee von: http://forum.iobroker.net/viewtopic.php?t=737
                                      // 05.05.2016
                                      
                                      var logging = true;
                                      var szpfad = 'javascript.0.CountDown.';
                                      
                                      // Variablen erstellen (Javascript Instanz nach dem ersten Speichern des Skriptes einmal neustarten)
                                      function create(szZaehler) {
                                          if (logging) log('Countdown-> function create Name: '+szZaehler,'info');
                                          createState(szpfad+szZaehler              , 300,   {name: szZaehler              ,desc: 'Countdownzähler',unit: 's'});
                                          createState(szpfad+szZaehler+'_abgelaufen', false, {name: szZaehler+'_abgelaufen',desc: 'Countdown abgelaufen'});
                                          createState(szpfad+szZaehler+'_trigger'   , false, {name: szZaehler+'_trigger'   ,desc: 'Trigger'});
                                          createState(szpfad+szZaehler+'_max'       , 300,   {name: szZaehler+'_max'       ,desc: 'Startwert'});
                                      }
                                      
                                      // Zählen
                                      function count(szZaehler) {
                                          setTimeout(function () {
                                              //if (logging) log('CountDown-> function count: '+szZaehler,'info');
                                              var timer = getState(szZaehler).val ;//|| 300;
                                              //if (logging) log('CountDown->count()->var timer: '+timer,'info');
                                              if (timer > 1) {
                                                  setState(szZaehler+'_trigger', false);
                                                  setState(szZaehler, timer - 1);
                                                  count(szZaehler);
                                              } else {
                                                  setState(szZaehler, 0);
                                                  setState(szZaehler+'_abgelaufen', true);
                                              }
                                          }, 1000);
                                      }
                                      // Countown ausführen
                                      function start(myobj,szCountDownObjekt){
                                          // den Namen des Hauptobjektes bilden
                                          var szName = szpfad+szCountDownObjekt;
                                          // nun den Max wert laden
                                          if (logging) log('Countdown->function start->szName: '+szName,'info');        
                                          var iMax = getState(szName+'_max').val;  
                                          if (logging) log('CountDown: iMax: '+iMax, 'info');
                                      
                                          if (myobj.newState.val === true || myobj.newState.val === 'true' || myobj.newState.val == 1) {
                                              if (logging) log('Countdown->function start->Countdown start: '+myobj.name + "->" + szCountDownObjekt,'info');        
                                              setState(szName, iMax);
                                              setState(szName+'_abgelaufen', false);
                                              setState(szName+'_trigger', true);
                                              count(szName);
                                          } else{
                                              if (logging) log('Countdown->function start->Countdown abgelaufen: '+myobj.name + "->" + szCountDownObjekt,'info');        
                                              setState(szName+'_trigger', false);
                                              setState(szName, 0);
                                              setState(szName+'_abgelaufen', true);        
                                          }
                                      }
                                      
                                      // ON Trigger
                                      //on({id:"hm-rega.0.16281", change:"ne"},  function(obj) { xaktion(obj, "(i) Alarmüberwachung Zone 1","-> einschalten","-> ausschalten"); }); // varAlarm1CmdEin
                                      
                                      on({id:"hm-rega.0.16282", change:"ne"}, function(obj) {
                                          if (logging) log('Countdown->ON erkannt: '+'hm-rega.0.16281','info');        
                                          start(obj,'Z01_Alarm_Zone1');
                                      });
                                      
                                      // beim Start die Zähler anlegen
                                      if (logging) log('Countdown->Variablen anlegen','info');
                                      create('Z01_Alarm_Zone1');
                                      

                                      ******* iobroker auf Intel PC, Raspberry PI4 + Homematic CCU *******

                                      1 Antwort Letzte Antwort
                                      0
                                      • BluefoxB Offline
                                        BluefoxB Offline
                                        Bluefox
                                        schrieb am zuletzt editiert von
                                        #25

                                        @pix:

                                        Hall Bluefox,
                                        @Bluefox:

                                        Momentan bin ich an Rolladen: `
                                        hui, das freut mich. Zwar offtopic: Wie schon mal beschrieben, wünsche ich mir, das Level auch umkehren zu können (Level 100% bedeutet Rollladen zu [bei Homepilot], statt auf [bei Homematic)].

                                        Gruß,

                                        Pix `
                                        Ist schon ewig da.
                                        48_2016-06-13_17_38_49-edit_vis.png

                                        1 Antwort Letzte Antwort
                                        0
                                        • P Offline
                                          P Offline
                                          pix
                                          schrieb am zuletzt editiert von
                                          #26

                                          @Bluefox:

                                          Ist schon ewig da. `
                                          Oh, das hab ich übersehen. Vielen Dank. Beim Metro Widget für Jalousien gibt es den "invertieren"-Knopf aber nicht, oder?

                                          Gruß

                                          Pix

                                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          338

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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