Seite 1 von 1

[V4.0 IP3] Anfängerfrage json body für Squeezebox HTTP-Request

Verfasst: Mo Apr 03, 2023 6:42 pm
von MaxPower
Hallo Zusammen,

könnte mir Jemand einen Anfängertipp geben (gerne auch einen Verweis zum Nachlesen), wie ich die Selektoren bei HTTP Anfragen (Post) bezeichnen muss, so dass sich das json mit Listenwerte (in eckigen Klammern) aufbaut?

Ich verstehe die Anleitung zum Zerlegen von verschachtelten json Antworten und das funktioniert auch gut (bekomme entsprechende Werte auf den KNX-Bus). Im MQQT Video erklärt Stefan, dass sich das für den Request einfach umdrehen lässt (hatte ich zumindest so verstanden). Ich bekomme Werte auf die gleiche Ebene, aber sobald ich anfange im Selektor mit eckigen Klammern zu arbeiten, bringe ich das „HTTP-API Subsystem“ zum Absturz.

Ich möchte gerne meine Squeezebox Player steuern. Der LMS läuft problemlos im Timberwolf Docker Container. In der Anleitung wird folgender json body beschrieben:

{'method': 'slim.request', 'params': [<player_mac_address>, <command>]}

Per jeweiliger Multiplexer (String) Logik würde ich „slim.request“, MAC Adresse Player, „status“ und „-„ an die Abfragegruppe senden mit dem Ziel den Status abzufragen:

{'method': 'slim.request', 'params': [b8:27:eb:57:94:12, ["status","-"]]}

Aber wie bekomme ich die Listeneinträge an die richtige Stelle?

Ich stehe hier (ich habe die Listenwerte nur zum Test auf die gleiche Ebene gebracht):
Screenshot 2023-04-03 183217.jpg
LG
Stephan

Re: [V4.0 IP3] Anfängerfrage json body für Squeezebox HTTP-Request

Verfasst: Sa Apr 15, 2023 1:58 pm
von MaxPower
Hallo Zusammen,

hat keiner einen Tipp für mich bzw. eine Idee, wie ich die Selektoren benennen müsste?

Oder bin ich mit meiner Fragestellung auf den Holzweg bzw. gäbe es einen anderen Ansatz oder Workaround?

VG Stephan

Re: [V4.0 IP3] Anfängerfrage json body für Squeezebox HTTP-Request

Verfasst: Sa Apr 15, 2023 2:37 pm
von MrWilson
Hey Stephan,

man kann leider nicht sehen, wie du die Selektoren angelegt hast, daher wäre mein Vorschlag jeweils folgende Selektoren anzulegen:

method -> slim request
params[0] -> 00:04:20:10:2a
params[1][0] -> status
params[1][1] -> -

So sollte dann das Ergebnis aussehen:

{"method": "slim request", "params": ["00:04:20:10:2a", ["status", "-"]]}

Nachtrag Variante 2:

Du kannst übrigens auch beim Anlegen der Ressource bei "Request Content-Type" auf "text/plain" umstellen und dann einfach {"method": "slim request", "params": ["00:04:20:10:2a", ["status", "-"]]} als String komplett rausschicken. Musst nur schauen, ob diese Variante für andere Befehle zweckmäßig ist.

Herzliche Grüße

Willy

Re: [V4.0 IP3] Anfängerfrage json body für Squeezebox HTTP-Request

Verfasst: So Apr 16, 2023 8:37 pm
von MaxPower
Hi Willy,

Mega, vielen Dank!

Variante 1 haut bei mir leider nicht hin. Bei mir meldet der TWS dann den Fehler "No callee registered for procedure" und dann hängt sich immer der HTTP-API Subsystem Dienst auf (passiert, sobald ich eckige Klammern setze).

Aber mit der reinen Text Lösung haut es hin und die Player lassen sich steuern. Damit komme ich schon weiter!

Vielen Dank!!!

Re: [V4.0 IP3] Anfängerfrage json body für Squeezebox HTTP-Request

Verfasst: So Apr 16, 2023 8:48 pm
von MrWilson
Naja, das du mit Klammern ein System zum Absturz bekommst sollte man vielleicht etwas genauer betrachten.

Schön das ich helfen konnte.