Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Steuerung von allen Android Geräten (inkl. Android TV z.B. nvidia shield tv)

    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

    Steuerung von allen Android Geräten (inkl. Android TV z.B. nvidia shield tv)

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

      Hallo,

      ich suche gerade einen Weg meinen NVidia Shield TV über ioBroker zu steuern. Hierbei geht es mir in erster Linie um An und Ausschalten und eventuell auch noch eine bestimmte App starten.

      In meinem Fall soll darüber der Kino Modus gestartet bzw. beendet werden. Beamer geht an, Leinwand fährt runter, 5.1 System geht an und jetzt fehlt noch Shield TV an und am besten noch Netflix starten. Über das Forum habe ich keine aktuelle Möglichkeit gefunden. Über Google bin ich dann darauf gestoßen, dass man über ADB Tastenkürzel an jedes Android Gerät schicken kann (vorausgesetzt dieses ist im Entwicklermodus). Somit sollte eigentlich eine Grundlegende Bedienung per ioBroker möglich sein.

      Ich habe es mal kurz vom Laptop mit Linux und installierter ADB ausprobiert und es funktioniert. Auch Apps sollten sich über ADB starten lassen.

      Da ich gerade erst mit dem Thema ioBroker anfange und mir leider auch aktuell die Zeit für eine Adapter Entwicklung fehlt kann ich leider keinen Adapter schreiben. Wenn sich jemand finden sollte der dieses übernehmen würde, könnte ich natürlich gerne helfen und testen.

      Ich werde morgen mal die ADB auf meinem Pie einrichten und versuchen die Grundlegenden Befehle per Shell Execute über ein JavaScript an den Shield zu schicken. Sobald ich da ein Ergebnis habe werde ich es hier posten.

      adb tcpip 5555
      adb connect 123.456.789.123:5555
      
      adb shell input keyevent "KEYCODE_POWER"
      adb shell input keyevent "KEYCODE_HOME"
      
      //Alle Apps auflisten
      adb shell pm list packages -f
      
      //Netflix starten
      adb shell monkey -p com.netflix.ninja  -c android.intent.category.LAUNCHER 1
      
      

      Gruß

      Martin

      1 Reply Last reply Reply Quote 0
      • M
        Martin1982 last edited by Negalein

        Guten Morgen,

        wie gesagt, habe ich es heute mal kurz über ein JavaScript vom ioBroker versucht und es funktioniert. Also für meinen Fall reicht das vollkommen aus, wie sieht das Interesse bei anderen aus? Wird ein besseres Script benötigt oder eventuell auch ein Adapter?

        Bevor der Code funktioniert muss auf dem Rechner auf dem das Script läuft ADB installiert sein.

        Auf dem RaspberryPie habe ich dieses über:

        sudo apt-get install -y android-tools-adb android-tools-fastboot
        

        erledigt.

        Folgendes Script habe ich unter Global angelegt:

        function SendAdbKey(keycode)
        {
            exec('adb connect 192.168.178.39:5555');
            exec('adb shell input keyevent "' + keycode + '"');
        }
        
        function SendAdbPower()
        {
            SendAdbKey('KEYCODE_POWER');
        }
        
        function SendAdbHome()
        {
            SendAdbKey('KEYCODE_HOME');
        }
        

        Gruß

        Martin

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

          Hey Martin,

          ich bin Neuling der ersten Stunde und versuche mich mit IOBroker hier ein wenig einzulesen. :shock: Ich war auch auf der Suche nach einer Einbindung meiner Shield TV, in IOBroker und habe hier deinen Thread gefunden. Ich würde es sehr begrüßen, wenn du das ganze weiter ausbaust. Im Grunde würde mir es schon ausreichen einige Apps zu starten, wie z.b. Kodi, Netflix, Amazon Prime oder Tunein.

          Ich habe auch schon die ADB auf meinem PI installiert, aber weiß nun nicht wirklich wie ich dein Script verstehen soll um es eben zu erweitern. Leider beherrsche ich keine Programmiersprachen. Wenn ich das richtig verstehe startet das Script im Moment nur die Shield TV. Richtig?

          Gruß André

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

            Ja, mit dem Script kann man aktuell nur den Shield an und ausschalten.

            Bzw. Es ist auch möglich (nicht getestet) jeden keycode an das Android Gerät zu schicken.

            Apps starten sollte auch möglich sein, im ersten Beitrag steht der nötige ADB Befehl. Das kann ich morgen mal über eine entsprechende Javascript Funktion ausprobieren.

            Damit es funktioniert, muss auf dem Shield der Entwickler Modus aktiviert sein und anschließend USB und Netzwerk Debugging erlaubt werden.

            Um den Entwicklermodus zu aktivieren musst du mehrfach hintereinander auf den buildnummer auf dem Shield drücken. Anschließend hast du unter dem Einstellungen den Eintrag Entwickler, da musst du dann USB und Netzwerk Debugging erlauben.

            Anschließend solltest du die Verbindung von pie zum Shield testen. Wie im ersten Beitrag geschrieben. Bei der ersten Verbindung fragt dich der Shield ob du dem Computer vertrauen möchtest. Hier immer zulassen aktivieren.

            Gruß

            Martin

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

              Also ich habs jetzt bei mir einfach mal übers Terminal getestet. Verbindung steht definitiv, aber weder der HOME noch POWER Button startet die Shield. Aber wenn ich direkt die Netflix App starte, dann startet auch die Shield automatisch. Würde mir so auch schon reichen als Script. Dies könnte man ja dann auch an diverse andere Apps anpassen. Ich werd mal mein Glück versuchen das Script anzupassen. :?

              Gruß

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

                Schaut euch mal den „PAW“ Adapter an!.

                https://www.npmjs.com/package/iobroker.paw

                Vielleicht kann der was ihr sucht/wollt.

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

                  Ich bekomme das mit dem Script nicht hin. Ich habe auch den Paw Adapter am laufen, aber der läuft bei mir nur mit meinen Tablets. Auf der Shield macht der Adapter keinen Mucks. Per Tablet läuft alles wie es soll. Keine Ahnung was da los ist.

                  Deswegen habe ich es weiter mit der adb shell versucht. Und da funktionieren jetzt die Befehle. Also ich kann die Shield aufwecken mit KEYCODE_WAKEUP, in den SLEEP schicken und Apps starten. Alles via Putty.

                  Jetzt meine Frage, ob mir jemand die Befehle in Javascript umbauen kann? Ich hab vom Scripten absolut keine Ahnung.

                  Hier die Befehle:

                  Für den Wakeup

                  adb connect 192.168.1.29:5555
                  adb shell input keyevent KEYCODE_WAKEUP
                  

                  Für den Sleep Modus

                  adb connect 192.168.1.29:5555
                  adb shell input keyevent KEYCODE_SLEEP
                  

                  Für den App start z.b. Netflix

                  adb connect 192.168.1.29:5555
                  adb shell monkey -p com.netflix.ninja  -c android.intent.category.LAUNCHER 1
                  

                  Danke für eure Hilfe!!

                  LG

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

                    Gibt es eine Liste mit den möglichen keyevents?

                    Sowas wie Pause/Play wäre zB nett.

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

                      Das Thread ist zwar schon etwas älter aber hab noch mal eine Frage an den TO. Wenn du dein Shield TV mit deinem ADP Script steuerst dann nur über USB oder funktioniert das auch über LAN?

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        sauerstofff @bort last edited by sauerstofff

                        Ich schließe mich hier "noch später :D" mal an.
                        In meinem unraid Docker lässt sich adb nicht installieren.
                        Gibt es noch jemanden, der das hier aktiv verwendet?

                        Screenshot_2.png

                        G 1 Reply Last reply Reply Quote 0
                        • B
                          Berzi last edited by

                          Danke für den thread hier, das hat mir meine Automatisierung nun endlich auch mal automatisiert! 😄

                          Nur woher habt ihr die keycodes/keyevents?
                          Ich nutze derzeit den keycode_power zum an und ausschalten der Shield. Jedoch muss es noch andere shutdown Befehle geben. Schalte ich sie mit der Fernbedienung aus, so beendet die Shield auch gemäß meinen Einstellungen auch den TV und AVR. Nur mit dem adb keycode_power scheint sie mir eher nur schlafen zu gehen.
                          Kennt ihr noch einen anderen keycode?

                          Danke!

                          1 Reply Last reply Reply Quote 0
                          • I
                            Ice86 last edited by

                            hallo zusammen,

                            gibt es eigentlich eine möglichkeit den status einer android tv box zu erfragen? speziell, wenn die box ausgemacht wird, würde ich das gerne hinkriegen, um eine aktion ausführen zu können.

                            so wie ich das bis jetzt hier überflogen habe, kann sowohl der umweg über adb als auch über den PAW adapter nur an die Box senden, aber nichts empfangen, richtig?

                            anpingen der box ist leider keine option -.-

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              sauerstofff @Ice86 last edited by

                              @ice86
                              Da bei mir adb (erstmal) nicht läuft habe ich durch Zufall festgestellt, dass es auf meinem Shield ganz gut mit Chromecast geht.
                              Dort kann ich verschieden Status abfragen u.a. ob der Shield An ist, oder im Standby, ob gerade etwas gespielt wird (z.B. Netflix o.ä.), die aktuelle laustärke uvm.
                              Damit steuere ich aktuell meine umliegende Peripherie. Bisher keine Ausfälle oder Anomalien 👍

                              I 1 Reply Last reply Reply Quote 0
                              • I
                                Ice86 @sauerstofff last edited by

                                @sauerm eeehm.... details? 😄 wenn möglich... bitte! 😄

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  sauerstofff @Ice86 last edited by

                                  @ice86
                                  Ich schaue morgen gern mal genauer 🙂
                                  Hast du die Möglichkeit Chromecast auf deiner Android Box zu installieren? 🙂
                                  Wenn ja, brauchst du nur den Chromecast Adapter im Broker. Wenn er den Client nicht automatisch findet, kannst du ihn manuell hinzufügen. Anschließend werden alle Datenpunkte zum Endgerät automatisch angelegt.

                                  I 1 Reply Last reply Reply Quote 0
                                  • I
                                    Ice86 @sauerstofff last edited by

                                    @sauerm ich schaue heute abend mal nach, aber denke, dass es gehen sollte mit chromecast!

                                    aah, jetzt versteh ich das auch. also chromecast adapter für iobroker, chormecast app auf die Mi Box S und dann quasi schauen, wie sich die Werte im Adapter ändern wenn die Box an/aus ist.

                                    S 1 Reply Last reply Reply Quote 0
                                    • S
                                      sauerstofff @Ice86 last edited by sauerstofff

                                      @ice86 Ja genau 😊
                                      Klappt es denn?
                                      Bei der MiBox geht es ja vielleicht auch über ADB, das klappt beim nvidia Shield nicht so gut/einfach. Daher bin ich mit dieser Lösung recht zufrieden.strikethrough text

                                      EDIT: siehe Folgepost

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        GreatEMU @sauerstofff last edited by GreatEMU

                                        @sauerm sagte in Steuerung von allen Android Geräten (inkl. Android TV z.B. nvidia shield tv):

                                        Ich schließe mich hier "noch später :D" mal an.
                                        In meinem unraid Docker lässt sich adb nicht installieren.
                                        Gibt es noch jemanden, der das hier aktiv verwendet?

                                        Screenshot_2.png

                                        Ich würde mich gerne in das Thema mit rein hängen.

                                        Bei mir ist das gleiche Problem.
                                        Kann ich überhaupt die ADB-Tools in einem Docker installieren oder benötige ich einen ADB-Server in einem separatem Docker?

                                        Über Hinweise wäre ich sehr froh.

                                        Update 29.03.21: Um die ADB-Tools im ioBroker lauffähig zu bekommen muss man sich lediglich das Installations-zip bei Google herunterladen und in einem Verzeichnis auf dem ioBroker entpacken.
                                        Mit der entsprechenden Pfad-Angabe kann man denn den jeweiligen Befehl ausführen.
                                        (Geht vielleicht auch mit dem setzen einer PATH-Angabe)
                                        @sauerm

                                        1 Reply Last reply Reply Quote 1
                                        • S
                                          sauerstofff last edited by sauerstofff

                                          Ich habe es nun auch hinbekommen - allerdings bin ich mittlerweile auf einen Pi4 gewechselt. Im Docker läuft nur noch mein Backup.

                                          Auf dem Pi ist es relativ simpel. Auch die Aktivierung von ADB auf dem ShieldTV ist mittlerweile relativ einfach. Hierzu gibt es zahlreiche, kurze Tutorials.

                                          Eine Übersicht der Befehle habe ich hier gefunden.

                                          Mein Skript sieht nun so aus:

                                          var Name, Initialisation, Description, Type, Role, SmartName, Text_Alexa, Alexa_Notification, Message, timeout;
                                          
                                          function Create_DP(Name, Initialisation, Description, Type, Role, SmartName) {
                                              createState(Name, Initialisation, {
                                                name: Description,
                                                read: true, 
                                                write: true, 
                                                type: Type, 
                                                role: Role,
                                                smartName: SmartName
                                              });
                                          
                                          }
                                          
                                          function SendAdbKey(keycode)
                                          {
                                              exec('adb connect 10.1.1.25:5555');
                                              exec('adb shell input keyevent "' + keycode + '"');
                                          }
                                           
                                          function SendAdbPower()
                                          {
                                              SendAdbKey('KEYCODE_POWER');
                                          }
                                           
                                          function SendAdbHome()
                                          {
                                              SendAdbKey('KEYCODE_HOME');
                                          }
                                          
                                          
                                          function CheckAdbPowerState()
                                          {
                                              exec('adb connect 10.1.1.25:5555');
                                              exec('adb shell \'dumpsys power | grep -e "mWakefulness="\'',function (error, stdout, stderr) {
                                                  setState("0_userdata.0.Devices.WZ.ShieldTV.info.state", stdout.replace('mWakefulness=',''));
                                              });
                                          }
                                          
                                          /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                                          
                                          Create_DP('0_userdata.0.Devices.WZ.ShieldTV.info.state', '', 'Power State', 'string', 'state','');
                                          Create_DP('0_userdata.0.Devices.WZ.ShieldTV.power.switch', false, 'Power Switch', 'boolean', 'switch','Shield T.V.');
                                          
                                          schedule("*/5 * * * * *", async function () {
                                              CheckAdbPowerState();
                                          });
                                          
                                          on({id: '0_userdata.0.Devices.WZ.ShieldTV.power.switch'}, function (obj) {
                                              SendAdbPower();
                                          });
                                          

                                          Über den DP "state" kann der Zustand des Shield abgefragt werden ("Awake", "Asleep", "Dreaming")

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

                                            @sauerstofff Vielen Dank für das tolle Skript, ich habe es trotz meiner absoluten Unwissenheit bzgl. Javascript ohne Fehlermeldungen zum laufen gebracht.

                                            Es funktioniert sowohl der Home Switch, als auch der Power Switch wenn ich diese manuell oder über ein Blockly-Skript auslöse.

                                            Was leider nicht funktioniert, ist das auslesen des Zustands vom DP "state". Wenn dieser "Asleep" ist, soll der Power Switch ausgelöst werden:

                                            blockly.png

                                            Es funktioniert aber nicht so wie abgebildet mit dem Inhalt des grünen Text-Blocks ("Asleep"). Wenn ich den unter Objekte aus dem DP heraus kopiere, habe ich in der Zwischenablage " Asleep" (2 Leerzeichen davor). Das Gleiche ist es bei " Dreaming" und " Awake". Wenn ich den kopierten Text mit Leerzeichen in den Text-Block einfüge passiert auch nichts. Also werden dort vielleicht Leerzeichen ignoriert oder in Wirklichkeit sind es andere Zeichen die da noch davor stehen und nicht korrekt kopiert werden?

                                            blockly2.png

                                            Hat vielleicht jemand eine Idee wie ich das Problem lösen kann?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            506
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            20
                                            8962
                                            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