Könntest du uns mal auf dem laufenden halten?
KNX für den MusikServer4Home
Einklappen
X
-
Hallo Gast
ich habe den Gira X1 heute erst bestellt. Hatte einen zum Testen zu Hause, deshalb ist leider noch nichts weiter passiert . Sobald ich den X1 zu Hause habe, mache ich mit der Integration weiter.
Werde mich vermutlich übernächste Woche gezielt darauf konzentrieren können, dann gibt es auch wieder Updates dazu.
Ich werde hier in diesem Thread dann den aktuellen Stand postenZuletzt geändert von Lance86; 16.10.2020, 16:08.Kommentar
-
Gewisse Funktionen lassen sich einfach in den knxlistener integrieren. Die direkte Kommunikation ist sicher der beste Weg. Die"Not"-Bedienung könnte man so gestalten dass der Hostname/IP in die KNX Config eingetragen wird und wenn der nicht erreichbar ist knxd das über den listener macht.
Dazu müsst ihr mir sagen was für Funktionen darüber laufen sollen. Bzw. kann ich diese generell Funktionen ausführten wenn kein X1 vorhanden ist.
Kein Support per PN!Kommentar
-
Hallo zusammen,
ich habe nun endlich meinen X1 bekommen und hatte tatsächlich mal kurz Zeit mich damit zu befassen.
Das mit der Notbedienung über den KNX-Listener finde ich gut.
Zum Testen, ob das Ganze auch sauber funktioniert habe ich mir einen kleinen Squeeze-Listener gebaut und damit rumgespielt.
Folgende Voraussetzungen gibt es, damit man mit dem Gira X1 direkt kommunizieren kann (der X1 schreibt dann automatisch die Infos auf den KNX-Bus)
1. Man muss sich für die API am X1 anmelden. Dazu habe ich das Tool "Postman" verwendet". Die Doku von Gira ist ziemlich gut. Die wichtigsten Schritte nochmal in Kürze.
Damit die Anmeldung funktioniert muss im Reiter "Authorization" der Type "Basic Auth" gewählt und Benutzer und Passwort vom Gira X1 eingegeben werden (bitte nicht den admin verwenden)- Code:
GET https://<IP vom X1>/api/v2/
- Code:
POST https://<IP vom X1>/api/clients
Code:{ "client": "<Name den ihr verwenden wollt>" }
- Code:
GET https://<IP vom X1>/api/v2/uiconfig/uid?token=<Token vom X1>
Code:curl -X PUT -u "$USER:$PASS" -k -d "{\"value\":\"<Wert als String>\"}" https://$IPX1/api/v2/values/<Adresse Datenpunkt im X1>?token=$TOKEN
Code:curl -X PUT -u "$USER:$PASS" -k -d "{\"value\":<Wert als Integer>}" https://$IPX1/api/v2/values/<Adresse Datenpunkt im X1>?token=$TOKEN
- Wiedergabe - DPST-1-1
- Wiedergabe Status - DPST-1-2
- Lautstärke absolut - DPST-5-1
- Lautstärke absolut Status - DPST-5-1
- Titel - DPST-16-1
- Interpret - DPST-16-1
- Cover - DPST-16-1
Bekannter Fehler bisher:
- Das Cover ändert sich nicht nach erstmaliger Anzeige. Ich verwende die URL "http://<MS4H-IP>:9000/music/current/cover.jpg?player=<MACPLAYER>"
Das Cover kann zwar geändert werden, wenn man eine andere URL einspielt, jedoch cached der X1 scheinbar das Cover und zeigt danach trotzdem wieder das alte Cover an.
Bei Bedarf kann ich den Listener auch noch veröffentlichen.
---
URL der GIRA REST API Dokumentation:
Kommentar
-
Damit läuft bei mir mit meinem SqueezeListener ein Minimalbetrieb.
Bekannter Fehler bisher:
- Das Cover ändert sich nicht nach erstmaliger Anzeige. Ich verwende die URL "http://<MS4H-IP>:9000/music/current/cover.jpg?player=<MACPLAYER>"
Das Cover kann zwar geändert werden, wenn man eine andere URL einspielt, jedoch cached der X1 scheinbar das Cover und zeigt danach trotzdem wieder das alte Cover an.
Den X1<->KNX-Part kann man hier integrieren.
Das CoverArt über den Image-Proxy ist keine gute Idee. Ich nutze immer die direkte URL zu den Covern /Radio/Spotify etc.
Mit dem Imageproxy gibt es immer wieder das Problem das die Cover nicht passen.
Kein Support per PN!Kommentar
-
hismastersvoice
Das mit dem Imageproxy wäre eine schöne Sache gewesen
Hast du einen Tipp fürs Auflösen des richtigen Covers?
Ich habe mir gestern deinen sq_connect mal angeschaut und den Austausch mit dem X1 umgesetzt.
Der Squeeze-Connect pusht jetzt schön fleißig alle Änderungen vom LMS an den Gira X1 und passt die Visu an.
Jetzt muss ich mir noch den knxlisten zu Gemüte führen, damit eine Änderung am X1 auch an den LMS weitergegeben wird.Kommentar
-
Ich kenne dein Skript nicht, also kann ich nichts dazu sagen wann du wie die Cover abholst.
Kann dir nur zeigen wie ich das in PHP mache...
PHP-Code://Get Values $res_json = shell_exec('sudo curl -s -H "Content-Type: application/json" -X POST -d \'{"id":1,"method":"slim.request","params":["' . $zone_mac . '", ["status",0,500,"tags:acd","menulaylist","useContextMenu:1"]]}\' http://localhost:' . $config['LMS_WEB_PORT'] . '/jsonrpc.js'); $res_json = json_decode($res_json, true); //get current index $pl_index = $res_json['result']['playlist_cur_index']; //artwork if (is_array($res_json) && (array_key_exists('icon-id', $res_json['result']['item_loop'][$pl_index]))) { $icon_id = $res_json['result']['item_loop'][$pl_index]['icon-id']; $image = "http://" . $config['LMS_IP'] . ":" . $config['LMS_WEB_PORT'] . "/music/" . $icon_id . "/cover.jpg"; } else { $image = strstr($res_json['result']['item_loop'][$pl_index]['icon'], 'http'); if(stripos($image, '/imageproxy/') === 0) { $image = str_replace('/imageproxy/', '', $image); } if(stripos(strrev($image), strrev('/image.png')) === 0) { $image = str_replace('/image.png', '', $image); } if(stripos($image, 'html/images/playlists.png') === 0) { $image = 'http://'.$config['LMS_IP'].':'.$config['LMS_WEB_PORT'].'/html/images/playlists.png'; } if(stripos($image, 'plugins/RandomPlay/html/images/icon.png') === 0) { $image = 'http://'.$config['LMS_IP'].':'.$config['LMS_WEB_PORT'].'/plugins/RandomPlay/html/images/icon.png'; } $image = urldecode($image); }
Das Squeeze-Connect mass ja wissen auf was für eine GA er senden muss. Woher nimmst du die?
Kein Support per PN!Kommentar
-
vielen Dank hismastersvoice für deinen Auszug.
Ich habe das schonmal teilweise in den sq_connect eingearbeitet.
Ich habe allerdings aktuell noch ein Problem, dass die Übergabe an den X1 den Dienst quittiert sobald Informationen vom knxlisten kommen.
ein kurzer Zwischenstand als Bild mal anbei.Zuletzt geändert von Lance86; 14.11.2020, 09:21.Kommentar
-
Hallo zusammen,
mal wieder kleines Update von mir zu der Gira X1 Integration:
Der Push vom Cover an den X1 funktioniert nun mit einer kleinen Verzögerung, weil ich festgestellt habe, dass die Information zum nächsten Titel früher verfügbar ist als der Link zum Cover. Deshalb ein kleiner Delay.
Das Problem aus meinen letzten Post habe ich auch gelöst. Vielen Dank an hismastersvoice für den Denkanstoß.
Aktuell habe ich folgende Funktionalität umsetzen können:- Wenn in der LMS Oberfläche Play/Pause ausgeführt wird, wird die Anzeige im X1 angepasst (X1-API)
- Titel und Interpret werden vollständig übergeben, da keine Längenbeschränkung wie in KNX (X1-API)
- Cover wird an X1 übergeben (X1-API)
- Lautstärke wird an X1 synchronisiert (X1-API)
- Play/Pause wird vom X1/KNX-Bus an den LMS weitergegeben (KNX-Telegramm/DPT 1.001)
- Volume wird vom X1/KNX-Bus an den LMS weitergegeben (KNX-Telegramm/DPT 5.001)
Die X1-API hat einen Vor- und Nachteil zugleich. Wenn ich einen Befehl an den X1 übergebe, schreibt er die Daten automatisch an den KNX-Bus. Ich brauche mich also nicht um die beiden GA's fürs Schalten und den Status kümmern. Nachteil ist zugleich, dass ich das ankommende Telegramm gleich wieder an den X1 schicken würde (ist keine Endlosschleife, weil wenn sich nichts ändert, schreibt der X1 kein Telegramm), aber es ist nicht schön.
Ich hätte mir jetzt gedacht, die Integration insoweit aufzuteilen, dass lediglich Informationen wie Titel, Interpret und Cover-URL an den X1 per API übergeben werden und der Rest wie üblich an den KNX-Bus geschickt wird.
Eure Meinung dazu? Ich weiß, dass KNX hier kein Schwerpunktthema ist, aber vielleicht hat ja jemand eine alternative Idee.Kommentar
-
evtl. sehe ich den Wald vor lauter Bäumen nicht, aber ich kann mein knx Connect nicht einrichten.
Ich erhalte nur die Möglichkeit "Autostart aktivieren" unter IP-Gateway anzuhaken.
Wenn ich dies anhake, speichern klicke und anschließend einen Neustart durchführe, erhalte ich keine weiteren Einstellmöglichkeiten.
Muss ich irgendwelche Dateien bearbeiten oder wo sollen die Eingaben des IP-Gateways möglich sein.
Besten Dank vorab.Kommentar
-
-
Du kannst in den neuen Versionen nur noch die knxd config Datei direkt bearbeiten.
Textfeld unter Autostart
Das würde geändert da die Konfiguration über das Formular sehr eingeschränkt war und man hat händisch editieren musste.
Ein Formular zu erstellen das noch mehr abdeckt ist zu umfangreich.
Kein Support per PN!Kommentar
Kommentar