Sony TV HX-, NX-Serie

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

Vorheriges Thema - Nächstes Thema

vuffiraa

Ich habe das Verhalten beim Statusabfragen etwas geändert, vielleicht hilft es. Die neue Version findet ihr hier.

Bitte mal probieren  :)
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

#226
Zitat von: Andy89 am 29 Januar 2016, 21:38:03
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 erzeugt
das  erzeugt
dasezeugt
das ezeugt
edit2: erzeugt

Hallo Andy,

das sieht ja doch so aus, als ob sich ein genauerer Blick lohnen könnte. Kannst du vielleicht noch folgende URLs probieren:
curl -v -XPOST http://192.168.178.45/sony/guide -d '{"method":"getMethodTypes","params":[""],"id":1,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/system -d '{"method":"getMethodTypes","params":[""],"id":2,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/videoScreen -d '{"method":"getMethodTypes","params":[""],"id":3,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/audio -d '{"method":"getMethodTypes","params":[""],"id":4,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/avContent-d '{"method":"getMethodTypes","params":[""],"id":5,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/recording -d '{"method":"getMethodTypes","params":[""],"id":6,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/appControl -d '{"method":"getMethodTypes","params":[""],"id":7,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/browser -d '{"method":"getMethodTypes","params":[""],"id":8,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/notification -d '{"method":"getMethodTypes","params":[""],"id":9,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/cec -d '{"method":"getMethodTypes","params":[""],"id":10,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/accessControl -d '{"method":"getMethodTypes","params":[""],"id":11,"version":"1.0"}'
curl -v -XPOST http://192.168.178.45/sony/encryption -d '{"method":"getMethodTypes","params":[""],"id":12,"version":"1.0"}'


Eventuell muss du noch den Header ergänzen -H "Cookie: auth=<authCookie>".
<authCookie> mit dem Wert aus den Readings ersetzen.

Gruß vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 30 Januar 2016, 13:11:34
Bitte mal probieren  :)

Erste Ergebnisse:

TV: KDL-42W815B
Poll-Intervall: 1 s

Reaktion(change-reading) von power,presence und channel bei TV-Ausschalten:

Test #Off1 15:57:50
2016-01-30 15:57:51 BRAVIA TV off
2016-01-30 15:57:55 BRAVIA TV power: off
2016-01-30 16:03:14 BRAVIA TV presence: absent

Test #Off2 16:05:42
2016-01-30 16:05:43 BRAVIA TV off
2016-01-30 16:05:47 BRAVIA TV power: off
2016-01-30 16:05:47 BRAVIA TV power: on
2016-01-30 16:05:48 BRAVIA TV power: off
2016-01-30 16:11:01 BRAVIA TV presence: absent
2016-01-30 16:05:48 BRAVIA TV power: off


Reaktion(change-reading) von power,presence und channel bei TV-Einschalten:

Test #On1 16:13:47
2016-01-30 16:14:12 BRAVIA TV presence: present
2016-01-30 16:14:12 BRAVIA TV channel: -
2016-01-30 16:14:12 BRAVIA TV power: on
2016-01-30 16:14:31 BRAVIA TV presence: absent
2016-01-30 16:14:31 BRAVIA TV power: off
2016-01-30 16:14:35 BRAVIA TV presence: present
2016-01-30 16:14:35 BRAVIA TV channel: WDR_HD
2016-01-30 16:14:35 BRAVIA TV power: on
2016-01-30 16:14:35 BRAVIA TV presence: absent
2016-01-30 16:14:35 BRAVIA TV power: off
2016-01-30 16:14:35 BRAVIA TV presence: present
2016-01-30 16:14:36 BRAVIA TV power: on
2016-01-30 16:14:36 BRAVIA TV presence: absent
2016-01-30 16:14:36 BRAVIA TV power: off
2016-01-30 16:14:36 BRAVIA TV presence: present
2016-01-30 16:14:37 BRAVIA TV presence: absent
2016-01-30 16:14:37 BRAVIA TV presence: present
2016-01-30 16:14:38 BRAVIA TV power: on

Test #On2 16:26:30
2016-01-30 16:26:55 BRAVIA TV presence: present
2016-01-30 16:26:55 BRAVIA TV channel: -
2016-01-30 16:26:55 BRAVIA TV power: on
2016-01-30 16:27:16 BRAVIA TV presence: absent
2016-01-30 16:27:16 BRAVIA TV power: off
2016-01-30 16:27:18 BRAVIA TV presence: present
2016-01-30 16:27:18 BRAVIA TV channel: WDR_HD
2016-01-30 16:27:18 BRAVIA TV power: on
2016-01-30 16:27:19 BRAVIA TV presence: absent
2016-01-30 16:27:19 BRAVIA TV power: off
2016-01-30 16:27:19 BRAVIA TV presence: present
2016-01-30 16:27:19 BRAVIA TV power: on


Hmmmh

vuffiraa

#228
Zitat von: crusader am 30 Januar 2016, 16:34:24
Hmmmh

Du beschwerst dich doch nicht etwa über die wechselnden Zustände  ;)
Sind deine Test-Logs vollständig und die Wechsel hören auf, oder geht das immer so weiter?

Kannst du mal das Gerät auf verbose=5 stellen und die Wechsel mitloggen.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 30 Januar 2016, 16:59:58
Du beschwerst dich doch nicht etwa über die wechselnden Zustände  ;)

Kannst du mal das Gerät auf verbose=5 stellen und die Wechsel mitloggen.

Ein Teil des Problems könnte die zu kurze Interval-Zeit sein. Daher hier mal Test mit 3s-Intervall:

Diesmal state,power,presence und channel:

2016-01-30 17:21:05 Global global ATTR TV verbose 4
2016-01-30 17:22:24 BRAVIA TV presence: present
2016-01-30 17:22:24 BRAVIA TV channel: -
2016-01-30 17:22:24 BRAVIA TV power: on
2016-01-30 17:22:24 BRAVIA TV on
2016-01-30 17:22:43 BRAVIA TV presence: absent
2016-01-30 17:22:43 BRAVIA TV power: off
2016-01-30 17:22:43 BRAVIA TV absent
2016-01-30 17:22:44 BRAVIA TV presence: present
2016-01-30 17:22:49 BRAVIA TV channel: Das_Erste_HD
2016-01-30 17:22:49 BRAVIA TV power: on
2016-01-30 17:22:49 BRAVIA TV on
2016-01-30 17:23:08 Global global ATTR TV verbose 0


verbose 5 ist aber wirklich brutal. Wir wollen diesen Server hier ja nicht überlasten.
Daher zunächst mal mit verbose 4:

2016.01.30 17:22:00 2: BRAVIA set TV on
2016.01.30 17:22:00 4: BRAVIA TV: Waking up by sending Wake-On-Lan magic package to D8D43CECC8A6
2016.01.30 17:22:01 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:03 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:04 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:06 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:07 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:09 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:10 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:12 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:13 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:15 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:15 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:15 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:16 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:18 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:18 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:21 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:21 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:24 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:24 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:24 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.01.30 17:22:24 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:24 4: BRAVIA TV: RCV getContentInformation
2016.01.30 17:22:24 4: BRAVIA TV: RES getContentInformation - {"error":[404,"Not Found"]}
2016.01.30 17:22:24 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 17:22:24 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 17:22:24 4: BRAVIA TV: RCV TIMEOUT upnp/getMute
2016.01.30 17:22:24 4: BRAVIA TV: RCV TIMEOUT upnp/getVolume
2016.01.30 17:22:27 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:27 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:27 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.01.30 17:22:27 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:27 4: BRAVIA TV: RCV getContentInformation
2016.01.30 17:22:27 4: BRAVIA TV: RES getContentInformation - {"error":[404,"Not Found"]}
2016.01.30 17:22:27 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 17:22:27 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 17:22:27 4: BRAVIA TV: RCV TIMEOUT upnp/getVolume
2016.01.30 17:22:27 4: BRAVIA TV: RCV TIMEOUT upnp/getMute
2016.01.30 17:22:30 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:30 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:30 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.01.30 17:22:30 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:30 4: BRAVIA TV: RCV getContentInformation
2016.01.30 17:22:30 4: BRAVIA TV: RES getContentInformation - {"error":[404,"Not Found"]}
2016.01.30 17:22:30 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 17:22:30 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 17:22:30 4: BRAVIA TV: RCV TIMEOUT upnp/getMute
2016.01.30 17:22:30 4: BRAVIA TV: RCV TIMEOUT upnp/getVolume
2016.01.30 17:22:33 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:33 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:33 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.01.30 17:22:33 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:33 4: BRAVIA TV: RCV getContentInformation
2016.01.30 17:22:33 4: BRAVIA TV: RES getContentInformation - {"error":[404,"Not Found"]}
2016.01.30 17:22:33 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 17:22:33 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 17:22:33 4: BRAVIA TV: RCV TIMEOUT upnp/getMute
2016.01.30 17:22:33 4: BRAVIA TV: RCV TIMEOUT upnp/getVolume
2016.01.30 17:22:36 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:39 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:42 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:43 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 17:22:44 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:44 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.01.30 17:22:44 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:45 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:45 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:45 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.01.30 17:22:45 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:48 4: BRAVIA TV: REQ getStatus/json
2016.01.30 17:22:49 4: BRAVIA TV: RCV getStatus/json
2016.01.30 17:22:49 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.01.30 17:22:49 4: BRAVIA TV: REQ getContentInformation
2016.01.30 17:22:49 4: BRAVIA TV: RCV getContentInformation
2016.01.30 17:22:49 4: BRAVIA TV: RES getContentInformation - {"id":1,"result":[{"dispNum":"001","durationSec":5820,"programMediaType":"tv","programTitle":"Sportschau live","source":"tv:dvbs","startDateTime":"2016-01-30T16:23:00+0100","title":"Das Erste HD","tripletStr":"1.1019.10301","uri":"tv:dvbs?trip=1.1019.10301&srvName=Das%20Erste%20HD"}]}
2016.01.30 17:22:49 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 17:22:49 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 17:22:50 4: BRAVIA TV: RCV upnp/getVolume
2016.01.30 17:22:50 4: BRAVIA TV: RES upnp/getVolume - <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetVolumeResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentVolume>14</CurrentVolume></u:GetVolumeResponse></s:Body></s:Envelope>
2016.01.30 17:22:50 4: BRAVIA TV: RCV upnp/getMute
2016.01.30 17:22:50 4: BRAVIA TV: RES upnp/getMute - <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetMuteResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentMute>0</CurrentMute></u:GetMuteResponse></s:Body></s:Envelope>



Das erklärt vielleicht auch schon die wechselnde Stati.

vuffiraa

Zitat von: crusader am 30 Januar 2016, 17:39:14
Das erklärt vielleicht auch schon die wechselnde Stati.

Die Error-Zeile zwischendurch kannte ich noch nicht. Mein TV antwortet mit Daten oder gar nicht. Mit einem längeren Intervall läuft man natürlich nicht so oft in diesen Zwischenzustand.

Kannst du das gleiche noch mal beim Ausschalten machen?
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 30 Januar 2016, 18:46:55
Die Error-Zeile zwischendurch kannte ich noch nicht. Mein TV antwortet mit Daten oder gar nicht. Mit einem längeren Intervall läuft man natürlich nicht so oft in diesen Zwischenzustand.

Kannst du das gleiche noch mal beim Ausschalten machen?

Das sieht entspannter aus (bei 3s Intervall):


2016-01-30 19:25:05 BRAVIA TV off
2016-01-30 19:25:10 BRAVIA TV power: off
2016-01-30 19:25:10 BRAVIA TV off
2016-01-30 19:30:21 BRAVIA TV presence: absent
2016-01-30 19:30:21 BRAVIA TV absent



2016.01.30 19:25:05 2: BRAVIA set TV off
2016.01.30 19:25:05 4: BRAVIA TV: REQ ircc/STANDBY
2016.01.30 19:25:05 4: BRAVIA TV: RCV ircc/AAAAAQAAAAEAAAAvAw==
2016.01.30 19:25:05 4: BRAVIA TV: RES ircc/AAAAAQAAAAEAAAAvAw== - response
2016.01.30 19:25:06 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:25:06 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:25:06 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.01.30 19:25:06 4: BRAVIA TV: REQ getContentInformation
2016.01.30 19:25:06 4: BRAVIA TV: RCV getContentInformation
2016.01.30 19:25:06 4: BRAVIA TV: RES getContentInformation - {"id":1,"result":[{"dispNum":"002","durationSec":3000,"programMediaType":"tv","programTitle":"Sibel & Max","source":"tv:dvbs","startDateTime":"2016-01-30T19:25:00+0100","title":"ZDF HD","tripletStr":"1.1011.11110","uri":"tv:dvbs?trip=1.1011.11110&srvName=ZDF%20HD"}]}
2016.01.30 19:25:06 4: BRAVIA TV: REQ upnp/getVolume
2016.01.30 19:25:06 4: BRAVIA TV: REQ upnp/getMute
2016.01.30 19:25:06 4: BRAVIA TV: RCV upnp/getMute
2016.01.30 19:25:06 4: BRAVIA TV: RES upnp/getMute - <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetMuteResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentMute>0</CurrentMute></u:GetMuteResponse></s:Body></s:Envelope>
2016.01.30 19:25:06 4: BRAVIA TV: RCV upnp/getVolume
2016.01.30 19:25:06 4: BRAVIA TV: RES upnp/getVolume - <?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetVolumeResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentVolume>14</CurrentVolume></u:GetVolumeResponse></s:Body></s:Envelope>
2016.01.30 19:25:09 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:25:10 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:25:10 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:25:12 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:25:12 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:25:12 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:25:15 4: BRAVIA TV: REQ getStatus/json

...Stunden später:

2016.01.30 19:29:17 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:20 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:20 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:20 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:23 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:23 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:23 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:26 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:26 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:26 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:29 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:29 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:29 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:32 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:32 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:32 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:35 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:35 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:35 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:38 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:38 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:38 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:41 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:41 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:41 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:44 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:44 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:44 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:47 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:47 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:47 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:50 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:50 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:50 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:53 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:53 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:53 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:56 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:56 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:56 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:29:59 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:29:59 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:29:59 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:30:02 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:02 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:30:02 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:30:05 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:05 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:30:05 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:30:08 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:08 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:30:08 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:30:11 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:11 4: BRAVIA TV: RCV getStatus/json
2016.01.30 19:30:11 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"standby"}]}
2016.01.30 19:30:14 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:17 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:20 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:21 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:23 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:24 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:26 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:27 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:29 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:30 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:32 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:33 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:35 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:36 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:38 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:39 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:41 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:42 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.01.30 19:30:44 4: BRAVIA TV: REQ getStatus/json
2016.01.30 19:30:45 4: BRAVIA TV: RCV TIMEOUT getStatus/json

vuffiraa

Okay, dann behaupte ich mal, dass sich beim Ausschalten alles wie erwartet verhält.
Das "Flackern" des Status erkläre ich mir so, beim Ausschalten über Fhem wird auch gleich der Status auf Off gesetzt, gleichzeitig meldet der TV aber noch, dass er noch an ist. Damit ist der Status erst mal wieder On. Das tritt aber hoffentlich nur auf, wenn man ein sehr kurzes Intervall eingestellt hat.
Um den Einschaltvorgang kümmere ich mich.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 30 Januar 2016, 20:11:42
Okay, dann behaupte ich mal, dass sich beim Ausschalten alles wie erwartet verhält.
Das "Flackern" des Status erkläre ich mir so, beim Ausschalten über Fhem wird auch gleich der Status auf Off gesetzt, gleichzeitig meldet der TV aber noch, dass er noch an ist. Damit ist der Status erst mal wieder On. Das tritt aber hoffentlich nur auf, wenn man ein sehr kurzes Intervall eingestellt hat.
Um den Einschaltvorgang kümmere ich mich.

Möglicherweise existieren bei einem 1s-Intervall mehrere Instanzen der Getupdate-Funktion parallel.
Ist auf jeden Fall kein Anwendungsfall.

Noch etwas:
Aufwecken aus Standby mit POWER-Befehl geht bei meinem TV nicht. Der braucht auf jeden Fall WOL.

Ansonsten ein tolles Modul. Sollte doch eigentlich reif für die contrib sein.

vuffiraa

Zitat von: crusader am 30 Januar 2016, 21:08:38
Möglicherweise existieren bei einem 1s-Intervall mehrere Instanzen der Getupdate-Funktion parallel.
Ist auf jeden Fall kein Anwendungsfall.

Noch etwas:
Aufwecken aus Standby mit POWER-Befehl geht bei meinem TV nicht. Der braucht auf jeden Fall WOL.

Ansonsten ein tolles Modul. Sollte doch eigentlich reif für die contrib sein.

Ok, hier der nächste Versuch.
Ich habe die Logik für On-Off-Standby weiter angepasst und hoffe es jetzt getroffen zu haben.
Außerdem sollte man die Geräte mit WOL jetzt immer einschalten können, außer wenn der Status bereits "on" sagt.

@crusader: Nimmst du vielleicht auch auf eine angeschlossene Platte auf? Wenn ja, was sagt das Modul dazu. Interessant ist genauso, was bei TVPause passiert.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 31 Januar 2016, 14:45:49
Ok, hier der nächste Versuch.
I

Der Familienrat hat mit Hinweis auf die aktuelle Wetterlage meinen Antrag auf abwechselndes Ein- und Ausschalten des Fernsehers zu Forschungszwecken abgelehnt.

Ich bitte um Geduld.


vuffiraa


Zitat von: crusader am 31 Januar 2016, 15:33:09
Der Familienrat hat mit Hinweis auf die aktuelle Wetterlage meinen Antrag auf abwechselndes Ein- und Ausschalten des Fernsehers zu Forschungszwecken abgelehnt.

Ich bitte um Geduld.

Kein Problem :)
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

#237
Anbei der Einschaltvorgang mit der neuesten Version:



2016-02-01 00:43:24 BRAVIA TV presence: present
2016-02-01 00:43:24 BRAVIA TV off
2016-02-01 00:43:46 BRAVIA TV presence: absent
2016-02-01 00:43:46 BRAVIA TV absent
2016-02-01 00:43:48 BRAVIA TV presence: present
2016-02-01 00:43:49 BRAVIA TV channel: ZDF_HD
2016-02-01 00:43:49 BRAVIA TV power: on
2016-02-01 00:43:49 BRAVIA TV on



2016.02.01 00:43:00 2: BRAVIA set TV on
2016.02.01 00:43:00 4: BRAVIA TV: Waking up by sending Wake-On-Lan magic package to D8D43CECC8A6
2016.02.01 00:43:01 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:03 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:04 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:06 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:07 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:09 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:10 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:12 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:13 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:15 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:15 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:15 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:16 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:18 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:18 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:21 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:21 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:24 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:24 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:24 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.02.01 00:43:27 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:27 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:27 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.02.01 00:43:30 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:30 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:30 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.02.01 00:43:33 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:33 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:33 4: BRAVIA TV: RES getStatus/json - {"error":[404,"Not Found"]}
2016.02.01 00:43:36 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:39 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:42 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:43 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:43 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.02.01 00:43:43 4: BRAVIA TV: REQ getContentInformation
2016.02.01 00:43:45 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:46 4: BRAVIA TV: RCV TIMEOUT getStatus/json
2016.02.01 00:43:48 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:43:48 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:43:48 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.02.01 00:43:48 4: BRAVIA TV: REQ getContentInformation
2016.02.01 00:43:49 4: BRAVIA TV: RCV getContentInformation
2016.02.01 00:43:49 4: BRAVIA TV: RES getContentInformation - {"id":1,"result":[{"dispNum":"002","durationSec":2700,"programMediaType":"tv","programTitle":"Precht","source":"tv:dvbs","startDateTime":"2016-02-01T00:00:00+0100","title":"ZDF HD","tripletStr":"1.1011.11110","uri":"tv:dvbs?trip=1.1011.11110&srvName=ZDF%20HD"}]}


Vielleicht könnte man auf die 'absent'-Erkennung eine 'Entprellzeit' von einigen Sekunden legen, um den Zwischenzustand am Anfang zu verhindern.

Bei TVPause-Betätigung ändert sich nichts am Status. Sobald Timeshift-Wiedergabe läuft, ändert sich der channel auf '-'.
Log-Ausgabe in diesem Zustand:

2016.02.01 00:55:24 4: BRAVIA TV: REQ getStatus/json
2016.02.01 00:55:24 4: BRAVIA TV: RCV getStatus/json
2016.02.01 00:55:24 4: BRAVIA TV: RES getStatus/json - {"id":1,"result":[{"status":"active"}]}
2016.02.01 00:55:24 4: BRAVIA TV: REQ getContentInformation
2016.02.01 00:55:25 4: BRAVIA TV: RCV getContentInformation
2016.02.01 00:55:25 4: BRAVIA TV: RES getContentInformation - {"error":[7,"Illegal State"],"id":1}


vuffiraa

Zitat von: crusader am 01 Februar 2016, 00:57:04
Vielleicht könnte man auf die 'absent'-Erkennung eine 'Entprellzeit' von einigen Sekunden legen, um den Zwischenzustand am Anfang zu verhindern.

Bei TVPause-Betätigung ändert sich nichts am Status. Sobald Timeshift-Wiedergabe läuft, ändert sich der channel auf '-'.

'Entprellzeit' ist vielleicht eine Idee, ich weiß aber so direkt nicht, wie ich das Umsetzen kann. Muss ich mal schauen.

Beim Timeshift liefert der TV leider keine guten Daten. Man sieht es in der Error-Zeile in deinem letzten Log. Der Kanal steht normalerweise auch in den Information aus getContentInformation.
Der TV sagt ja auch nicht, dass er im Timeshift-Modus ist. Daher ist der Kanal damit unbekannt und wird auf '-' gesetzt. Ich könnte hier die alten Daten auch erhalten, bisher ist mir diese Error-Zeile aber zu unspezifisch. Dann heißt es nächstes Mal, dass der TV schon längst was anderes macht, aber noch die letzte Sendung in den Daten angezeigt wird  ;)
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

crusader

Zitat von: vuffiraa am 01 Februar 2016, 19:58:37
'Entprellzeit' ist vielleicht eine Idee, ich weiß aber so direkt nicht, wie ich das Umsetzen kann. Muss ich mal schauen.


Ist vielleicht auch zu kompliziert gedacht.
Einfacher wäre es, das 'presence'-Signal bei error 404 noch nicht auf present zu setzen. Dann kommt es halt ein paar Sekunden später, bleibt aber stabil.

Übrigens scheint TVSideView den Timeshift-Status erkennen zu können. Die Programme des aktuellen Senders werden dann nämlich im Programmführer mit einem Uhrensymbol verziert.