New Bang Olufsen Masterlink Gateway / Beolink Gateway integration (MLGW/BLGW)

Hi there,
Wanted to share my new Bang & Olufsen Masterlink Gateway / BeoLink Gateway integration. This allows you to fully integrate your B&O audio and TV system with Home Assistant through the Master Link or Beolink Gateways.

Hope you like it!

2 Likes

I’m impressed!

Great, I’ve been waiting for that for a long time :slight_smile: Unfortunately, I already have a problem with the login. If I try to connect to my Beolink Gateway (version 1.5.4.557) via integration, I get the error message “Login failed”.
I’ve tested login on my BLGW via telnet/9000 and MLGW-sequences, that is working fine.
The login from Integration on my Beolink Converter works, but of course it doesn’t know the different devices …
What am I doing wrong? Thanks for any hints …
best regards
Lutz

Thanks for the feedback!
can you post the relevant part of the homassistant log? (need to activate Debug logging)

logger:
  logs:
    custom_components.mlgw: debug

Also would be super helpful if you can post a cut and paste of the Telnet session to the BLGW. It may be that the BLGW has a slightly different login sequence than MLGW.

Giovanni

Hi Giovanni,

after I load your component via configuration.yaml and switched off the authentication for the ML protocol in the BLGW, it works!

I have the following entries in the configuration.yaml:


mlgw:
  host: 192.168.1.210
  username: admin
  password: *******
  use_mllog: true
  default_source: RADIO
  available_sources: 
    - A.MEM
    - CD
    - RADIO
  devices:
    - name: TV Wohnzimmer
    - name: BS Essen
    - name: BS Kueche
    - name: TV Arbeitszimmer
    - name: TV Schlafzimmer
    - name: BS Bad
    - name: BLC ML
    - name: BLC NL
    - name: Moment
    - name: Beosound Bad

Here are the log entries:


2021-02-10 07:11:41 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to ML CLI: 192.168.1.210

2021-02-10 07:11:48 DEBUG (MainThread) [custom_components.mlgw.gateway] Unexpected CLI prompt: b''

2021-02-10 07:11:48 ERROR (MainThread) [custom_components.mlgw.gateway] Failed to connect, continuing without ML CLI

2021-02-10 07:11:48 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to MLGW

2021-02-10 07:11:48 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Ping: [No payload]

2021-02-10 07:11:48 DEBUG (Thread-3) [custom_components.mlgw.gateway] mlgw: Msg type: Pong. Payload: [No payload]

2021-02-10 07:11:49 INFO (MainThread) [custom_components.mlgw.gateway] Opened connection to ML Gateway to 192.168.1.210 port: 9000

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Wohnzimmer at mln: 1

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Essen at mln: 2

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Kueche at mln: 3

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Arbeitszimmer at mln: 4

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Schlafzimmer at mln: 5

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Bad at mln: 6

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BLC ML at mln: 7

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BLC NL at mln: 8

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: Moment at mln: 9

2021-02-10 07:11:55 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: Beosound Bad at mln: 10

The login fails, but the devices are then loaded and can then be controlled via HA.

Excellent!

If you need more information …

Lutz

Lutz
The component establishes two connections: the failing one is for the enhanced functionality. Your basic functionality works. Can you please send me a cut and paste of a normal telnet to the blgw?

It may be that the blgw responds differently than the mlgw

Also once you are logged in, try the command:

_MLLOG ONLINE

Hi Giovanni

When I send the login request via telnet or nc, I only see in the BLGW log that the connection was accepted.

I have activated “require authentication” in the BLGW for Prot. 9000 and restarted HA.
I see only one login attempt in the logbook of the BLGW:

Feb 10 17:37:31 [debug] server: Processing Integration Protocol login...
Feb 10 17:37:31 [notice] server: Integration Protocol: successful login for admin
Feb 10 17:40:46 [notice] server: Accepting Integration Protocol connections on TCP
Feb 10 17:40:52 [notice] syslog-ng[571]: Last message \'server: Accepting In\' repeated 1 times
Feb 10 17:41:18 [debug] server: Sending feedback for an event over Integration protocol connection
Feb 10 17:47:39 [notice] server: Integration Protocol: Ping received.

In the log of the HA I see two login attempts, the first is due to errors (I think for the enhanced functionality), the second is successful.

2021-02-10 17:37:24 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to ML CLI: 192.168.1.210

2021-02-10 17:37:31 DEBUG (MainThread) [custom_components.mlgw.gateway] Unexpected CLI prompt: b''

2021-02-10 17:37:31 ERROR (MainThread) [custom_components.mlgw.gateway] Failed to connect, continuing without ML CLI

2021-02-10 17:37:31 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to MLGW

2021-02-10 17:37:31 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Ping: [No payload]

2021-02-10 17:37:31 DEBUG (Thread-5) [custom_components.mlgw.gateway] mlgw: Msg type: Login status. Payload: FAIL

2021-02-10 17:37:31 WARNING (Thread-5) [custom_components.mlgw.gateway] mlgw: MLGW protocol Password required to 192.168.1.210

2021-02-10 17:37:31 INFO (Thread-5) [custom_components.mlgw.gateway] mlgw: Trying to login

2021-02-10 17:37:31 DEBUG (Thread-5) [custom_components.mlgw.gateway] mlgw: >SENT: Login request: admin / *******

2021-02-10 17:37:32 INFO (MainThread) [custom_components.mlgw.gateway] Opened connection to ML Gateway to 192.168.1.210 port: 9000

2021-02-10 17:37:32 DEBUG (Thread-5) [custom_components.mlgw.gateway] mlgw: Msg type: Login status. Payload: OK

2021-02-10 17:37:32 WARNING (Thread-5) [custom_components.mlgw.gateway] mlgw: MLGW protocol Login successful to 192.168.1.210

2021-02-10 17:37:32 DEBUG (Thread-5) [custom_components.mlgw.gateway] mlgw: >SENT: Request Serial Number: [No payload]

2021-02-10 17:37:33 DEBUG (Thread-5) [custom_components.mlgw.gateway] mlgw: <RCVD: 'Serial Number': 25264041

2021-02-10 17:37:33 WARNING (Thread-5) [custom_components.mlgw.gateway] mlgw: Serial number of ML Gateway is 25264041

And a stupid question:

where I should execute the command ‘_MLLOG ONLINE’ ?

best regards
Lutz

PS:
If you want and if it makes sense, I could give you access to my BLGW, I could release port 9000 via NAT …

No need to do the nat.
Just do the following from a command line on your computer:

telnet 192.168.1.210

it should show something like this:

Escape character is Ctrl+[

login:

Write your admin password for the blgw

then at the prompt write _MLLOG ONLINE

please cut and past the entire session :slight_smile:

thanks!

Here is the report from BLGW:

2021-02-11 08:17:40 ---- Logging   ( keys: (spc), Q ) ---- 
 
20210211-08:20:23:753: 02s F0n 01n 0An 00n 00n 00n 20n 05n 02n 00n 01n 00n 00n 0Cs 
20210211-08:20:23:937: 80s 02n 01n 0Bn 00n 00n 00n 5Cn 01n 01n 01s 
20210211-08:20:23:965: 02s 06n 01n 14n 00n 00n 00n 5Cn 01n 02n 01s 
20210211-08:20:23:989: 06s 02n 01n 0An 00n 00n 00n 5Cn 01n 04n 01s 

This is from loading the components, the first login did not generate any traffic …

Can you also cut and paste the full telnet login sequence? I want to see the prompt for login and the command line prompt. That may be the issue.

login:
incorrect password

login:
Logged in

BLGW > _mllog online
2021-02-11 17:42:39 ---- Logging   ( keys: (spc), Q ) ----
20210211-17:42:49:625: F0s 06n 01n 14n 00n 00n 00n 98n 05n 02n 00n 01n 12n 03n 04s
20210211-17:42:49:924: C1s 06n 01n 0An 00n 00n 00n 11n 02n 02n 01n 00s
20210211-17:42:49:985: F0s 06n 01n 14n 00n 0Bn 00n 87n 1Fn 04n 0Bn 01n 00n 00n 40n 00n 01n FFn FFn FFn FFn 06n FFn 01n FFn FFn FFn FFn FFn FFn FFn FFn 00n 00n 00n 00n 00n FFn 00n 00n 00s
20210211-17:42:49:995: F0s 06n 01n 14n 00n 29n 00n 87n 1Fn 04n 29n 01n 00n 00n 00n 00n 01n 00n 00n 01n FFn 00n 02n 02n FFn FFn 00n FFn 00n 00n FFn FFn 00n 00n 00n 00n 00n 01n 00n 00n 00s

HA! Found it. the prompt is different, not MLGW>, but BLGW>

thanks to your debugging, I fixed the code.
Try to re-install from the GitHub source and test it again.
G.

Great!!!

Login works fine, see Logfile:

2021-02-11 18:26:04 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for eventsensor which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2021-02-11 18:26:07 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to ML CLI: 192.168.1.210
2021-02-11 18:26:07 INFO (MainThread) [custom_components.mlgw.gateway] Connected to ML CLI: 192.168.1.210
2021-02-11 18:26:07 INFO (MainThread) [custom_components.mlgw.gateway] Trying to connect to MLGW
2021-02-11 18:26:07 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Ping: [No payload]
2021-02-11 18:26:07 DEBUG (Thread-6) [custom_components.mlgw.gateway] mlgw: Msg type: Pong. Payload: [No payload]
2021-02-11 18:26:08 INFO (MainThread) [custom_components.mlgw.gateway] Opened connection to ML Gateway to 192.168.1.210 port: 9000
2021-02-11 18:26:12 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Wohnzimmer at mln: 1
2021-02-11 18:26:12 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=1 0x01 <all>
2021-02-11 18:26:12 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': 'VIDEO_MASTER', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:12.647000', 'bytes': 'c0f0010a00000020050200010000ff'}
2021-02-11 18:26:13 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Essen at mln: 2
2021-02-11 18:26:13 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=2 0x01 <all>
2021-02-11 18:26:13 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': '0x3', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:13.578000', 'bytes': '03f0010a00000020050200010000ff'}
2021-02-11 18:26:14 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Kueche at mln: 3
2021-02-11 18:26:14 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=3 0x01 <all>
2021-02-11 18:26:14 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': '0x4', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:14.584000', 'bytes': '04f0010a00000020050200010000ff'}
2021-02-11 18:26:15 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Arbeitszimmer at mln: 4
2021-02-11 18:26:15 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=4 0x01 <all>
2021-02-11 18:26:15 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': '0x6', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:15.586000', 'bytes': '06f0010a00000020050200010000ff'}
2021-02-11 18:26:16 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: TV Schlafzimmer at mln: 5
2021-02-11 18:26:16 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=5 0x01 <all>
2021-02-11 18:26:16 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': '0xc', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:16.590000', 'bytes': '0cf0010a00000020050200010000ff'}
2021-02-11 18:26:17 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BS Bad at mln: 6
2021-02-11 18:26:17 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=6 0x01 <all>
2021-02-11 18:26:17 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': '0x2', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:17.595000', 'bytes': '02f0010a00000020050200010000ff'}
2021-02-11 18:26:18 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BLC ML at mln: 11
2021-02-11 18:26:18 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=11 0x01 <all>
2021-02-11 18:26:19 DEBUG (Thread-5) [custom_components.mlgw.gateway] Processing telegram: {'from_device': 'MLGW', 'to_device': 'AUDIO_MASTER', 'type': 'COMMAND', 'src_dest': 'NONE', 'orig_src': 'NONE', 'payload_type': 'MLGW_REMOTE_BEO4', 'payload_len': '5', 'payload': {'command': '<all>', 'dest_selector': 'Audio Source'}, 'timestamp': '2021-02-11T18:26:18.877000', 'bytes': 'c1f0010a00000020050200010000ff'}
2021-02-11 18:26:19 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: BLC NL at mln: 20
2021-02-11 18:26:19 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=20 0x01 <all>
2021-02-11 18:26:20 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: Moment at mln: 21
2021-02-11 18:26:20 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=21 0x01 <all>
2021-02-11 18:26:21 INFO (MainThread) [custom_components.mlgw.media_player] Adding device: Beosound Bad at mln: 22
2021-02-11 18:26:21 DEBUG (MainThread) [custom_components.mlgw.gateway] mlgw: >SENT: Beo4 Command: MLN=22 0x01 <all>

I also tested the integration add-on, unfortunately the login does not work …

2021-02-11 18:28:10 DEBUG (MainThread) [custom_components.mlgw.config_flow] Async Step User Config Flow called
2021-02-11 18:28:10 DEBUG (SyncWorker_25) [custom_components.mlgw.config_flow] Invalid authentication 401

If you need more informations, I will be ready …

So that is because the authentication with BLGW is not working. Either the password was wrong, or potentially BLGW uses a different type of authentication than MLGW.

Can you please try to do this from your browser:
http://192.168.1.210/mlgwpservices.json

and screen shot the login screen and the output.

After Login: Download the config of the BLGW

{"timestamp":1613038399,"port":9000,"sn":"25264041","project":"BLGW","installer":{"name":"Lutz","contact":"@Lutz"},"version":2,"location":{"centerlat":47.2,"centerlon":8.4667,"radius":0},"zones":[{"name":"Home","number":240,"scenes":[],"products":[],"cameras":[]},{"name":"Wohnbereich","number":1,"scenes":[],"products":[{"MLN":1,"name":"Beovision 10 (Master)","Beo4NavButton":true,"sources":[{"name":"TV","selectID":128,"selectCmds":[{"format":"F0","unit":0,"cmd":128}],"destination":0,"secondary":0,"statusID":0,"format":"F0","link":0,"uiType":"8.10","channels":[{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/ARD%20HD.bmp","name":"ARD","selectSEQ":[1,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Zdf.bmp","name":"ZDF","selectSEQ":[2,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Rtl.bmp","name":"RTL","selectSEQ":[3,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Sat1%20Ch.bmp","name":"SAT1","selectSEQ":[4,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Pro7%20Hd.bmp","name":"PRO7","selectSEQ":[5,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Kabel%20Eins%20Austria%20Hd.Bmp","name":"Kabel1","selectSEQ":[6,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Rtl2%20Hd.bmp","name":"RTL2","selectSEQ":[7,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Vox.bmp","name":"VOX","selectSEQ":[8,53]}],"sourceId":"","sourceType":""},{"name":"Apple","selectID":138,"selectCmds":[{"format":"F0","unit":0,"cmd":138}],"destination":0,"secondary":0,"statusID":0,"format":"F0","link":0,"uiType":"8.10","sourceId":"","sourceType":""},{"name":"Radio","selectID":129,"selectCmds":[{"format":"F0","unit":0,"cmd":129}],"destination":1,"secondary":0,"statusID":0,"format":"F0","link":0,"uiType":"10.0","channels":[{"icon":"http:\/\/mlgw.bang-olufsen.dk\/Be

Ok, so the file is available. Are you sure that the first time you inserted the correct username and password?

If you are putting in the correct username and password, then the authentication type is wrong.

can you please try this from a command line. If you don’t have the curl command, it can be downloaded for windows here: https://curl.se

curl --anyauth -v http://192.168.1.210/mlgwpservices.json

Yes, I am sure with user and password :slight_smile:

Here is the result of the curl-command:

lutz@Lutzs-MacBook-Pro ~ % curl --anyauth -v http://192.168.1.210/mlgwpservices.json
*   Trying 192.168.1.210...
* TCP_NODELAY set
* Connected to 192.168.1.210 (192.168.1.210) port 80 (#0)
> GET /mlgwpservices.json HTTP/1.1
> Host: 192.168.1.210
> User-Agent: curl/7.64.1
> Accept: */*
> 
< HTTP/1.1 401 Unauthorized
< Content-type: text/html
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: 0
< WWW-Authenticate: Basic realm="Enter user name and password"
< Content-Length: 0
< Date: Sun, 14 Feb 2021 13:23:44 GMT
< Server: lighttpd/1.4.26-devel-394
< 
* Connection #0 to host 192.168.1.210 left intact
* Closing connection 0

And with ‘curl -u admin:********* -v http://192.168.1.210/mlgwpservices.json’:

*   Trying 192.168.1.210...
* TCP_NODELAY set
* Connected to 192.168.1.210 (192.168.1.210) port 80 (#0)
* Server auth using Basic with user 'admin'
> GET /mlgwpservices.json HTTP/1.1
> Host: 192.168.1.210
> Authorization: Basic YWRtaW46Q29udHJvbDIwMTU=
> User-Agent: curl/7.64.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-type: application/download
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Expires: 0
< Content-disposition: attachment;filename="mlgwpservices.json"
< Set-Cookie: session=wEteBqTMYfF3lQYvAWE003FmJUCKxRqU; Path=/; HttpOnly
< Set-Cookie: whoami=301,admin,admin; Path=/
< Transfer-Encoding: chunked
< Date: Sun, 14 Feb 2021 13:28:09 GMT
< Server: lighttpd/1.4.26-devel-394
< 
{"timestamp":1613038399,"port":9000,"sn":"25264041","project":"BLGW","installer":{"name":"Lutz","contact":"@Lutz"},"version":2,"location":{"centerlat":47.2,"centerlon":8.4667,"radius":0},"zones":[{"name":"Home","number":240,"scenes":[],"products":[],"cameras":[]},{"name":"Wohnbereich","number":1,"scenes":[],"products":[{"MLN":1,"name":"Beovision 10 (Master)","Beo4NavButton":true,"sources":[{"name":"TV","selectID":128,"selectCmds":[{"format":"F0","unit":0,"cmd":128}],"destination":0,"secondary":0,"statusID":0,"format":"F0","link":0,"uiType":"8.10","channels":[{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/ARD%20HD.bmp","name":"ARD","selectSEQ":[1,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Zdf.bmp","name":"ZDF","selectSEQ":[2,53]},{"icon":"http:\/\/mlgw.bang-olufsen.dk\/BeoHome\/Images\/Logos\/TV%20Channels\/Rtl.bmp"

Ok that’s helpful. I am on vacation right now but will hopefully get to check this when I am back on the weekend.
G.

Hi @g.iac!

First off… Great project! Nice work!
I have been looking for a solution like this for a long time.

I have found a cheap MLGW and managed to connect to it using just the automatic config. So far so good!

I am able to use the Media Player to control my TV but I haven’t been able to receive anything using mlgw.MLGW_telegram.

Am I missing something in the setup? I see you have a “custom strings: hassio” setup as a device in MLGW. Is that needed for this to work?

Br.
Jesper

1 Like

Hi Jesper

Cool! thank you!

The mlgw should send a few through MLGW_telegram: source status updates, virtual button presses, and light telegrams only if the b&o device in the room actually supports it.

Did you try to scan for mlgw.ML_telegram ? There is typically a lot more traffic there because that monitors the entire bus, not just the small subset that the MLGW forwards ‘officially’.

The custom strings can be used to make events on the mlgw cause to launch a script on home assistant, using Home assistant’s REST API:

POST /api/services/scene/turn_on HTTP/1.1\0D\0AAuthorization: Bearer XXXX\0D\0AContent-Type: application/json\0D\0AContent-Length: 40\0D\0A\0D\0A{"entity_id": "scene.front_evening_off"}

But it’s a pain to configure. You are better off listening to the ML_telegram events on HA. I’m not using custom strings anymore.

G.