Fhem -> Samsung TV

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

Vorheriges Thema - Nächstes Thema

Doggiebert

Na, das wäre ja auch eine Option, POWERON/OFF gar nicht zu nutzen, sondern ihn immer hart per Funksteckdose aus- und einzuschalten. Ob das langfristig gut ist für das Ding, würde ich mal bezweifeln.
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

Rince

Wenn das automatische Einschalten vom TV stört sobald der Pi angeworfen wird:
hdmi_ignore_cec=1
In /boot/config.txt schreiben...


Ich denke nicht, dass der TV Schaden erleiden würde. Aber sobald ihn wer normal ausschaltet, geht es ja wieder nimmer. Ist also wirklich Murks.

Ich hatte mal beschrieben wie es mit CEC Einschalten geht. Die Befehlszeile dann in ein Skript schreiben, das dann einfach von fhem aus aufrufen. So geht der Sammy zuverlässig an wenn ein Pi dran hängt...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

sloth

Zitat von: mattes1007 am 15 Oktober 2014, 19:35:59
Hi,

Hab auch einen Samy der H-Serie.
Hier mal das nmap:

Host is up (0.0085s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
4443/tcp open  pharos
6001/tcp open  X11:1
7676/tcp open  imqbrokerd
8000/tcp open  http-alt
8001/tcp open  vcom-tunnel
8080/tcp open  http-proxy
8443/tcp open  https-alt
9900/tcp open  iua


Ich habe einen UE50H5570 und die gleiche nmap-Ausgabe. Hat jemand von euch schonmal ein Gerät der H-Serie ferngesteuert?

Rince

Bis dato wohl leider nein. Samsung hat sich mal wieder Mühe gegeben die Kommunikation für Fremd-Apps zu erschweren. Dazu zählt leider auch unser Modul...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

saschko

Hallo,
ich habe seit kurzem endlich einen fhem-Server und würde nun gerne auch meinen alten Samsung B650 einbinden. Über Port 52235 klappt das Messaging schon mal fehlerfrei. Aber ich hätte natürlich gerne auch die erweiterte Funktionalität. Ich habe hier im thread gelesen, dass es mit Port 2345 eigentlich analog zu 55000 funktionieren sollte. So ähnlich, wie wohl auch 7676 als Alternative für 55000 realisiert wurde. Aber wenn ich es richtig verstanden habe, wurde die 2345-Variante (die nur bei der B-Serie verwendet wurde und dort auch nur bei modifizierten Geräten funktioniert) mangels Interesses nicht realisiert. Das aktuelle STV-Modul meldet jedenfalls, dass 2345 kein erlaubter Port ist.

Gibt es eine Möglichkeit, die Befehle trotzdem zu ermöglichen?

Mit dem ruCommander klappt es nei mir bereits, den Fernseher vom PC aus zu steuern (fast alle Kommandos, die auch per 55000 möglich sind).

Viele Grüße
saschko

Gerhard

ich habe mir neulich zwei Samsung H-Serie angeschaft, aber keine möglichkeit gefunden die remoute (Lan oder WiFi) zu steuern.

habe folgendes versucht:
- Modul 70_STV von Port 55000 auf 7676 umgestelt (in Source), kein Erfolg!
- viele Android Apps für Samsung remoute ausproiert, kein Erfolg!
- ruSamsung ausprobiert, kein Erfolg!

vll. noch die Ports 8000, 8443 oder 9900 über STV ausprobieren??

hat jemand noch weitere Ideen??

Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

McCavity

#231
Moinmoin,

ich habe mir auch kürzlich einen Samsung Smart TV der H-Serie (exakt: UE48H5500) gekauft und interessiere mich ebenfalls dafür, bei ankommenden Telefonanrufen eine Nachricht einzublenden und ggf. die Lautstärke zu senken und / oder Timeshift zu aktivieren. Leider bin ich sowohl was Perl als auch FHEM angeht noch sehr unerfahren, habe aber etwas Erfahrung in der Netzwerkerei.

Deshalb habe ich mir flugs eine Virtuelle Maschine mit XP eingerichtet, darauf ruSamsung heruntergeladen (das Netzwerk ist "bridged", d.h. die Virtual Machine bekommt eine eigene, dedizierte Netzwerkadresse in meinem LAN) und gestartet. Die Suche findet meinen Fernseher, wenn ich mich dann aber im letzten Schritt zu verbinden versuche, meldet ruSamsung, daß die Kommunikation fehlgeschlagen sei - der Hinweis, daß möglicherweise eine Firewall im Spiel sein könnte, dürfte bei mir nicht zutreffen, da durchaus Kommunikation zwischen der VM und dem TV zu beobachten ist.

Ich habe mal Wireshark auf dem Netzwerk laufen lassen und gesehen, daß es einige Verbindungsversuche zwischen den beiden gibt, von denen einige sogar erfolgreich sind (bekommen als Ergebnis "HTTP/1.1 200 OK"' zurück) - das sind zwar nur ein paar handvoll, aber vielleicht lohnt es sich, da weiterzuforschen. Da in dem Tracefile sensitive Information steht (u.A. Seriennummern / UIDs des Gerätes) hänge ich es hier nicht an.

Ich habe dann mal den alten Admin-Trick aus der Versenkung geholt, den erfolgreichen Verbindungsversuch einfach mal Testweise auf der Konsole zu wiederholen, dabei fiel mir im Response-Header ein weiterer, möglicherweise interessanter URI auf:

$ telnet 192.168.178.50 7676
Trying 192.168.178.50...
Connected to samsungtv.fritz.box.
Escape character is '^]'.
GET /smp_8_ HTTP/1.1

...
Application-URL: http://192.168.178.50:8080/ws/app/
...
Connection closed by foreign host.


Mit der Zeile

Application-URL: http://192.168.178.50:8080/ws/app/

läßt sich vielleicht darauf schließen, daß im Port 8080 noch ein interessanter Port-Kandidat sein könnte? Leider kenne ich mit den Protokollen nicht aus, deshalb kann ich das nicht beurteilen - ein "GET" Test auf den URL direkt gab mir einen "HTTP/1.1 400 Bad Request" zurück - keine Ahnung, wie ein wohlgeformter Request dafür aussehen müßte.

Bei einer kurzen Analyse der erfolgreichen HTTP-Requests stellte sich dann noch heraus, daß es eine ganze Reihe Nummern gab, die erfolgreich Daten zurücklieferten (zum Beispiel eine Liste mit Icons, die sich dann auch abrufen ließen (z.B.: http://<IP-Adresse-des-Samsung-UE48H5500>:7676/dmr/icon_SML.jpg)). Ich habe mal zu Dokumentationszwecken alle Nummern, die HTTP 200 zurückgeliefert hatten, durch netcat (nc(1)) gejagt und die Antworten des Fernsehers aufgezeichnet (Sensitive Information habe ich durch Sternchen ersetzt - der Dump ist wohl zu lang für ein Posting, deshalb bricht er in der Mitte etwa ab - ich versuche, das Ganze nochmal als Datei anzuhängen (kann aber etwas dauern)):

EDIT: ich habe den "code" Block hier nun entfernt und den vollständigen Dump als Datei angehängt.

EDIT2: ich habe da noch einen Fremdfred gefunden, der sich näher mit diesem Protokoll auseinandersetzt - sieht so aus, als hätte die "H"-Serie etwas völlig neues spendiert bekommen, das in der Tat mit den vorherigen Versionen gar nichts mehr zu tun hat :-/ http://forum.samygo.tv/viewtopic.php?f=74&t=7707

LG

McCavity

sloth

Möglich ist die Fernsteuerung über das Netzwerk in jedem Fall, ich habe eben mein TV mit dem Ipad und der "Smart View 2"-app fernsteuern können. Mir ist im Moment allerdings noch schleierhaft welche Anpassungen in dem Modul nötig sind.

McCavity

Ja, die App (Smart View 2) habe ich auch und sie funktioniert ausgezeichnet. Ich habe auch schonmal versucht, die zu belauschen (mit Wireshark), aber ich fürchte, daß die reines UPnP verwendet (über UDP). Mit diesem Protokoll kenne ich mich leider auch nicht aus, aber im Samsung Developer Forum habe ich einige Beiträge gelesen. Es sieht so aus, als wäre UPnP die einzige verbliebene Möglichkeit, mit den neuren Samsung Smart TVs (ab 2014) zu kommunizieren, also wird man das Modul wohl komplett umstellen müssen, um die TVs ab 2014 zu unterstützen, oder sogar gleich ein neues entwickeln müssen :-/

Ich habe mir mal das SDK von Samsung heruntergeladen aber ich muß ehrlich zugeben, daß mich das momentan etwas überfordert... mit Smart TVs habe ich mich halt auch noch nie auseinandergesetzt bisher...

LG

McCavity

Stefan Scholz

#234
Hallo Ihr,

hoffe mal dass ich hier richtig bin ;)

Bisher habe ich mir diverse Meldungen von meinen Fenstern/Türen auf dem Fernseher anzeigen lassen. Das hatte folgender maßen funktioniert:
define Meldung_Fenster_Schlafzimmer notify FK_EG_Schlaf  {\
    my $Stat=Value("FK_EG_Schlaf");;\
    if ($Stat eq "closed"){\
      fhem ("set SamsungTV sms Fenster_Schlafzimmer_geschlossen");;\
    }elsif ($Stat eq "open"){\
      fhem ("set SamsungTV sms Fenster_Schlafzimmer_offen");;\
    }\
}
attr Meldung_Fenster_Schlafzimmer room SYSTEM


Ich hatte also für jedes Objekt einen separaten Code. Nun werden es aber immer mehr und ich denke es geht eleganter.

Somit habe ich es folgender maßen abgewandelt:
define Status_Fenster_TV notify FK_.*  { \
    if ($EVENT eq "open") { \
     fhem ('set SamsungTV sms', 'FHEM Statusbenachrichtigung', $NAME.': '.$EVENT);;\
    }elsif ($EVENT eq "closed"){\
      fhem ('set SamsungTV sms', 'FHEM Statusbenachrichtigung', $NAME.': '.$EVENT);; \
    }\
}
attr Status_Fenster_TV room SYSTEM


Es wird auch diese SMS angezeigt, nur steht kein Text da, also welches Fenster und der Status.

Irgend etwas habe ich da übersehen, finde es aber nicht.

Den Code habe ich abgewandelt von meiner Mail Benachrichtigung, da funktioniert es.

Es wäre schön, wenn ihr mir mal "auf den Sprung" helfen könntet.

Gruß
Stefan

Elektrolurch

Hallo,

Du übergibst so mehrere Parameter.
fhem ('set SamsungTV sms', 'FHEM Statusbenachrichtigung', $NAME.': '.$EVENT);;\
    }elsif ($EVENT eq "closed"){\

Müsste es nicht so lauten:
fhem ("set SamsungTV sms FHEM Statusbenachrichtigung$NAME $EVENT");;\
    }elsif ($EVENT eq "closed"){\

an fhem sendest Du nur einen String, der muss dann so aussehen, als würdest Du das
set Sumsung Kommando in die Kommandozeile eintippen.

Mit Deinem "," mittendring machst Du mehrere Params für hem, die es ignoriert.

Elektrolurch
configDB und Windows befreite Zone!

Stefan Scholz

Hallo Elektrolurch,

vielen Danke für die schnelle Hilfe und Aufklärung!

Mit diesen ganzen "Zeichen" ist mir alles noch ein Rätsel. Versuche halt diverse Codeschnipsel immer irgendwie anzupassen.

Nach ein wenig probieren deines Hinweises, habe ich es jetzt so gemacht:
fhem ("set SamsungTV sms $NAME $EVENT");;\
Durch dieses "FHEM Statusbenachrichtigung" stand das jeweilige divice und der Status nicht in dem Meldungsfenster, nur halt dieses "FHEM Statusbenachrichtigung".

Also, DANKE noch mal und schönen Abend.

Gruß
Stefan

Elektrolurch

Hallo Stefan,

was man wissen muss:
in " " werden Variablen und Sonderzeichen (meistens) von perl ausgewertet.
In ' ' macht perl da nichts und reicht den String einfach durch.
'$meinWert" ergibt 4meinWert in der Ausgabe.
In "" den Inhalt von $meinWert.
configDB und Windows befreite Zone!

Badflex

Zitat von: mi.ke am 08 Dezember 2013, 23:49:31


weiterer Tip:
über sunset prüfe ich zusätzlich noch, ob's schon Dunkel ist,
das LED schaltet ein wenn Dunkel und TV angeschaltet wird
oder wenn TV schon an war, schaltet das LED nachträglich zu.

btw.
Nicht wundern, wenn Dein Samsung aufnimmt und ausgeschaltet ist, ist er über LAN-Ping present.

Hallo kann mir jemand sagen wie der Code heissen würde?
Bekomme es nicht hin
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

prime1009

Nach einem Wechsel auf den Raspi 2 ging bei mir die Fernsteuerung nicht mehr.

Ursache war anscheinend ein Eintarg im TV <Netzwerk> <AllShare-Einstellungen> <Perl Samsung Remote> mit IP <127.0.1.1> als verboten.

Nach dem löschen des Eintrages wurde wieder nach der Zugriffserlaubnis gefragt und es funktionierte wieder.

Hoffentlich hilft diese Information anderen auch weiter!
FHEM 5.7 auf RasPi3
Homematic, IT, FS20, Cams (SSCAM), CUL, HueBridge, HarmonyHub, LIGHTIFY, TelegramBot, Homebridge (Siri), DBLog mit MySQL, Text2Speech, ...