Sign in   |  Join   |  Help
Untitled Page

ARCHIVED FORUM -- March 2012 to February 2022
READ ONLY FORUM

This is the second Archived Forum which was active between 1st March 2012 and 23rd February 2022

 

BeoLink Gatway

rated by 0 users
This post has 4 Replies | 3 Followers

Nietz
Not Ranked
Posts 16
OFFLINE
Bronze Member
Nietz Posted: Tue, Jun 30 2020 1:16 AM

Hallo geschätzte Forumsmitglieder

Ist jemand versiert in der Macro-Programmierung für den Beolink Gateway? Ich versuche, einen JOIN-Befehl hinzukriegen, bisher leider erfolglos... weder für ein einzelnes Multiroom-Gerät alleine noch für mehrere gleichzeitig - bin stark interessiert an beidem.

Besten Dank für jegliche Unterstützung und Beispiele für die Programmierung des Beolink Gateways.

beoandy
Not Ranked
sissi not kangaroo
Posts 329
OFFLINE
Gold Member
beoandy replied on Tue, Jun 30 2020 7:04 AM

hi!

wie ist denn der allgemeine wissensstand zum blgw? es können nur netlink-geräte mit jjoin angesprochen werden. aber in summe alles ganz einfach. 

im blgw raum auswählen, ein resource macro anlegen, als command den av renderer auswählen, dann send command, command = join und continue type einfach short press. 

wenn das macro ausgelöst wird schaltet sich das netlink gerät ein und verbindet sich mit der zuletzt eingeschalteten aktiven quelle.

einfach melden wenn wenn es noch fragen gibt.

beoandy

BS Ouverture, BS 9000, AV 9000, Avant 32 DVD, BV9, BV6-22, BS 5, BS 4500, BS 7000, BC 9500, Beo6, BL Penta, F1000, BLGW, etc....

Nietz
Not Ranked
Posts 16
OFFLINE
Bronze Member
Nietz replied on Tue, Jun 30 2020 7:20 AM

Hallo beoandy

Besten Dank für deine Antwort: mein BLGW-Wissensstand ist gerade mal 12 Stunden alt... kenne ein paar Programmiersprachen aus früherer Zeit, aber LUA ist neu für mich.

Anyway: ich wollte gerne 2-3 JOIN- und Volume-Dinge erreichen:

- Bei JOIN meines BeoSound 2 automatisch noch weitere Devices hinzufügen

- Bei Volume Up im Wohnzimmer alle Geräte im Raum im Volumen anheben

- Mute habe ich hingekriegt, aber UnMute nur mit Hilfe von Volume Up oder Down... gibt es ein UnMute?

Für ein paar hilfreiche Zeilen bin ich sehr dankbar.

Herzlichst, Nietz.

beoandy
Not Ranked
sissi not kangaroo
Posts 329
OFFLINE
Gold Member
beoandy replied on Wed, Jul 1 2020 7:26 PM

hi nietz!

okay, dann versuchen wir uns mal heranzutasten Smile

kennst du diese seite? https://beointegration.com/help-files/

dort gibt es viele hilfe und hintergrund files und auch eine anleitung vom blgw. 

das schöne am blgw ist du brauchst eigentlich (ein paar ausnahmen gibt es) sogut wie keine lua kenntnisse. wichtig ist mal für den anfang den aufbau eines macros zu verstehen. es besteht immer als aktion (event) und reaktion command) - allerdings: bei ml-geräten können fast keine events abgefragt werden, da geht (in abhängigkeit vom sw-stand) meist nur light oder control befehlte der beo4 die als "auslöser" für commands herangezogen werden können. 

bei nl-geräten geht da schon mehr. unter resource event kann der status bzw. eine änderung vom status abgefragt werden. (schon mal capture versucht? dort sieht man welche geräte gerade welche status-updates machen)

soll bedeuten, ich glaube den join befehl kannst du an das nl gerät schicken, aber ich glaube nicht diesen als event "auslesen" zu können. 

der rest deiner fragen ist dann eher einmal ein wenig herumtesten, ich würde z.b. sagen mute ein zweites mal geschickt müsste ein unmute sein. (bei manchen dinge habe ich einfach keine notwendigkeit und somit weniger detailwissen dazu)

so, ich fürchte das muss mal für die nächste runde reichen.

viel spass

beoandy

 

BS Ouverture, BS 9000, AV 9000, Avant 32 DVD, BV9, BV6-22, BS 5, BS 4500, BS 7000, BC 9500, Beo6, BL Penta, F1000, BLGW, etc....

Nietz
Not Ranked
Posts 16
OFFLINE
Bronze Member
Nietz replied on Wed, Jul 1 2020 9:28 PM

Hallo beoandy

Besten Dank für deine Inputs und Links! Ich bin heute einen Riesenschritt vorangekommen - und zwar so weit, dass ich - mindestens zur Zeit - den BeoLink Gateway weglassen kann....
Was ich wollte, ist, dass ich mit meinen MyStrom-Buttons (https://mystrom.ch/de/ und https://api.mystrom.ch/?version=latest) einen Join auslösen kann - und es ist mir gelungen!!!

Zuerst dachte ich, das BeoLink Gateway müsse dazu die Button-Events mitkriegen - aber einen 'Listener' auf dem BeoLink Gateway habe ich nicht hingekriegt. Dann habe ich realisiert, dass man in den Buttons direkt Action-Links hinterlegen kann, was mir letztendlich gelang. Noch ist die Programmierung unten clumsy, und man könnte vermutlich auch friendly names verwenden, aber es funzt. Die Zusammenfassung meiner Notizen, die ich dazu gebraucht habe, folgt im Anschluss.

Was mir nun eigentlich fehlt - und ich bislang nirgends gefunden habe - ist ein NetworkLink Befehlssatz, d.h. welche Befehle (Funktionen) es insgesamt gibt. Damit könnte man noch einige elegante Dinge anstellen...

Dir schon mal herzlichen Dank - und gerne auf weiteren Austausch! 
      Nietz.

 

 

************************* N O T I Z E N *********************

                   Bang & Olufsen / Beolink Gateway

***************************************************************

     01.07.2020/Nietz

 

curl-Befehle

**************

Join BeoSound Core für BeoSound 2 (IP: 192.168.0.78):

 

Get Sources:
curl -H "Content-Type: application/json" -X GET 192.168.0.198:8080/BeoZone/Zone/Sources

Join:
curl -d '{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}' -H "Content-Type: application/json" -X POST 192.168.0.78:8080/BeoZone/Zone/ActiveSources

MYSTROM-Befehle zum Programmieren der Tastenbefehle:

****************************************************

Auslesen der gespeicherten Tastenbefehle:

curl --request GET '192.168.0.72/api/v1/action'

Programmieren eines Tastenbefehls:

curl --request POST '192.168.0.72/api/v1/action/single' \--data-raw 'get://192.169.0.14/test'

Löschen eines Tastenbefehls:

curl --request POST '192.168.0.72/api/v1/action/single' \--data-raw ''

MySwitch-Befehl für Join B&O:

*****************************

A) Single Press:

curl --request POST '192.168.0.72/api/v1/action/single' \--data-raw 'post://192.168.0.78:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}'

B) Double:

curl --request POST '192.168.0.72/api/v1/action/double' \--data-raw 'post://192.168.0.78:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}'

C1) Long: (zwei B&O-Geräte joinen)

curl --request POST '192.168.0.72/api/v1/action/long' \--data-raw 'post://192.168.0.78:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.108:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}'

C2) Long: (drei B&O-Geräte joinen)

curl --request POST '192.168.0.72/api/v1/action/long' \--data-raw 'post://192.168.0.78:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.108:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.147:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}'

C3) Long: (vier B&O-Geräte joinen)

curl --request POST '192.168.0.72/api/v1/action/long' \--data-raw 'post://192.168.0.78:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.108:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.147:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}||post://192.168.0.57:8080/BeoZone/Zone/ActiveSources?{"activeSources":{"primary":"radio:2797.1293039.28562990@products.bang-olufsen.com"},"join":true}'

Aus https://github.com/PolyPv/BeoRemote/blob/master/BeoRemote.txt:

**********************************************************************************

****************************** General information *******************************

**********************************************************************************

Remember that this is a note of my experiences with the BeoRemote protocol. 

It is neither an official documentation nor am I responsible for any direct, 

indirect, incidental or consequential damages resulting from using this as 

your reference.

Furthermore this is a work-in-progress and most likely incomplete and 

outdated.

**********************************************************************************

******************************* Bonjour / Zeroconf *******************************

**********************************************************************************

NAME:           _beoremote._tcp.local

PORT:           8080

TXT RECORD:     mac=Macaddress / device=Devicename / type=Typenumber

**********************************************************************************

********************************** RESTful API ***********************************

**********************************************************************************

Everything is handled with JSON over HTTP.

HTTP header field for "accept" and "content-type" is both "application-json".

To get an idea of the protocol simply enter the ip address of your device in 

a normal web browser (e.g. http://192.168.0.123:8080) and follow the links.

The PUT and POST commands can be easily send with e.g. CURL for testing purpose.

Most PUT and POST commands needs a RELEASE command afterwards. This is very

important for e.g. VOLUME_UP. Otherwise volume will automatically increment to

its maximum.

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/Ping

DESCR:      ping

TYPE:       HTTP GET

RETURNS:    200

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Sources

DESCR:      list of all available sources

TYPE:       HTTP GET

RETURNS:    sourcenames and IDs

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Notifications

DESCR:      stream with 2way notifications

TYPE:       HTTP GET stream

EVENTS:     NUMBER_AND_NAME | KEYBOARD | TRACKPAD | VOLUME | SOURCE

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL: http://hostname.local:8080/BeoOneWay/Input

DESCR:      send input commands / needs a RELEASE command afterwards

TYPE:       HTTP POST

PAYLOAD:    {"timestamp":74728000,"command":"insert_command_here"} 

    {"character":"character_here"}

COMMANDS:   RELEASE | TEXT | PMUTE | MENU | RED | GREEN  | YELLOW | 

BLUE | WIND | REWIND | PLAY | STOP | BACK | STANDBY | 

DIGIT_0 | DIGIT_1 | DIGIT_2 | DIGIT_3 | DIGIT_4 | DIGIT_5 | 

DIGIT_6 | DIGIT_7 | DIGIT_8 | DIGIT_9 | VOLUME_DOWN | 

VOLUME_UP | STEP_UP | STEP_DOWN | CURSOR_UP | CURSOR_DOWN | 

CURSOR_LEFT | CURSOR_RIGHT | SELECT | MUTE

RETURNS:    202

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoInput/Control

DESCR:      send control commands

TYPE:       HTTP POST

PAYLOAD:    {"control":"insert_command_here"}

COMMANDS:   BACKSPACE | DONE

RETURNS:    202

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/ActiveSources

DESCR:      change the current source

TYPE:       HTTP POST

PAYLOAD:    {"activeSources":{"secondary":"secondary_ID","primary":"primary_ID"},"join":true}

RETURNS:    202

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Sound/SpeakerGroup

DESCR:      get all speaker groups

TYPE:       HTTP GET

RETURNS:    all speaker groups and their numbers

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Stand

DESCR:      get all stand positions

TYPE:       HTTP GET

RETURNS:    all stand positions and their numbers

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Picture/Mode

DESCR:      get all picture modes

TYPE:       HTTP GET

RETURNS:    all picture modes and their numbers

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Picture/Format

DESCR:      get all picture formats

TYPE:       HTTP GET

RETURNS:    all picture formats and their numbers

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Sound/Mode

DESCR:      get all sound modes

TYPE:       HTTP GET

RETURNS:    all sound modes and their numbers

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Sound/SpeakerGroup/Active

DESCR:      change the active speaker group

TYPE:       HTTP PUT

PAYLOAD:    {"active":integer_value}

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Sound/Mode/Active

DESCR:      change the active sound mode

TYPE:       HTTP PUT

PAYLOAD:    {"active":integer_value}

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Stand/Active

DESCR:      change the active stand position

TYPE:       HTTP PUT

PAYLOAD:    {"active":integer_value}

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Picture/Mode/Active

DESCR:      change the active picture mode

TYPE:       HTTP PUT

PAYLOAD:    {"active":integer_value}

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

URL:        http://hostname.local:8080/BeoZone/Zone/Picture/Format/Active

DESCR:      change the active picture format

TYPE:       HTTP PUT

PAYLOAD:    {"active":integer_value}

----------------------------------------------------------------------------------

 

Page 1 of 1 (5 items) | RSS