+ Antworten
Seite 1 von 4 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 35
  1. #1
    Registriert seit
    Dec 2016
    Beiträge
    552

    Standard Panasonic TV mit IPS Steuern

    Hallo,
    hat jemand hier im Forum einen Ansatz um einen Panasonic TV per IPS ohne den Harmony Hub und passendem Modul zu steuern? Mein Modell ist aus der CXW Serie.

  2. #2
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Das must Du ausprobieren was bei dem Modell möglich ist.

    Viele Modelle lassen sich mit Viera Control steuern. Wenn das bei Deinem Modell der Fall sein sollte kannst Du z.B. die Befehle ausprobieren über ein Skript aus IP-Symcon zu senden.

  3. #3
    Registriert seit
    Dec 2016
    Beiträge
    552

    Mein Modell ist aus 2015 und lässt sich auch über die Remote App steuern. Werde es mal ausprobieren, Danke dafür.

  4. #4
    Registriert seit
    Mar 2011
    Ort
    Bern
    Beiträge
    37

    Hallo Zusammen

    muss man da wirklich node.js auf dem Symcon-Server installieren? Gibt es nicht einen einfacheren Weg? resp. gibt es nicht ein passendes Panasonic oder Viera PHP-Mudul?

    Grüsse
    Patrick
    IPS 5.1 auf WHS2011 und vieles drum herum und nun auch auf einem Raspi Modell 3B

  5. #5
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Zitat Zitat von Patrick Beitrag anzeigen
    muss man da wirklich node.js auf dem Symcon-Server installieren? Gibt es nicht einen einfacheren Weg? resp. gibt es nicht ein passendes Panasonic oder Viera PHP-Mudul?
    Nein Du musst kein node.js installieren. Das geht auch mit IP-Symcon das war nur ein Beispiel in dem die Befehle vermerkt sind.

    Hier findest Du das ganze mit PHP. Ob das geht kannst nur Du oder Jemand der das Gerät besitzt testen. Ob es Sinn macht dafür dann extra ein Modul zu machen, das würde dann wohl nur eine Variable für den Webfront anlegen wenn das hilft.

  6. #6
    Registriert seit
    Mar 2011
    Ort
    Bern
    Beiträge
    37

    Hallo Fonzo

    Merci für den Link zum Skript, aber ich verstehe noch nicht wie ich das nun anstellen soll..
    1. Ich erstelle ein Skript mit dessen Inhalt. Nenne es zb VIERA und krige eine Instanz-Nummer.

    Aber wie übergebe ich nun dem Skript die entsprechenden Parameter wie die IP-Adresse vom TV und das entsprechende Komando mit dem entsprechenden Parameter?

    Herzliche Grüsse
    Patrick
    IPS 5.1 auf WHS2011 und vieles drum herum und nun auch auf einem Raspi Modell 3B

  7. #7
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Zitat Zitat von Patrick Beitrag anzeigen
    Aber wie übergebe ich nun dem Skript die entsprechenden Parameter wie die IP-Adresse vom TV und das entsprechende Komando mit dem entsprechenden Parameter?
    Du erstellst Dir am besten ein Skript und kopierst dort die Klasse rein.

    PHP-Code:

    class vieraControl
    {
        public $host;

        function __construct($hostname = false)
        {
            if ($hostname)
                $this->host = $hostname;
        }

        function createRequest($url, $urn, $action, $option = array())
        {

            $input = '<?xml version="1.0" encoding="utf-8"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
     <u:'.$action.' xmlns:u="urn:'.$urn.'">
     '.$option['args'].'
     </u:'.$action.'>
    </s:Body>
    </s:Envelope>';
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, 'http://'.$this->host.':55000/'.$url);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('SOAPACTION: "urn:'.$urn.'#'.$action.'"'));
            curl_setopt($curl, CURLOPT_POSTFIELDS, $input);
            //curl_setopt($curl, CURLOPT_HEADER, true);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($curl);

            if ($option['returnXml'])
                return $data;
            else
                return $this->getResponse($data);
        }

        function getResponse($data)
        {
            $xml = simplexml_load_string($data);
            if ($xml === false)
                return false;
            $ns = $xml->getNamespaces(true);
            $soap = $xml->children($ns['s']);
            $res = $soap->children($ns['u'])->children();
            return $res[0];
        }

        function getVolume()
        {
            return $this->createRequest(
                'dmr/control_0',
                'schemas-upnp-org:service:RenderingControl:1',
                'GetVolume',
                array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel>')
            );
        }

        function sendKey($keyCode)
        {
            return $this->createRequest(
                'nrc/control_0',
                'panasonic-com:service:p00NetworkControl:1',
                'X_SendKey',
                array(
                    'args' => '<X_KeyEvent>' . $keyCode . '</X_KeyEvent>',
                    'returnXml' => true
                )
            );
        }

        function getMute()
        {
            return $this->createRequest(
                'dmr/control_0',
                'schemas-upnp-org:service:RenderingControl:1',
                'GetMute',
                array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel>')
            );
        }

        function setMute($enable = false)
        {
            $data = ($enable) ? '1' : '0';
            return $this->createRequest(
                'dmr/control_0',
                'schemas-upnp-org:service:RenderingControl:1',
                'SetMute',
                array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>'.$data.'</DesiredMute>')
            );
        }

        function setVolume($volume = '0')
        {
            $volume = intval($volume);
            if ($volume > 100 || $volume < 0)
                throw new Exception('Bad request to volume control. Must be between 0 and 100');

            return $this->createRequest(
                'dmr/control_0',
                'schemas-upnp-org:service:RenderingControl:1',
                'SetVolume',
                array('args' => '<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>'.$volume.'</DesiredVolume>', 'returnXml' => true)
            );
        }

        function sendString($string)
        {
            return $this->createRequest(
                'nrc/control_0',
                'panasonic-com:service:p00NetworkControl:1',
                'X_SendString',
                array(
                    'args' => '<X_String>' . $string . '</X_String>',
                    'returnXml' => true
                )
            );
        }
    }

    $keys = array(
        "NRC_CH_DOWN-ONOFF", // channel down
        "NRC_CH_UP-ONOFF", // channel up
        "NRC_VOLUP-ONOFF", // volume up
        "NRC_VOLDOWN-ONOFF", // volume down
        "NRC_MUTE-ONOFF", // mute
        "NRC_TV-ONOFF", // TV
        "NRC_CHG_INPUT-ONOFF", // AV,
        "NRC_RED-ONOFF", // red
        "NRC_GREEN-ONOFF", // green
        "NRC_YELLOW-ONOFF", // yellow
        "NRC_BLUE-ONOFF", // blue
        "NRC_VTOOLS-ONOFF", // VIERA tools
        "NRC_CANCEL-ONOFF", // Cancel / Exit
        "NRC_SUBMENU-ONOFF", // Option
        "NRC_RETURN-ONOFF", // Return
        "NRC_ENTER-ONOFF", // Control Center click / enter
        "NRC_RIGHT-ONOFF", // Control RIGHT
        "NRC_LEFT-ONOFF", // Control LEFT
        "NRC_UP-ONOFF", // Control UP
        "NRC_DOWN-ONOFF", // Control DOWN
        "NRC_3D-ONOFF", // 3D button
        "NRC_SD_CARD-ONOFF", // SD-card
        "NRC_DISP_MODE-ONOFF", // Display mode / Aspect ratio
        "NRC_MENU-ONOFF", // Menu
        "NRC_INTERNET-ONOFF", // VIERA connect
        "NRC_VIERA_LINK-ONOFF", // VIERA link
        "NRC_EPG-ONOFF", // Guide / EPG
        "NRC_TEXT-ONOFF", // Text / TTV
        "NRC_STTL-ONOFF", // STTL / Subtitles
        "NRC_INFO-ONOFF", // info
        "NRC_INDEX-ONOFF", // TTV index
        "NRC_HOLD-ONOFF", // TTV hold / image freeze
        "NRC_R_TUNE-ONOFF", // Last view
        "NRC_POWER-ONOFF", // Power off

        "NRC_REW-ONOFF", // rewind
        "NRC_PLAY-ONOFF", // play
        "NRC_FF-ONOFF", // fast forward
        "NRC_SKIP_PREV-ONOFF", // skip previous
        "NRC_PAUSE-ONOFF", // pause
        "NRC_SKIP_NEXT-ONOFF", // skip next
        "NRC_STOP-ONOFF", // stop
        "NRC_REC-ONOFF", // record

        // numeric buttons
        "NRC_D1-ONOFF", "NRC_D2-ONOFF", "NRC_D3-ONOFF", "NRC_D4-ONOFF", "NRC_D5-ONOFF",
        "NRC_D6-ONOFF", "NRC_D7-ONOFF", "NRC_D8-ONOFF", "NRC_D9-ONOFF", "NRC_D0-ONOFF",

        // The below commands were not avaliable in the iPhone app when using my
        // VIERA G30 - they were pulled out from a disassembly instead
        // only these top three did anything on my TV

        "NRC_P_NR-ONOFF", // P-NR (Noise reduction)
        "NRC_OFFTIMER-ONOFF", // off timer
        "NRC_R_TUNE-ONOFF", // Seems to do the same as INFO

        "NRC_CHG_NETWORK-ONOFF",
        "NRC_CC-ONOFF",
        "NRC_SAP-ONOFF",
        "NRC_RECLIST-ONOFF",
        "NRC_DRIVE-ONOFF",
        "NRC_DATA-ONOFF",
        "NRC_BD-ONOFF",
        "NRC_FAVORITE-ONOFF",
        "NRC_DIGA_CTL-ONOFF",
        "NRC_VOD-ONOFF",
        "NRC_ECO-ONOFF",
        "NRC_GAME-ONOFF",
        "NRC_EZ_SYNC-ONOFF",
        "NRC_PICTAI-ONOFF",
        "NRC_MPX-ONOFF",
        "NRC_SPLIT-ONOFF",
        "NRC_SWAP-ONOFF",
        "NRC_R_SCREEN-ONOFF",
        "NRC_30S_SKIP-ONOFF",
        "NRC_PROG-ONOFF",
        "NRC_TV_MUTE_ON-ONOFF",
        "NRC_TV_MUTE_OFF-ONOFF",
        "NRC_DMS_CH_UP-ONOFF",
        "NRC_DMS_CH_DOWN-ONOFF"

    );
    Dann erstellst Du ein weiteres Skript was etwas bestimmtes ausführen soll.

    Hier bindest Du zunächst die Klasse ein mit

    PHP-Code:
    includeScript(12345 /*[Panasonic\Class]*/);
     

    function 
    includeScript($scriptID)
    {
        
    $s IPS_GetScript($scriptID);
        include(
    $s['ScriptFile']);

    Jetzt erstellst Du Dir ein Objekt aus der Klasse im selben Skript
    PHP-Code:
    $panasonictv = new vieraControl("192.168.1.100"); 
    Du übergibst bei der Objekterstellung gleich die IP Adresse des Panasonic TV mit. Jetzt hast Du ein Objekt mit dem Du arbeiten kannst. Innerhalb der Klasse gibt es Methoden, das ist das bei dem jeweils function davor steht.

    Auf die Methoden des Objekts greifst Du zu mit -> also z.B.
    PHP-Code:
    $volume $panasonictv->getVolume()
    var_dump($volume); 
    Je nachdem was Du also in dem Skript machen willst besteht das Skript aus dem include der Klasse s.o. , dann dem Erstellen des Objekts und anschließend dem Methodenaufruf den Du benötigst.

    Zum Ausführen eines Befehls nutzt Du die Methode
    PHP-Code:
    $keyCode "NRC_TV-ONOFF";
    $panasonictv->sendKey($keyCode); 
    Die Befehle entnimmst Du dem Array (s.o.) Ob das funktioniert kannst nur Du testen da ich so ein Gerät nicht besitze. Aber vielleicht ist hier ja noch der ein oder andere Panasonic Nutzer der das auch benutzt.

  8. #8
    Registriert seit
    Dec 2010
    Beiträge
    4

    Standard Thema: Panasonic TV mit IPS Steuern

    Hallo,

    super Script.

    Ausschalten funktioniert, aber einschalten nicht.

    Kann hier jemand helfen?

  9. #9
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,592

    Zitat Zitat von Cool-M Beitrag anzeigen
    Ausschalten funktioniert, aber einschalten nicht.
    Ich weis nicht wie das bei Panasonic ist, da musst Du mal mit Google recherchieren. Bei den Samsung TV Modellen ist es leider so, dass sich diese nur per IR Befehl einschalten lassen oder aber per HDMI aber leider nicht über das Netzwerk, eventuell ist das ja bei Panasonic genauso. Funktionieren denn andere Befehle außer Einschalten?

  10. #10
    Registriert seit
    Dec 2010
    Beiträge
    4

    Standard Thema: Panasonic TV mit IPS Steuern

    Hi Fonzo,

    ja, Du hast recht.
    Im ausgeschalteten Zustand ist leider auch die Netzwerkschnistelle (LAN+W-LAN) deaktiviert.
    Somit ist die Kommunikation ausgeschlossen. Im TV Menu hab ich leider nix gefunden um dies zu ändern.
    Alle anderen Befehle funktionieren. Danke dafür.

    Kommt man nun nur noch über den Logitech Harmony Hub weiter?
    Gibt es vielleicht ein günstiges IR-Modul für LAN?

    Gruß Mario

Ähnliche Themen

  1. Whirlpool mit IPS steuern
    Von jheinz im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 0
    Letzter Beitrag: 14.02.17, 10:31
  2. Dreamboxen mit IPS steuern
    Von belmondo2001 im Forum Skripte, PHP, SQL
    Antworten: 177
    Letzter Beitrag: 09.12.16, 20:04
  3. LED Kugel mit Infrarot mit IPS Steuern
    Von JensNRW im Forum Bastel-Ecke
    Antworten: 0
    Letzter Beitrag: 10.11.16, 19:24
  4. Klimaanlage mit IPS steuern mit IR, geht das?
    Von tasmanie im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 23
    Letzter Beitrag: 11.03.16, 16:06
  5. Panasonic TV steuerbar?
    Von jwka im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 19
    Letzter Beitrag: 22.06.12, 08:39