Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Views in Frame/Widget anzeigen lassen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Views in Frame/Widget anzeigen lassen

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Ace-k last edited by

      Kann noch jemand was dazu sagen?!

      1 Reply Last reply Reply Quote 0
      • T
        tempestas last edited by

        ich kann dazu sagen:

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

        1 Reply Last reply Reply Quote 0
        • A
          Ace-k last edited by

          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 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            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
            1 Reply Last reply Reply Quote 0
            • P
              PapaChriLo last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • T
                tempestas last edited by

                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).

                1 Reply Last reply Reply Quote 0
                • A
                  Ace-k last edited by

                  Okay vielen Dank .

                  Ich teste es gleich mal .

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

                  1 Reply Last reply Reply Quote 0
                  • T
                    tempestas last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • A
                      Ace-k last edited by

                      Jupp Danke .

                      Hab es gefunden [emoji106]

                      1 Reply Last reply Reply Quote 0
                      • A
                        Ace-k last edited by

                        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 Reply Last reply Reply Quote 0
                        • T
                          tempestas last edited by

                          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

                          1 Reply Last reply Reply Quote 0
                          • T
                            tempestas last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • A
                              Ace-k last edited by

                              Alles klar [emoji106]

                              Hast schön Zeit gefunden ?

                              1 Reply Last reply Reply Quote 0
                              • A
                                Ace-k last edited by

                                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 Reply Last reply Reply Quote 0
                                • T
                                  tempestas last edited by

                                  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

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    Ace-k last edited by

                                    Doch hatte ihn ja eben neu gestartet .

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

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      tempestas last edited by

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

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        tempestas last edited by

                                        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

                                        1 Reply Last reply Reply Quote 0
                                        • A
                                          Ace-k last edited by

                                          Werde das gleich mal testen .

                                          Hast du nix mehr angepasst ?

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tempestas last edited by

                                            nein, nichts mehr.

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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            941
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            51
                                            6998
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo