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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Views in Frame/Widget anzeigen lassen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    947

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Views in Frame/Widget anzeigen lassen

Geplant Angeheftet Gesperrt Verschoben Visualisierung
51 Beiträge 9 Kommentatoren 8.8k Aufrufe
  • Ä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.
  • T Offline
    T Offline
    tempestas
    schrieb am zuletzt editiert von
    #37

    So, ich habe nochmal getestet und es scheint zu laufen ohne weitere Anpassung.

    Ich erhalte ein Log beim ein und beim ausschalten zu meinen Testzeiten.

    ! javascript.1 2017-11-29 10:13:00.828 info script.js.common.Skript1: Steckdose wurde ausgeschaltet javascript.1 2017-11-29 10:12:17.826 info script.js.common.Skript1: 13 10 javascript.1 2017-11-29 10:12:15.268 info script.js.common.Skript1: 00 10 host.iobrokerNUC 2017-11-29 10:10:03.940 info instance system.adapter.dwd.0 terminated with code 0 (OK) host.iobrokerNUC 2017-11-29 10:10:03.784 info instance system.adapter.tvspielfilm.0 terminated with code 0 (OK) host.iobrokerNUC 2017-11-29 10:10:03.375 info instance system.adapter.tankerkoenig.0 terminated with code 0 (OK) host.iobrokerNUC 2017-11-29 10:10:00.135 info instance system.adapter.tankerkoenig.0 started with pid 26364 host.iobrokerNUC 2017-11-29 10:10:00.093 info instance system.adapter.tvspielfilm.0 started with pid 26352 host.iobrokerNUC 2017-11-29 10:10:00.044 info instance system.adapter.dwd.0 started with pid 26341 javascript.1 2017-11-29 10:08:00.451 info script.js.common.Skript1: Steckdose wurde eingeschaltet !

    du müsstest das also jetzt bei dir testen

    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      Ace-k
      schrieb am zuletzt editiert von
      #38

      Werde das gleich mal testen .

      Hast du nix mehr angepasst ?

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        tempestas
        schrieb am zuletzt editiert von
        #39

        nein, nichts mehr.

        Nur zum testen eben Log-Ausgaben eingebaut, die das o.g. Ergebnis liefern

        <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

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

          @tempestas:

          ungetestet, aber probier es mal so (Code muss in ein Javascript Skript, dieses dann starten).

          In Vis musst du dann noch eine View erstellen, in der du auf die einzelnen Datenpunkte linkst, um diese zu steuern. Dazu weiter unten:

          ! ````
          ! // ##########
          // Skript für Ace-K zum Schalten einer Steckdose zwischen zu zwei definierten Zeitpunkten. Steuerbar über Vis
          // Dank an paul53 für das Schedule Skript
          // v 0.1, ungetestet, tempestas, 28.11.2017
          ! var force = true; // erzwingt bei Neustart des Skript Anlegen der States mti den nachfolgend definierten Werten
          ! // States anlegen
          ! createState('Zeitschaltung.Steckdose1.Aktiv', false);
          ! createState('Zeitschaltung.Steckdose1.Start.Stunde',12, force, {
          name: 'Startstunde ',
          type: 'number',
          min: '0',
          max: '23',
          });
          ! createState('Zeitschaltung.Steckdose1.Start.Minute',0, force, {
          name: 'Startminute ',
          type: 'number',
          min: '0',
          max: '59',
          });
          ! createState(Zeitschaltung.Steckdose1.Start.MinuteString',"00", force, { // String für Anzeige in VIS; wird via function an numerischen Wert angeglichen
          name: 'Startminute ',
          type: 'string',
          ! });
          ! createState('Zeitschaltung.Steckdose1.Start.Zeit',"12:00", force, { // String der Startzeit
          name: 'Startzeit ',
          type: 'string',
          ! });
          ! createState('Zeitschaltung.Steckdose1.Ende.Stunde',13, force, {
          name: 'Endstunde ',
          type: 'number',
          min: '0',
          max: '23',
          });
          ! createState('Zeitschaltung.Steckdose1.Ende.Minute',0, force, {
          name: 'Endminute ',
          type: 'number',
          min: '00',
          max: '59',
          });
          ! createState('Zeitschaltung.Steckdose1.Ende.MinuteString',00, force, { // String für Anzeige in VIS; wird via function an numerischen Wert angeglichen
          name: 'Endminute ',
          type: 'string',
          min: '00',
          max: '59',
          });
          ! createState('Zeitschaltung.Steckdose1.Ende.Zeit',"13:00", force, { // String der Endzeit
          name: 'Endzeit ',
          type: 'string',
          ! });
          ! // ##############################################################################################################
          // ### Functions zur Anpassung der Minuten Strings an die numerischen Werte sowie Anpassung Gesamtzeit Strings ##
          // ##############################################################################################################
          ! var idAktiv = 'javascript.0.Zeitschaltung.Steckdose1.Aktiv';
          ! var idMinStart = 'javascript.0.Zeitschaltung.Steckdose1.Start.Minute' ;
          var idStdStart = 'javascript.0.Zeitschaltung.Steckdose1.Start.Stunde' ;
          var idMinStartString = 'javascript.0.Zeitschaltung.Steckdose1.Start.MinuteString';
          var idStartzeit = 'javascript.0.Zeitschaltung.Steckdose1.Start.Zeit';
          ! var idMinEnd = 'javascript.0.Zeitschaltung.Steckdose1.Ende.Minute';
          var idStdEnd = 'javascript.0.Zeitschaltung.Steckdose1.Ende.Stunde';
          var idMinEndString = 'javascript.0.Zeitschaltung.Steckdose1.Ende.MinuteString';
          var idEndzeit = 'javascript.0.Zeitschaltung.Steckdose1.Ende.Zeit';
          ! // Bei Änderung Minuten Startzeit
          on(idMinStart, function() {
          var minuten = getState(idMinStart).val;
          var minutenString = "";
          if(minuten < 10) {
          minutenString = '0' +minuten;
          }
          else minutenString = minuten.toString();
          ! setState(idMinStartString, minutenString); // Anpassen der Minuten

          var stunde = getState(idStdStart).val;                                      // Auslesen Stunde
          setState(idStartzeit, stunde + ':' + minutenString);                        // Einsetzen Stunde und Minute in Startzeit-String
          

          ! });
          ! // Bei Änderung Minuten Endzeit
          on(idMinEnd, function() {
          var minuten = getState(idMinEnd).val;
          var minutenString = "";
          if(minuten < 10) {
          minutenString = '0' +minuten;
          }
          else minutenString = minuten.toString();

          setState(idMinEndString, minutenString);
          

          ! var stunde = getState(idStdEnd).val; // Auslesen Stunde
          setState(idEndzeit, stunde + ':' + minutenString); // Einsetzen Stunde und Minute in Endzeit-String
          !
          });
          ! // Bei Änderung Stunde Startzeit
          on(idStdStart, function() {

          var minutenString = getState(idMinStartString).val;
          var stunde = getState(idStdStart).val;                                     
          setState(idStartzeit, stunde + ':' + minutenString);            
          

          ! });
          ! // Bei Änderung Stunde Endzeit
          on(idStdEnd, function() {

          var minutenString = getState(idMinEndString).val;
          var stunde = getState(idStdEnd).val;                                      // Auslesen Stunde
          setState(idEndzeit, stunde + ':' + minutenString);                        // Einsetzen Stunde und Minute in Endzeit-String
          

          ! });
          ! // ##################################################################################################
          // VARIABLEN UND IDS DEFINIEREN
          // ##################################################################################################
          ! // STARTZEIT TRIGGER (SCHEDULE)
          ! var einschalten = getState(idStartzeit).val.split(':'); // erstmaliges einlesen der Startzeit, aufteilen in Stunden und Minuten
          ! var timerEinschalten = schedule(einschalten[1] + ' ' + einschalten[0] + ' * * 0-6', fEinschalten); // initiales Festlegen des Start-Zeitpunkts
          ! on(idStartzeit, function(dp) { // Triggern bei Änderung des Startzeit-Strings
          einschalten= dp.state.val.split(':');
          clearSchedule(timerEinschalten); // altes Schedule löschen
          timerEinschalten = schedule(einschalten[1] + ' ' + einschalten[0] + ' * * 0-6', fEinschalten);
          });
          ! // ENDZEIT TRIGGER ( SCHEDULE)
          ! var ausschalten= getState(idEndzeit).val.split(':'); // erstmaliges einlesen der Endzeit, aufteilen in Stunden und Minuten
          ! var timerAusschalten= schedule(ausschalten[1] + ' ' + ausschalten[0] + ' * * 0-6', fAusschalten); // initiales Festlegen des Endzeitpunkts
          ! on(idEndzeit, function(dp) { // Triggern bei Änderung des Endzeit-Strings
          ausschalten= dp.state.val.split(':');
          clearSchedule(timerAusschalten); // altes Schedule löschen
          timerAusschalten = schedule(ausschalten[1] + ' ' + ausschalten[0] + ' * * 0-6', fAusschalten);
          });
          ! // Functions
          ! function fAusschalten(){
          if(idAktiv) setState( [Hier deine Steckdose eintragen], false); // nur, wenn die Automatik eingeschaltet ist wird die Steckdose geschaltet
          }

          function fEinschalten(){
          if(idAktiv) setState( [Hier deine Steckdose eintragen], true); // nur, wenn die Automatik eingeschaltet ist wird die Steckdose geschaltet
          }

          ! ````

          Damit sollte es funktionieren, ist aber ungetestet und nur hier im Forum zusammengeschrieben. Es können also Fehler enthalten sein.

          In VIS legst du dir dann eine View an.

          mit diesem Widget

          ! ````
          [{"tpl":"tplIconInc","data":{"oid":"javascript.0.Zeitschaltung.Steckdose1.Start.Stunde","visibility-cond":"==","visibility-val":1,"step":"-1","minmax":"0","text":"","repeat_delay":"800","repeat_interval":"800","name":"Arbeit_Stunde_Start_minus","invert_icon":false,"src":"/icons-mfd-png/control_minus.png","alt":"leiser","gestures-offsetX":0,"gestures-offsetY":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,"visibility-groups-action":"hide","locked":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},"style":{"left":"201px","top":"210px","width":"63px","height":"63px","background":"rgba(250,250,250,0)","z-index":"25","border-width":"2px","border-radius":"0px","border-color":"#cac4c4","cursor":"pointer"},"widgetSet":"jqui"}]

          
          linkst du auf den angelegten State für die Startstunde. Ein gleiches Widget dann für die Startminute. Einmal musst du es für Minuten bzw Stunden rauf und einmal für runter anlegen. Also ibsgesamt vier Widgets
          
          und dann noch für die Endstunde und Endminute analog. Damit hast du dann acht Widgets, mit denen du die Zeit aus Vis heraus beeinflussen kannst.
          
          anzeigen tust du es hiermit
          
          >! ````
          [{"tpl":"tplValueString","data":{"oid":"javascript.0.Zeitschaltung.Steckdose1.Start.Zeit","visibility-cond":"==","visibility-val":"","html_append":" :","name":"WoEn Stunde Start","visibility-oid":"","gestures-offsetX":0,"gestures-offsetY":0,"visibility-groups-action":"hide","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,"locked":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},"style":{"left":"257px","top":"154px","color":"#FFFFFF","width":"86px","height":"54px","text-align":"right","letter-spacing":"","line-height":"","border-style":"none","border-width":"1px","border-radius":"5px","border-color":"gray","z-index":"310","font-size":"40px","font-weight":"normal"},"widgetSet":"basic"}]
          

          Das ganze machst du dann entsprechend für die Endzeit auch.

          Zu guter letzt nimmst du dieses Widget

          ! ````
          [{"tpl":"tplMetroValueBoolCheckbox","data":{"oid":"javascript.0.Zeitschaltung.Steckdose1.Aktiv","visibility-cond":"==","visibility-val":1,"gestures-offsetX":0,"gestures-offsetY":0,"html_prepend":"Aktiv:","name":"Arbeitstag_Ansage_Aktiv","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,"visibility-groups-action":"hide","locked":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},"style":{"left":"689px","top":"49px","z-index":"310","border-radius":"5px","color":"#FFFFFF","font-size":"","width":"90px","height":"46px"},"widgetSet":"metro"}]

          
          für die Aktivierung.
          
          Aussehen tut das ganze dann so:
          
          beispiel.png
          
          Viel Erfolg `  
          

          Hallo tempestas,

          hast du wirklich schön gelöst.

          Ich habe hier mal eine Alternative für die Zeitsteuerung. Nur zum Ansehen. Sie basiert nicht auf schedule(), sondern auf einer on()-Subscription auf time. Ich steuere damit meine Rollläden.

          Hier ein Ausschnitt für die erste Öffnung (Rollläden werden zu verschiedenen Zeiten immer ein wenig mehr geöffnet)

          
          // Erste Öffnung <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
          // Teil Öffnen morgens zB um 08:00Uhr
          
          var idErsteOeffnung_Stunde = instanz + pfad + "auf.1.Stunde",
              idErsteOeffnung_Minute = instanz + pfad + "auf.1.Minute";
          
          createState(idErsteOeffnung_Stunde, {
              def:  8,
              min: 0,
              max: 23,
              type: 'number',
              name: 'Schlafzimmer Rollläden erste Öffnung - Stunde'
          });
          createState(idErsteOeffnung_Minute, {
              def:  '00',
              type: 'string',
              name: 'Schlafzimmer Rollläden erste Öffnung - Minute'
          });
          
          function setFirstTimer() {
              if (firstTimer) unsubscribe(firstTimer); // wenn was drin steht, dann löschen
              firstTimer = on({ // neuen Timer anlegen
                  time: { // Zeiten definieren, nur Stunde und Minute
                      hour: parseInt(getState(idErsteOeffnung_Stunde).val, 10), 
                      minute: parseInt( getState(idErsteOeffnung_Minute).val, 10)
                  }
              }, function () { // wenn Zeiten erreicht, dann dieses Ausführen
                  log('Schlafzimmer - Erste Öffnung'); // Log
                  ersteOeffnung(); // Befehl zur Ausführung (andere Funktion)
              });
          }
          
          on(idErsteOeffnung_Stunde, function(obj) {
              log('Stundentimer erste Öffnung neu geschrieben: ' + obj.state.val); // wenn Stundenzahl geändert (zB in VIS)
              setFirstTimer();  // obige Funktion ausführen
          });
          
          on(idErsteOeffnung_Minute, function(obj) {
              // führende Null für VIS anfügen (Code nicht ändern, sonst Überlauf möglich)
              if ( (parseInt(obj.state.val) < 10) && (obj.state.val.toString().length <2) ) setState(idErsteOeffnung_Minute, '0' + obj.state.val);
              log('Minutentimer erste Öffnung neu geschrieben: ' + obj.state.val);
              setFirstTimer(); 
          });
          
          

          Die führende Null ist ein kosmetisches/gestalterisches Thema. Natürlich schreibt man 10:09 Uhr und nicht 10:9 Uhr. Deshalb muss in VIS die Minute als String angegeben werden. Der String wird mit parseInt() in eine Zahl umgewandelt. Und andersherum bei Änderung durch die increment Widgets wird bei <10 ein String-Null ("0") vorangehängt. Deshalb sind die Minuten-States auch Zeichenketten (kann man mit den Stunden States auch machen).

          Ein Number Widget könnte uns diese Arbeit abnehmen, wenn es erlaubte, die Stellen vor dem Komma anzugeben. Aber es gibt das nicht, also müssen wir basteln :-D

          261_bildschirmfoto_2017-11-29_um_11.39.04.jpg

          Ende des kleinen Ausflugs :lol: ,

          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
            tempestas
            schrieb am zuletzt editiert von
            #41

            @pix:

            Hallo tempestas,

            hast du wirklich schön gelöst.

            Pix `

            danke, fühle mich gebauchpinselt. Gute "Lehrer" hier im Forum. So ganz langsam wird es was :D

            Wobei mir jedesmal sobald paul oder du was posten wieder auffällt: es geht kürzer und eleganter ;)

            <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              Ace-k
              schrieb am zuletzt editiert von
              #42

              Hoi

              hatte heute mal zeit zu schauen

              ! Log
              ! 14:17:42.199 [info] javascript.0 Stop script script.js.steckdose
              ! 14:17:44.289 [info] javascript.0 Start javascript script.js.steckdose
              ! 14:17:44.293 [info] javascript.0 script.js.steckdose: registered 6 subscriptions and 2 schedules

              ! javascript.0 2017-11-30 14:22:26.577 info script.js.steckdose: registered 6 subscriptions and 2 schedules
              ! javascript.0 2017-11-30 14:22:26.576 info Start javascript script.js.steckdose
              ! javascript.0 2017-11-30 14:22:26.297 info received all objects
              ! javascript.0 2017-11-30 14:22:25.262 info received all states
              ! javascript.0 2017-11-30 14:22:23.478 info requesting all objects
              ! javascript.0 2017-11-30 14:22:23.470 info requesting all states
              ! javascript.0 2017-11-30 14:22:23.443 info starting. Version 3.4.0 in /opt/iobroker/node_modules/iobroker.javascript, node: v6.10.0

              das sagt das log und so sieht es in View aus..

              passt das?

              was muss nun mit welchem Button verknüpft werden?
              2562_1.jpg

              1 Antwort Letzte Antwort
              0
              • T Offline
                T Offline
                tempestas
                schrieb am zuletzt editiert von
                #43

                Hallo Ace-K,

                bau doch beim ein- und ausschalten der Steckdose einfach nochmal ein log mit ein, also

                log("Steckdose ausgeschaltet");
                
                

                jeweils in die Ein- bzw Ausschalt-Function. Dann hast du eine sichtbare Mitteilung, ob das Skript so läuft, wie es soll.

                Bzgl. VIS habe ich dir alle Widgets gegeben; die, die ich gepostet hatte habe ich sogar gleich auf korrekte States (Object ID) verlinkt. Ich denke mal, diese einzufügen und dann ggf. eine weitere Kopie hinsichtlich der OID anzupassen, das schaffst du.

                Viel Erfolg

                <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  tempestas
                  schrieb am zuletzt editiert von
                  #44

                  Habe jetzt mal den aktuellen Stand inklusive aller Widgets hier bereit gestellt für alle:

                  http://forum.iobroker.net/viewtopic.php … 22#p100722

                  <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    Conquest
                    schrieb am zuletzt editiert von
                    #45

                    @pix:

                    Ich habe hier mal eine Alternative für die Zeitsteuerung. Nur zum Ansehen. Sie basiert nicht auf schedule(), sondern auf einer on()-Subscription auf time. Ich steuere damit meine Rollläden.

                    Hier ein Ausschnitt für die erste Öffnung (Rollläden werden zu verschiedenen Zeiten immer ein wenig mehr geöffnet)

                    
                    // Erste Öffnung <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                    // Teil Öffnen morgens zB um 08:00Uhr
                    
                    var idErsteOeffnung_Stunde = instanz + pfad + "auf.1.Stunde",
                        idErsteOeffnung_Minute = instanz + pfad + "auf.1.Minute";
                    
                    createState(idErsteOeffnung_Stunde, {
                        def:  8,
                        min: 0,
                        max: 23,
                        type: 'number',
                        name: 'Schlafzimmer Rollläden erste Öffnung - Stunde'
                    });
                    createState(idErsteOeffnung_Minute, {
                        def:  '00',
                        type: 'string',
                        name: 'Schlafzimmer Rollläden erste Öffnung - Minute'
                    });
                    
                    function setFirstTimer() {
                        if (firstTimer) unsubscribe(firstTimer); // wenn was drin steht, dann löschen
                        firstTimer = on({ // neuen Timer anlegen
                            time: { // Zeiten definieren, nur Stunde und Minute
                                hour: parseInt(getState(idErsteOeffnung_Stunde).val, 10), 
                                minute: parseInt( getState(idErsteOeffnung_Minute).val, 10)
                            }
                        }, function () { // wenn Zeiten erreicht, dann dieses Ausführen
                            log('Schlafzimmer - Erste Öffnung'); // Log
                            ersteOeffnung(); // Befehl zur Ausführung (andere Funktion)
                        });
                    }
                    
                    on(idErsteOeffnung_Stunde, function(obj) {
                        log('Stundentimer erste Öffnung neu geschrieben: ' + obj.state.val); // wenn Stundenzahl geändert (zB in VIS)
                        setFirstTimer();  // obige Funktion ausführen
                    });
                    
                    on(idErsteOeffnung_Minute, function(obj) {
                        // führende Null für VIS anfügen (Code nicht ändern, sonst Überlauf möglich)
                        if ( (parseInt(obj.state.val) < 10) && (obj.state.val.toString().length <2) ) setState(idErsteOeffnung_Minute, '0' + obj.state.val);
                        log('Minutentimer erste Öffnung neu geschrieben: ' + obj.state.val);
                        setFirstTimer(); 
                    });
                    
                    

                    Die führende Null ist ein kosmetisches/gestalterisches Thema. Natürlich schreibt man 10:09 Uhr und nicht 10:9 Uhr. Deshalb muss in VIS die Minute als String angegeben werden. Der String wird mit parseInt() in eine Zahl umgewandelt. Und andersherum bei Änderung durch die increment Widgets wird bei <10 ein String-Null ("0") vorangehängt. Deshalb sind die Minuten-States auch Zeichenketten (kann man mit den Stunden States auch machen).

                    Ein Number Widget könnte uns diese Arbeit abnehmen, wenn es erlaubte, die Stellen vor dem Komma anzugeben. Aber es gibt das nicht, also müssen wir basteln :-D

                    Bildschirmfoto 2017-11-29 um 11.39.04.jpg

                    Ende des kleinen Ausflugs :lol: ,

                    Gruß

                    Pix `

                    Hallo Pix,

                    genau sowas habe ich für meine Rolläden zu Hause gesucht. Da ich leider keine Ahnung und auch kein Talent für Javascript habe wollte ich dich Fragen ob du dein komplettes Script hier teilen würdest? Würde mir echt weiterhelfen. Vielen Dank schon mal.

                    Gruß Torsten

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      Conquest
                      schrieb am zuletzt editiert von
                      #46

                      Hallo, schade das Pix sich nicht gemeldet hat. Vielleicht kann mir ja jemand anderes weiterhelfen. Ich suche ein Script womit ich meine Rolläden entweder per Astrofunktion oder selbst festgelegter Zeit über VIS ( wie auf dem angehängten Bild zu sehen) steuern kann. Wäre super wenn sich jemand melden würde.

                      Gruß Torsten
                      470_bildschirmfoto_2017-09-14_um_00.09.05.jpg

                      1 Antwort Letzte Antwort
                      0
                      • C Offline
                        C Offline
                        Conquest
                        schrieb am zuletzt editiert von
                        #47

                        Gibt es wirklich niemand der sowas ähnliches in Betrieb hat? Oder liegt es daran das es niemand unter dieser Überschrift findet dann eröffne ich ein neues Thema.

                        Gruß Torsten

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

                          Hallo Torsten,

                          deine letzte Anfrage war vom 27.4. Das ist gerade mal 10 Tage her und außerdem noch der Beginn der Osterferien gewesen.

                          Direkt am nächsten Tag hast du schon geschubst:
                          @spoerl.torsten:

                          Schubs `

                          gestern erst moniertest du es sei
                          @spoerl.torsten:

                          schade das Pix sich nicht gemeldet hat. `

                          und heute pushst du schon wieder.

                          Es soll tatsächlich User geben die ein Privatleben haben und dann auch noch welche, die ihre Brötchen verdienen müssen.

                          Gruß

                          Rainer

                          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
                          • C Offline
                            C Offline
                            Conquest
                            schrieb am zuletzt editiert von
                            #49

                            Sorry bin manchmal ein bisschen ungeduldig. Werde dann mal abwarten ob sich jemand meldet.

                            Gruß Torsten

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              manu96
                              schrieb am zuletzt editiert von
                              #50

                              @spoerl.torsten:

                              Hallo, schade das Pix sich nicht gemeldet hat. Vielleicht kann mir ja jemand anderes weiterhelfen. Ich suche ein Script womit ich meine Rolläden entweder per Astrofunktion oder selbst festgelegter Zeit über VIS ( wie auf dem angehängten Bild zu sehen) steuern kann. Wäre super wenn sich jemand melden würde.

                              Gruß Torsten `

                              Hallo Torsten,

                              kurze Frage hat sich bei dir jemand gemeldet und ggf. erklärt wie man so etwas umsetzen kann? Würde mich persönlich auch sehr interessieren.

                              Gruß,

                              Manuel

                              1 Antwort Letzte Antwort
                              0
                              • C Offline
                                C Offline
                                Conquest
                                schrieb am zuletzt editiert von
                                #51

                                @manu96:

                                @spoerl.torsten:

                                Hallo, schade das Pix sich nicht gemeldet hat. Vielleicht kann mir ja jemand anderes weiterhelfen. Ich suche ein Script womit ich meine Rolläden entweder per Astrofunktion oder selbst festgelegter Zeit über VIS ( wie auf dem angehängten Bild zu sehen) steuern kann. Wäre super wenn sich jemand melden würde.

                                Gruß Torsten `

                                Hallo Torsten,

                                kurze Frage hat sich bei dir jemand gemeldet und ggf. erklärt wie man so etwas umsetzen kann? Würde mich persönlich auch sehr interessieren.

                                Gruß,

                                Manuel ` Hallo Manuel,

                                nein hier hat sich leider niemand bei mir gemeldet.

                                Bin im Moment in einem anderen Thread aktiv dort geht es auch um Zeitsteuerung mit Rollladen.

                                Ist im Moment bei mir noch in der Testphase aber funktioniert schon ganz gut.

                                viewtopic.php?t=11060

                                Gesendet von meinem MHA-L29 mit Tapatalk

                                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

                                686

                                Online

                                32.6k

                                Benutzer

                                82.0k

                                Themen

                                1.3m

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

                                • Du hast noch kein Konto? Registrieren

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