AirConnect-Synology
Updated AirConnect packages for Synology NAS and Synology Router
Stars: 303
AirConnect-Synology is a minimal Synology package that allows users to use AirPlay to stream to UPnP/Sonos & Chromecast devices that do not natively support AirPlay. It is compatible with DSM 7.0 and DSM 7.1, and provides detailed information on installation, configuration, supported devices, troubleshooting, and more. The package automates the installation and usage of AirConnect on Synology devices, ensuring compatibility with various architectures and firmware versions. Users can customize the configuration using the airconnect.conf file and adjust settings for specific speakers like Sonos, Bose SoundTouch, and Pioneer/Phorus/Play-Fi.
README:
Compatible with DSM 7.0 and DSM 7.1! Please download the package with the name beginning with
AirConnect-dsm7-
Updated packages for
AirConnect 1.8+
available!Problems with playback after sonos update 15.2? Please update to 15.3 (or latest available version). If the problem still exists, please check https://github.com/philippe44/AirConnect/issues/458
If you have problems on older synology NAS devices, this could be related to the old device kernel (old kernel, old glibc). Please read the comments in the following issue
A minimal Synology package for AirConnect.
It allows you to use AirPlay
to stream to UPnP/Sonos & Chromecast devices that do not natively support AirPlay.
- AirConnect package for Synology NAS and Synology Router
Here is some more information to get you started.
- AirConnect-Synology is a package for your synology devices to automate the installation and usage of AirConnect.
- AirConnect-Synology releases will use the official AirConnect version + the current build date as tag/version (f.e.
0.2.25.0-20200511
) - AirConnect-Synology is compatible for almost all synology devices starting from DSM 5.0-4458 up to the newest and latest release of DSM 7
- AirConnect-Synology releases will use the official AirConnect version + the current build date as tag/version (f.e.
- Starting with DSM7 AirConnect, so both programs,
aircast
andairupnp
will now run under the airconnect user (no root anymore!). And the complete package will now fully managed from DSM (Before some parts were managed in the startup scripts).
I own multiple Synology NAS devices and the current Synology Router. As long as that is the case, I will also update the releases regularly.
If a release is missing or does not work on your device, please open an issue, then I will check this and deliver it to.
Every pre-build synology package in the releases section are including these two programs:
-
airupnp
- For UPnP/Sonos players
-
aircast
- For Chromecast
So you only need one package to support UPnP, Sonos and Chromcast devices.
You can find the available packages under releases for the following synology DSM distributions (DSM 5, 6 and 7) and the different architecture groups of the synology NAS/Router devices.
DSM Firmware Version | Package Naming |
---|---|
DSM 5.0-xxxx AND DSM 6.0-xxxx (f.e. DSM 6.0-7321) |
AirConnect-x86_64-${VERSION} (f.e. AirConnect-x86_64-0.2.50.5-20210630.spk) |
DSM 7.0-xxxx (f.e. DSM 7.0-40000) |
AirConnect-dsm7-x86_64-${VERSION} (f.e. AirConnect-dsm7-86-64-0.2.50.5-20210630.spk) |
The minimum firmware version for the DSM7 packages is DSM 7.0-40000.
The minimum firmware version for the x86_64 package AirConnect-x86_64-${VERSION}
is DSM 6.0-7321.
For all other package the minimum firmware version is DSM 5.0-4458.
If the x86
(32-bit) package is not working on your device, please download the x86_64
(64-bit) package instead.
Architecture Group | Architecture | Package to download |
---|---|---|
ARMv5 | 88f6282, 88f6281, 88f628x | AirConnect-(dsm7-)armv6-${VERSION} |
ARMv5 Static | 88f6282, 88f6281, 88f628x | AirConnect-(dsm7-)armv6-static-${VERSION} |
ARMv6 | use is armv5 does not work - 88f6282, 88f6281, 88f628x | AirConnect-(dsm7-)armv5-${VERSION} |
ARMv6 Static | use is armv5 does not work - 88f6282, 88f6281, 88f628x | AirConnect-(dsm7-)armv5-static-${VERSION} |
ARMv7 | ipq806x, ipq806x, armada370, armadaxp, armada375, armada38x, alpine, alpine4k, monaco, comcerto2k, hi3535, dakota, ipq806x, northstarplus | AirConnect-(dsm7-)arm-${VERSION} |
ARMv7 Static | noarch, ipq806x, ipq806x, armada370, armadaxp, armada375, armada38x, alpine, alpine4k, monaco, comcerto2k, hi3535, dakota, ipq806x, northstarplus | AirConnect-(dsm7-)arm-static-${VERSION} |
ARMv8 | rtd1296, armada37xx | AirConnect-(dsm7-)aarch64-${VERSION} |
ARMv8 Static | noarch, rtd1296, armada37xx | AirConnect-(dsm7-)aarch64-static-${VERSION} |
PowerPC | qoriq, Ppc853x | AirConnect-(dsm7-)powerpc-${VERSION} |
PowerPC Static | noarch, qoriq, Ppc853x | AirConnect-(dsm7-)powerpc-static-${VERSION} |
Intel - 32-bit | x86, cedarview, bromolow, evansport, braswell, broadwell, dockerx64, kvmx64, denverton, grantley, broadwellnk, Broadwellntbap | AirConnect-(dsm7-)x86-${VERSION} |
Intel - 32-bit Static | x86, cedarview, bromolow, evansport, braswell, broadwell, dockerx64, kvmx64, denverton, grantley, broadwellnk, Broadwellntbap | AirConnect-(dsm7-)x86-static-${VERSION} |
Intel/AMD - 64-bit (DSM 6.0+) | x86_64 x64 cedarview bromolow avoton braswell broadwell apollolake dockerx64 epyc7002 r1000 kvmx64 denverton grantley broadwellnk broadwellnkv2 Broadwellntbap v1000 geminilake purley | AirConnect-(dsm7-)x86_64-${VERSION} |
Intel/AMD - 64-bit (DSM 6.0+) Static | x86_64 x64 cedarview bromolow avoton braswell broadwell apollolake dockerx64 epyc7002 r1000 kvmx64 denverton grantley broadwellnk broadwellnkv2 Broadwellntbap v1000 geminilake purley | AirConnect-(dsm7-)x86_64-static-${VERSION} |
You can check which architecture you have in the Package Arch
column on the Synology
What kind of CPU does my Synology NAS have?
site.
For all the Synology Routers running Synology SRM you should use the ARM (ARMv7 - dakota, ipq806x, northstarplus) version. If the normal ARM package is not working on your device, please try ARM Static (ARMv7 Static) instead.
On some devices, dependencies that are necessary to run airupnp
or aircast
are not available (mostly on older devices).
These dependencies are included in the static version of the packages.
This is the reason why the static packages are bigger than the normal versions.
So in general you should always use the normal package (without static in the name). Only when the normal package does not work on your device, please test the static package instead.
If the above ARMv7 package will not work on your device, please download the latest
arm-static
package. The static package includes "static" binaries, that means, it includes binaries that have no external library dependencies and should be run on your ARMv7 device if the normal ARMv7 package fails.If the above PowerPC package will not work on your device, please download the latest
ppc-static
package. The static package includes "static" binaries, that means, it includes binaries that have no external library dependencies and should be run on your PPC device if the normal PPC package fails.
If you upgrade your NAS from DSM6 to DSM7, you should just download the new dsm7 package for your device.
The old package and new DSM6 packages will not work anymore, since DSM7 changes a lot under the hood (no more root permissions for packages,
minimum package version 7.0, etc.).
Just download the DSM7 package and install it from the Package Center as usual.
If, after upgrading to DSM 7, the old package is still installed, please uninstall it and install it again.
If you encounter any problems, please read the troubleshooting section first.
- Open the Package Center app.
- Click on Manual Install and upload the package you just downloaded.
Please use the older release for DSM 5 & 6: 0.2.50.5-20210706
- Open the Package Center app.
- Click on Manual Install and upload the package you just downloaded.
On DSM5 and some DSM6 devices: As this package is not an official Synology package you may have to Allow packages from any publisher (Go to Settings and set the Trust Level to "Any publisher".)
Do not forget to change back the Trust level to "Synology Inc." for additional security.
-
AirConnect-Synology and AirConnect Log File
- The AirConnect application logfile is located at
/volume1/airconnect/log/airconnect.log
(default location)- This is a symlink of
/volume1/@appstore/AirConnect/log/airconnect.log
- This is a symlink of
- You can open it using the Synology FileStation by navigating to
airconnect
-log
- You can also open it after login with ssh to your NAS/Router:
sudo /usr/syno/bin/synopkg log AirConnect
- or by using a command-line utility like
-
more (
more /volume1/airconnect/log/airconnect
) -
tail (
tail -100 /volume1/airconnect/log/airconnect
)
-
more (
- If you get a
permission denied
, you should use the full path, f.e.more /volume1/@appstore/AirConnect/log/airconnect.log
- You can also open it after login with ssh to your NAS/Router:
- This log file is written by the AirConnect-Synology package.
- All log entries of the AirConnect application (airupnp + aircast) are also written into this log file.
- This is the first place to look for errors.
- The AirConnect application logfile is located at
-
Synology Service Log File
- The synology dsm package logfile ist located at
/var/log/packages/AirConnect.log
- This logfile is used from DSM/Synology for all installation/uninstallation/update purposes
- In general you will only use it for debugging purposes
- The synology dsm package logfile ist located at
Since Version
1.8.3-20240403
The airconnect.log file will now be deleted if it exceeds a size of 50MB A one time backup in the same directory will be created namedairconnect.1.log
This backup will be deleted on the next start (useful if someone needs the old log for debugging).
Only available for DSM 7 packages!
You cannot view/edit the file with FileStation due to a limitation in synology DMS (Symbolik links) by default
Please keep in mind, that if you upgrade your existing AirConnect-Synology package no changes will be made to the
airconnect.conf
file. If you want to overwrite yourairconnect.conf
configuration with the default one, please uninstall and install the package again. You can also copy the default values found below to your configuration file.
Starting with release 0.2.50.5-20210801
you can customize the configuration of AirConnect-Synology by using the config file at
/volume1/airconnect/airconnect.conf
.
Please stop the package before changing the configuration.
If you have edited the configuration while AirConnect is running please restart the AirConnect package.
The configuration options and default values are:
AIRCAST_ENABLED=1
AIRCAST_LATENCY="50:500"
AIRCAST_LOGLEVEL="all=info"
AIRUPNP_ENABLED=1
AIRUPNP_LATENCY="50:500"
AIRUPNP_LOGLEVEL="all=info"
AIRUPNP_CONTENTLENGTH_MODE=0
AIRUPNP_PORT=49154
FILTER_AIRPLAY2_DEVICES="<NULL>,S1,S3,S5,S9,S12,ZP80,ZP90,S15,ZP100,ZP120,1.0,LibreWireless,Fitzwilliam,2.2.6,AllShare1.0"
SYNO_IP="<your synology ip>"
Configuration Option | Values | Mandatory | Description |
---|---|---|---|
AIRCAST_ENABLED |
0 or 1
|
Yes | Enables or disables AIRCAST |
AIRCAST_LATENCY | [rtp][:http][:f] |
No | RTP and HTTP latency (ms), ':f' forces silence fill |
AIRCAST_LOGLEVEL | <log>=<level> |
Yes | log=all,raop,main,util,cast -- level=error,warn,info,debug,sdebug |
AIRUPNP_ENABLED |
0 or 1
|
Yes | Enables or disables AIRUPNP |
AIRUPNP_LATENCY | [rtp][:http][:f] |
No | RTP and HTTP latency (ms), ':f' forces silence fill |
AIRUPNP_LOGLEVEL | <log>=<level> |
Yes | log=all,raop,main,util,upnp -- level=error,warn,info,debug,sdebug |
AIRUPNP_CONTENTLENGTH_MODE |
-3 or -1 or 0
|
Yes | HTTP content-length mode (-3:chunked, -1:none, 0:fixed) |
AIRUPNP_PORT | 49154 |
Yes (airupnp) | Port on which airupnp should be started |
FILTER_AIRPLAY2_DEVICES | <NULL>,S1,S3,S5,S9,S12,ZP80,ZP90,S15,ZP100,... |
No | See Supported UPnP Speakers |
SYNO_IP | 192.168.1.100 |
Yes | The ip on which aircast/airupnp will be started |
Configuration options with Mandatory = Yes
must exist in the configuration. Options with Mandatory = No
are optional.
Please do not remove the optional configuration options you do not want to use, just set no value (empty value/string). Example:
FILTER_AIRPLAY2_DEVICES=
If you want to edit your airconnect.conf
file from your computer using a network share (SMB),
you need to allow symlinks
in your SMB configuration on your synology NAS device.
Settings/Control Panel
- File Services
- SMB
- Advanced Settings
Please activate both options:
It runs the AirConnect processes with the following options by default tuned for sonos:
/volume1/@appstore/AirConnect/airupnp -b [synology device local ip]:49154 -l 50:500 -g 0 -x "/volume1/@appstore/AirConnect/config.xml" -o "<NULL>,S1,S3,S5,S9,S12,ZP80,ZP90,S15,ZP100,ZP120,1.0,LibreWireless,Fitzwilliam,2.2.6,AllShare1.0" -z -f "/volume1/@appstore/AirConnect/log/airconnect.log" -d all=info
/volume1/@appstore/AirConnect/aircast -b [synology device local ip] -l 50:500 -x "/volume1/@appstore/AirConnect/config-cast.xml" -z -f "/volume1/@appstore/AirConnect/log/airconnect.log" -d all=info
On DSM7 you can just change the parameter
FILTER_AIRPLAY2_DEVICES
in the configuration file airconnect.conf. You could also remove these configuration parameter to allow all airplay2 devices.
To speed up the detection of Sonos/UPnP/DLNA speakers and to not discover speakers which natively supports airplay, this synology package will only include the devices mentioned in the List of supported UPnP Speakers.
If you have another UPnP based speaker that you want to be supported by this package which is not in the list below, please open an issue and let me know (Please tell me the product name (model name, model number etc.)), then i will include it to the default configuration.
With
-o <NULL>,S1,S3,S5,S9,S12,ZP80,ZP90,S15,ZP100,ZP120,1.0,LibreWireless,Fitzwillian,2.2.6,AllShare1.0
the sonos/UPnP speakers that are natively supporting AirPlay or AirPlay2 will be ignored from AirConnect/airupnp and only the ones listed with
-o
will be used.Since no new "non airplay" speakers (from sonos) will be released in the future, that should work in any case. So they will be not displayed twice in the list.
To find UPnP speakers, their device_description URL and the model number, follow the following steps.
If you are familiar with linux commands you could use tcpdump
to discover upnp devices on your network.
You can install tcpdump on any synology NAS by using he integrated synology diagnostic tools.
Just execute as root via SSH synogear install
to install the diagnostic tools.
See documentation here: FAQ-synogear.
Synogear also installs a few other useful linux/busybox commands.
I have installed the diagnostic tools (synogear) on every synology device that i own.
Change en0 to your network adapter name (wait a few seconds until the devices get discovered)
sudo tcpdump -vv -A -s 0 -i en0 host 239.255.255.250 and port 1900 | grep LOCATION
Then you need to find your device ip and catch the location URL.
With the curl
command (or the browser of your choice) you can then search for the modelNumber
in the device xml configuration:
curl http://192.168.1.122:1400/xml/device_description.xml | grep modelNumber
S12 is a Sonos Play:1 in this example.
This modelNumber is the number that i need to extend the following List of supported UPnP Speakers.
Model Number | Friendly Name | Comment (Sonos seriesid, etc.) |
---|---|---|
S1 | Sonos Play:1 (old model) | A101 |
S3 | Sonos Play:3 | A100 |
S5 | Sonos Play:5 | P100 |
S9 | Sonos Playbar | A100 |
S12 | Sonos Play:1 | A200 |
S15 | Sonos Connect | S100 |
ZP80 | Sonos Connect (old model) | C100 |
ZP90 | Sonos Connect | C100 |
ZP100 | Sonos Connect:Amp (old model) | P100 |
ZP120 | Sonos Connect:Amp | P100 |
1.0 | LibreWireless based Speakers | LibreSyncDMR |
LibreWireless | LibreWireless based Speakers | LibreSyncDMR |
Fitzwilliam | Fitzwilliam | Fitzwilliam |
2.2.6 | Devialet Expert Pro 140 | Devialet Export Pro |
AllShare1.0 | Samsung HW-N950 | Samsung HW-N950 Soundbar |
<NULL> |
All speakers without a model number |
See Command-Line Arguemts for more information about these arguments.
These default options should work for most of you but can also be changed by using a configuration file.
Both processes are running with the low-privilege user airconnect
.
If you would like to tweak the AirConnect configuration you can also use the AirConnect configuration file.
Before continuing please check the official readme for more information. I'm not going to explain how it generally works here.
v1.6.3 (Jan 8 2024 @ 18:24:27)
See -t for license terms
Usage: [options]
-b <ip|iface>[:<port>] network interface or interface and UPnP port to use
-a <port>[:<count>] set inbound port and range for RTP and HTTP
-c <mp3[:<rate>]|flac[:0..9]|wav|pcm> audio format send to player
-g <-3|-1|0> HTTP content-length mode (-3:chunked, -1:none, 0:fixed)
-u <version> set the maximum UPnP version for search (default 1)
-x <config file> read config from file (default is ./config.xml)
-i <config file> discover players, save <config file> and exit
-I auto save config at every network scan
-l <[rtp][:http][:f]> RTP and HTTP latency (ms), ':f' forces silence fill
-r let timing reference drift (no click)
-f <logfile> write debug to logfile
-p <pid file> write PID in file
-N <format> transform device name using C format (%s=name)
-m <n1,n2...> exclude devices whose model include tokens
-n <m1,m2,...> exclude devices whose name includes tokens
-o <m1,m2,...> include only listed models; overrides -m and -n (use <NULL> if player don't return a model)
-d <log>=<level> Set logging level, logs: all|raop|main|util|upnp, level: error|warn|info|debug|sdebug
-z Daemonize
-Z NOT interactive
-k Immediate exit on SIGQUIT and SIGTERM
-t License terms
--noflush ignore flush command (wait for teardown to stop)
Build options: LINUX
v1.6.3 (Jan 8 2024 @ 18:24:45)
See -t for license terms
Usage: [options]
-b <ip|iface> network address or interface to bind to
-a <port>[:<count>] set inbound port and range for RTP and HTTP
-c <mp3[:<rate>]|aac[:<rate>]|flac[:0..9]|wav> audio format send to player
-v <0..1> group MediaVolume factor
-x <config file> read config from file (default is ./config.xml)
-i <config file> discover players, save <config file> and exit
-I auto save config at every network scan
-N <format> transform device name using C format (%s=name)
-l <[rtp][:http][:f]> RTP and HTTP latency (ms), ':f' forces silence fill
-r let timing reference drift (no click)
-f <logfile> Write debug to logfile
-p <pid file> write PID in file
-d <log>=<level> Set logging level, logs: all|raop|main|util|cast, level: error|warn|info|debug|sdebug
-z Daemonize
-Z NOT interactive
-k Immediate exit on SIGQUIT and SIGTERM
-t License terms
--noflush ignore flush command (wait for teardown to stop)
Build options: LINUX
You cannot view/edit the file with FileStation due to a limitation in synology DMS (Symbolik links) by default
Hint: If you want to filter/include/exclude speakers in the configuration file or
airupnp
you need to disable the default filter inairconnect.conf
usingFILTER_AIRPLAY2_DEVICES=
. See also airconnect.conf. The default filter will overwrite any filter in theconfig.xml
file of airupnp.
By default the config file will not being used as long as the file is not created (And you are not running on debug log level).
The file is not created by default.
- Config File location for airupnp
/volume1/airconnect/config.xml
- Config File location for aircast
/volume1/airconnect/config-cast.xml
You can create each of these files manually or a reference version can be generated using the -i [config file name]
command-line parameter.
For the following example i am using the default configuration you can find above in the How it works section.
I am just change the -x
parameter with the -i
parameter.
Change the ip and parameters for your needs:
Example:
/volume1/@appstore/AirConnect/airupnp -b 192.168.1.249:49154 -l 50:500 -g 0 -i "/volume1/@appstore/AirConnect/config.xml" -o "<NULL>,S1,S3,S5,S9,S12,ZP80,ZP90,S15,ZP100,ZP120,1.0,LibreWireless,Fitzwilliam,2.2.6,AllShare1.0" -z -f "/volume1/@appstore/AirConnect/log/airconnect.log" -d all=info
After running this command, airupnp will be started until all needed information and devices are gathered, stopped and the resulted configuration will be written to the defined config file.
If you want to edit your config.xml
or config-cast.xml
file from your computer using a network share (SMB) you need to
allow symlinks
in your SMB configuration on your synology NAS device.
Settings/Control Panel
- File Services
- SMB
- Advanced Settings
Please activate both options:
Please check the original Player specific hints and tips from philippe44 for more information.
The upnp version is often used with Sonos players. When a Sonos group is created, only the master of that group will appear as an AirPlay player and others will be removed if they were already detected. If the group is later split, then individual players will re-appear.
You need to use the Sonos native application for grouping / ungrouping.
When changing volume of a group, each player's volume is changed trying to respect the relative values. It's not perfect and still under test now. To reset all volumes to the same value, simply move the cursor to 0 and then to the new value. All players will have the same volume then. You need to use the Sonos application to change individual volumes.
To identify your Sonos players, pick an identified IP address, and visit the Sonos status page in your browser,
like http://192.168.1.126:1400/support/review
.
Click Zone Players
and you will see the identifiers for your players in the UUID
column.
@chpusch has found that Bose SoundTouch work well including synchronisation (as for Sonos, you need to use Bose's native application for grouping / ungrouping). I don't have a SoundTouch system so I cannot do the level of slave/master detection I did for Sonos
Check the Configuration section on how to apply the below tuning to the configuration.
Some of these speakers only support mp3 and require a modified ProtocolInfo
to stream correctly.
This can be done by editing the config file and changing <codec>flac</codec>
to <codec>mp3</codec>
and replacing the <mp3>..</mp3>
line with:
<mp3>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0d500000000000000000000000000000</mp3>
The build steps are done using GitHub Actions CI/CD. So it will be build automatically.
In case you want to build it locally, you can also use the following steps.
You need to install the following packages on your distribution:
- make
- shellcheck
- clone/download this repository
After that you can start the build process by running shellcheck
or directly with the build steps.
Grab version of your needed AirConnect package and set in variable RELEASE_VERSION
export RELEASE_VERSION=1.8.3
Go to the releases page and grab the latest release or the version you want.
Download it and extract to src/dsm7/bin
folder
Example for AirConnect 1.8.3
wget https://github.com/philippe44/AirConnect/releases/download/1.8.3/AirConnect-1.8.3.zip -O src/dsm7/bin/AirConnect.zip
cd src/dsm7/bin
unzip AirConnect.zip
cd src/dsm7
make shellcheck
cd src/dsm7
ARCH=arm make clean build
Possible values for ARCH: arm arm-static armv6 armv6-static aarch64 aarch64-static x86 x86-static x86_64 x86_64-static powerpc powerpc-static
cd src/dsm7
make clean build-all
You can find the built packages in the dist directory.
If you get an error message that the package cannot be installed or updated or started when updating AirConnect-Synology,
please uninstall the old version first (Package Center -> AirConnect -> Uninstall
) and then install the new version.
Uninstalling also removes the old scripts, references and configurations (only the logfile remains). Sometimes it can happen that the problem is already fixed with this.
If the normal uninstallation also does not work, please cleanup the old package using SSH with root permissions:
-
Delete old package (directory)
rm -rf /var/packages/AirConnect
-
Delete old airconnect configuration directory
synoshare --del TRUE airconnect
-
Delete old airconnect user(s) from a previous installation
synouser --del airconnect
synouser --del airconnect__PKG_
-
Delete old airconnect group from a previous installation
synogroup --del airconnect
-
After that please install the new package as found in how-to-install
If you have a problem installing or using one of these packages and/or are stuck, please open an issue.
It would be very helpful for me if you tell me the synology device you are using, the package you have downloaded and upload the two logfiles mentioned in the Logfiles section or include the important parts from the logfiles in the issue.
If the package was installed successfully and airupnp
and aircast
are running and no strange problems will be shown in the logfile
but for you it is not working as excpeted,
please consider opening an issue at the officiall AirConnect Repository.
Most of the problems with AirConnect are related to the local network configuration. AirConnect (and therefore Sonos/Chromecast) require Multicast to function properly. You must ensure that the communication within your network supports multicast. Especially important is the communication:
Chromecast/Sonos speakers <-> (WLAN)-Router <-> (Switch/Firewall <->) Smartphone which is used
So make sure that multicast is allowed on your router, your switches and your firewall and configure settings like IGMP snooping + IGMP proxy so that the communication is guaranteed.
For testing, please deactive igmp snooping everywhere if you have activated it.
I have activated but properly configured igmp snooping and igmp proxy + different VLANs. It will work with AirConnect, if properly configured.
- When players disappear regularly, it might be that your router is filtering out multicast packets.
- For example and testing, for a Asus AC-RT68U, you have to login by ssh and run
-
echo 0 > /sys/class/net/br0/bridge/multicast_snooping
but it does not stay after a reboot.
-
- For example and testing, for a Asus AC-RT68U, you have to login by ssh and run
- Lots of users seems to have problems with Unify and broadcasting / finding players.
- Here is a guide ubnt-sonos made by somebody who fixes the issue for his Sonos environment
For additional information, please check the following issues in the official AirConnect Repository:
- Best Practises for getting AirUPnP working in networks?
- Troubleshooting Steps for airupnp AirPlay Devices not Appearing?
- Devices disappear after ~1-2 Minutes
- Devices found, but not being added
- Unable to Connect to "device"
If you want to see more logs then change the AIRCAST_LOGLEVEL or AIRUPNP_LOGLEVEL from
all=info
in /volume1/airconnect/airconnect.conf
to all=debug
and restart the package.
If you want to see more logs then change the -d all=info
parameter in scripts/start-stop-status
to -d all=debug
and rebuild the package,
then install it again.
Credits go to @bandesz for the initial work and idea of a Synology package for AirConnect and of course to philippe44 for this great AirConnect application.
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for AirConnect-Synology
Similar Open Source Tools
AirConnect-Synology
AirConnect-Synology is a minimal Synology package that allows users to use AirPlay to stream to UPnP/Sonos & Chromecast devices that do not natively support AirPlay. It is compatible with DSM 7.0 and DSM 7.1, and provides detailed information on installation, configuration, supported devices, troubleshooting, and more. The package automates the installation and usage of AirConnect on Synology devices, ensuring compatibility with various architectures and firmware versions. Users can customize the configuration using the airconnect.conf file and adjust settings for specific speakers like Sonos, Bose SoundTouch, and Pioneer/Phorus/Play-Fi.
xFasterTransformer
xFasterTransformer is an optimized solution for Large Language Models (LLMs) on the X86 platform, providing high performance and scalability for inference on mainstream LLM models. It offers C++ and Python APIs for easy integration, along with example codes and benchmark scripts. Users can prepare models in a different format, convert them, and use the APIs for tasks like encoding input prompts, generating token ids, and serving inference requests. The tool supports various data types and models, and can run in single or multi-rank modes using MPI. A web demo based on Gradio is available for popular LLM models like ChatGLM and Llama2. Benchmark scripts help evaluate model inference performance quickly, and MLServer enables serving with REST and gRPC interfaces.
ragflow
RAGFlow is an open-source Retrieval-Augmented Generation (RAG) engine that combines deep document understanding with Large Language Models (LLMs) to provide accurate question-answering capabilities. It offers a streamlined RAG workflow for businesses of all sizes, enabling them to extract knowledge from unstructured data in various formats, including Word documents, slides, Excel files, images, and more. RAGFlow's key features include deep document understanding, template-based chunking, grounded citations with reduced hallucinations, compatibility with heterogeneous data sources, and an automated and effortless RAG workflow. It supports multiple recall paired with fused re-ranking, configurable LLMs and embedding models, and intuitive APIs for seamless integration with business applications.
Starmoon
Starmoon is an affordable, compact AI-enabled device that can understand and respond to your emotions with empathy. It offers supportive conversations and personalized learning assistance. The device is cost-effective, voice-enabled, open-source, compact, and aims to reduce screen time. Users can assemble the device themselves using off-the-shelf components and deploy it locally for data privacy. Starmoon integrates various APIs for AI language models, speech-to-text, text-to-speech, and emotion intelligence. The hardware setup involves components like ESP32S3, microphone, amplifier, speaker, LED light, and button, along with software setup instructions for developers. The project also includes a web app, backend API, and background task dashboard for monitoring and management.
stable-diffusion-prompt-reader
A simple standalone viewer for reading prompt from Stable Diffusion generated image outside the webui. The tool supports macOS, Windows, and Linux, providing both GUI and CLI functionalities. Users can interact with the tool through drag and drop, copy prompt to clipboard, remove prompt from image, export prompt to text file, edit or import prompt to images, and more. It supports multiple formats including PNG, JPEG, WEBP, TXT, and various tools like A1111's webUI, Easy Diffusion, StableSwarmUI, Fooocus-MRE, NovelAI, InvokeAI, ComfyUI, Draw Things, and Naifu(4chan). Users can download the tool for different platforms and install it via Homebrew Cask or pip. The tool can be used to read, export, remove, and edit prompts from images, providing various modes and options for different tasks.
gpt-translate
Markdown Translation BOT is a GitHub action that translates markdown files into multiple languages using various AI models. It supports markdown, markdown-jsx, and json files only. The action can be executed by individuals with write permissions to the repository, preventing API abuse by non-trusted parties. Users can set up the action by providing their API key and configuring the workflow settings. The tool allows users to create comments with specific commands to trigger translations and automatically generate pull requests or add translated files to existing pull requests. It supports multiple file translations and can interpret any language supported by GPT-4 or GPT-3.5.
chatgpt-cli
ChatGPT CLI provides a powerful command-line interface for seamless interaction with ChatGPT models via OpenAI and Azure. It features streaming capabilities, extensive configuration options, and supports various modes like streaming, query, and interactive mode. Users can manage thread-based context, sliding window history, and provide custom context from any source. The CLI also offers model and thread listing, advanced configuration options, and supports GPT-4, GPT-3.5-turbo, and Perplexity's models. Installation is available via Homebrew or direct download, and users can configure settings through default values, a config.yaml file, or environment variables.
ppl.llm.serving
PPL LLM Serving is a serving based on ppl.nn for various Large Language Models (LLMs). It provides inference support for LLaMA. Key features include: * **High Performance:** Optimized for fast and efficient inference on LLM models. * **Scalability:** Supports distributed deployment across multiple GPUs or machines. * **Flexibility:** Allows for customization of model configurations and inference pipelines. * **Ease of Use:** Provides a user-friendly interface for deploying and managing LLM models. This tool is suitable for various tasks, including: * **Text Generation:** Generating text, stories, or code from scratch or based on a given prompt. * **Text Summarization:** Condensing long pieces of text into concise summaries. * **Question Answering:** Answering questions based on a given context or knowledge base. * **Language Translation:** Translating text between different languages. * **Chatbot Development:** Building conversational AI systems that can engage in natural language interactions. Keywords: llm, large language model, natural language processing, text generation, question answering, language translation, chatbot development
llm2sh
llm2sh is a command-line utility that leverages Large Language Models (LLMs) to translate plain-language requests into shell commands. It provides a convenient way to interact with your system using natural language. The tool supports multiple LLMs for command generation, offers a customizable configuration file, YOLO mode for running commands without confirmation, and is easily extensible with new LLMs and system prompts. Users can set up API keys for OpenAI, Claude, Groq, and Cerebras to use the tool effectively. llm2sh does not store user data or command history, and it does not record or send telemetry by itself, but the LLM APIs may collect and store requests and responses for their purposes.
wanda
Official PyTorch implementation of Wanda (Pruning by Weights and Activations), a simple and effective pruning approach for large language models. The pruning approach removes weights on a per-output basis, by the product of weight magnitudes and input activation norms. The repository provides support for various features such as LLaMA-2, ablation study on OBS weight update, zero-shot evaluation, and speedup evaluation. Users can replicate main results from the paper using provided bash commands. The tool aims to enhance the efficiency and performance of language models through structured and unstructured sparsity techniques.
code2prompt
Code2Prompt is a powerful command-line tool that generates comprehensive prompts from codebases, designed to streamline interactions between developers and Large Language Models (LLMs) for code analysis, documentation, and improvement tasks. It bridges the gap between codebases and LLMs by converting projects into AI-friendly prompts, enabling users to leverage AI for various software development tasks. The tool offers features like holistic codebase representation, intelligent source tree generation, customizable prompt templates, smart token management, Gitignore integration, flexible file handling, clipboard-ready output, multiple output options, and enhanced code readability.
promptfoo
Promptfoo is a tool for testing and evaluating LLM output quality. With promptfoo, you can build reliable prompts, models, and RAGs with benchmarks specific to your use-case, speed up evaluations with caching, concurrency, and live reloading, score outputs automatically by defining metrics, use as a CLI, library, or in CI/CD, and use OpenAI, Anthropic, Azure, Google, HuggingFace, open-source models like Llama, or integrate custom API providers for any LLM API.
manga-image-translator
Translate texts in manga/images. Some manga/images will never be translated, therefore this project is born. * Image/Manga Translator * Samples * Online Demo * Disclaimer * Installation * Pip/venv * Poetry * Additional instructions for **Windows** * Docker * Hosting the web server * Using as CLI * Setting Translation Secrets * Using with Nvidia GPU * Building locally * Usage * Batch mode (default) * Demo mode * Web Mode * Api Mode * Related Projects * Docs * Recommended Modules * Tips to improve translation quality * Options * Language Code Reference * Translators Reference * GPT Config Reference * Using Gimp for rendering * Api Documentation * Synchronous mode * Asynchronous mode * Manual translation * Next steps * Support Us * Thanks To All Our Contributors :
DiffusionToolkit
Diffusion Toolkit is an image metadata-indexer and viewer for AI-generated images. It helps you organize, search, and sort your ever-growing collection. Key features include: - Scanning images and storing prompts and other metadata (PNGInfo) - Searching for images using simple queries or filters - Viewing images and metadata easily - Tagging images with favorites, ratings, and NSFW flags - Sorting images by date created, aesthetic score, or rating - Auto-tagging NSFW images by keywords - Blurring images tagged as NSFW - Creating and managing albums - Viewing and searching prompts - Drag-and-drop functionality Diffusion Toolkit supports various image formats, including JPG/JPEG, PNG, WebP, and TXT metadata. It also supports metadata formats from popular AI image generators like AUTOMATIC1111, InvokeAI, NovelAI, Stable Diffusion, and more. You can use Diffusion Toolkit even on images without metadata and still enjoy features like rating and album management.
middleware
Middleware is an open-source engineering management tool that helps engineering leaders measure and analyze team effectiveness using DORA metrics. It integrates with CI/CD tools, automates DORA metric collection and analysis, visualizes key performance indicators, provides customizable reports and dashboards, and integrates with project management platforms. Users can set up Middleware using Docker or manually, generate encryption keys, set up backend and web servers, and access the application to view DORA metrics. The tool calculates DORA metrics using GitHub data, including Deployment Frequency, Lead Time for Changes, Mean Time to Restore, and Change Failure Rate. Middleware aims to provide DORA metrics to users based on their Git data, simplifying the process of tracking software delivery performance and operational efficiency.
trieve
Trieve is an advanced relevance API for hybrid search, recommendations, and RAG. It offers a range of features including self-hosting, semantic dense vector search, typo tolerant full-text/neural search, sub-sentence highlighting, recommendations, convenient RAG API routes, the ability to bring your own models, hybrid search with cross-encoder re-ranking, recency biasing, tunable popularity-based ranking, filtering, duplicate detection, and grouping. Trieve is designed to be flexible and customizable, allowing users to tailor it to their specific needs. It is also easy to use, with a simple API and well-documented features.
For similar tasks
AirConnect-Synology
AirConnect-Synology is a minimal Synology package that allows users to use AirPlay to stream to UPnP/Sonos & Chromecast devices that do not natively support AirPlay. It is compatible with DSM 7.0 and DSM 7.1, and provides detailed information on installation, configuration, supported devices, troubleshooting, and more. The package automates the installation and usage of AirConnect on Synology devices, ensuring compatibility with various architectures and firmware versions. Users can customize the configuration using the airconnect.conf file and adjust settings for specific speakers like Sonos, Bose SoundTouch, and Pioneer/Phorus/Play-Fi.
For similar jobs
AirConnect-Synology
AirConnect-Synology is a minimal Synology package that allows users to use AirPlay to stream to UPnP/Sonos & Chromecast devices that do not natively support AirPlay. It is compatible with DSM 7.0 and DSM 7.1, and provides detailed information on installation, configuration, supported devices, troubleshooting, and more. The package automates the installation and usage of AirConnect on Synology devices, ensuring compatibility with various architectures and firmware versions. Users can customize the configuration using the airconnect.conf file and adjust settings for specific speakers like Sonos, Bose SoundTouch, and Pioneer/Phorus/Play-Fi.
aio-proxy
This script automates setting up TUIC, hysteria and other proxy-related tools in Linux. It features setting domains, getting SSL certification, setting up a simple web page, SmartSNI by Bepass, Chisel Tunnel, Hysteria V2, Tuic, Hiddify Reality Scanner, SSH, Telegram Proxy, Reverse TLS Tunnel, different panels, installing, disabling, and enabling Warp, Sing Box 4-in-1 script, showing ports in use and their corresponding processes, and an Android script to use Chisel tunnel.
aiohttp
aiohttp is an async http client/server framework that supports both client and server side of HTTP protocol. It also supports both client and server Web-Sockets out-of-the-box and avoids Callback Hell. aiohttp provides a Web-server with middleware and pluggable routing.
OpsPilot
OpsPilot is an AI-powered operations navigator developed by the WeOps team. It leverages deep learning and LLM technologies to make operations plans interactive and generalize and reason about local operations knowledge. OpsPilot can be integrated with web applications in the form of a chatbot and primarily provides the following capabilities: 1. Operations capability precipitation: By depositing operations knowledge, operations skills, and troubleshooting actions, when solving problems, it acts as a navigator and guides users to solve operations problems through dialogue. 2. Local knowledge Q&A: By indexing local knowledge and Internet knowledge and combining the capabilities of LLM, it answers users' various operations questions. 3. LLM chat: When the problem is beyond the scope of OpsPilot's ability to handle, it uses LLM's capabilities to solve various long-tail problems.
aiocoap
aiocoap is a Python library that implements the Constrained Application Protocol (CoAP) using native asyncio methods in Python 3. It supports various CoAP standards such as RFC7252, RFC7641, RFC7959, RFC8323, RFC7967, RFC8132, RFC9176, RFC8613, and draft-ietf-core-oscore-groupcomm-17. The library provides features for clients and servers, including multicast support, blockwise transfer, CoAP over TCP, TLS, and WebSockets, No-Response, PATCH/FETCH, OSCORE, and Group OSCORE. It offers an easy-to-use interface for concurrent operations and is suitable for IoT applications.
aiounifi
Aiounifi is a Python library that provides a simple interface for interacting with the Unifi Controller API. It allows users to easily manage their Unifi network devices, such as access points, switches, and gateways, through automated scripts or applications. With Aiounifi, users can retrieve device information, perform configuration changes, monitor network performance, and more, all through a convenient and efficient API wrapper. This library simplifies the process of integrating Unifi network management into custom solutions, making it ideal for network administrators, developers, and enthusiasts looking to automate and streamline their network operations.
axoned
Axone is a public dPoS layer 1 designed for connecting, sharing, and monetizing resources in the AI stack. It is an open network for collaborative AI workflow management compatible with any data, model, or infrastructure, allowing sharing of data, algorithms, storage, compute, APIs, both on-chain and off-chain. The 'axoned' node of the AXONE network is built on Cosmos SDK & Tendermint consensus, enabling companies & individuals to define on-chain rules, share off-chain resources, and create new applications. Validators secure the network by maintaining uptime and staking $AXONE for rewards. The blockchain supports various platforms and follows Semantic Versioning 2.0.0. A docker image is available for quick start, with documentation on querying networks, creating wallets, starting nodes, and joining networks. Development involves Go and Cosmos SDK, with smart contracts deployed on the AXONE blockchain. The project provides a Makefile for building, installing, linting, and testing. Community involvement is encouraged through Discord, open issues, and pull requests.
paddler
Paddler is an open-source load balancer and reverse proxy designed specifically for optimizing servers running llama.cpp. It overcomes typical load balancing challenges by maintaining a stateful load balancer that is aware of each server's available slots, ensuring efficient request distribution. Paddler also supports dynamic addition or removal of servers, enabling integration with autoscaling tools.