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
    15
    1
    873

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

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
    #21

    ich kann dazu sagen:

    vergiss die CCU2 außer als Hub und mach alles in ioBroker. Nervt anfangs etwas, das umzustellen, lohnt sich aber

    <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
      #22

      Okay.

      Das ja dass was ich möchte ..

      Hast du einen Ansatz für mich ?

      Ausgang :

      Schaltbarezwischensteckdose soll eine neue Zeit bekommen .

      Mo-so 12-13 Uhr .

      Mund wie ich das auch wieder löschen kann falls nicht mehr benötigt

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

        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:
        
         filename="beispiel.png" index="0">~~
        
        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
        • P Offline
          P Offline
          PapaChriLo
          schrieb am zuletzt editiert von
          #24

          Wenn ich das jetzt alles richtig mitgelesen habe möchtest du eine Funksteckdose

          täglich um eine bestimmte Zeit schalten.

          Diese Zeit hast du in einem Programm auf der CCU hinterlegt.

          Diese Zeit kannst du meines Wissen auch nur in dem Programm auf der CCU direkt ändern.

          Dafür gibt es keinen Datenpunkt, den du im ioBroker brauchst, damit du das ändern könntest.

          Ich würde das Programm von der CCU löschen und ein kleines Javascript machen, dann kannst du die Zeit auch über die View beliebig ändern.

          Wenn du dich damit nicht auskennst wird dir sicherlich einer der Script Profis auf die Sprünge helfen.

          LG

          Christian

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

            Nachtrag:

            Javascript Adapter muss installiert sein.

            Auf Reiter "Skripte" gehen. Dort auf das icon für neues Skript gehen (das sechste von links bzw das erste des zweiten Blocks).

            Beim aufpoppenden "select type" Javascript auswählen.

            Den Code reinkopieren. Dort wo es im Skript steht, deine Steckdose einfügen. Am einfachsten geht es, indem du rechts auf den Button "id einfügen" klickst und dich dann zu deiner Steckdose durchklickst.

            Skript speichern.

            Dann links in der Liste den roten "pause" Button anklicken, das Skript wird gestartet (grün, mit play Pfeil).

            <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
              #26

              Okay vielen Dank .

              Ich teste es gleich mal .

              Überall wo in Script „Steckdose 1 „ steht muss dafür die Id der Steckdose rein ?

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

                Nein!

                nur ganz am Ende, bei fEinschalten und fAusschalten.

                Da steht in [ hier deine Steckdosen-ID]

                Da trägst du es via id einfügen ein; du überschreibst inklusive der eckigen Klammern

                Das Skript legt dir im Order

                Javascript.0 dann die Struktur wie folgt an:

                javascript.0.Zeitschaltung.Steckdose1.XYZ wobei XYZ eben Startstunde, Minute usw sind.

                auf diese Art könntest du, falls notwendig, das ganze z.B. einfach kopieren und einfach nur statt "Steckdose1" Steckdose2 schreiben. Damit hättest du ein zweites Skript für eine andere Steckdose (deren ID du dann am Ende wieder einfügen müsstest).

                Dann hättest du als Struktur

                javascript.0.Zeitschaltung.Steckdose1.XYZ

                javascript.0.Zeitschaltung.Steckdose2.XYZ

                Zeitschaltung is dabei ein Oberordner, darunter die Ordner für die verschiedenen Steckdosen und darunter liegen die angelegten States

                <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
                  #28

                  Jupp Danke .

                  Hab es gefunden [emoji106]

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

                    ich hab ja wirklich keine ahnugn von Java.

                    ein paar sachen wo rote ! waren habe ich beseitigt.

                    aber im log steht dann

                    ! 11:40:33.595 [info] javascript.0 Stop script script.js.steckdose
                    ! 12:28:37.349 [info] javascript.0 Stop script script.js.steckdose
                    ! 12:28:38.754 [info] javascript.0 Start javascript script.js.steckdose
                    ! 12:28:38.755 [warn] javascript.0 at script.js.steckdose:146:19
                    ! 12:28:38.756 [error] javascript.0 script.js.steckdose: TypeError: Cannot read property 'split' of null
                    ! 12:28:38.757 [error] javascript.0 at script.js.steckdose:146:44
                    ! 12:28:39.237 [warn] javascript.0 at Object. (script.js.steckdose:122:25)
                    ! 12:28:39.238 [warn] javascript.0 at Object. (script.js.steckdose:131:25)

                    und im View habe ich dann die 8 "knöpfe" + und -

                    auswählen kann ich jeweils in ENDE und START

                    Minute

                    MinuteString

                    Stunde

                    Zeit

                    fehlt dort noch etwas? was evtl mit dem LOG zu tun hat?

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

                      Wie gesagt, war im Forum zusammengetippt. Da ist definitiv noch ein Fehler drin. Dafür bin ich aber nicht bewandert genug, um den jetzt "nebenbei" zu beseitigen. Muss ich mir im JS Editor anschauen

                      <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
                        #31

                        Was passiert, wenn du das Skript nochmal aus- und anschaltest? Was sagt das Log?

                        <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
                          #32

                          Alles klar [emoji106]

                          Hast schön Zeit gefunden ?

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

                            Sorry.

                            Hab deinen Beitrag vorhin nicht gelesen .

                            Also jetzt geht es glaube . Keine Fehlermeldung mehr .

                            Info javascript .0 Start

                            Stop Script . Js….

                            Muss nachher mal in vis schauen

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

                              ich hatte ja gebeten, das Skript einfach nochmal zu starten. Hast du offenbar nicht getan. EDIT: ok, ist dir auch gerade aufgefallen

                              Die Fehler habe ich beim erstmaligen Starten auch. Beim nächsten Mal dann nicht mehr.

                              Dürfte daran liegen, dass das Skript schon versucht einige Dinge abzuarbeiten, bevor alle States angelegt sind.

                              Funktioniert leider trotzdem noch nicht wie es soll. Muss ich weiter schauen

                              <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
                                #35

                                Doch hatte ihn ja eben neu gestartet .

                                Keine Fehler aber mehr und ob vis klappt später . Hab grad keine Zeit und Muse

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

                                  vis funktioniert ohne probleme. Allerdings werden die Schedules nicht ausgeführt und ich weiß nicht wieso

                                  <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
                                    #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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          649

                                          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