Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Script] Fully Kiosk Browser steuern und Informationen in Datenpunkten

    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

    [Script] Fully Kiosk Browser steuern und Informationen in Datenpunkten

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tempestas last edited by

      Danke, gefällt. Kann man ggf auf das paw Skript und den Adapter verzichten, wenn man ihn so wie ich nur genau dafür genutzt hat.

      1 Reply Last reply Reply Quote 0
      • M
        Manolo last edited by

        Super, ein sehr mächtiges Script!

        Vielen Dank für die Arbeit!

        Ist es möglich das Javascript Interface einzubinden? Damit ließe sich noch viel mehr auslesen und bedienen.

        z.B. wäre es dann auch möglich die Helligkeit des Tabs über ein ioBroker Script zu steuern, oder Bewegungserkennungen aufzuzeichnen.

        Gruß Manolo

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

          Ich habe es mal installiert und es funktioniert :!:

          Wie kann ich aber z.B. den Batteriestand als unterschiedliche Icon`s (4-5 stufig) im VIS darstellen? Sorry für die vielleicht blöde Frage, aber ich stehe noch sehr weit am Anfang mit iobroker.

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

            Herzlichen Dank für das geniale Script.

            Rein zum Laden des Akkus ist es zwar recht groß, aber es funktioniert tadellos.

            Wer eine schlanke Variante sucht kann das auch direkt abrufen.

            Auslesen "nur" des Akkustands:

            var request = require('request');
            var link = "http://IPdesTablet:2323/?cmd=deviceInfo&type=json&password=xxxx";
            var state = "javascript.0.Allgemein.Akku_Tablet"/*Akku_Tablet*/;
            
            function fully() {
                request(link, function(error,response, body) {
                    if(error) log('Fehler request: ' + error, 'error');
                    else {
                        objects = JSON.parse(body);
                        bat = objects.batteryLevel;
                        setState(state, bat);
                        log ("batteryLevel = " + bat);
                    }    
                });
            }
            
            fully();
            schedule('*/10 * * * *', fully);
            

            In Zeile 2 mus die IP Adresse und das Passwort eingetragen werden.

            …und für die Steuerung der Schaltsteckdose und die VIS-Ladestandsanzeige werden dann für das View8 Widget noch die Datenpunkte benötigt:

            const idBatt = 'javascript.0.Allgemein.Akku_Tablet'; // Batterielevel in %
            const idPlug = 'sonoff.0.Ladestecker.POWER'; // Ladegerät ein
            const idVis = 'Vis.Batterieanzeige'; // Für Vis
            
            createState(idVis, 0, {
            type: 'number',
            min: 0,
            max: 7,
            role: 'level',
            states: {
            0: 'leer',
            1: '20 %',
            2: '40 %',
            3: '60 %',
            4: '80 %',
            5: 'voll',
            6: 'Ladegerät'
            } 
            });
            
            var level = getState(idBatt).val;
            var plug = getState(idPlug).val;
            
            function batt() {
            var state = 5; // full 80 %
            if(level <= 79) state = 4; // 79 %
            if(level <= 60) state = 3; // 60 %
            if(level <= 40) state = 2; // 40 %
            if(level <= 30) state = 1; // 20 %
            if(level <= 22) state = 0; // empty 20 %
            if(plug) state = 6; // Ladegerät ein
            setState(idVis, state, true);
            if(level >= 90 && plug) setState(idPlug, false);
            if(level <= 30 && !plug) setState(idPlug, true);
            }
            
            batt(); // Skriptstart
            
            on(idBatt, function(dp) {
            level = dp.state.val;
            batt();
            });
            
            on(idPlug, function(dp) {
            plug = dp.state.val;
            batt();
            });
            

            Ich halte meinen Akku zwischen 30 und 90%. Das kann man in Zeile 33 und 34 ändern.

            1 Reply Last reply Reply Quote 0
            • Mic
              Mic Developer last edited by

              @Manolo:

              Ist es möglich das Javascript Interface einzubinden? Damit ließe sich noch viel mehr auslesen und bedienen.

              z.B. wäre es dann auch möglich die Helligkeit des Tabs über ein ioBroker Script zu steuern, oder Bewegungserkennungen aufzuzeichnen. `

              Also lt. https://www.ozerov.de/fully-kiosk-brows … ntegration ist das wohl nur über eine Webseite zu machen, und nicht per ioBroker-Script. D.h. wenn dann müsste man dies direkt im VIS einbauen, aber das ist dann außerhalb des Scopes meines Scripts.

              Lasse mich aber gerne eines besseren belehren.

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

                @Chaot

                Ich bekomme bei Verwendung deiner beiden Skripte immer diese beiden Fehlermeldungen. Irgend eine Idee was mir das sagen soll?

                18:28:21.698	[warn]	javascript.0 at script.js.common.Batterie_Level:21:13
                18:30:22.324	[warn]	javascript.0 at Request._callback (script.js.common.KioskBatterie:11:13)
                

                EDIT: Ich glaube ich weiß woran das liegen kann. Vermutlich muss dieser Datenpunkt von Hand angelegt werden oder?

                var state = "javascript.0.Allgemein.Akku_Tablet"/*Akku_Tablet*/;
                

                der ist nämlich nicht da - aber wie macht man sowas?

                1 Reply Last reply Reply Quote 0
                • Mic
                  Mic Developer last edited by

                  @JB_Sullivan:

                  Wie kann ich aber z.B. den Batteriestand als unterschiedliche Icons (4-5 stufig) im VIS darstellen? Sorry für die vielleicht blöde Frage, aber ich stehe noch sehr weit am Anfang mit iobroker.

                  Es gibt hier im Forum mindestens ein Script, welches das macht, es legt States an (z.B. Ladezustand 0-10% -> Bild 1, 20-30% -> Bild 2). Musst mal danach suchen.

                  Man kann es auch noch anders lösen, wie ich finde eleganter:

                  1. Ein Batteriesymbol im VIS einfügen

                  2. Darüber ein Widget basic - Bar. Dieses Widget muss man dann von der Größe her so anpassen, dass es genau "in" die Batterie passt, dann vergibt man noch eine andere Farbe, z.B. ein grün. Als Objekt-ID wählt man dann javascript.0.mic.FullyBrowser.Info.batteryLevel

                  Dadurch wird der Ladezustand stets anhand des Balkens exakt angezeigt.

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

                    Das klingt so als wäre der Datenpunkt nicht angelegt.

                    Den musst du (wenn ich mich richtig erinnere) manuell anlegen.

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

                      Ich habe es gerade selber bemerkt - siehe oben.

                      Wie macht man sowas - Datenpunkt per Hand anlegen? Sorry aber wie bereits gesagt ich bin absoluter Anfänger.

                      So Datenpunkt habe ich hin bekommen - naja so halbwegs. Es wird mir zwar der aktuelle Wert vom Tablet dort reingeschrieben, jedoch steht im Log

                      javascript.0	2018-12-09 19:50:01.090	warn	at process._tickCallback (internal/process/next_tick.js:181:9)
                      javascript.0	2018-12-09 19:50:01.090	warn	at _combinedTickCallback (internal/process/next_tick.js:139:11)
                      javascript.0	2018-12-09 19:50:01.090	warn	at endReadableNT (_stream_readable.js:1064:12)
                      javascript.0	2018-12-09 19:50:01.090	warn	at IncomingMessage.emit (events.js:208:7)
                      javascript.0	2018-12-09 19:50:01.090	warn	at emitNone (events.js:111:20)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Object.onceWrapper (events.js:313:30)
                      javascript.0	2018-12-09 19:50:01.090	warn	at IncomingMessage. <anonymous>(C:\ioBroker\node_modules\iobroker.javascript\node_modules\request\request.js:1083:12)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Request.emit (events.js:211:7)
                      javascript.0	2018-12-09 19:50:01.090	warn	at emitOne (events.js:116:13)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Request. <anonymous>(C:\ioBroker\node_modules\iobroker.javascript\node_modules\request\request.js:1161:10)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Request.emit (events.js:214:7)
                      javascript.0	2018-12-09 19:50:01.090	warn	at emitTwo (events.js:126:13)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Request.self.callback (C:\ioBroker\node_modules\iobroker.javascript\node_modules\request\request.js:185:22)
                      javascript.0	2018-12-09 19:50:01.090	warn	at Request._callback (script.js.common.KioskBatterie:11:13)
                      javascript.0	2018-12-09 19:50:01.090	warn	Wrong type of javascript.0.Allgemein.Akku_Tablet: "number". Please fix, while deprecated and will not work in next versions.</anonymous></anonymous>
                      

                      Was auch immer das zu bedeuten hat, ich vermute das dass der Grund dafür ist, das die Auswertung immer ein "Ladegerät(6)" liefert, obwohl der Akkustand bei 71% liegt. An welchen Schrauben muss ich jetzt noch drehen, damit es funktioniert?

                      1 Reply Last reply Reply Quote 0
                      • Mic
                        Mic Developer last edited by

                        <size size="150">Update - Script-Version 0.3</size>

                        Der Fully-Browser wird aktiv weiterentwickelt und es kommen wohl regelmäßig neue Info-States hinzu, wie zuletzt locationLatitude, locationLongitude, etc.). Ich habe daher das Script so umgestellt, dass neu hinzukommende Infos automatisch als States angelegt werden.

                        https://github.com/Mic-M/iobroker.fully-kiosk-browser-script/blob/master/fully-kiosk-browser-script.js

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

                          Hallo,

                          ich hab das Script heute mal testen wollen. Leider kommt im Log nur der Fehler und es werden keine Datenpunkte angelegt.

                          JavaScript.js.Vis.Steuerung_Fully-Browser: Fully Browser: Folgender Fehler bei http-Request aufgetreten: Error: ETIMEDOUT
                          
                          1 Reply Last reply Reply Quote 0
                          • Mic
                            Mic Developer last edited by

                            @CKMartens:

                            ich hab das Script heute mal testen wollen. Leider kommt im Log nur der Fehler und es werden keine Datenpunkte angelegt.

                            JavaScript.js.Vis.Steuerung_Fully-Browser: Fully Browser: Folgender Fehler bei http-Request aufgetreten: Error: ETIMEDOUT
                            ```` `  
                            

                            Wird gerade auf Github behandelt, daher verweise ich, damit nicht doppelt geschrieben werden muss:

                            https://github.com/Mic-M/iobroker.fully … t/issues/1

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

                              @JB_Sullivan:

                              Was auch immer das zu bedeuten hat, ich vermute das dass der Grund dafür ist, das die Auswertung immer ein "Ladegerät(6)" liefert, obwohl der Akkustand bei 71% liegt. An welchen Schrauben muss ich jetzt noch drehen, damit es funktioniert? `

                              Poste doch mal deine Veränderung am Script. Vielleicht ist es dort zu erkennen.

                              1 Reply Last reply Reply Quote 0
                              • arteck
                                arteck Developer Most Active last edited by

                                ich habe angefangen dies ganze in einen Adapter zu pressen.. ich sag bescheid

                                1 Reply Last reply Reply Quote 0
                                • arteck
                                  arteck Developer Most Active last edited by

                                  fettisch

                                  viewtopic.php?f=36&t=19466

                                  1 Reply Last reply Reply Quote 0
                                  • Mic
                                    Mic Developer last edited by

                                    Top! Dachte mir auch, das wäre ideal für einen Adapter, danke noch mal Arteck dass Du Dich dem annimmst!

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      Buddinski88 last edited by

                                      @Chaot:

                                      Herzlichen Dank für das geniale Script.

                                      Rein zum Laden des Akkus ist es zwar recht groß, aber es funktioniert tadellos.

                                      Wer eine schlanke Variante sucht kann das auch direkt abrufen.

                                      Auslesen "nur" des Akkustands:

                                      var request = require('request');
                                      var link = "http://IPdesTablet:2323/?cmd=deviceInfo&type=json&password=xxxx";
                                      var state = "javascript.0.Allgemein.Akku_Tablet"/*Akku_Tablet*/;
                                      
                                      function fully() {
                                          request(link, function(error,response, body) {
                                              if(error) log('Fehler request: ' + error, 'error');
                                              else {
                                                  objects = JSON.parse(body);
                                                  bat = objects.batteryLevel;
                                                  setState(state, bat);
                                                  log ("batteryLevel = " + bat);
                                              }    
                                          });
                                      }
                                      
                                      fully();
                                      schedule('*/10 * * * *', fully);
                                      

                                      In Zeile 2 mus die IP Adresse und das Passwort eingetragen werden.

                                      …und für die Steuerung der Schaltsteckdose und die VIS-Ladestandsanzeige werden dann für das View8 Widget noch die Datenpunkte benötigt:

                                      const idBatt = 'javascript.0.Allgemein.Akku_Tablet'; // Batterielevel in %
                                      const idPlug = 'sonoff.0.Ladestecker.POWER'; // Ladegerät ein
                                      const idVis = 'Vis.Batterieanzeige'; // Für Vis
                                      
                                      createState(idVis, 0, {
                                      type: 'number',
                                      min: 0,
                                      max: 7,
                                      role: 'level',
                                      states: {
                                      0: 'leer',
                                      1: '20 %',
                                      2: '40 %',
                                      3: '60 %',
                                      4: '80 %',
                                      5: 'voll',
                                      6: 'Ladegerät'
                                      } 
                                      });
                                      
                                      var level = getState(idBatt).val;
                                      var plug = getState(idPlug).val;
                                      
                                      function batt() {
                                      var state = 5; // full 80 %
                                      if(level <= 79) state = 4; // 79 %
                                      if(level <= 60) state = 3; // 60 %
                                      if(level <= 40) state = 2; // 40 %
                                      if(level <= 30) state = 1; // 20 %
                                      if(level <= 22) state = 0; // empty 20 %
                                      if(plug) state = 6; // Ladegerät ein
                                      setState(idVis, state, true);
                                      if(level >= 90 && plug) setState(idPlug, false);
                                      if(level <= 30 && !plug) setState(idPlug, true);
                                      }
                                      
                                      batt(); // Skriptstart
                                      
                                      on(idBatt, function(dp) {
                                      level = dp.state.val;
                                      batt();
                                      });
                                      
                                      on(idPlug, function(dp) {
                                      plug = dp.state.val;
                                      batt();
                                      });
                                      

                                      Ich halte meinen Akku zwischen 30 und 90%. Das kann man in Zeile 33 und 34 ändern. `

                                      Vielen Dank dafür! Auch an den Ersteller des Skripts 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        aleks-83 last edited by

                                        Super !
                                        Vielen Dank für das Script.
                                        Läuft 1a.

                                        Ich würde jetzt gerne noch die Bildschirmhelligkeit steuern.
                                        Hat das schon jemand geschafft?

                                        Im Javascript gibt es ja offenbar die Möglichkeit mit

                                        void fully.setScreenBrightness(float level)
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • Mic
                                          Mic Developer last edited by

                                          Es gibt in der Zwischenzeit einen Adapter, am besten stellst Du dort noch mal die Frage: https://forum.iobroker.net/topic/17359/aufruf-fullybrowser-adapter/222

                                          Wobei ich gestehen muss, dass ich bisher zu faul war, diesen zu installieren, weil mein Script so zuverlässig läuft...

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            AndreasE112 last edited by

                                            Hallo mit dem neuesten Update von JS müsste glaub ich das ACK flack gesetzt werden...
                                            ich bekomme nun immer diese Fehlermeldungen:

                                            	Read-only state "javascript.0.mic.FullyBrowser.Info.appFreeMemory" has been written without ack-flag with value "90088816"
                                            javascript.0
                                            	2021-10-12 18:06:00.466	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.kioskLocked" has been written without ack-flag with value "false"
                                            javascript.0
                                            	2021-10-12 18:06:00.465	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.SSID" has been written without ack-flag with value ""FRITZ!Box 7362 SL""
                                            javascript.0
                                            	2021-10-12 18:06:00.463	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.screenBrightness" has been written without ack-flag with value "25"
                                            javascript.0
                                            	2021-10-12 18:06:00.462	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.locationProvide" has been written without ack-flag with value "network"
                                            javascript.0
                                            	2021-10-12 18:06:00.461	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.currentTabIndex" has been written without ack-flag with value "0"
                                            javascript.0
                                            	2021-10-12 18:06:00.460	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.displayWidthPixels" has been written without ack-flag with value "1280"
                                            javascript.0
                                            	2021-10-12 18:06:00.459	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.androidSdk" has been written without ack-flag with value "19"
                                            javascript.0
                                            	2021-10-12 18:06:00.458	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.lastAppStart" has been written without ack-flag with value "12.10.2021 02:00:39"
                                            javascript.0
                                            	2021-10-12 18:06:00.457	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.isDeviceAdmin" has been written without ack-flag with value "true"
                                            javascript.0
                                            	2021-10-12 18:06:00.456	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.screenOrientation" has been written without ack-flag with value "90"
                                            javascript.0
                                            	2021-10-12 18:06:00.454	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.isInForcedSleep" has been written without ack-flag with value "false"
                                            javascript.0
                                            	2021-10-12 18:06:00.453	warn	Read-only state "javascript.0.mic.FullyBrowser.Info.isPlugged" has been written without ack-flag with value "true"
                                            

                                            könnte man das vielleicht anpassen ?
                                            Ansonsten ein Super Script 👍

                                            viele Grüße

                                            Andreas

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            733
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            22
                                            5634
                                            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