[GH-ISSUE #114] Audioserver MAC address configurable/randomly generated #63

Closed
opened 2026-02-27 19:28:11 +03:00 by kerem · 8 comments
Owner

Originally created by @martinsefcik on GitHub (Jan 10, 2026).
Original GitHub issue: https://github.com/lox-audioserver/lox-audioserver/issues/114

Would it be possible to make the Audio Server MAC address configurable or to generate it randomly?

This would allow having two or more Audio Servers paired with a single Loxone Miniserver - for example, one stable instance and another one for testing and development.

Originally created by @martinsefcik on GitHub (Jan 10, 2026). Original GitHub issue: https://github.com/lox-audioserver/lox-audioserver/issues/114 Would it be possible to make the Audio Server MAC address configurable or to generate it randomly? This would allow having two or more Audio Servers paired with a single Loxone Miniserver - for example, one stable instance and another one for testing and development.
kerem closed this issue 2026-02-27 19:28:11 +03:00
Author
Owner

@rudyberends commented on GitHub (Jan 10, 2026):

Yes, I will add this. next version will have a dynamic address.

<!-- gh-comment-id:3733633835 --> @rudyberends commented on GitHub (Jan 10, 2026): Yes, I will add this. next version will have a dynamic address.
Author
Owner

@rudyberends commented on GitHub (Jan 11, 2026):

@simon2207: You seem to have a few Audio Servers lying around 🙂
Could you check something for me?

Please unpair one of your real Audio Servers. In an unpaired state, it should advertise itself via mDNS. You can verify this on a Mac as follows:

First, list all advertised instances of the service:

dns-sd -B _http._tcp

The unpaired Audio Server should appear in that list.
Next, use the following command to inspect its exact advertised record:

dns-sd -L "Instance Name" _http._tcp local

Could you please share the complete output of that command?

<!-- gh-comment-id:3734194391 --> @rudyberends commented on GitHub (Jan 11, 2026): @simon2207: You seem to have a few Audio Servers lying around 🙂 Could you check something for me? Please unpair one of your real Audio Servers. In an unpaired state, it should advertise itself via mDNS. You can verify this on a Mac as follows: First, list all advertised instances of the service: `dns-sd -B _http._tcp` The unpaired Audio Server should appear in that list. Next, use the following command to inspect its exact advertised record: `dns-sd -L "Instance Name" _http._tcp local` Could you please share the complete output of that command?
Author
Owner

@simon2207 commented on GitHub (Jan 11, 2026):

Good Morning @rudyberends

unfortunately not lying around... all are in use - and if I turn one down during the weekend I will get in trouble with my wife ;-)

I will try to find a solution for that in the upcoming days - within the Loxone Germany Community as well.

Kind regards
Simon

<!-- gh-comment-id:3734353487 --> @simon2207 commented on GitHub (Jan 11, 2026): Good Morning @rudyberends unfortunately not lying around... all are in use - and if I turn one down during the weekend I will get in trouble with my wife ;-) I will try to find a solution for that in the upcoming days - within the Loxone Germany Community as well. Kind regards Simon
Author
Owner

@rudyberends commented on GitHub (Jan 11, 2026):

For new installations, the server will now use its own MAC address as the serial number. Existing installations will continue to use the value from the configuration.

If needed, you can override the MAC address on the setup tab by clicking on the serial number.

<!-- gh-comment-id:3735003387 --> @rudyberends commented on GitHub (Jan 11, 2026): For new installations, the server will now use its own MAC address as the serial number. Existing installations will continue to use the value from the configuration. If needed, you can override the MAC address on the setup tab by clicking on the serial number.
Author
Owner

@simon2207 commented on GitHub (Jan 11, 2026):

@rudyberends

I found some one in the community with a audioserver lying arround:

But he has only a Linux Distribution to test with and doesn't get any response from the prompt:
dns-sd -L "Instance Name" _http._tcp local

on my personal Mac I get this one:

Last login: Sun Jan 11 11:16:15 on ttys001
simon@Macbook-Air ~ % dns-sd -L asC2C7 _http._tcp local
Lookup asC2C7._http._tcp.local
DATE: ---Sun 11 Jan 2026---
21:19:25.171 ...STARTING...

and from the Linux Distribution we got this from avahi-damon
( See Screenshot )

we will try to get it done tomorrow.

Image

<!-- gh-comment-id:3735701351 --> @simon2207 commented on GitHub (Jan 11, 2026): @rudyberends I found some one in the community with a audioserver lying arround: But he has only a Linux Distribution to test with and doesn't get any response from the prompt: dns-sd -L "Instance Name" _http._tcp local on my personal Mac I get this one: Last login: Sun Jan 11 11:16:15 on ttys001 simon@Macbook-Air ~ % dns-sd -L asC2C7 _http._tcp local Lookup asC2C7._http._tcp.local DATE: ---Sun 11 Jan 2026--- 21:19:25.171 ...STARTING... and from the Linux Distribution we got this from avahi-damon ( See Screenshot ) we will try to get it done tomorrow. ![Image](https://github.com/user-attachments/assets/74c27a86-8fce-4df8-a977-3ca12ff85db3)
Author
Owner

@rudyberends commented on GitHub (Jan 11, 2026):

Some more information on what I’m trying to do.

I’m working on getting Auto-Discovery working for the Audio Server. I don’t have a real Audio Server to test with, but the discovery flow looks similar across Loxone network devices. I do have a new-generation Intercom, so I captured the discovery traffic for that and implemented it in code. The server gets discovered — but as an Intercom.

From the Intercom discovery capture it looks like the Miniserver uses two discovery mechanisms:
1. UDP scan over the full IP range
It sends a UDP packet to port 7070 and expects a reply on 7071.
2. mDNS query for _http._tcp
In both cases, the response can include a TXT record containing the needed fields. For an Intercom it looks like this:

{
  "t": "<objectType>",
  "tv": "2",
  "n": "<friendlyName>",
  "s": "<MAC>",
  "v": "<firmware version>",
  "p": "<app-port>",
  "hn": "<hostname>",
  "di": "2"
}

I know that with tv: 2 and di: 2 Loxone identifies the device as an Intercom. If I change those fields, it no longer shows up as an Intercom. My assumption is that the Audio Server (not the older Music Server) uses the same TXT structure, but with a different tv / di combination that identifies it specifically as an Audio Server.

I tried brute-forcing combinations, but the Miniserver does not appreciate that, so I’m trying to find the correct tv / di values.

Also: from the Intercom I know it only advertises itself via mDNS in an unpaired state.

dns-sd is macOS-only. On Linux you need Avahi. If you can test on Linux, please share the output of:

avahi-browse -rt _http._tcp

This should include an entry for the Audio Server, and it should show a TXT record containing the values above.

I might be totally wrong though — the Audio Server could use a different discovery mechanism as the intercom. In your screenshot I also saw _Loxone._tcp records, which may be relevant. So please also dump:

avahi-browse -rt _Loxone._tcp

<!-- gh-comment-id:3735908713 --> @rudyberends commented on GitHub (Jan 11, 2026): Some more information on what I’m trying to do. I’m working on getting Auto-Discovery working for the Audio Server. I don’t have a real Audio Server to test with, but the discovery flow looks similar across Loxone network devices. I do have a new-generation Intercom, so I captured the discovery traffic for that and implemented it in code. The server gets discovered — but as an Intercom. From the Intercom discovery capture it looks like the Miniserver uses two discovery mechanisms: 1. UDP scan over the full IP range It sends a UDP packet to port 7070 and expects a reply on 7071. 2. mDNS query for _http._tcp In both cases, the response can include a TXT record containing the needed fields. For an Intercom it looks like this: ``` { "t": "<objectType>", "tv": "2", "n": "<friendlyName>", "s": "<MAC>", "v": "<firmware version>", "p": "<app-port>", "hn": "<hostname>", "di": "2" } ``` I know that with tv: 2 and di: 2 Loxone identifies the device as an Intercom. If I change those fields, it no longer shows up as an Intercom. My assumption is that the Audio Server (not the older Music Server) uses the same TXT structure, but with a different tv / di combination that identifies it specifically as an Audio Server. I tried brute-forcing combinations, but the Miniserver does not appreciate that, so I’m trying to find the correct tv / di values. Also: from the Intercom I know it only advertises itself via mDNS in an unpaired state. dns-sd is macOS-only. On Linux you need Avahi. If you can test on Linux, please share the output of: `avahi-browse -rt _http._tcp` This should include an entry for the Audio Server, and it should show a TXT record containing the values above. I might be totally wrong though — the Audio Server could use a different discovery mechanism as the intercom. In your screenshot I also saw _Loxone._tcp records, which may be relevant. So please also dump: `avahi-browse -rt _Loxone._tcp`
Author
Owner

@martinsefcik commented on GitHub (Jan 12, 2026):

For new installations, the server will now use its own MAC address as the serial number. Existing installations will continue to use the value from the configuration.

If needed, you can override the MAC address on the setup tab by clicking on the serial number.

@rudyberends I tested it, and it works perfectly. I was able to configure two instances in the Loxone Miniserver without any issues.
Thank you!

<!-- gh-comment-id:3736457013 --> @martinsefcik commented on GitHub (Jan 12, 2026): > For new installations, the server will now use its own MAC address as the serial number. Existing installations will continue to use the value from the configuration. > > If needed, you can override the MAC address on the setup tab by clicking on the serial number. @rudyberends I tested it, and it works perfectly. I was able to configure two instances in the Loxone Miniserver without any issues. Thank you!
Author
Owner

@simon2207 commented on GitHub (Jan 12, 2026):

@rudyberends Got one avahi-browse -rt _http._tcp output from an Austrian Loxone Member - hopefully that could help, right now I do not have access to one of my own audioserver in a fresh state - so its a little bit tricky to get all necessary infos on time.

Image

The following output - Loxone - Loxone.Local that you have mentioned is one of my PiCorePlayers...

Last login: Sun Jan 11 21:19:23 on ttys000
simon@Macbook-Air ~ % dns-sd -B _http._tcp
Browsing for _http._tcp
DATE: ---Mon 12 Jan 2026---
20:40:46.295 ...STARTING...
Timestamp A/R Flags if Domain Service Type Instance Name
20:40:46.296 Add 3 11 local. _http._tcp. shellyrgbw2-C8C9A3398540
20:40:46.296 Add 3 11 local. _http._tcp. shellyplug-4E5FBC
20:40:46.296 Add 2 11 local. _http._tcp. shellyplug-4E66CB
20:40:46.690 Add 3 11 local. _http._tcp. MS3006 HTTP
20:40:46.690 Add 3 11 local. _http._tcp. MS38BD HTTP
20:40:46.690 Add 3 11 local. _http._tcp. shellyazplug-b08184ed2cbc
20:40:46.690 Add 3 11 local. _http._tcp. Heizlüfter
20:40:46.690 Add 3 11 local. _http._tcp. webadmin asC2C7
20:40:46.690 Add 3 11 local. _http._tcp. Brother MFC-L2710DN series
20:40:46.690 Add 3 11 local. _http._tcp. shellyplusplugs-e465b85ef148
20:40:46.690 Add 3 11 local. _http._tcp. Medienboard Schlafzimmer
20:40:46.690 Add 3 11 local. _http._tcp. shellyplusplugs-d48afc58b670
20:40:46.690 Add 3 11 local. _http._tcp. Weinkühlschrank
20:40:46.690 Add 3 11 local. _http._tcp. shelly1pmminig3-34b7da89e8c8
20:40:46.690 Add 3 11 local. _http._tcp. Shelly 1PM Mini Heizung Badezimmer
20:40:46.690 Add 3 11 local. _http._tcp. shellypro3em-08f9e0e6e0e8
20:40:46.690 Add 2 11 local. _http._tcp. Heizanlage
20:40:46.924 Add 3 11 local. _http._tcp. Loxone
20:40:46.924 Add 3 11 local. _http._tcp. wled-9551a7
20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-a0a3b3e988c8
20:40:46.924 Add 3 11 local. _http._tcp. Werkstatt
20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-e465b8b0a24c
20:40:46.924 Add 3 11 local. _http._tcp. Netzwerk
20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-e465b841a31c
20:40:46.924 Add 2 11 local. _http._tcp. Garage
20:40:47.344 Add 3 11 local. _http._tcp. shellyplus1-10061c7a6fec
20:40:47.344 Add 3 11 local. _http._tcp. Sauna Licht
20:40:47.344 Add 3 11 local. _http._tcp. shellyplus2pm-a0a3b3c3dd9c
20:40:47.344 Add 3 11 local. _http._tcp. shellyplusplugs-e465b8ba00b4
20:40:47.344 Add 2 11 local. _http._tcp. Ankleide
^[[A^C
simon@Macbook-Air ~ % dns-sd -L Loxone _http._tcp local
Lookup Loxone._http._tcp.local
DATE: ---Mon 12 Jan 2026---
20:41:05.615 ...STARTING...
20:41:05.617 Loxone._http._tcp.local. can be reached at loxone.local.:80 (interface 11)
adminurl=http://loxone.local

Again - that is one of my PiCorePlayers... ( Squeezlite )

<!-- gh-comment-id:3740204335 --> @simon2207 commented on GitHub (Jan 12, 2026): @rudyberends Got one avahi-browse -rt _http._tcp output from an Austrian Loxone Member - hopefully that could help, right now I do not have access to one of my own audioserver in a fresh state - so its a little bit tricky to get all necessary infos on time. <img width="1474" height="884" alt="Image" src="https://github.com/user-attachments/assets/258d7f12-248f-46c8-9a16-475e46f35a0f" /> The following output - Loxone - Loxone.Local that you have mentioned is one of my PiCorePlayers... Last login: Sun Jan 11 21:19:23 on ttys000 simon@Macbook-Air ~ % dns-sd -B _http._tcp Browsing for _http._tcp DATE: ---Mon 12 Jan 2026--- 20:40:46.295 ...STARTING... Timestamp A/R Flags if Domain Service Type Instance Name 20:40:46.296 Add 3 11 local. _http._tcp. shellyrgbw2-C8C9A3398540 20:40:46.296 Add 3 11 local. _http._tcp. shellyplug-4E5FBC 20:40:46.296 Add 2 11 local. _http._tcp. shellyplug-4E66CB 20:40:46.690 Add 3 11 local. _http._tcp. MS3006 HTTP 20:40:46.690 Add 3 11 local. _http._tcp. MS38BD HTTP 20:40:46.690 Add 3 11 local. _http._tcp. shellyazplug-b08184ed2cbc 20:40:46.690 Add 3 11 local. _http._tcp. Heizlüfter 20:40:46.690 Add 3 11 local. _http._tcp. webadmin asC2C7 20:40:46.690 Add 3 11 local. _http._tcp. Brother MFC-L2710DN series 20:40:46.690 Add 3 11 local. _http._tcp. shellyplusplugs-e465b85ef148 20:40:46.690 Add 3 11 local. _http._tcp. Medienboard Schlafzimmer 20:40:46.690 Add 3 11 local. _http._tcp. shellyplusplugs-d48afc58b670 20:40:46.690 Add 3 11 local. _http._tcp. Weinkühlschrank 20:40:46.690 Add 3 11 local. _http._tcp. shelly1pmminig3-34b7da89e8c8 20:40:46.690 Add 3 11 local. _http._tcp. Shelly 1PM Mini Heizung Badezimmer 20:40:46.690 Add 3 11 local. _http._tcp. shellypro3em-08f9e0e6e0e8 20:40:46.690 Add 2 11 local. _http._tcp. Heizanlage 20:40:46.924 Add 3 11 local. _http._tcp. Loxone 20:40:46.924 Add 3 11 local. _http._tcp. wled-9551a7 20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-a0a3b3e988c8 20:40:46.924 Add 3 11 local. _http._tcp. Werkstatt 20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-e465b8b0a24c 20:40:46.924 Add 3 11 local. _http._tcp. Netzwerk 20:40:46.924 Add 3 11 local. _http._tcp. shellyplusplugs-e465b841a31c 20:40:46.924 Add 2 11 local. _http._tcp. Garage 20:40:47.344 Add 3 11 local. _http._tcp. shellyplus1-10061c7a6fec 20:40:47.344 Add 3 11 local. _http._tcp. Sauna Licht 20:40:47.344 Add 3 11 local. _http._tcp. shellyplus2pm-a0a3b3c3dd9c 20:40:47.344 Add 3 11 local. _http._tcp. shellyplusplugs-e465b8ba00b4 20:40:47.344 Add 2 11 local. _http._tcp. Ankleide ^[[A^C simon@Macbook-Air ~ % dns-sd -L Loxone _http._tcp local Lookup Loxone._http._tcp.local DATE: ---Mon 12 Jan 2026--- 20:41:05.615 ...STARTING... 20:41:05.617 Loxone._http._tcp.local. can be reached at loxone.local.:80 (interface 11) adminurl=http://loxone.local Again - that is one of my PiCorePlayers... ( Squeezlite )
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/lox-audioserver#63
No description provided.