Fhem -> Samsung TV

Begonnen von mcbain2k, 25 Mai 2013, 11:45:13

Vorheriges Thema - Nächstes Thema

frank

#405
set SamsungTv stream http://www.tv-testbild.com/ont/10.jpg
funktionirt bei mir auch.

beim versuch das rss.jpg direkt zu starten wird die nicht unterstützte methode HEAD gemeldet. 192.168.1.26 ist der tv.
2018.02.01 20:25:57.600 4: DLNAClient: start play for http://192.168.1.25:8083/fhem/rss/rss_fon.jpg
2018.02.01 20:25:57.601 5: DLNAClient: setAVTransportURI Start
2018.02.01 20:25:57.681 3: WEB_192.168.1.26_54314: unsupported HTTP method HEAD, rejecting it.
2018.02.01 20:25:57.709 5: DLNAClient: setAVTransportURI End
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Det20

Da stimmt irgendwas mit dem Header nicht, deshalb läuft mein PHP Script auch immer unendlich; deshalb der Timeout von 2 Sekunden.

KölnSolar

OK, dann ist der Part "MediaServer" nur das bekannt machen per SSDP im Netzwerk und ansonsten ein "normaler" Webserver. Nur den einzurichten macht das Ganze nicht besser  ::) Ob nun den Apache oder z.B. miniDLNA. Aber klar, die die bereits einen "einfachen" Webserver installiert haben, müssen dann nicht unbedingt einen weiteren Server installieren. Schreib ich so in die Doku.

Aber es muss dann irgendwie noch ein kleines bißchen mehr als die Berechtigungsprüfung von FHEM sein, denn ich habe kein allowed auf dem Port gesetzt. Da guck ich vielleicht mal nach Karneval, warum der Zugriff per DLNAClient auf ein Bild vom FHEM-Webserver nicht funktioniert. Wenn das ginge, wäre es sicherlich eine Vereinfachung.

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Det20

#408
Ich benötigt PHP sowieso um zu prüfen, ob FHEM noch lebt, ob das Log-File zu groß ist (Google Chrome-Problem) ...
Es lässt sich leicht einrichten und ich bin eh in PHP zu Hause, von daher.

Wenn Du eine externen Webpräsenz hast, dann kannst Du das statt lokal auch anders lösen. Brauchst halt nur PHP > 5.4


  $text = urlEncode($text);
  fhem("set SamsungTv_MSG stream http://www.webserver.de/fhem-createjpg.php?textout=$text");


Inhalt von fhem-createjpg.php:


<?php
  header
("Content-type: image/png");
  
$im = @imagecreate(800600) or die($textout);
  
$background_color imagecolorallocate($im000); 
  
$blue   imagecolorallocate($im00255);  
  
$yellow imagecolorallocate($im2552550);
  
$red    imagecolorallocate($im25500);
  
imagestring($im540250,  $textout$red);
  
imagepng($im);
  
imagedestroy($im);
?>


KölnSolar

#409
Hab dann doch nicht warten können.  ;D, um das
ZitatAber es muss dann irgendwie noch ein kleines bißchen mehr als die Berechtigungsprüfung von FHEM sein
zu prüfen
Die Meldung
Zitatbeim versuch das rss.jpg direkt zu starten wird die nicht unterstützte methode HEAD gemeldet.
war leicht in FHEMWEB zu beseitigen. Und tatsächlich, es passiert etwas auf dem TV. Nur leider nicht das Gewünschte, sondern ein zu bestätigendes pop-up "Die ausgewählte Datei wird derzeit nicht unterstützt"  :'(
Wenn das jetzt an FHEMWEB liegt, müsste jemand herausfinden was dort zu ändern wäre. Das übersteigt meine Kenntnisse.
Es könnte aber auch darauf hinweisen, dass der MediaServer doch etwas mehr macht, als ein "dummer" webserver: Das Medienformat an die Fähigkeiten  des Renderers anzupassen. Da das auch nach Serie/Firmware unterschiedlich sein wird: Kann das mal jemand testen, der erfolgreich per DLNA_Client eine Mediendatei von einem "dummen" Webserver gestreamed hat ?
Es ist testweise nur Zeile 433 in FHEMWEB von
if($method !~ m/^(GET|POST)$/i){
in
if($method !~ m/^(GET|POST|HEAD)$/i){
zu ändern, die erfolgreich gestreamte Mediendatei irgendwo im FHEM-Pfad abzulegen und im DLNA_Client dann zu streamen.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Det20

Zitat von: KölnSolar am 07 Februar 2018, 02:43:21
"Die ausgewählte Datei wird derzeit nicht unterstützt"

Da fehlt was im Header. Ungeprüft, ob es da ist, muss mindestens vorhanden sein:

- HTTP/1.1 200 Ok
- Content-Type: image/jpeg
- Content-Length: ...

frank

mit meinem H5303, der sonst nichts kann, funktioniert es bestens. in meiner version war es allerdings zeile 414.

was ich kurz gelesen habe, ist HEAD quasi ein GET ohne body, also eigentlich content-lenght=0. wird wohl gern benutzt, um vorher zu sehen, was kommen wird.

vielleicht liegt es bei dir an den token attributen. es gibt auch noch viele andere attr bei fhemweb. zum testen hatte ich gestern vieles probiert.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

DarkT

#412
Hat eigentlich schon mal einer darüber nachgedacht eine FHEM App für die Samasung Serie zu schreiben, oder arbeitet sogar an einer?

Eine Beschreibung der API existiert ja sogar mit Beispielen.

Damit ließen sich doch bestimmt viele der Problem hier lösen, oder?

KölnSolar

Zitatmit meinem H5303, der sonst nichts kann, funktioniert es bestens.
Das klingt doch schon mal gut.
Zitatwas ich kurz gelesen habe, ist HEAD quasi ein GET ohne body, also eigentlich content-lenght=0. wird wohl gern benutzt, um vorher zu sehen, was kommen wird.
So hab ich das auch verstanden. Ist aber eben in FHEMWEB nicht implementiert, so dass wohl eben der body trotzdem zurückgegeben wird.
ZitatDa fehlt was im Header
Klar, denkbar. Aber wieso funktioniert es dann bei frank ? :-\
Zitatvielleicht liegt es bei dir an den token attributen. es gibt auch noch viele andere attr bei fhemweb.
Ich gucke....

ZitatDamit ließen sich doch bestimmt viele der Problem hier lösen, oder?
Eben nicht. Das Hauptziel ist ja ALLE Serien zu unterstützen. Das können WIR mittlerweile  ;D Eine App wäre vermutlich einfacher in der Handhabung/Installation, aber eben nur für bestimmte Serien.  :'( Und der Einarbeitungsaufwand.... :(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Det20

@KölnSolar

Anyway sehr gute Arbeit, danke für die modifizierte 70_STV und den Dankanstoß DLNA. Ich bin nun schon bedeutend weiter als noch vor 2 Monaten.

frank

ich habe mal einen thread zum thema "unsupported method HEAD" erstellt:
https://forum.fhem.de/index.php/topic,83967.0.html
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

KölnSolar

Schön, dass Du auch dran bleibst. Ich hab mittlerweile ein paar zusätzliche Loggings gemacht, was meinen Verdacht bestätigt, dass der Render(TV) Informationen anfordert, die er vom Server im Falle des miniDLNA scheinbar bekommt(direkte und nicht sichtbare Kommunikation) und im Falle des FHEM-Servers eben nicht. Nur was der TV noch will, hat sich mir noch nicht erschlossen:

Bild auf miniDLNA
Zitat2018.02.07 16:27:11 4: DLNAClient: start play for http://192.168.x.y:8200/MediaItems/29.jpg
2018.02.07 16:27:11 5: DLNAClient: setAVTransportURI Start
2018.02.07 16:27:11 3: DLNAClient: setAVTransportURI End Status: 200
2018.02.07 16:27:11 3: DLNAClient: setAVTransportURI End ArgumentList: HASH(0x34ad150)
2018.02.07 16:27:11 5: DLNAClient: play started

Bild auf FHEM-Server
Zitat2018.02.07 16:26:28 4: DLNAClient: start play for http://192.168.x.y:8083/fhem/www/images/default/fhemicon.png
2018.02.07 16:26:28 5: DLNAClient: setAVTransportURI Start
2018.02.07 16:26:28 3: REREAD: HEAD /fhem/www/images/default/fhemicon.png HTTP/1.0
getcontentFeatures.dlna.org: 1
Host: 192.168.x.y:8083
2018.02.07 16:26:28 3: DLNAClient: setAVTransportURI End Status: 200
2018.02.07 16:26:28 3: DLNAClient: setAVTransportURI End ArgumentList: HASH(0x34ad150)
2018.02.07 16:26:28 5: DLNAClient: play started
2018.02.07 16:26:29 3: REREAD: HEAD /fhem/www/images/default/fhemicon.png HTTP/1.0
getcontentFeatures.dlna.org: 1
Host: 192.168.x.y:8083
2018.02.07 16:26:29 3: REREAD: GET /fhem/www/images/default/fhemicon.png HTTP/1.0
getcontentFeatures.dlna.org: 1
transferMode.dlna.org: Interactive
Host: 192.168.x.y:8083
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Det20

Was mich mal interessiert : Wie lange dauert es vom Aufruf 'stream', bis das Bild dann tatsächlich auf dem TV sichtbar ist. Mit meiner Methode dauert das ca 10 Sekunden. Lange, wie ich finde. Geht das mit DLNA schneller?

KölnSolar

ein kurzes Pling  ;D also ich denke 1 max 2 Sek.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

frank

hallo markus,

ein set stream mit dem fhemicon.png über port 8083 funktioniert bei mir auch nicht. es erscheint ein popup im tv: "die datei wird derzeit nicht unterstützt". und anschliessend musste ich den tv neustarten, damit er wieder richtig lief.

es geht eigentlich nur um die speziellen rss bilder, unter ....:808x/fhem/rss/... dieser ordner existiert auch nicht wirklich. hier werden die bilder durch rss nur "serviert". das ist also im prinzip auch ein server.

hast du das mit dem icon so auch schon im browser probiert?


set stream auf dem handy úber wlan zeigt bei mir sofort das bild auf dem tv an.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html