Sony TV HX-, NX-Serie

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

Vorheriges Thema - Nächstes Thema

mar5

Hi,

ich habe hier einmal Channels direkt aufgerufen. Das ist nur ein Befehl und spart somit Zeit. Der Sony ist eh schon so langsam.
Der ganze Weg, wie man die Channels ausliest bis zum letzten wichtigen Aufruf  folgt hier:

curl -v -XPOST http://192.168.178.22/sony/avContent -d '{"method":"getMethodTypes","params":[""],"id":5,"version":"1.0"}'

{"results":[["deleteContent",["{\"uri\":\"string\"}"],[],"1.0"],["getContentCount",["{\"source\":\"string\", \"type\":\"string\"}"],["{\"count\":\"int\"}"],"1.0"],["getContentList",["{\"source\":\"string\", \"stIdx\":\"int\", \"cnt\":\"int\", \"type\":\"string\"}"],["{\"uri\":\"string\", \"title\":\"string\", \"index\":\"int\", \"dispNum\":\"string\", \"originalDispNum\":\"string\", \"tripletStr\":\"string\", \"programNum\":\"int\", \"programMediaType\":\"string\", \"directRemoteNum\":\"int\", \"startDateTime\":\"string\", \"durationSec\":\"int\", \"channelName\":\"string\", \"fileSizeByte\":\"int\", \"isProtected\":\"bool\", \"isAlreadyPlayed\":\"bool\"}*"],"1.0"],["getCurrentExternalInputsStatus",[],["{\"uri\":\"string\", \"title\":\"string\", \"connection\":\"bool\", \"label\":\"string\", \"icon\":\"string\"}*"],"1.0"],["getParentalRatingSettings",[],["{\"ratingTypeAge\":\"int\", \"ratingTypeSony\":\"string\", \"ratingCountry\":\"string\", \"ratingCustomTypeTV\":\"string*\", \"ratingCustomTypeMpaa\":\"string\", \"ratingCustomTypeCaEnglish\":\"string\", \"ratingCustomTypeCaFrench\":\"string\", \"unratedLock\":\"bool\"}"],"1.0"],["getPlayingContentInfo",[],["{\"uri\":\"string\", \"source\":\"string\", \"title\":\"string\", \"dispNum\":\"string\", \"originalDispNum\":\"string\", \"tripletStr\":\"string\", \"programNum\":\"int\", \"programTitle\":\"string\", \"startDateTime\":\"string\", \"durationSec\":\"int\", \"mediaType\":\"string\", \"playSpeed\":\"string\", \"bivl_serviceId\":\"string\", \"bivl_assetId\":\"string\", \"bivl_provider\":\"string\"}"],"1.0"],["getSchemeList",[],["{\"scheme\":\"string\"}*"],"1.0"],["getSourceList",["{\"scheme\":\"string\"}"],["{\"source\":\"string\"}*"],"1.0"],["setDeleteProtection",["{\"uri\":\"string\", \"isProtected\":\"bool\"}"],[],"1.0"],["setFavoriteContentList",["{\"favSource\":\"string\", \"contents\":\"string*\"}"],[],"1.0"],["setPlayContent",["{\"uri\":\"string\"}"],[],"1.0"],["setPlayTvContent",["{\"channel\":\"string\"}"],[],"1.0"],["setTvContentVisibility",["{\"uri\":\"string\", \"epgVisibility\":\"string\", \"channelSurfingVisibility\":\"string\", \"visibility\":\"string\"}*"],[],"1.0"],["getMethodTypes",["string"],["string","string*","string*","string"],"1.0"],["getVersions",[],["string*"],"1.0"],["getContentCount",["{\"source\":\"string\", \"type\":\"string\", \"target\":\"string\"}"],["{\"count\":\"int\"}"],"1.1"],["getCurrentExternalInputsStatus",[],["{\"uri\":\"string\", \"title\":\"string\", \"connection\":\"bool\", \"label\":\"string\", \"icon\":\"string\", \"status\":\"string\"}*"],"1.1"],["setPlayTvContent",["{\"channel\":\"PlayTvChannel\", \"source\":\"string\", \"sourceType\":\"string\", \"broadcastFreqName\":\"string\", \"ignoreVisibilitySettings\":\"bool\"}"],[],"1.1"],["getContentList",["{\"source\":\"string\", \"stIdx\":\"int\", \"cnt\":\"int\", \"type\":\"string\", \"target\":\"string\"}"],["{\"uri\":\"string\", \"title\":\"string\", \"index\":\"int\", \"dispNum\":\"string\", \"originalDispNum\":\"string\", \"tripletStr\":\"string\", \"programNum\":\"int\", \"programMediaType\":\"string\", \"directRemoteNum\":\"int\", \"epgVisibility\":\"string\", \"channelSurfingVisibility\":\"string\", \"visibility\":\"string\", \"startDateTime\":\"string\", \"channelName\":\"string\", \"fileSizeByte\":\"int\", \"isProtected\":\"bool\", \"isAlreadyPlayed\":\"bool\", \"productID\":\"string\", \"contentType\":\"string\", \"storageUri\":\"string\", \"videoCodec\":\"string\", \"chapterCount\":\"int\", \"durationSec\":\"double\", \"audioCodec\":\"string*\", \"audioFrequency\":\"string*\", \"audioChannel\":\"string*\", \"subtitleLanguage\":\"string*\", \"subtitleTitle\":\"string*\", \"parentalRating\":\"string*\", \"parentalSystem\":\"string*\", \"parentalCountry\":\"string*\", \"sizeMB\":\"int\", \"createdTime\":\"string\", \"userContentFlag\":\"bool\"}*"],"1.2"]],"id":5}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
curl -v -XPOST http://192.168.178.22/sony/avContent -d '{"method":"getContentCount","params":[{"source":"tv:dvbs","type":""}],"id":2,"version":"1.0"}' -H "Cookie: auth=A9E7A2380A80662AA1DC846B70FA5EE10BE968A6"

{"result":[{"count":155}],"id":2}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
curl -v -XPOST http://192.168.178.22/sony/avContent -d '{"method":"getContentList","params":[{"source":"tv:dvbs","stIdx":1,"cnt":10,"type":""}],"id":3,"version":"1.0"}' -H "Cookie: auth=A9E7A2380A80662AA1DC846B70FA5EE10BE968A6"

{"result":[[{"uri":"tv:dvbs?trip=1.1011.11110&srvName=ZDF HD","title":"ZDF HD","index":1,"dispNum":"0002","tripletStr":"1.1011.11110","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1089.12003&srvName=RTL Television","title":"RTL Television","index":2,"dispNum":"0003","tripletStr":"1.1089.12003","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1107.17500&srvName=SAT.1","title":"SAT.1","index":3,"dispNum":"0004","tripletStr":"1.1107.17500","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1107.17501&srvName=ProSieben","title":"ProSieben","index":4,"dispNum":"0005","tripletStr":"1.1107.17501","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1107.17502&srvName=kabel eins","title":"kabel eins","index":5,"dispNum":"0006","tripletStr":"1.1107.17502","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1089.12020&srvName=RTL2","title":"RTL2","index":6,"dispNum":"0007","tripletStr":"1.1089.12020","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1089.12060&srvName=VOX","title":"VOX","index":7,"dispNum":"0008","tripletStr":"1.10* Connection #0 to host 192.168.178.22 left intact
89.12060","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1019.10302&srvName=arte HD","title":"arte HD","index":8,"dispNum":"0009","tripletStr":"1.1019.10302","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1010.11150&srvName=3sat HD","title":"3sat HD","index":9,"dispNum":"0010","tripletStr":"1.1010.11150","programMediaType":"tv"},{"uri":"tv:dvbs?trip=1.1007.4914&srvName=ServusTV HD Deutschland","title":"ServusTV HD Deutschland","index":10,"dispNum":"0011","tripletStr":"1.1007.4914","programMediaType":"tv"}]],"id":3}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
curl -v -XPOST http://192.168.178.22/sony/avContent -d '{"method":"setPlayContent","params":[{"uri":"tv:dvbs?trip=1.1011.11110&srvName=ZDF HD","type":""}],"id":3,"version":"1.0"}' -H "Cookie: auth=A9E7A2380A80662AA1DC846B70FA5EE10BE968A6"


Hier noch der Fehler in Bravia.pm - statt app sollte wohl application stehen.

So funktioniert der Aufruf mit FHEM über das Webinterface.
    # app
    elsif ( $a[1] eq "application" ) {
        if (defined($a[2]) && $presence eq "present" && $power ne "on" ) {

willibutz

Hallo vuffiraa,
habe Apps, Kanäle und Inputs mit Leerzeichen getestet, alles OK  :)

Bei den Kanälen ist mir gleich wieder eines meiner Probleme eingefallen, vielleicht hast du ja eine Idee woran das liegen kann: Ich wechsle per ALEXA den Kanal, indem ich die Nummer vorgebe. Die Kanalnummer wird von ALEXA korrekt an FHEM übermittelt und zwar an das DOIF "SenderWechsel" dem ich das Reading "desired-temp" spendiert habe ;-)

Das DOIF ist wie folgt definiert:
(["SenderWechsel:desired-temp"])
({
foreach my $char (split //, ReadingsVal("SenderWechsel","desired-temp","0"))
{fhem "set BRAVIA remoteControl $char"}
})


Prinzipiell funktioniert das ganze, allerdings werden manchmal bei zweistelligen Kanalnummern, die Einer- und Zehnerstelle vertauscht. Wenn ich das ganze im EventMonitor beobachte sehe ich z.B. für Kanal 45 immer die richtige Reihenfolge der Ziffern:


set BRAVIA remoteControl 4
set BRAVIA remoteControl 5


am Fernseher kommen sie aber manchmal trotzdem als 54 an. Ich habe keine Anhnung ob das was mit deinem Modul zu tun hat oder ein prinzipielles FHEM "Zeitproblem" ist (überholen ohne einzuholen  ;D ), aber vielleicht hast du ja eine Idee,

LG willibutz


vuffiraa

Zitat von: willibutz am 16 Januar 2018, 20:34:44
am Fernseher kommen sie aber manchmal trotzdem als 54 an. Ich habe keine Anhnung ob das was mit deinem Modul zu tun hat oder ein prinzipielles FHEM "Zeitproblem" ist (überholen ohne einzuholen  ;D ), aber vielleicht hast du ja eine Idee,

Hallo willibutz,

im Modul ist dieses Problem ganz pragmatisch mit bösen Blocking-Calls gelöst. Wird also für jede Zahl erst auf die Bestätigung gewartet, bevor es weitergeht.
Für dein Problem ist das nicht so einfach zu erzwingen, einen kleinen Hack könnte es aber geben, wenn die den Channel-Setter benutzt. Probier mal die ganze Zeichenkette und ein Doppelpunkt mit set channel:
fhem "set BRAVIA channel $channelnr:"
Ich bin mir nicht sicher, ob das genau so passt, aber es soll halt die Kanalnummer und direkt ein Doppelpunkt nach der Nummer beim Modul ankommen.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

willibutz

Hallo vuffiraa,

danke dir, sehr gute Lösung  :)
Das DOIF sieht jetzt deutlich "sportlicher" aus und funktioniert vor allen Dingen immer
(["SenderWechsel:desired-temp"])
(set BRAVIA channel [$DEVICE:desired-temp]:)


LG willibutz

sven.scherf

Hi vuffiraa,

ich denke hier bin ich richtig. Ich möchte keine Doppelposts erstellen.

Wenn ich hier richtig bin werde ich den anderen abschliessen.

Ich habe den Sony 49x8505b und hier funktioniert kein WOL.

Kannst Du mir hier weiterhelfen wo ich was nachschauen kann damit es funktioniert ?
Wenn ich über meinen PC ein WOL absetze schaltet der Fernseher ein.

Über Fhem funktioniert dies nicht, hier sehe ich auch keine WOL Pakete im Netz.


Vielen Dank und Grüße

Sven
Raspi 3 mit CUL Stick 433/868MHZ, Homematic

vuffiraa

Zitat von: sven.scherf am 19 Januar 2018, 19:01:35
Hi vuffiraa,

ich denke hier bin ich richtig. Ich möchte keine Doppelposts erstellen.

Wenn ich hier richtig bin werde ich den anderen abschliessen.

Ich habe den Sony 49x8505b und hier funktioniert kein WOL.

Kannst Du mir hier weiterhelfen wo ich was nachschauen kann damit es funktioniert ?
Wenn ich über meinen PC ein WOL absetze schaltet der Fernseher ein.

Über Fhem funktioniert dies nicht, hier sehe ich auch keine WOL Pakete im Netz.


Vielen Dank und Grüße

Sven

Jetzt habe ich schon im anderen Faden geantwortet  ;)
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

vuffiraa

Zitat von: justme1968 am 12 Januar 2018, 19:22:07
das fände ich klasse wenn du dir das anschaust :). ich hatte das auch schob vor. bin aber noch nicht dazu gekommen.

das protokoll ist scheinbar nirgendwo dokumentiert. es scheint aber ein einfacher http post request zu sein.

für home assistant scheint es schon ein modul zu geben bei dem man das protokoll abkupfern könnte:https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/notify/nfandroidtv.py

gruss
  andre

Also grundsätzlich funktionieren Texte auf dem TV bei mir. Als Test einfach mal probieren:
curl -F "filename=@/path/pixel.png" -F "title=Titel" -F "msg=Meldung" http://xxx.xxx.xxx.xxx:7676

Natürlich die IP-Adresse anpassen und ein PNG unter dem Pfad liegen haben. Das PNG kann irgendwas sein, es reicht schon ein Pixel 1x1.

Um alle Möglichkeiten der Notifications App auszunutzen schreit das schon fast nach einen neuen Fhem-Modul. Freiwillige vor!

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

OdfFhem

Hallo vuffiraa,

seit geraumer Zeit nutzen wir fast täglich das BRAVIA-Modul; auf unserem KD-43X8309C funktionieren eigentlich auch alle bereitgestellten Features (inklusive Apps).
Besten Dank schon mal für die Erarbeitung des sehr nützlichen Moduls.

Wo viel Licht ist, ist aber natürlich auch (zumindest ein ganz klein wenig) Schatten.
Wir verwenden auf unserem TV mehr als eine TV-Quelle und müssen beim Umschalten auf einen anderen Sender neben channel evtl. auch noch vorher input wechseln.

Um dies zu ermöglichen, waren ein paar (eher kleine) Änderungen am offiziellen Modul notwendig.
Konkret geht es dabei zunächst um die Aufnahme der optionalen TV-Quellen (DVB-C,DVB-S,DVB-T) - abhängig von ihrer Verfügbarkeit - in die Liste der erlaubten inputs.
"TV" schaltet weiterhin auf die zuletzt verwendete TV-Quelle; "TV/DVB-C","TV/DVB-S","TV/DVB-T" schalten unabhängig davon direkt auf Kabel,Satellit,Terrestrisch.

Fraglich ist nun, ob Interesse besteht, das offizielle Modul dahingehend zu erweitern.
Denn a) haben bestimmt mehrere Anwender dieses Problem und b) entfällt meinerseits die manuelle Bearbeitung des BRAVIA-Moduls nach einem Update.

Falls Interesse besteht, kann ich gerne beispielhaft meine Änderungen zur Verfügung stellen.

Viele Grüße

vuffiraa

Zitat von: OdfFhem am 10 Februar 2018, 11:10:01
Hallo vuffiraa,

seit geraumer Zeit nutzen wir fast täglich das BRAVIA-Modul; auf unserem KD-43X8309C funktionieren eigentlich auch alle bereitgestellten Features (inklusive Apps).
Besten Dank schon mal für die Erarbeitung des sehr nützlichen Moduls.

Wo viel Licht ist, ist aber natürlich auch (zumindest ein ganz klein wenig) Schatten.
Wir verwenden auf unserem TV mehr als eine TV-Quelle und müssen beim Umschalten auf einen anderen Sender neben channel evtl. auch noch vorher input wechseln.

Um dies zu ermöglichen, waren ein paar (eher kleine) Änderungen am offiziellen Modul notwendig.
Konkret geht es dabei zunächst um die Aufnahme der optionalen TV-Quellen (DVB-C,DVB-S,DVB-T) - abhängig von ihrer Verfügbarkeit - in die Liste der erlaubten inputs.
"TV" schaltet weiterhin auf die zuletzt verwendete TV-Quelle; "TV/DVB-C","TV/DVB-S","TV/DVB-T" schalten unabhängig davon direkt auf Kabel,Satellit,Terrestrisch.

Fraglich ist nun, ob Interesse besteht, das offizielle Modul dahingehend zu erweitern.
Denn a) haben bestimmt mehrere Anwender dieses Problem und b) entfällt meinerseits die manuelle Bearbeitung des BRAVIA-Moduls nach einem Update.

Falls Interesse besteht, kann ich gerne beispielhaft meine Änderungen zur Verfügung stellen.

Viele Grüße

Hallo OdfFhem,

deine Änderungen klingen für mich interessant. Außerdem wäre es eine Erweiterung der Funktionalität und alles Vorhandene funktioniert wie gehabt. Wenn du mir deine Änderungen zur Verfügung stellst, würde ich die Aufnahme ins offizielle Modul prüfen.

Viele Grüße
Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

OdfFhem

Hallo vuffiraa,

im Dateianhang habe ich mal die notwendigen Änderungen aufgelistet.
Soweit ich das beurteilen kann, handelt es sich durchweg um "1.0"-API-Aufrufe, die vermutlich jeder json-Nutzer verarbeiten können sollte.

Viele Grüße und schon mal vielen Dank für das Interesse

vuffiraa

Zitat von: OdfFhem am 10 Februar 2018, 17:43:15
Hallo vuffiraa,

im Dateianhang habe ich mal die notwendigen Änderungen aufgelistet.
Soweit ich das beurteilen kann, handelt es sich durchweg um "1.0"-API-Aufrufe, die vermutlich jeder json-Nutzer verarbeiten können sollte.

Viele Grüße und schon mal vielen Dank für das Interesse

Ich habe die Änderungen fast vollständig übernommen, und es sollte genauso funktionieren.

Außerdem habe ich noch eingebaut, dass die Kanäle direkt gewechselt werden. Wenn möglich werden nicht mehr die einzelnen Kanalziffern gesendet, sondern ein Befehl. Und das Laden der App-Liste und der Inputs wird etwas öfter geprüft.

Bei Problemen, einfach hier melden  ;)

Achse, die Änderungen werden ab morgen per Update verteilt.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

n4rrOx

Zitat von: vuffiraa am 12 Februar 2018, 19:49:08
Ich habe die Änderungen fast vollständig übernommen, und es sollte genauso funktionieren.

Außerdem habe ich noch eingebaut, dass die Kanäle direkt gewechselt werden. Wenn möglich werden nicht mehr die einzelnen Kanalziffern gesendet, sondern ein Befehl. Und das Laden der App-Liste und der Inputs wird etwas öfter geprüft.

Bei Problemen, einfach hier melden  ;)

Achse, die Änderungen werden ab morgen per Update verteilt.

Gruß Vuffiraa

Hi Vuffiraa,

habe heute morgen ein FHEM Update gemacht und ich hätte noch einige Vorschläge:
1) Wäre es nicht sinnvoll, wenn man irgendeinen Befehl absetzt (z. B. Kanal ändern), dass direkt ein zweiter Befehl (statusRequest) hinterher geschickt wird?
Ansonsten zeigt FHEM die Änderung erst mit dem nächsten Abfrageintervall an ....
2) Der zweite Vorschlag betrifft das Reading "channel", wobei die Leerzeichen mit # maskiert werden.
Kann man dies nicht ohne dieses formatieren oder ein zweites Reading erzeugen lassen mit z. B. dem Namen channel_plain ?

Ansonsten Top! Besten Dank für die Bemühungen.

Gruß
Mathias

nerothos

Hallo zusammen,

wollte auch gerade mal das Modul testen, habe aber einen KDL-65W855C.. der tanzt wohl etwas auser der Reihe wenn ich das richtig sehe.

Habe nun ein paar Beiträge vorher den u.g. gefunden, bin aber etwas ratlos ob das nun bedeutet das ich ihn doch einbinden kann bzw. wie ich das Auth-Cookie in Fhem hinterlege ? Mit der "normalen" Anleitung scheitert es auf jeden fall bei set SonyTV register ... da passiert am TV nämlich nichts.

ZitatHier ist mein Script sony_w855c dazu. Ich habe es lieber ganz gepostet - damit es auch geht. Einen Auth-Cookie braucht man dazu.
Es wäre schön, wenn dies in der Bravia-Lib landet.

Evtl. kann mir jemand auf die Sprünge helfen ?

Vielem Dank
gruß

vuffiraa

Zitat von: nerothos am 23 März 2018, 16:25:23
Hallo zusammen,

wollte auch gerade mal das Modul testen, habe aber einen KDL-65W855C.. der tanzt wohl etwas auser der Reihe wenn ich das richtig sehe.

Habe nun ein paar Beiträge vorher den u.g. gefunden, bin aber etwas ratlos ob das nun bedeutet das ich ihn doch einbinden kann bzw. wie ich das Auth-Cookie in Fhem hinterlege ? Mit der "normalen" Anleitung scheitert es auf jeden fall bei set SonyTV register ... da passiert am TV nämlich nichts.

Evtl. kann mir jemand auf die Sprünge helfen ?

Vielem Dank
gruß

Dein TV sollte ganz normal mit dem Modul laufen. Das Zitat, was du gefunden hast, betrifft eine Funktionalität, die mittlerweile auch im Modul implementiert ist.

Mach mal ein Log vom Registrierungsversuch!

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean