Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. HowTo Sharp Aquos Steuern

    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

    HowTo Sharp Aquos Steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by Jey Cee

      Mit diesem Skript kann man Sharp Aquos (Modele siehe unten) Fernseher steuern.
      Dazu muss in der JS Adapter Konfiguration das Modul sharp-aquos eingetragen werden.
      Die Objekte power, mute und volume müssen von Hand angelegt werden.

      Es gibt noch weitere Befehle zum Steuern die in diesem Skript nicht berücksichtigt wurden: channelUp, channelDown, input, captioning.

      Durch Überschneidung mit der Status Abfrage kann es dazu kommen das Befehle nicht gesendet werden. Hier muss man mit dem schedule Spielen bis man das richtige Abfrage interval für sich gefunden hat.

      Wichtig man muss Remote Control Aktivieren:

      • Ensure the television is turned on.
      • Hit the 'Menu' button on your remote.
      • Navigate to 'Initial Setup'
      • Navigate to 'Internet Setup'
      • Navigate to 'Aquos Remote Control'
      • Enable the Remote Control functionality.
      • Go to Detailed Settings and set a username/password.
      const ipTV = '192.168.1.119';
      const power = '0_userdata.0.Sammlungen.Sharp_TV.Power';
      const mute = '0_userdata.0.Sammlungen.Sharp_TV.Mute';
      const volume = '0_userdata.0.Sammlungen.Sharp_TV.Volumen';
      
      let Aquos = require("sharp-aquos").Aquos;
      
      let gw = new Aquos(ipTV, 10002, 'admin', 'password');
      let con = false;
      let powerAbfrage = false;
      let muteAbfrage = false;
      let volumeAbfrage = false;
      
      gw.connect(function(err) {
        if (err) {
          console.log(err);
        } else {
          con = true;
        }
      });
      
      on({id: power},
          (obj)  => {
              if(con){
                  if (powerAbfrage === false){
                      gw.power(obj.state.val, (err) => {
                          if (err) {
                              console.log(err);
                          }
                      })
                  } else {
                      powerAbfrage = false;
                  }
                  
              } else {
                  console.log('Keine Verbindung zum TV');
              }
          })
      
      on({id: mute},
          (obj) => {
              if (con) {
                  if (muteAbfrage === false) {
                      gw.mute(obj.state.val, (err) => {
                          if (err) {
                              console.log(err);
                          }
                      })
                  } else {
                      muteAbfrage = false;
                  }
              } else {
                  console.log('Keine Verbindung zum TV')
              }
          })
      
      on({id: volume}, 
          (obj) => {
              console.log('Lautstärke setzen: ' + obj.state.val);
              if (con) {
                  if (volumeAbfrage === false) {
                      gw.volume(obj.state.val, (err) => {
                          if(err) {
                              console.log(err);
                          }
                      })
                  } else {
                      volumeAbfrage = false;
                  }
                  
              } else {
                  console.log('Keine Verbindung zum TV')
              }
              
          })
      
      //Alle 15 Sekunden den Status abfragen
      schedule('*/15 * * * * *', () => {
          gw.power( null, (err, data) => {
              if (err) {
                  console.log(err);
              }
              const regex = new RegExp('1');
              let res = regex.test(data);
              console.log('Power: ' + data);
              powerAbfrage = true;
              
              setState(power, res);
          
      
          gw.mute( null, (err, data) => {
              if (err) {
                  console.log(err);
              }
              const regex1 = new RegExp('1');
              let res = regex1.test(data);
              console.log('Check mute: ' + res);
              console.log('Mute: ' + data);
              muteAbfrage = true;
              
              setState(mute, res);
          
      
          gw.volume( null, (err, data) => {
              if (err) {
                  console.log(err);
              }
              console.log('Volume: ' + data);
              volumeAbfrage = true;
              setState(volume, data);
          })
          })
          })
      })
      
      
      onStop( () => {
        gw.close();    
      })
      

      TV Modelle:

      LC-60LE830E LC-60LE830RU LC-60LE831E
      LC-60LE831S LC-52LE830E LC-52LE830RU
      LC-52LE831E LC-52LE831S LC-46LE830E
      LC-46LE830RU LC-46LE831E LC-46LE831S
      LC-40LE830E LC-40LE830RU LC-40LE831E
      LC-40LE831S

      Wenn jemand das Skript mit einem anderen Model zum laufen bekommt, bitte Rückmeldung geben dann nehme ich das Model in die Liste auf.

      M 1 Reply Last reply Reply Quote 1
      • M
        MartyBr @Jey Cee last edited by MartyBr

        @Jey-Cee
        Geniales Script, bin gerade am testen. Kurze Frage zu den DPs: Ich habe sie als boolean eingetragen, richtig?

        Edit:
        Wie wird das Modul "sharp-aquos" installiert? Über den javascript-Adapter?

        Jey Cee 1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer @MartyBr last edited by

          @MartyBr mute & power boolean. Volume ist string.

          Das modul muss in der Adapter Konfiguration eingetragen werden, der rest geht Automatisch.

          M 1 Reply Last reply Reply Quote 0
          • M
            MartyBr @Jey Cee last edited by

            @Jey-Cee
            Das Script wird Fehler aus:

            javascript.0	2020-09-27 15:37:12.456	info	(907) Stop script script.js.Medien.Sharp-Fernseher1
            javascript.0	2020-09-27 15:18:16.768	error	(907) at Script.runInContext (vm.js:130:18)
            javascript.0	2020-09-27 15:18:16.768	error	(907) at script.js.Medien.Sharp-Fernseher1:6:35
            javascript.0	2020-09-27 15:18:16.768	error	(907) TypeError: Cannot read property 'Aquos' of undefined
            javascript.0	2020-09-27 15:18:16.768	error	(907) ^
            javascript.0	2020-09-27 15:18:16.768	error	(907) let Aquos = require("sharp-aquos").Aquos;
            javascript.0	2020-09-27 15:18:16.768	error	(907) script.js.Medien.Sharp-Fernseher1: script.js.Medien.Sharp-Fernseher1:6
            javascript.0	2020-09-27 15:18:16.767	error	(907) at Script.runInContext (vm.js:130:18)
            javascript.0	2020-09-27 15:18:16.767	error	(907) at script.js.Medien.Sharp-Fernseher1:6:13
            javascript.0	2020-09-27 15:18:16.766	error	(907) at require (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:389:36)
            javascript.0	2020-09-27 15:18:16.766	error	(907) at require (internal/modules/cjs/helpers.js:72:18)
            javascript.0	2020-09-27 15:18:16.766	error	(907) at Module.require (internal/modules/cjs/loader.js:1025:19)
            javascript.0	2020-09-27 15:18:16.766	error	(907) script.js.Medien.Sharp-Fernseher1: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/lib/../../sharp-aquos'
            javascript.0	2020-09-27 15:18:16.764	info	(907) Start javascript script.js.Medien.Sharp-Fernseher1
            
            

            Im Adapter habe ich es eingetragen:
            Bildschirmfoto 2020-09-27 um 15.38.39.png

            Jey Cee 1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer @MartyBr last edited by

              @MartyBr gab es Fehler beim installieren des Moduls?

              M 1 Reply Last reply Reply Quote 0
              • M
                MartyBr @Jey Cee last edited by

                @Jey-Cee Ich habe den Namen nur im Javascript-Adapter eingetragen. Muss er über npm install xxx installiert werden? Wie ist die genaue Syntax?

                Jey Cee 1 Reply Last reply Reply Quote 0
                • Jey Cee
                  Jey Cee Developer @MartyBr last edited by

                  @MartyBr nein das wird automatisch installiert nachdem man es eingetragen hat und auf Speichern und Schließen Klickt. Lösch es nochmal aus der Konfig und Speichern und Schließen
                  Dann nochmal eintragen und schauen was im Log steht.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MartyBr @Jey Cee last edited by

                    @Jey-Cee
                    Ich habe javascript mal auf debug gestellt:

                    javascript.0	2020-09-27 16:06:11.522	info	(1091) received all states
                    javascript.0	2020-09-27 16:06:11.472	info	(1091) received all objects
                    javascript.0	2020-09-27 16:06:11.227	info	(1091) requesting all objects
                    javascript.0	2020-09-27 16:06:11.227	info	(1091) requesting all states
                    javascript.0	2020-09-27 16:06:11.226	debug	(1091) Loaded TypeScript definitions for request: ["node_modules/@types/request/package.json","node_modules/@types/request/index.d.ts"]
                    javascript.0	2020-09-27 16:06:11.215	debug	(1091) Loaded TypeScript definitions for node: ["node_modules/@types/node/package.json","node_modules/@types/node/index.d.ts","node_modules/@types/node/base.d.ts","node_modules/@types/node/ts3.6/base
                    javascript.0	2020-09-27 16:06:11.181	info	(1091) starting. Version 4.8.4 in /opt/iobroker/node_modules/iobroker.javascript, node: v12.18.4, js-controller: 3.1.6
                    javascript.0	2020-09-27 16:06:11.126	debug	(1091) Plugin sentry Initialize Plugin (enabled=true)
                    javascript.0	2020-09-27 16:06:10.831	debug	(1091) statesDB connected
                    javascript.0	2020-09-27 16:06:10.831	debug	(1091) States connected to redis: 127.0.0.1:9000
                    javascript.0	2020-09-27 16:06:10.828	debug	(1091) States create System PubSub Client
                    javascript.0	2020-09-27 16:06:10.827	debug	(1091) States create User PubSub Client
                    javascript.0	2020-09-27 16:06:10.824	debug	(1091) Redis States: Use Redis connection: 127.0.0.1:9000
                    javascript.0	2020-09-27 16:06:10.824	debug	(1091) objectDB connected
                    javascript.0	2020-09-27 16:06:10.821	debug	(1091) Objects connected to redis: 127.0.0.1:9001
                    javascript.0	2020-09-27 16:06:10.816	debug	(1091) Objects client initialize lua scripts
                    javascript.0	2020-09-27 16:06:10.816	debug	(1091) Objects create User PubSub Client
                    javascript.0	2020-09-27 16:06:10.815	debug	(1091) Objects create System PubSub Client
                    javascript.0	2020-09-27 16:06:10.814	debug	(1091) Objects client ready ... initialize now
                    javascript.0	2020-09-27 16:06:10.805	debug	(1091) Redis Objects: Use Redis connection: 127.0.0.1:9001
                    host.iobroker-test	2020-09-27 16:06:10.271	info	instance system.adapter.javascript.0 started with pid 1091
                    host.iobroker-test	2020-09-27 16:06:07.778	info	instance system.adapter.javascript.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
                    javascript.0	2020-09-27 16:06:07.299	debug	(1076) system.adapter.admin.0: logging true
                    javascript.0	2020-09-27 16:06:07.264	info	(1076) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
                    javascript.0	2020-09-27 16:06:07.264	debug	(1076) Plugin sentry destroyed
                    javascript.0	2020-09-27 16:06:07.264	info	(1076) terminating
                    javascript.0	2020-09-27 16:06:07.263	info	(1076) Got terminate signal TERMINATE_YOURSELF
                    host.iobroker-test	2020-09-27 16:06:07.261	info	stopInstance system.adapter.javascript.0 send kill signal
                    host.iobroker-test	2020-09-27 16:06:07.258	info	stopInstance system.adapter.javascript.0 (force=false, process=true)
                    javascript.0	2020-09-27 16:06:06.347	debug	(1076) system.adapter.admin.0: logging false
                    
                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MartyBr @MartyBr last edited by

                      @Jey-Cee
                      Der sharp-aquas wird leider nicht installiert.

                      Jey Cee 1 Reply Last reply Reply Quote 0
                      • Jey Cee
                        Jey Cee Developer @MartyBr last edited by

                        @MartyBr dann versuch es mal so:

                        cd /opt/iobroker/node_modules/iobroker.javascript
                        npm install sharp-aquos
                        
                        M 1 Reply Last reply Reply Quote 1
                        • M
                          MartyBr @Jey Cee last edited by

                          @Jey-Cee

                          martin@iobroker-test:/opt/iobroker/node_modules/iobroker.javascript$ npm install sharp-aquos
                          [sudo] Passwort für martin: 
                          + sharp-aquos@0.0.7
                          added 1 package and audited 3 packages in 0.679s
                          found 0 vulnerabilities
                          
                          
                          
                             ╭────────────────────────────────────────────────────────────────╮
                             │                                                                │
                             │      New patch version of npm available! 6.14.6 → 6.14.8       │
                             │   Changelog: https://github.com/npm/cli/releases/tag/v6.14.8   │
                             │               Run npm install -g npm to update!                │
                             │                                                                │
                             ╰────────────────────────────────────────────────────────────────╯
                          
                          martin@iobroker-test:/opt/iobroker/node_modules/iobroker.javascript$ 
                          

                          Dann Javascript neugestartet und dein Script läuft 👍

                          Vielen Dank

                          1 Reply Last reply Reply Quote 0
                          • Jey Cee
                            Jey Cee Developer last edited by

                            Ich hab das Skript angepasst, wichtige Änderung damit auch wirklich geschalten wird nach einer Abfrage.

                            M 2 Replies Last reply Reply Quote 0
                            • M
                              MartyBr @Jey Cee last edited by

                              @Jey-Cee Ah, sehr gut. Das installiere ich dann mal schnell.

                              1 Reply Last reply Reply Quote 0
                              • M
                                MartyBr @Jey Cee last edited by

                                @Jey-Cee
                                Das Script ohne Fehler. Ich bekomme nur keine Daten. Wo wird denn der Admin und das Kennwort gesetzt? Ich kann mich nicht erinnern, dass ich im Fernseher ein Kennwort gesetzt habe.

                                Gruß
                                Martin

                                Jey Cee 1 Reply Last reply Reply Quote 0
                                • Jey Cee
                                  Jey Cee Developer @MartyBr last edited by

                                  @MartyBr ist fest hinterlegt. Gelesen wird ja nur der Aktuelle status von mute power und volume, angezeigt wird das in den selben Objekten mit denen du auch steuerst. Wenn du am TV zum Beispiel die Lautstärke änderst wird das dann in das Objekt in ioBroker geschrieben, aber mit einer Verzögerung von 15 Sekunden (oder was du eingestellt hast).

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    MartyBr @Jey Cee last edited by

                                    @Jey-Cee
                                    Dann funktioniert das Script leider nicht an meinen LC-46LE830E nicht
                                    Schade 😧

                                    Danke trotzdem für deine Unterstützung. Plane für das nächste Jahr einen neuen von LG.

                                    Jey Cee 1 Reply Last reply Reply Quote 0
                                    • Jey Cee
                                      Jey Cee Developer @MartyBr last edited by

                                      @MartyBr sagte in HowTo Sharp Aquos Steuern:

                                      LC-46LE830E

                                      Achso da war noch was:

                                      Sharp Aquos Setup

                                      • Ensure the television is turned on.
                                      • Hit the 'Menu' button on your remote.
                                      • Navigate to 'Initial Setup'
                                      • Navigate to 'Internet Setup'
                                      • Navigate to 'Aquos Remote Control'
                                      • Enable the Remote Control functionality.
                                      • Go to Detailed Settings and set a username/password.
                                      M 2 Replies Last reply Reply Quote 1
                                      • M
                                        MartyBr @Jey Cee last edited by

                                        @Jey-Cee
                                        Okay, dann teste ich das mal.
                                        Danke

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MartyBr @Jey Cee last edited by

                                          @Jey-Cee Das war es!!!!!!!
                                          Also funktioniert auch der LC-46LE830E

                                          Vielen Dank und ein schönes Wochenende
                                          Gruß
                                          Martin

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

                                            @Jey-Cee
                                            Planst du auch Steuerfunktionen für die Sharp Fernseher?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            765
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript template
                                            3
                                            22
                                            1122
                                            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