Ankündigung

Einklappen
Keine Ankündigung bisher.

Bose Soundtouch steuern über KNX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    KNX/EIB Bose Soundtouch steuern über KNX

    Hallo hab mal eine Frage an euch.

    Hat schon jemand Erfahrung das Bose Soundtouch System über KNX zu steuern? Oder hat schon jemand die Möglichkeit gefunden das System in eine Visu einzubinden?

    Über eure Hilfe wäre ich dankbar

    #2
    Ich bin gerade dabei das zu realisieren. Die ersten Erfolge hab ich schon.
    Aktuell läuft das so dass​ ich in einem PHP-Script via cURL Befehle an die IP-Adresse des Soundtouch sende.
    Die Scripte rufe ich in Smarthome.py auf. Dort sind die Scripte bei den Items hinterlegt und damit per KNX erreichbar.
    Jede Visu die PHP-Scripte ausführen oder aufrufen kann könnte so die Soundtouch-Geräte steuern.

    Was mir noch fehlt ist das zurücklesen des Status vom Gerät. Da gibt es Möglichkeiten, aber ich habe noch kein
    fertiges Script um das Auszuwerten.

    Kommentar


      #3
      Danke für deine Antwort. Wie müssen die PHP-Skripte aussehen? Meine Visu kann nur leider kein PHP senden. Gibt es da auch andere Lösungen?

      Kommentar


        #4
        Du könntest z.B. das fertige Smarthome.pi Image für den RaspberryPi nehmen und diesen als "Gateway" für Sonos laufen lassen.

        Beispiel für ein Script (Schaltet den Soundtouch aus):
        Code:
          #!/usr/bin/php
        <?php
        // Bose Soundtouch ausschalten
          
          // IP-Adresse Bose Soundtouch anpassen
        $ip = "192.168.0.66";
          
          // Status
        $state01 = "press";
        $state02 = "release";
          
          // Senders
        $sender = "Gabbo";
          
          // Key
        $keyname = "POWER";
          
          // XML Data
        $xml_data01 = '<key state="'.$state01.'" sender="'.$sender.'">'.$keyname.'
        </key>';
        $xml_data02 = '<key state="'.$state02.'" sender="'.$sender.'">'.$keyname.'
        </key>';
          
          echo $xml_data01;
        echo $xml_data02;
          
          // cURL Press Key Button
        $curl = curl_init();
        curl_setopt_array($curl,
            array(CURLOPT_URL => 'http://'.$ip.':8090/key',
           CURLOPT_HEADER => 0,
           CURLOPT_RETURNTRANSFER => 1,
           CURLOPT_POST => 1,
           CURLOPT_POSTFIELDS => $xml_data01,
           CURLOPT_HTTPHEADER => array('Content-type: text/xml')
           ));
        $resp = curl_exec($curl);
        curl_close($curl);
          
          // cURL Release Key Button
        $curl = curl_init();
        curl_setopt_array($curl,
            array(CURLOPT_URL => 'http://'.$ip.':8090/key',
           CURLOPT_HEADER => 0,
           CURLOPT_RETURNTRANSFER => 1,
           CURLOPT_POST => 1,
           CURLOPT_POSTFIELDS => $xml_data02,
           CURLOPT_HTTPHEADER => array('Content-type: text/xml')
           ));
        $resp = curl_exec($curl);
        curl_close($curl);
        ?>
        Das Script ist nur an zwei Stellen anzupassen:

        1. IP-Adresse: $ip = "..."

        2. Befehl: $keyname = "..."

        Folgende Befehle (keyname) sind mir bekannt und werden vom Soundtouch akzeptiert:
        PRESET_1 bis PRESET_6 (Stationstasten 1-6)
        POWER (schaltet ab)
        STOP
        PLAY
        VOLUME_UP
        VOLUME_DOWN
        NEXT_TRACK

        Kommentar


          #5
          Wie startest du das Script genau in smarthome.py? Ich würde gerne wenn ein KNX-Objekt gesetzt wird das Script ausführen, dazu müsste es doch in Python nicht php implementiert sein oder gehst du einen Umweg über die Visu? Oder wie meinst du das mit Sonos als Gateway?

          Kommentar


            #6
            Ich hab die Scripte direkt bei den Items hinterlegt:

            Code:
              [[[audio_next_bef]]]
               name = Audio naechster Titel (Befehl)
               type = bool
               cache = yes
               knx_dpt = 1
               knx_cache = 8/2/1
              [[[audio_next]]]
               name = Audio Titel weiterschalten
               type = bool
               eval = os.system("/usr/local/smarthome/logics/soundtouch/soundtouch_og_eltern_next.php")
               eval_trigger = og.eltern.audio_next_bef
            Damit kann ich dann auch einfache Logiken mit einsetzen (z.B. beim Drücken und Loslassen einer Taste getrennte Scripte verwenden):
            Code:
              [[[audio_vol_down_bef]]]
               name = Audio leiser (Befehl)
               type = bool
               cache = yes
               knx_dpt = 1
               knx_cache = 8/2/2
              [[[audio_vol_down_pressed]]]
               name = Audio leiser gedrueckt
               type = bool
               eval = os.system("/usr/local/smarthome/logics/soundtouch/soundtouch_og_eltern_vol_down_1.php") if sh.og.eltern.audio_vol_down_bef() else None
               eval_trigger = og.eltern.audio_vol_down_bef
              [[[audio_vol_down_released]]]
               name = Audio leiser losgelassen
               type = bool
               eval = os.system("/usr/local/smarthome/logics/soundtouch/soundtouch_og_eltern_vol_down_0.php") if not(sh.og.eltern.audio_vol_down_bef()) else None
               eval_trigger = og.eltern.audio_vol_down_bef

            Kommentar


              #7
              Kann mir jemand helfen dieses script mit dem gira homserver zum laufen zu bringen!

              Ein server hätte ich wo ich die datei lagern kann zum ausführen mit dem Gira Hs

              Nur weiß ich nicht wie ich die Datei mit dem HS ausführen kann

              braucht die datei in der das Script gespeichert wird einen speziellen Namen?
              Zuletzt geändert von fbauer; 02.03.2016, 05:28.

              Kommentar


                #8
                Habe es folgender maßen versucht leider ohne erfolg

                Hat wer einen Tipp für mich

                20160302_155950.jpg 20160302_160045.jpg

                Kommentar


                  #9
                  Ich habe keinen Gira Homeserver und kann daher nur allgemeine Tipps geben.
                  ​Kann der HS überhaupt PHP? Auf die schnelle habe ich da nichts dazu gefunden.
                  Ein User hat sowas schon mal gemacht. Da liefen die PHP-Scripte auf einem
                  anderen Gerät (Webserver...) und wurden vom HS per Befehl angetriggert.


                  Kommentar


                    #10
                    hmm ok einen raspbery py hatte ich noch zu hause lässt es sich über den machen?

                    Kommentar


                      #11
                      kann ich das script so auch starten zum testen ob es dann funktioniert

                      Kommentar


                        #12
                        Google mal nach "gira homserver php". Da kommt gleich als erste Treffer die Seiten von Thomas Trautner.
                        ​Evtl. hilft dir das weiter.

                        Kommentar


                          #13
                          Bei URL steht ausdrücklich: Nur Pfad!

                          IP-Adresse weglassen!
                          Gruß Matthias
                          EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                          - PN nur für PERSÖNLICHES!

                          Kommentar


                            #14
                            MatthiasS vielen dank dann muss also unter daten nicht die IP Adresse von der Bose Sountouch rein sondern die IP vom Server wo die Datei liegt verstehe ich das Richtig?

                            Kommentar


                              #15
                              Hab es leider immer noch nicht geschafft

                              Hab jetzt von Bose die Befehle bekommen mit denen es möglich ist die Anlage zu Steuern allerdings weiß ich nicht wie ich die mit dem Gira HS ausführen kann!

                              Kann mir da evt einer Helfen?

                              MFG
                              Angehängte Dateien

                              Kommentar

                              Lädt...
                              X