Neues Modul PHTV für Philips Fernseher (inkl. Ambilight)

Begonnen von Loredo, 06 März 2014, 22:09:17

Vorheriges Thema - Nächstes Thema

traveltheworld

Hi,

ich nutze auch seit gestern das PHTV Modul, zumindest bei mir ist es so, dass alle Sendernamen mit einem ^U Zeichen anfangen. Das macht im normalen FHEMWeb Frontend keine Probleme (ist dort quasi unsichtbar), aber die FHEMobile App hat ein Problem damit (beschwert sich über einen Parse Error).
Ist dieses Control-Zeichen bei euch auch mit in den Sendernamen drin? (kann man per html source-code recht schnell sehen).

Kann das PHTV Modul entsprechend angepasst werden, dass solche Control-Zeichen in den Sendernamen entfernt werden?

LG

( siehe auch https://forum.fhem.de/index.php/topic,37955.msg425234.html#msg425234 )

traveltheworld

ich habe es bei mir testweise wie folgt angepasst (Zeile 321 in 70_PHTV.pm):


                my $tmpChannel = $hash->{helper}{device}{channelPreset}{$i}{name} . ",";
                $tmpChannel =~ s/^U//g;
                $channels .= $tmpChannel;


(^U ist das Control-U-Zeichen, nicht ^ und U)


wäre schön, wenn die oder eine andere Lösung im PHTV Modul umgesetzt werden können.
Denn neben FHEMobile hat auch die fhem-remote App ein Problem mit dem PHTV Modul deswegen und beide Apps verweigen dann aufgrund des parsing errors komplett den Dienst.

Loredo

Kannst du mir den Patch in einer Datei bereitstellen, damit ich das richtige Zeichen ersetze?
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: Schlimbo am 06 März 2016, 14:08:11
nutze dein Modul mit meinen Philips 2014er Modelle (55PUS8809) API v5.

Mir ist gerade ein seltsames Verhalten bei dem Reading "power" aufgefallen:
Der "power" Status toggelt nach dem Ausschalten des TVs noch einige Zeit zwischen "on" und "off" bis er dann nach ein paar Minuten endlich auf "off" stehen bleibt.


Ich kann mir da leider auch keinen Reim drauf machen. Es hat den Anschein, als wenn der TV auch tatsächlich so sprunghafte Antworten zurückschickt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

traveltheworld

@loredo: ich habe dir einen Patch erstellt, siehe Anhang zu diesem Post.

Loredo

Ok, habe ich an geeigneter Stelle eingebaut und eingecheckt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Schlimbo

Hallo Loredo,

Zitat von: Loredo am 22 März 2016, 21:36:06
Ich kann mir da leider auch keinen Reim drauf machen. Es hat den Anschein, als wenn der TV auch tatsächlich so sprunghafte Antworten zurückschickt.

Habe mir das jetzt noch mal genauer angesehen und festgestellt, dass es an diesen Bereich des Codes liegt:
    # device not reachable
    if ($err) {

        if ( !defined($cmd) || ref($cmd) eq "HASH" || $cmd eq "" ) {
            Log3 $name, 4, "PHTV $name: RCV TIMEOUT $service";
        }
        else {
            Log3 $name, 4,
              "PHTV $name: RCV TIMEOUT $service/" . urlDecode($cmd);
        }

        # device is not reachable or
        # does not even support master command for audio
        if ( $service eq "audio/volume"
            || ( $service eq "input/key" && $type eq "off" ) )
        {
            $newstate = "absent";

            if (
                ( !defined( $hash->{helper}{AVAILABLE} ) )
                or ( defined( $hash->{helper}{AVAILABLE} )
                    and $hash->{helper}{AVAILABLE} eq 1 )
              )
            {
                $hash->{helper}{AVAILABLE} = 0;
                readingsBulkUpdate( $hash, "presence", "absent" );
            }
        }

        # device behaves naughty
        else {
            $newstate = "on";


Der erste Teil (if ( $service eq "audio/volume" )  setzt  $newstate auf "absent"
Vom TV kommt aber auch noch $service = ambilight/mode zurück, dadurch wird die else Anweisung ausgeführt  (else {$newstate = "on"  ) und  der power Status wieder auf "on" gesetzt.

Das ist im Log auch zu sehen:
2016.03.06 12:58:53 4: PHTV PhilipsTV: RCV TIMEOUT audio/volume
2016.03.06 12:58:53 5: PHTV PhilipsTV: called function PHTV_ReceiveCommand()
2016.03.06 12:58:53 4: PHTV PhilipsTV: RCV TIMEOUT ambilight/mode


Erst wenn nach einiger Zeit vom TV kein "ambilight/mode" mehr kommt, bleibt der power Status auf off.

Ich habe jetzt mal die Zeile 1711  auskommentiert und nun ist kein toggel mehr zu sehen.   
1709| # device behaves naughty
1710| else {
1711|    # $newstate =on"; "


Kannst du dir das bitte noch mal ansehen?

Danke

Gruß Schlimbo


traveltheworld


Schiri1986

Ich bin großer Fan der FHEM Tablet UI und habe auch meinen Philips TV dort eingebunden. Über FHEMWEB kann ich ja via "set TV channel" auf die Liste aller Kanäle zugreifen -  komme ich irgendwie an diese Liste ran, sodass ich sie weiterverarbeiten kann?

link611

Hi,

bin seit gestern auch stolzer Besitzer eines 49PUK7100/12

ist ein Android TV, funktioniert hier auch das Modul? Wenn ich mich auf den TV über Port 1925 verbinde, bekomme ich eine Not Found Siete angezeigt.


Zudem:
wenn ich den versuche den TV zu definen, bekomme ich folgende Fehlermeldung im Log:

reload: Error:Modul 70_PHTV deactivated:
Can't locate JSON.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/70_PHTV.pm line 35.
BEGIN failed--compilation aborted at ./FHEM/70_PHTV.pm line 35.


Achja: Der TV ist über WLAN angebunden.


Gibt es hier Abhilfe?

Loredo

Die Android API hat Philips noch nicht weit genug ausgebaut, zudem gibt es dazu keinerlei (öffentlich zugängliche) Dokumentation.
Deshalb lassen sich die aktuellen Fernseher leider nicht unterstützen.


In deinem Fall fehlt aber zunächst einmal noch das Perl::JSON Modul.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

link611

Zitat von: Loredo am 10 Juli 2016, 22:02:39
Die Android API hat Philips noch nicht weit genug ausgebaut, zudem gibt es dazu keinerlei (öffentlich zugängliche) Dokumentation.
Deshalb lassen sich die aktuellen Fernseher leider nicht unterstützen.


In deinem Fall fehlt aber zunächst einmal noch das Perl::JSON Modul.


Danke für die Info.

Wie installiere ich das JSON Modul?

Cruiser79

Zitat von: link611 am 11 Juli 2016, 08:56:20

Danke für die Info.

Wie installiere ich das JSON Modul?
Hängt von deinem System ab. Ein googlen nach "perl json [system] installieren" könnte helfen.
Für Raspberry Pis findest du es unter http://www.fhemwiki.de/wiki/Raspberry_Pi

Gruß,
Tim
FHEM auf Raspberry Pi
HM-CFG-LAN mit HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-WDS10-TH-O, HM-LC-SW1-FM, HM-LC-Bl1-FM
Signalduino mit Elro AB440, LOGILINK WS0002, IT CMR-1000

DOCa Cola

Nach fast einem Jahr hab ich auch mal wieder die ambihue Funktion getestet. Leider immer noch dasselbe Thema. Weiß auf dem TV wird zu Gelb auf den Hue Lampen. Somit leider immer noch ziemlich unbrauchbar.

Loredo

Und was soll ich daran tun?

Ich lese die Werte aus und gebe sie so an die hue Lampe weiter. thats it. Du bist gerne eingeladen die Funktion zu verbessern. Für mich ist das nur eine Spielerei, die ich der Vollständigkeit halber eingebaut habe. nutzen tu ich sie selbst nicht. Daher stecke ich meine wenige Zeit lieber woanders rein.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER