Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [Vorstellung] Meine zweite Visualisierung

    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

    [Vorstellung] Meine zweite Visualisierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kuddel @Karsti last edited by

      @Karsten-Münke meoke VIS läuft auf meinem alten Galaxy TAB A.

      Ein bisschen träge, aber man kann damit arbeiten.

      Ich verwende dafür den Fully Kiosk Browser weil die ioBroker VIS App die Daten nicht mehr verarbeiten konnte.

      Mein ioBroker läuft auf einer Ubuntu VM auf einem Intel NUC mit ESXi

      1 Reply Last reply Reply Quote 0
      • Karsti
        Karsti last edited by

        Hallo Kuddel,

        habe gerade die Version installiert schauen wir mal ob der Browser besser ist. Der iobroker läuft auf einem i5 mit SSD und 16 GB Arbeitsspeicher und Debian drauf. Vom iobroker sollte genügend Leistung da sein.

        1 Reply Last reply Reply Quote 0
        • K
          Kuddel last edited by Kuddel

          An alle, die meine Skripte importiert haben und aktiv verwenden:

          Bitte ändert die Mail-Empfangsadressen.

          Ich bekomme permanent Mails bzgl. Adapter Updates oder Infos vom Staubsauger.

          Was aber noch schlimmer ist, dass ich Mails erhalte, mit der Infos, dass die JavaSkript Instanz neu gestartet ist.

          Es hat Tage gedauert, bis ich gemerkt habe, dass die Mails nicht aus meinem System kommen.

          Danke

          ? Glasfaser 2 Replies Last reply Reply Quote 0
          • ?
            A Former User @Kuddel last edited by

            @Kuddel

            Hallo Kuddel,

            Respekt vor der Arbeit. Meiner +1 gefällt insbesondere die TV-Darstellung; ich habe Deine views importiert, bekomme die view aber nicht ans laufen. Welche Daten liegen dahinter, was muss ich tun?

            Dank Dir,

            Frank

            Glasfaser 1 Reply Last reply Reply Quote 0
            • Glasfaser
              Glasfaser @Kuddel last edited by

              @Kuddel sagte in [Vorstellung] Meine zweite Visualisierung:

              An alle, die meine Skripte importiert haben und aktiv verwenden:

              Bitte ändert die Mail-Empfangsadressen.

              Ich bekomme permanent Mails bzgl. Adapter Updates oder Infos vom Staubsauger.

              Was aber noch schlimmer ist, dass ich Mails erhalte, mit der Infos, dass die JavaSkript Instanz neu gestartet ist.

              @Kuddel

              Wäre es nicht sicherer dein Skript im 1 Post daraufhin zu ändern ,
              damit es nicht weiter passiert ,
              da nicht alle deinen Hinweis im Beitrag 653 lesen bzw. neue User es mitbekommen ❗

              1.JPG

              K 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @Guest last edited by

                @FrankDCE

                Du musst hier deine IP von der Dreambox / VU Box oder was du hast eintragen und natürlich in der Box den Zugriff erlauben .

                1.JPG

                ? 1 Reply Last reply Reply Quote 0
                • ?
                  A Former User @Glasfaser last edited by

                  @Glasfaser

                  Hallo,

                  danke, habe ich nicht, fällt somit aus 😉

                  1 Reply Last reply Reply Quote 0
                  • K
                    Kuddel @Glasfaser last edited by Kuddel

                    @Glasfaser da hast du natürlich recht.

                    Bin erst seit heute morgen aus dem Urlaub zurück und werde nächste Woche eine neue Version von meinen Skripten hochladen.

                    Habe vor in allen Skripten die eingetragenen Adressen durch Variablen zu ersetzen.

                    Glasfaser 1 Reply Last reply Reply Quote 0
                    • Glasfaser
                      Glasfaser @Kuddel last edited by

                      @Kuddel

                      Dann würde ich es lieber raus nehmen oder wenn du es lassen willst , neben dem Link einen Hinweis schreiben !!!

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kuddel @Glasfaser last edited by

                        @Glasfaser der Hinweis steht darunter.

                        Muss ich nochmal fett und rot machen ^^

                        Glasfaser 1 Reply Last reply Reply Quote 0
                        • Glasfaser
                          Glasfaser @Kuddel last edited by Glasfaser

                          @Kuddel

                          Stimmt 😀

                          1.JPG

                          Aber wer liest schon die Beschreibung richtig durch 😎

                          1 Reply Last reply Reply Quote 0
                          • D
                            djsirius @Kuddel last edited by djsirius

                            @Kuddel said in [Vorstellung] Meine zweite Visualisierung:

                            @djsirius gucke mal auf Seite 1, im Skriptexport müsste das bei sein.
                            Bin gerade im Urlaub und kann daher nichts hochladen

                            Den Controller Werte ich per consolen Befehl aus.
                            Das Ganze dann in einem Bash Skript welches per Crontab auf der Ubuntu VM läuft.

                            Kann ich nach meinem Urlaub posten.

                            Hi Kuddel,

                            kannst du mal bitte alle deine Bash Skripte zur Verfügung stellen? Das wäre MEGA!!!

                            Vielen Dank!

                            K 1 Reply Last reply Reply Quote 0
                            • K
                              Kuddel @djsirius last edited by

                              @djsirius

                              Bash Skript Versionen:

                              #ioBroker Version
                              iobroker=$(iobroker version)
                              iobroker state set javascript.0.Versionen.JS-Controller $iobroker
                              
                              #Node Version
                              node=$(node -v)
                              iobroker state set javascript.0.Versionen.Node $node
                              
                              #Nodejs Version
                              nodejs=$(nodejs -v)
                              iobroker state set javascript.0.Versionen.NodeJS $nodejs
                              
                              #NPM Version
                              npm=$(npm -v)
                              iobroker state set javascript.0.Versionen.NPM $npm
                              
                              
                              

                              1 Reply Last reply Reply Quote 0
                              • mgt1111
                                mgt1111 last edited by

                                Bin Neuling in Sachen íoBroker

                                Könnt ihr mir bitte sagen welche beiden vis Dateien es sein müssen
                                🙈

                                1 Reply Last reply Reply Quote 0
                                • D
                                  David16 last edited by

                                  Hi @Kuddel,

                                  habe leider seit einigen Tagen, vermutlich durch Updates Probleme mit meiner Javascript Instanz. Habe dein Projekt für mich übernommen.

                                  Weißt du an was es hängen könnte? -- Komme leider nicht weiter...
                                  Soweit wie ich es sehe hängt es mit dem Tag/Nacht Skript zusammen. Hattest du hier nicht schonmal mit Problemen zu kämpfen?

                                  IMG_20190922_220534.png

                                  javascript.0	2019-09-22 21:34:56.112	error	at Timer.listOnTimeout (timers.js:290:5)
                                  javascript.0	2019-09-22 21:34:56.112	error	at tryOnTimeout (timers.js:323:5)
                                  javascript.0	2019-09-22 21:34:56.112	error	at ontimeout (timers.js:511:34)
                                  javascript.0	2019-09-22 21:34:56.112	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                                  javascript.0	2019-09-22 21:34:56.111	error	at Object.<anonymous> (script.js.smarthome.rolladen.rolladen_tag_nacht:75:86)
                                  javascript.0	2019-09-22 21:34:56.111	error	Error in callback: TypeError: getState(...).val.trim is not a function
                                  javascript.0	2019-09-22 21:34:56.108	error	at Timer.listOnTimeout (timers.js:290:5)
                                  javascript.0	2019-09-22 21:34:56.108	error	at tryOnTimeout (timers.js:323:5)
                                  javascript.0	2019-09-22 21:34:56.108	error	at ontimeout (timers.js:511:34)
                                  javascript.0	2019-09-22 21:34:56.108	error	at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1888:34)
                                  javascript.0	2019-09-22 21:34:56.108	error	at Object.<anonymous> (script.js.smarthome.rolladen.rolladen_tag_nacht:11:84)
                                  javascript.0	2019-09-22 21:34:56.107	error	Error in callback: TypeError: getState(...).val.trim is not a function
                                  javascript.0	2019-09-22 21:34:54.928	info	script.js.smarthome.system.uptime_v0_2_dav: registered 1 subscription and 3 schedules
                                  

                                  Vermutlich steigt dadurch meine Javascript Instanz immer aus, sprich die wird rot.
                                  Meine Rollos fahren dadurch auch nicht immer hoch bzw. Runter.

                                  Zusätzlich gibt es noch folgende Meldung

                                  javascript.0	2019-09-22 21:52:49.785	warn	Reconnection to DB.
                                  javascript.0	2019-09-22 21:52:49.783	warn	Reconnection to DB.
                                  
                                  

                                  Keine Ahnung was das bedeuten soll?! - Ich hoffe du kannst mir helfen. Ich weiß leider nicht mehr weiter...

                                  K D 2 Replies Last reply Reply Quote 0
                                  • K
                                    Kuddel @David16 last edited by

                                    @David16 das Problem ist wohl irgendwie der Schedule-Block.

                                    60ff1470-2744-4917-96cc-d8362d104925-grafik.png

                                    Warum da aber was mit "trim" steht weiß ich nicht.

                                    Trim bedeutet ja eig kürzen....

                                    Ich verwende den Javascript-Adapter in der Version 4.1.12

                                    D 1 Reply Last reply Reply Quote 1
                                    • D
                                      David16 @Kuddel last edited by

                                      @Kuddel
                                      OK danke, ich schaue Mal welche Version ich verwende.

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        David16 last edited by

                                        @Kuddel

                                        Also meine Version ist 4.1.16.

                                        Ansonsten passen die Versionen soweit auch:
                                        b1d2b5b0-c9ad-4e5a-b5cd-e13ff3a6e2e9-image.png

                                        Ich habe gestern Abend aber mal den iobroker komplett neu gestartet. Die Adapter leuchtet jetzt "grün". In den Logs sind auch keine Fehlermeldung mehr zu erkennen. - Keine Ahnung an was es gelegen haben soll.

                                        In der VIS ist die Rollo-Steuerung und Astro-Steuerung auch wieder da und die Rollos sind auch um 19:45 heruntergefahren:

                                        895ab94f-66a9-425b-8d0c-cb09477a31f6-image.png

                                        Ich beobachte das mal die nächsten Tage intensiv und berichte dann. - Dir vielen Dank für drüber schauen!👍

                                        D 2 Replies Last reply Reply Quote 0
                                        • S
                                          Sven_hh @Kuddel last edited by

                                          @Kuddel

                                          Hallo an alle, Hallo Kuddel,

                                          erstmal meinen größten Respekt für deine Visualisierung. Ich finde das ist schon eine der Besten VIS die ich bisher gesehen habe. Ich hab mir die VIS auch mal importiert. Aber ehrlich gesagt erschlägt es mich als Anfänger mit den ganzen Seiten und Skripten ( von den ich keine Ahnung habe ). Ich würde mich ja schon über deine Startseite freuen die ich dann mit meinen Daten füttern kann und das dann läuft. Ist so etwas möglich nur deine Startseite zu Importieren?

                                          Noch mal eine kleine frage am Rande an alle hier im Forum. Vom Homematic Forum kenne ich die Funktion eine PM an jemanden zu senden. Gibt es diese Funktion hier auch?

                                          Ich hoffe ich habe mit diesem Text jetzt keine Regel gebrochen. Falls ja seht es mir bitte nach 🙂

                                          VG aus dem Sonnigen HH. Sven

                                          K 1 Reply Last reply Reply Quote 0
                                          • Negalein
                                            Negalein Global Moderator last edited by Negalein

                                            @Kuddel

                                            Servus

                                            Ich hab gerade ein komisches Phänomen!

                                            Deine Scripte hab ich mit meinen zusammengeführt und wieder importiert.
                                            Hat gleich funktioniert.

                                            Aber jetzt hab ich 2 Scripte von meinen, die nicht mehr funktionieren.

                                            var timeout;
                                             
                                            on(
                                                {id: "vis.0.control.data", change: "ne"} ,
                                                    function (obj){
                                                       // Nach 5 Minuten, zeige wieder index View
                                                (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
                                                timeout = setTimeout(function () {
                                                  setState("vis.0.control.command", '{"instance": "353.6043", "command": "changeView", "data": "001_Home"}');
                                                }, 300000);
                                                
                                             
                                            });
                                            
                                            /*******************************************************************************
                                             * ---------------------------
                                             * Pin-Schutz für VIS-View
                                             * ---------------------------
                                             * Autor: Mic
                                             * Change Log
                                             *  - 0.2 - Fix: 0 on keypad was not recognized
                                             *  - 0.1 - initial version
                                             * Support: https://forum.iobroker.net/viewtopic.php?f=30&t=19871
                                             ******************************************************************************/
                                            
                                            /*******************************************************************************
                                             * Konfiguration
                                             ******************************************************************************/
                                            const STATE_PATH = 'javascript.' + instance + '.' + 'visViewPinSperre.';
                                            
                                            const LOGGING = true;         // Detaillierte Ausgabe im Log. Falls keine Probleme, dann auf false setzen.
                                            
                                            
                                            /*******************************************************************************
                                             * Konfiguration: Views
                                             ******************************************************************************/
                                            // Es können beliebig mehr Views hinzugefügt oder auf eine limitiert werden, bitte aber Aufbau beibehalten!
                                            const PIN_VIEWS = [
                                              {
                                                name:       '041_Energie',        // Name der View, zu der bei Erfolg gewechselt werden soll
                                                project:    'main',            // VIS-Projekt, in dem die View ist, für den Viewwechsel bei Erfolg. Wert bekommt man u.a.: Vis -> Menü: Setup > Projekte (den Namen des jeweilgen Projektes nehmen)
                                                instance:   '353.6043',      // Funktioniert bei mir (und einigen anderen) immer mit 'FFFFFFFF', ansonsten Wert vom Vis, Menü Tools, Feld "Instanz ID" nehmen
                                                pin:        '2901',          // Pin          
                                              },
                                            ];
                                            
                                            
                                            /**********************************************************************************************************
                                             ++++++++++++++++++++++++++++ Ab hier nichts mehr ändern / Stop editing here! ++++++++++++++++++++++++++++
                                             *********************************************************************************************************/
                                            
                                            
                                            /*******************************************************************************
                                             * Globale Variablen
                                             *******************************************************************************/
                                            // Array, pro View ein Element
                                            var G_LastKeyPressed = [];      // Letzte Taste, die gedrückt wurde
                                            var G_PinBufferKeys = [];       // Puffer für eingegebene Ziffern
                                            var G_PinBufferWildcards = [];  // Für Vis-Anzeigefeld der Pineingabe, füllt sich mit "*" nach jeder Zifferneingabe
                                            
                                            /*******************************************************************************
                                             * Executed on every script start.
                                             *******************************************************************************/
                                            init();
                                            function init() {
                                             
                                                // Create states
                                                createScriptStates();
                                            
                                                // 1. Initialize global variables
                                                // 2. Reset for each view
                                                setTimeout(function(){
                                                    for (let i = 0; i < PIN_VIEWS.length; i++) {
                                                        // Initialize global variables
                                                        G_LastKeyPressed[PIN_VIEWS[i].name] = '';
                                                        G_PinBufferKeys[PIN_VIEWS[i].name] = '';
                                                        G_PinBufferWildcards[PIN_VIEWS[i].name] = '';        
                                                        // Reset für jede View durchführen
                                                        resetPin(PIN_VIEWS[i].name)
                                                    }
                                                }, 3000);
                                            
                                                // Main Script starten, 5 Sekunden nach State-Generierung
                                                setTimeout(main, 5000);
                                            
                                            }
                                            
                                            /*******************************************************************************
                                             * Haupt-Skript
                                             *******************************************************************************/
                                            function main() {
                                            
                                                // Überwacht das Tastenfeld in VIS für jede View
                                                for (var i = 0; i < PIN_VIEWS.length; i++) {
                                                    on({id: STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', change: "any"}, function (obj) {
                                                        var currView = obj.id.substr(STATE_PATH.length).split(".")[0]; // get View Name simply from obj.id
                                                        if(LOGGING) if(obj.state.val !== '') log('Eingabe über Tastenfeld: ' + obj.state.val + ', Viewname: ' + currView);
                                                        switch(obj.state.val) {
                                                            case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:
                                                                G_LastKeyPressed[currView] = obj.state.val;
                                                                userEnteredNumber(currView);
                                                                break;
                                                            case 'Enter':   // Der User hat die Pin-Eingabe bestätigt.
                                                                checkEnteredPin(currView);
                                                                break;
                                                            case 'Reset':
                                                                resetPin(currView);
                                                                break;
                                                            default:
                                                                //None
                                                        } 
                                                    });
                                                }
                                            
                                            }
                                            
                                            
                                            /********************************
                                             * Create States
                                             ********************************/
                                            function createScriptStates() {
                                                for (let i = 0; i < PIN_VIEWS.length; i++) {
                                                    createState(STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', {'name':'Mit Tasten aus VIS setzen', 'type':'string', 'read':true, 'write':false, 'role':'info', 'def':'' });
                                                    createState(STATE_PATH + PIN_VIEWS[i].name + '.WrongPinEntered', {'name':'Pin-Fehler', 'type':'boolean', 'read':true, 'write':false, 'role':'info'});
                                                    createState(STATE_PATH + PIN_VIEWS[i].name + '.PinWildcards', {'name':'Sterne (*) für VIS-Anzeige', 'type':'string', 'read':true, 'write':false, 'role':'info', 'def':'' });
                                                }
                                            }
                                            
                                            
                                            /********************************
                                             * Wird ausgeführt, sobald der User eine Nummer im Tastenfeld eingibt.
                                             * @param {string}   viewName     Name der View
                                             *********************************/
                                            function userEnteredNumber(viewName) {
                                                G_PinBufferKeys[viewName] = G_PinBufferKeys[viewName] + G_LastKeyPressed[viewName];
                                                G_PinBufferWildcards[viewName] = G_PinBufferWildcards[viewName] + ' *';
                                                setState(STATE_PATH + viewName + '.PinWildcards', G_PinBufferWildcards[viewName]);
                                            }
                                            
                                            /********************************
                                             * Wird ausgeführt, sobald der User E für "Enter" eingibt
                                             * @param {string}   viewName     Name der View
                                             ********************************/
                                            function checkEnteredPin(viewName) {
                                                if (G_PinBufferKeys[viewName] == getPresetElement(viewName, 'pin')) {
                                                    if(LOGGING) log('Pin-Eingabe erfolgreich, View [' + viewName + ']');
                                                    onSuccess(viewName);
                                                    setTimeout(function() { resetPin(viewName) }, 3000);    // Reset nach 3 Sekunden
                                                } else {
                                                    if(LOGGING) log('Falschen Pin eingegeben, View [' + viewName + ']');
                                                    setState(STATE_PATH + viewName + '.WrongPinEntered', true);
                                                    resetPin(viewName);
                                                }
                                            }    
                                            
                                            /********************************
                                             * Reset
                                             * @param {string}   viewName     Name der View
                                             ********************************/
                                            function resetPin(viewName) {
                                                if(LOGGING) log('Reset Pin, View-Name: [' + viewName + ']');
                                                G_PinBufferWildcards[viewName] = '';
                                                G_PinBufferKeys[viewName] = '';
                                                setState(STATE_PATH + viewName + '.CurrentKey', '');
                                                setState(STATE_PATH + viewName + '.PinWildcards', '');
                                                setStateDelayed(STATE_PATH + viewName + '.WrongPinEntered', false, 3000); // Erst nach 3 Sekunden, für VIS-Anzeige
                                            }
                                            
                                            /********************************
                                             * Wird bei erfolgreicher Pin-Eingabe ausgeführt
                                             * @param {string}   viewName     Name der View
                                             ********************************/
                                            function onSuccess(viewName){
                                                // Change View
                                                setState("vis.0.control.instance", getPresetElement(viewName, 'instance'));
                                                setState("vis.0.control.data",     getPresetElement(viewName, 'project') + '/' + viewName);
                                                setState("vis.0.control.command",  'changeView');
                                            }
                                            
                                            
                                            /********************************
                                             * Gibt Elemente von PIN_VIEWS zurück
                                             * @param {string}   viewName     Name of the view
                                             * @param {string}   key          'project', 'instance', 'pin'
                                             * @return {string}  Content of the element, e.g. the Pin "1234" for element 'pin'
                                             ********************************/
                                            function getPresetElement(viewName, key) {
                                                var keyEntry = '';
                                                for (let i = 0; i < PIN_VIEWS.length; i++) {
                                                    if (PIN_VIEWS[i].name === viewName) {
                                                        keyEntry = PIN_VIEWS[i][key]
                                                    }
                                                }
                                                return keyEntry;
                                            }
                                            

                                            Hat es mir durch das importieren was durcheinander geschmissen?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            507
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            template vis
                                            148
                                            1324
                                            482844
                                            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