+ Antworten
Seite 2 von 12 ErsteErste 1 2 3 4 ... LetzteLetzte
Ergebnis 11 bis 20 von 112
  1. #11
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Ja klar, ist leer ... wenn ich mir das Array mit print_r anzeigen lasse, dann ist der von mir gepostete Inhalt in $result[0] und $result[1] ist leer !
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  2. #12
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    257

    Question Auslesen

    Hallo,

    die Steuerung funktioniert ja super :-)

    aber wie kann ich Werte auslesen und eine Variable befüllen? Z.B. den Radio Sender anzeigen der gerade läuft?

    $send = send_to_host($host,'<YAMAHA_AV cmd="GET"><NET_RADIO><Play_Info><Meta_Info><Statio n>GetParam</Station></Meta_Info></Play_Info></NET_RADIO></YAMAHA_AV>');

    Könnt ihr mir da weiterhelfen, kenn mich so genau mit PHP nicht aus.

    Danke

  3. #13
    Registriert seit
    Nov 2011
    Ort
    Potsdam
    Beiträge
    86

    Zitat Zitat von Tetrapack Beitrag anzeigen
    Ja klar, ist leer ... wenn ich mir das Array mit print_r anzeigen lasse, dann ist der von mir gepostete Inhalt in $result[0] und $result[1] ist leer !
    Schon der Fakt, dass der Header eine Länge von 91 für den Content angibt, widerspricht dem. Eine einfache Gegenprobe ala
    Code:
    print_r(strlen($content));
    sollte dies bestätigen.

    Der Grund ist einfach, dass der $content valides HTML/XML beinhaltet und dieser nicht angezeigt wird. Du kannst es sichtbar machen per:
    Code:
    print_r(str_replace("<", "[", $content));
    Ich würde dir empfehlen den IPSLogger von brownson zu verwenden. Dann siehst du den Inhalt sofort und ohne über den unschönen Umweg per str_replace.

  4. #14
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Danke für den Hinweis ... irgendwie war mir klar das da auf Grund der Contentlänge etwas sein müsste, ich wusste nur nicht wie ich das darstellen soll

    Den Logger von Brownson habe ich installiert, aber zum einen nicht die aktuellste version und zum anderen war ich bisher zu blöd den Logger richtig zubenutzen


    Letztendlich werde ich aber wohl bei der Variante mit dem Client Socket bleiben, da ich dort auch aktuelle Änderungen am Gerät oder über die FB mitbekomme. Das einzig blöde an der Lösung ist leider die unzuverlässige Vebindung. Aber im Notfall sendet man einen Request um einen aktuellen Status zu bekommen.

    Aktuell nutze ich das so:

    PHP-Code:
    <?
    $antwort 
    $_IPS['VALUE'];
    $array explode ':'$antwort ); // Antwortstring in Array umwandeln

    $quelle $array[0];
    $array2 explode '='$array[1] ); // Antwortstring in Array umwandeln
    $funktion $array2[0];

    If(
    $array[0] == "@MAIN")
    {
        switch(
    $funktion)
               {
                  case 
    "VOL":
                     
    SetValue(45510 /*[Media\Yamaha RX-A820\Main\Volume]*/$array2[1]);
                  break;

                  case 
    "PWR":
                     
    SetValue(23757 /*[Media\Yamaha RX-A820\Main\Power]*/$array2[1]);
                  break;
               }
    }

    $wert $array2[1];
    //echo $array2[1];

    ?>

    PHP-Code:
    RegVar_SendText(27009 /*[Client Socket RX-A820\Register Variable]*/"@MAIN:VOL=Down 2 dB".chr(13).chr(10)); //Lautstärke um 2 dB anheben
    RegVar_SendText(27009 /*[Client Socket RX-A820\Register Variable]*/"@MAIN:PWR=?".chr(13).chr(10)); //Statusabfrage
    RegVar_SendText(27009 /*[Client Socket RX-A820\Register Variable]*/"@MAIN:PWR=On".chr(13).chr(10)); //Einschalten 
    Geändert von Tetrapack (22.09.12 um 13:47 Uhr)
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  5. #15
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    257

    Standard Auslesen

    Habs doch hinbekommen:

    sicher kann dies jemand noch besser aber so funktioniert es zumindest:

    PHP-Code:
    <?
    $host 
    '192.168.2.148';      //IP des Gerätes anpassen!



    $send send_to_host($host,'<YAMAHA_AV cmd="GET"><Main_Zone><Power_Control><Power>GetParam</Power></Power_Control></Main_Zone></YAMAHA_AV>');
    $ausgabe substr($send,61,2);

    //echo $ausgabe;

    SetValueString(48440$ausgabe);



    function 
    send_to_host($host$data){

        
    //echo $data;  //zum prüfen

        
    $command_lenght strlen($data);

        
    //echo $command_lenght;    //zum prüfen

        
    $head "";
        
    $head .= "POST /YamahaRemoteControl/ctrl HTTP/1.1\r\n";
        
    $head .= "Host: ".$host."\r\n";
        
    $head .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0\r\n";
        
    $head .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
        
    $head .= "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
        
    $head .= "Accept-Encoding: gzip, deflate\r\n";
        
    $head .= "Connection: keep-alive\r\n";
        
    $head .= "Content-Type: text/xml; charset=UTF-8\r\n";
        
    $head .= "Referer: http://".$host."/\r\n";
        
    $head .= "Content-Length: ".$command_lenght."\r\n";
        
    $head .= "Pragma: no-cache\r\n";
        
    $head .= "Cache-Control: no-cache\r\n\r\n";
        
    $head .= $data;
        
    //echo $head; //zum prüfen

        
    $fp fsockopen($host80) or die("Unable to open socket");
        
    fputs($fp$head);

        
    $buf "";

       while (!
    feof($fp))
            
    $buf .= fgets($fp,128);

              
    $zeile explode("\n"$buf);
            foreach( 
    $zeile as $ausgabe );


        
    fclose($fp);
     
            return 
    $ausgabe;
    }


    ?>

    PHP-Code:
    // Gerät AN AUS
    $send send_to_host($host,'<YAMAHA_AV cmd="GET"><Main_Zone><Power_Control><Power>GetParam</Power></Power_Control></Main_Zone></YAMAHA_AV>');
    $Status substr($send,61,2);

    If (
    $Status == 'On')
    {
    SetValueBoolean(10126 /*[Multimedia\Gerät]*/ True);


    //Lautstärke
    $send send_to_host($host,'<YAMAHA_AV cmd="GET"><Main_Zone><Volume><Lvl>GetParam</Lvl></Volume></Main_Zone></YAMAHA_AV>');
    $Laustaerke substr($send,57,3);
    SetValue(59731 /*[Multimedia\Laustärke]*/ $Laustaerke);

    //Input gewählt
    $send send_to_host($host,'<YAMAHA_AV cmd="GET"><Main_Zone><Input><Input_Sel>GetParam</Input_Sel></Input></Main_Zone></YAMAHA_AV>');
    $Input $send;
    $chars preg_split("/Input_Sel>|Input_Sel>/"$InputPREG_SPLIT_OFFSET_CAPTURE);
    $chars[1] =explode("</"$chars[1]);
    SetValue(42784 /*[Multimedia\Eingang\Input zur Zeit gewählt]*/ $chars[1][0]);

    //NET Radio Sender
    $send send_to_host($host,'<YAMAHA_AV cmd="GET"><NET_RADIO><Play_Info>GetParam</Play_Info></NET_RADIO></YAMAHA_AV>');
    $Preset $send;
    $chars preg_split("/Station>|Station>/"$PresetPREG_SPLIT_OFFSET_CAPTURE);
    $chars[1] =explode("</"$chars[1]);
    SetValue(54007 /*[Multimedia\Internet Radio\zur Zeit laufender Radiosender]*/ $chars[1][0]);


    }
    else
    {
    SetValueBoolean(10126 /*[Multimedia\Gerät]*/ false);

    Geändert von PhilippS (22.09.12 um 21:37 Uhr)

  6. #16
    Registriert seit
    Nov 2011
    Ort
    Potsdam
    Beiträge
    86

    Zitat Zitat von Tetrapack Beitrag anzeigen
    Letztendlich werde ich aber wohl bei der Variante mit dem Client Socket bleiben, da ich dort auch aktuelle Änderungen am Gerät oder über die FB mitbekomme. Das einzig blöde an der Lösung ist leider die unzuverlässige Vebindung. Aber im Notfall sendet man einen Request um einen aktuellen Status zu bekommen.
    Du kannst du einen "Keep-Alive" absetzen, alle 30 Sekunden oder mehr. Auf diese Weise bleibt (bei mir) der Socket, soweit ich das nach 5 Minuten beobachten beurteilen kann, offen.

  7. #17
    Registriert seit
    Nov 2011
    Ort
    Potsdam
    Beiträge
    86

    Zitat Zitat von Tetrapack Beitrag anzeigen
    Den Logger von Brownson habe ich installiert, aber zum einen nicht die aktuellste version und zum anderen war ich bisher zu blöd den Logger richtig zubenutzen
    Kann man dir dabei helfen es richtig zu benutzen?

  8. #18
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Bestimmt ... Hängt davon ab wie geduldig du so bist. Sinn würde das aber nur per TS3, Skype oder Telefon machen ;-)

    Gruß
    Jens
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  9. #19
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    257

    Ich möchte auch gern die Client Socket Verbindung einrichten damit ich immer auch die Befehle der FB empfangen kann.
    Könnt ihr das hier vielleicht alles genau erklären was man hier einrichten / einstellen muss?

    Denn ich habe ein Client Socket mit der IP und Port 80 angelegt, darunter eine Register Variable. Die Client Socket Verbindung baut sich immer alle 5 Sekunden für ca. 2 Sekunden auf und schließt sich wieder. Bleibt die bei euch länger offen? Wie funktioniert das genau mit dem Keep-Alive? einfach irgendwas hinschicken? Ausser wenn ich alle 3 Sekunden irgendwas sende bleibt der socket geöffnet?

    Ich empfange aber leider auch keine Befehle, wenn ich auf die Register Variable gehe und Debug aktiviere kommt nix an wenn ich zum Beispiel die Lautstärke erhöhe? warum nicht ? Im Webinterface verändert sich die Lautstärke....

    DANKE

  10. #20
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    257

    ahhh es ist Socket Port: 50000 wieso schreibt das hier niemand....
    jetzt siehts schon viel besser aus

Ähnliche Themen

  1. Verstärker Pioneer VSX-920 per Lan steuern
    Von mäc im Forum Skripte, PHP, SQL
    Antworten: 167
    Letzter Beitrag: 02.12.17, 04:43
  2. Yamaha RX-V771 per LAN steuern (SOAP?)
    Von ASICS im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 6
    Letzter Beitrag: 12.08.12, 16:57
  3. HDMI Matrix per RS-232 mit IPS steuern?
    Von Freak4x im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 1
    Letzter Beitrag: 31.12.11, 11:52
  4. Jalousieaktor per Funktaster steuern - nicht optimal
    Von renovierer im Forum HomeMatic
    Antworten: 2
    Letzter Beitrag: 26.09.11, 21:53
  5. Antworten: 10
    Letzter Beitrag: 28.02.09, 16:18