Sony TV HX-, NX-Serie

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

Vorheriges Thema - Nächstes Thema

vuffiraa


Zitat von: StephanH am 21 Januar 2016, 15:52:10
Was spricht dagegen, das Modul ganz offiziell in die FHEM-Verteilung aufzunehmen?
Das leidige Thema Doku...
Aber du hast eigentlich recht.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

onkel-tobi

Hallo zusammen,

ist es eigtl. möglich seinem TV beizubringen, dass er wenn er aus ist auch nicht mehr im LAN erreichbar ist?
Ich würde gerne Aktionen auslösen, wenn der TV ausgeschaltet wird. Da dies aber von FHEM erst ca. 30 Minuten später erkannt wird macht das wenig Sinn ;)

Gruß,
Tobi

Andy89

Zitat von: tihe am 30 November 2015, 20:21:53
Hallo Ulf,

erstmal Danke für das Braviamodul :) Ich nenne seit letzem Wochenende einen Bravia x85 c mit Android TV mein Eigen und habe das Braviamodul bei mir erfolgreich installieren können. Scheint auch zu funktionieren soweit.

Servus,
gab es in die Richtung TVs mit Android weitere Vorgehen? Habe gerade auch nach einem SonyTV Modul gesucht und bin natürlich hier gelandet.

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

crusader

Zitat von: onkel-tobi am 29 Januar 2016, 15:41:01

ist es eigtl. möglich seinem TV beizubringen, dass er wenn er aus ist auch nicht mehr im LAN erreichbar ist?
Ich würde gerne Aktionen auslösen, wenn der TV ausgeschaltet wird. Da dies aber von FHEM erst ca. 30 Minuten später erkannt wird macht das wenig Sinn ;)


Ist bei mir auch so. Wahrscheinlich telefoniert er noch solange 'nach Hause'  :-\ .
Ich hab' aber festgestellt, dass das der einzige Zustand ist, bei dem das 'channel'-reading den Wert '-' hat und mir ein passendes Userreading angelegt:

attr userReadings ready {ReadingsVal($name,"channel",0) eq "-" ? "off": "on"}


und dazu noch das Intervall auf 10sec gesetzt.

Dann geht 'ready' nach dem Ausschalten recht schnell auf "off".

vuffiraa


Zitat von: Andy89 am 29 Januar 2016, 15:48:58
Servus,
gab es in die Richtung TVs mit Android weitere Vorgehen? Habe gerade auch nach einem SonyTV Modul gesucht und bin natürlich hier gelandet.

Beste Grüße
Andy

Hallo Andy,

von meiner Seite gibt es hier nichts Neues. Mir fehlt da einfach das passende Gerät zum Testen. Android TV sieht für mich nach einer komplett anderen Plattform aus und daher wird man auch mit dem aktuellen Modul nicht so viel anfangen können.

Gruß vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa


Zitat von: crusader am 29 Januar 2016, 16:11:55
Ist bei mir auch so. Wahrscheinlich telefoniert er noch solange 'nach Hause'  :-\ .
Ich hab' aber festgestellt, dass das der einzige Zustand ist, bei dem das 'channel'-reading den Wert '-' hat und mir ein passendes Userreading angelegt:

attr userReadings ready {ReadingsVal($name,"channel",0) eq "-" ? "off": "on"}


und dazu noch das Intervall auf 10sec gesetzt.

Dann geht 'ready' nach dem Ausschalten recht schnell auf "off".

Eigentlich sollte der State des Modul von "on" über "absent" auf "off" gehen. Wobei das Modul nur mit dem festgelegten Intervall nach dem TV schaut. Das Intervall ist in den Internals zu finden.

Welche States gibt es bei euch? Wird "absent" erreicht, oder geht es gleich zu "off"? "absent" sollte auch der Status während einer Aufnahme sein.

Gruß vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 29 Januar 2016, 19:08:01

Welche States gibt es bei euch? Wird "absent" erreicht, oder geht es gleich zu "off"? "absent" sollte auch der Status während einer Aufnahme sein.


Mein BRAVIA ist in dieser Phase über das web-IF weiterhin erreichbar, daher kommt auch kein 'absent'.

Der einzige Indikator für diesen Zustand ist, dass der Ferseher keine Kommandos annimmt (ausser Wakeup) und das das channel-Reading auf '-' steht.

vuffiraa


Zitat von: crusader am 29 Januar 2016, 19:19:59
Mein BRAVIA ist in dieser Phase über das web-IF weiterhin erreichbar, daher kommt auch kein 'absent'.

Der einzige Indikator für diesen Zustand ist, dass der Ferseher keine Kommandos annimmt (ausser Wakeup) und das das channel-Reading auf '-' steht.

Ja, das Verhalten ist mir klar. "Absent" soll auch heißen, dass der TV noch nicht ganz aus ist. Das könnte ein Bug sein, dass du auf channel = "-" prüfen musst und nicht den State verwenden kannst.

Der State wird aus den Readings power und presence berechnet. Power on/off bildet die Sichtbarkeit im LAN ab. Presence present/absent soll abbilden, ob der TV gerade etwas anzeigt.

Gruß vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 29 Januar 2016, 19:36:43
Ja, das Verhalten ist mir klar. "Absent" soll auch heißen, dass der TV noch nicht ganz aus ist. Das könnte ein Bug sein, dass du auf channel = "-" prüfen musst und nicht den State verwenden kannst.

Der State wird aus den Readings power und presence berechnet. Power on/off bildet die Sichtbarkeit im LAN ab. Presence present/absent soll abbilden, ob der TV gerade etwas anzeigt.

Gruß vuffiraa

Ja gut, aber 'presence' wird doch nur hier auf 'absent' gesetzt:

    # device not reachable
    if ($err) {
             ...
             ...
            {
                $hash->{helper}{AVAILABLE} = 0;
                readingsBulkUpdate( $hash, "presence", "absent" );
            }


Bleibt also auf auf 'present', solange das TV erreichbar ist.
Welche andere Information willst Du sonst ausnutzen ?

vuffiraa


Zitat von: crusader am 29 Januar 2016, 19:53:00
Ja gut, aber 'presence' wird doch nur hier auf 'absent' gesetzt:

    # device not reachable
    if ($err) {
             ...
             ...
            {
                $hash->{helper}{AVAILABLE} = 0;
                readingsBulkUpdate( $hash, "presence", "absent" );
            }


Bleibt also auf auf 'present', solange das TV erreichbar ist.
Welche andere Information willst Du sonst ausnutzen ?

Jetzt wo du es schreibst und ich noch mal im Modul nachgeschaut habe, nehme ich alles zurück. Es ist umgekehrt, presence ist die Sichtbarkeit im LAN und power bildet Bild an/aus ab.

Ist die Registrierung eurer Module aktuell? Das Reading power wird mit Hilfe der Informationen zum angezeigten Inhalt errechnet. Das funktioniert nur mit einer gültigen Registrierung.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 29 Januar 2016, 20:26:16
Ist die Registrierung eurer Module aktuell? Das Reading power wird mit Hilfe der Informationen zum angezeigten Inhalt errechnet. Das funktioniert nur mit einer gültigen Registrierung.

Ja, ist aktuell. 'Power' bleibt aber nach dem Ausschalten 'on'.

Offensichtlich gibt es auf  'getContentInformation' keine Antwort, da alle Info-Felder auf '-' bleiben.
Das müsste eigentlich reichen, um den Ferseher offiziell für 'off' zu erklären.

Stattdessen gilt aber:

            if ( $hash->{READINGS}{input}{VAL} eq "Others" || $hash->{READINGS}{input}{VAL} eq "Broadcast" ) {
              $newstate = "off";
            } else {
              $newstate = "on";


Ist da vielleicht 'on' und 'off' vertauscht ?

Andy89

#221
Zitat von: vuffiraa am 29 Januar 2016, 19:00:34
Hallo Andy,

von meiner Seite gibt es hier nichts Neues. Mir fehlt da einfach das passende Gerät zum Testen. Android TV sieht für mich nach einer komplett anderen Plattform aus und daher wird man auch mit dem aktuellen Modul nicht so viel anfangen können.

Gruß vuffiraa
nicht so viel wie ihr, ja... aber ein bisschen geht auf jeden Fall. zB funktioniert der Pairing Prozess mit einem Code, nach dem man auf JSON umgestellt hat. Der authCookie und die registrationUUID sind auch gefüllt.

Weiterhin funktioniert die Einstellung der Lautstärke (volume mit einer Zahl) Dies funktioniert auch in beide Richtungen. Mute on/off funktioniert auch in beide Richtungen (toggle gar nicht). Ich glaube das wars auch schon..


nun habe ich hier https://blog.yrden.de/2014/11/14/remote-control-bravia-tvs-with-authentication.html ein paar Infos gefunden und mit diesem Code,

curl  -XPOST http://192.168.11.33/sony/system --header "Authorization: OjkyYjE=" -d '{"method":"getRemoteControllerInfo","params":[],"id":10,"version":"1.0"}'

habe ich nun auch die richtige Parameterliste erhalten, die habe ich mal in den Anhang gepackt.

Danke schon einmal für deine Hilfe  :) :)

edit:
die Inhalte funktionieren auch:
das
Zitatcurl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getPowerStatus","params":[],"id":2,"version":"1.0"}'
erzeugt
Zitat{"result":[{"mode":"off"}],"id":1}

das
Zitatcurl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getPowerStatus","params":[],"id":2,"version":"1.0"}'
erzeugt
Zitat{"result":[{"status":"active"}],"id":2}

das
Zitatcurl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getSystemInformation","params":[],"id":4,"version":"1.0"}'
ezeugt
Zitat{"auth_url":{"default":"http:\/\/192.168.2.5:80\/sony\/webauth\/auth_default","tv":"http:\/\/127.0.0.1:80\/sony\/webauth\/auth_tv"},"error":[403,"Forbidden"],"id":4}

das
Zitatcurl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getSystemSupportedFunction","params":[],"id":5,"version":"1.0"}'
ezeugt
Zitat{"result":[[{"option":"WOL","value":"AA:9B:0A:BA:94:0C"}]],"id":5}

edit2:
Zitatcurl -v -XPOST http://192.168.11.33/sony/system -d '{"method":"getInterfaceInformation","params":[],"id":2,"version":"1.0"}'
erzeugt
Zitat{"result":[{"productCategory":"tv","productName":"BRAVIA","modelName":"KD-65X8505C","serverName":"","interfaceVersion":"3.6.0"}],"id":2}
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

vuffiraa


Zitat von: crusader am 29 Januar 2016, 21:13:37
Ja, ist aktuell. 'Power' bleibt aber nach dem Ausschalten 'on'.

Offensichtlich gibt es auf  'getContentInformation' keine Antwort, da alle Info-Felder auf '-' bleiben.
Das müsste eigentlich reichen, um den Ferseher offiziell für 'off' zu erklären.

Stattdessen gilt aber:

            if ( $hash->{READINGS}{input}{VAL} eq "Others" || $hash->{READINGS}{input}{VAL} eq "Broadcast" ) {
              $newstate = "off";
            } else {
              $newstate = "on";


Ist da vielleicht 'on' und 'off' vertauscht ?

Wahrscheinlich ist es nicht so einfach. Das input-Reading wird schon vorher bei getStatus gesetzt. Wenn getContentInformation nun keine Daten liefert, ist der TV im Standby. Welchen Wert hat Input bei dir, wenn Channel "-" ist?
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 29 Januar 2016, 21:43:48
Welchen Wert hat Input bei dir, wenn Channel "-" ist?

Input bleibt unverändert, also z.B: 'tv:dvbs'

vuffiraa


Zitat von: crusader am 29 Januar 2016, 21:56:55
Input bleibt unverändert, also z.B: 'tv:dvbs'

Das war ein guter Hinweis. Ich glaube, ich habe da eine Idee, wo der Fehler liegt. Heute schaffe ich die Änderung aber nicht mehr.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean