Sony TV HX-, NX-Serie

Begonnen von StephanH, 03 Dezember 2013, 12:55:57

Vorheriges Thema - Nächstes Thema

vuffiraa

Das ist das Kommando, was ich beim Toggle verwende. Das ging ja bei dir auch.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

dogexan

Hallo,

dann muss es eben beim toggle Befehl bleiben.

Wenn man den mute Status vom Fernseher auslesen könnte wäre gut.  :P


Kannst du nochmal die aktuellste Version hochladen. Bei der letzten Version die du hier hochgeladen hattest ist noch das Dropdown Menü Problem drin.

Gruß Alex

vuffiraa

Zitat von: dogexan am 23 November 2014, 09:18:40
Hallo,

dann muss es eben beim toggle Befehl bleiben.

Wenn man den mute Status vom Fernseher auslesen könnte wäre gut.  :P


Kannst du nochmal die aktuellste Version hochladen. Bei der letzten Version die du hier hochgeladen hattest ist noch das Dropdown Menü Problem drin.

Gruß Alex

Hab noch mal eine Version erstellt, die auf deine Gerätegeneration mehr Rücksicht nimmt.
- in der Werteliste von Mute gibt es kein 'Off' mehr
- State sollte jetzt auch auf 'On' gehen.

Falls mir jemand sagen könnte, wie ich den Status von Mute oder die aktuelle Lautstärke aus einem Sony TV herausbekomme, wäre ich für jede Info dankbar. Ich sehe da momentan noch keine Möglichkeit.

Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

dogexan

Super,

vielen Dank für dein Bemühen.

Hoffentlich wird es bald möglich sein den Status vom Fernseher auslesen zu können.

Es würden sich ganz neue Möglichkeiten damit eröffnen.

Gruß Alex

gandy

#64
Hi,

hab eben die neuste Version installiert und wollte kurzes Feedback geben (KDL-40HX759): Zunächst funktionierte systemStatus nicht (angeblich vom Gerät nicht unterstützt), demnach war power=off, während presence auf present stand. Nach einem "set statusRequest" war das behoben.

Die Channelliste wird bevölkert, um hier nicht selbst durchklicken zu müssen hat sich ein notify bewährt:

define braviaScan notify bravia:channelI.+ set bravia channelUp

Nach dem ersten Kanalwechsel gehts los (idealerweise auf Kanal 1 schalten), danach wird weitergeschaltet, sobald der Kanalwechsel erkannt wurde. Eiin "attr braviaScan disable 1" gibt die Kontrolle zurück an die Fernbedienung.

Auch das Umschalten auf einen Kanal aus der Drop-down Liste funktioniert nun (mit "set bravia channel <CH>"). <CH> ist in der Form "001:Das_Erste_HD" - hier fände ich es sehr praktisch, statt dessen auch nur "1" oder "001" angeben zu können, oder den Sendernamen (evtl auch als Teilstring oder regexp). Gerade letzteres wäre evtl für sprachgesteuerte Programmwahl praktisch. Gibt es eine Möglichkeit, die erzeugte Kanalliste aus dem BRAVIA device auszulesen, aka "get bravia channel_list"?
Edit: Gerade habe ich herausgefunden, dass "set bravia channel 009:" funktioniert, auch wenn der Doppelpunkt nach der Kanalnummer nicht gerade selbsterklärend ist  ;D

"mute on" und "mute off" funktionieren wie gedacht, ebenso "mute toggle" (hier ist aber ein Tippfehler in der Dropdownliste mit "toogle")

An dieser Stelle auf jeden Fall Danke für die klasse Arbeit, mach weiter so (hätte davor nicht für möglich gehalten, dass ich so ein Modul würde haben wollen - jetzt fallen mir plötzlich lauter nette Anwendungen ein)  8)

Beste Grüße,
Andy.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

vuffiraa

Hallo,

vielen Dank für eure Kommentare und auch dafür, dass euch das Modul gefällt  ;)

Die Anmerkungen habe ich in meine Todo-Liste aufgenommen und werde sehen, was sich davon umsetzen lässt.

@gandy: Hast du ein bestimmtes Format im Kopf, wie so eine Kanalliste auszulesen wäre? Als Informationen habe ich Kanal und Name zur Verfügung und könnte daraus Text, XML oder JSON basteln.

Jetzt noch ein paar Details zum momentanen Stand:

  • "set bravia channel 009:" funktioniert, da ich momentan auf  "/^(\d)(\d)(\d):.*$/" teste. Das kann ich etwas toleranter machen, momentan wird davon ausgegangen, dass man einen Eintrag aus der Kanalliste benutzt...
  • "toogle" schreibe ich (fast) immer so im ersten Versuch  :(
  • presence = present bedeutet, dass das Gerät im Netzwerk zu finden ist, während power = on bedeutet, dass der Bildschirm läuft. Presence = present und power = off ==> state = off kann vorkommen nachdem der TV gerade ausgeschaltet wurde. Er bleibt dann noch ein paar Minuten im Netz erreichbar, oder wenn z.B. etwas auf eine angeschlossene Festplatte aufgenommen wird. Der State geht also von "on" über "off" nach "absent".
  • Wenn das Modul neu geladen wird, habe ich beobachet, dass es 2 Intervalle benötigt, bis sich alle Werte "eingeschwungen" haben. Daher vielleicht der Fehler mit systemStatus am Anfang

Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Hausautomat

Blöde Frage - geht auch die X-Serie?
KDL-65X9005A. Die URLs, die hier gepostet wurden, funktionieren aber nicht. Irgendwas (habe noch nicht rausgefunden was) ist unter <ip>/sony/... verfügbar. Es läuft ein NGix auf dem Fernseher.

Danke & Gruß
Jens

vuffiraa

Hallo Jens,

momentan wird die X-Serie (noch) nicht unterstützt. Leider ist es so, dass Sony die Api zu ihren TVs nicht öffentlich zugänglich gemacht hat. Daher ist der jetzige Stand des Fhem-Moduls durch Infos aus dem Netz und viel Probieren an meinem HX entstanden.

Grundsätzlich spricht nicht dagegen, auch weitere Serien mit dem Modul zu unterstützen. Dazu brauche ich aber Unterstützung durch Leute, die ausprobieren, wie man die anderen Serien Steuern kann.

Hier gibt es noch eine Diskussion (auf Englisch leider) wo versucht wird auf neuere Geräte zuzugreifen. http://forum.xda-developers.com/showthread.php?t=2091564&page=2 Falls die Kommunikation über Json funktioniert, wäre das ein Ansatz.

Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

andy19850

Zitat von: vuffiraa am 16 November 2014, 17:19:58
Hallo andy19850,

Da bin ich leider auch recht ratlos. Nach den Infos aus dem Netz sollte das reine Ausführen von IRCCCodes unabhängig von einer Registrierung funktionieren. Offensichtlich ist das bei deinem Gerät nicht so.
Falls du mit Hilfe von Postman herausbekommen würdest, wie man bei dir eine neue Fernbedienung registriert, könnte ich das auch einbauen.

Gruß Ulf
Hallo Ulf,

ich bin ein Stück weiter gekommen. Neuere Sony Modelle scheinen eine Authentifizierung zu verlangen. Ich habe es auch mit Wireshark sehen können, dass da Cookies zur Authentifizierung ausgetauscht werden. Hier hat sich jemand der Sache angenommen: https://blog.yrden.de/2014/11/14/remote-control-bravia-tvs-with-authentication.html

Mit dieser Methode kann ich den Pi am Sony registrieren, Pin eingeben und Befehle an den TV senden...

vuffiraa


Zitat von: andy19850 am 27 November 2014, 18:13:53
Hallo Ulf,

ich bin ein Stück weiter gekommen. Neuere Sony Modelle scheinen eine Authentifizierung zu verlangen. Ich habe es auch mit Wireshark sehen können, dass da Cookies zur Authentifizierung ausgetauscht werden. Hier hat sich jemand der Sache angenommen: https://blog.yrden.de/2014/11/14/remote-control-bravia-tvs-with-authentication.html

Mit dieser Methode kann ich den Pi am Sony registrieren, Pin eingeben und Befehle an den TV senden...

Das ist doch mal ein Ansatz.

Könntest du vielleicht noch probieren, was dein TV antwortet, wenn du die URLs aus der Datei commands im GitHub aufrufst?

Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Hausautomat

Bin zwar nicht Andy, aber auf meinem X9005A funktioniert das AUTH (erfolgreich registriert), Send_Commands tut aber nicht.

Anbei die Responses auf die enthaltenen Commands. Vielleicht hilft das?

andy19850

Zitat von: vuffiraa am 27 November 2014, 19:00:58
Das ist doch mal ein Ansatz.

Könntest du vielleicht noch probieren, was dein TV antwortet, wenn du die URLs aus der Datei commands im GitHub aufrufst?

Gruß
Ulf
Im Anhang sind die Meldungen aus der Konsole. Nach dem Ausführen der ganzen Commands, will der TV eine Fernbedienung registrieren (Nexus 5).

vuffiraa

Dann habe ich ja jetzt Stoff, um mir die neuere Generation mal anzuschauen. Wird aber etwas dauern, da ich gerade etwas Stress habe. Aber da gibt es ja bald ein paar ruhigere Tage :)

Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

#73
Hallo,

ich habe doch noch gleich eine Bitte an die Leute mit den neueren TVs. Könnt ihr mal ausprobieren, was folgende Links zurückgeben. Bei den Links mit 'Power' im Namen interessieren mich auch die möglichen Werte bei unterschiedlichen Zuständen des TV ;)

curl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getPowerSavingMode","params":[""],"id":1,"version":"1.0"}'
curl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getPowerStatus","params":[""],"id":2,"version":"1.0"}'
curl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getRemoteControllerInfo","params":[""],"id":3,"version":"1.0"}'
curl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getSystemInformation","params":[""],"id":4,"version":"1.0"}'
curl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getSystemSupportedFunction","params":[""],"id":5,"version":"1.0"}'
Gruß
Ulf
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

andy19850

Zitat von: vuffiraa am 01 Dezember 2014, 08:41:43
Hallo,

ich habe doch noch gleich eine Bitte an die Leute mit den neueren TVs. Könnt ihr mal ausprobieren, was folgende Links zurückgeben. Bei den Links mit 'Power' im Namen interessieren mich auch die möglichen Werte bei unterschiedlichen Zuständen des TV ;)

curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getPowerSavingMode","params":[""],"id":1,"version":"1.0"}
curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getPowerStatus","params":[""],"id":2,"version":"1.0"}
curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getRemoteControllerInfo","params":[""],"id":3,"version":"1.0"}
curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getSystemInformation","params":[""],"id":4,"version":"1.0"}
curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getSystemSupportedFunction","params":[""],"id":5,"version":"1.0"}

Gruß
Ulf
Hallo Ulf,

bei den ersten beiden Commands passiert schonmal nicht viel wenn der TV aus ist:

pi@raspberrypi ~ $ curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getPowerSavingMode","params":[""],"id":1,"version":"1.0"}
* About to connect() to 192.168.11.33 port 80 (#0)
*   Trying 192.168.11.33...
* Keine Route zum Zielrechner
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
curl: (3) [globbing] illegal character in range specification at pos 9
* getaddrinfo(3) failed for id:1
* Couldn't resolve host 'id'
* Closing connection #0
curl: (6) Couldn't resolve host 'id'
* getaddrinfo(3) failed for version:1.0:80
* Couldn't resolve host 'version:1.0'
* Closing connection #0
curl: (6) Couldn't resolve host 'version:1.0'
pi@raspberrypi ~ $ curl -v -XPOST http://192.168.11.33/sony/system -d {"method":"getPowerStatus","params":[""],"id":2,"version":"1.0"}
* About to connect() to 192.168.11.33 port 80 (#0)
*   Trying 192.168.11.33...
* Keine Route zum Zielrechner
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host
curl: (3) [globbing] illegal character in range specification at pos 9
* getaddrinfo(3) failed for id:2
* Couldn't resolve host 'id'
* Closing connection #0
curl: (6) Couldn't resolve host 'id'
* getaddrinfo(3) failed for version:1.0:80
* Couldn't resolve host 'version:1.0'
* Closing connection #0
curl: (6) Couldn't resolve host 'version:1.0'