NEWS
HowTo Sharp Aquos Steuern
-
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.
-
@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? -
@MartyBr mute & power boolean. Volume ist string.
Das modul muss in der Adapter Konfiguration eingetragen werden, der rest geht Automatisch.
-
@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:
-
@MartyBr gab es Fehler beim installieren des Moduls?
-
@Jey-Cee Ich habe den Namen nur im Javascript-Adapter eingetragen. Muss er über npm install xxx installiert werden? Wie ist die genaue Syntax?
-
@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. -
@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
-
@Jey-Cee
Der sharp-aquas wird leider nicht installiert. -
@MartyBr dann versuch es mal so:
cd /opt/iobroker/node_modules/iobroker.javascript npm install sharp-aquos
-
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
-
Ich hab das Skript angepasst, wichtige Änderung damit auch wirklich geschalten wird nach einer Abfrage.
-
@Jey-Cee Ah, sehr gut. Das installiere ich dann mal schnell.
-
@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 -
@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).
-
@Jey-Cee
Dann funktioniert das Script leider nicht an meinen LC-46LE830E nicht
SchadeDanke trotzdem für deine Unterstützung. Plane für das nächste Jahr einen neuen von LG.
-
@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.
-
@Jey-Cee
Okay, dann teste ich das mal.
Danke -
@Jey-Cee Das war es!!!!!!!
Also funktioniert auch der LC-46LE830EVielen Dank und ein schönes Wochenende
Gruß
Martin -
@Jey-Cee
Planst du auch Steuerfunktionen für die Sharp Fernseher?