sonos2mqtt 3 von 4 Devices legen sich nicht an in FHEM?

Begonnen von Flanders, 10 März 2026, 07:29:33

Vorheriges Thema - Nächstes Thema

Flanders

Hallo,

ich habe auf sonos2mqtt umgestellt, da ich alle IoT-Geräte in ein separates Subnetz verlegt habe.
Damit ich weiterhin mit FHEM darauf zugreifen kann, habe ich sonos2mqtt installiert.
Das erkennt auch alle Geräte.
MQTT läuft bei mir über mosquitto.
Ich habe auch eine SonosBridge angelegt, diese zeigt mir im Reading (config_RINCON_XXX) die 3 nicht angelegte Geräte an.
Das vierte wurde angelegt als Gerät.

Ich bin etwas ratlos. Kann ich nochmal ein Neuanlegen triggern?
Was läuft hier falsch, wo kann ich ansetzen.

Ich habe von meinen 4 Sonos-Speakern einen in FHEM als MQTT-Gerät angelegt, die anderen 3 sind nicht vorhanden.

Wenn ich in FHEM in den MQTT-Verkehr schaue sehe ich die Geräte:

sonos/status/bad/avtransport ...
sonos/RINCON_XXX ...

usw.

list NAME=RINCON_.* oder list CID=RINCON_.*
bringt jeweils nur das eine gefundene Gerät.

Woran macht FHEM also fest, ob es die Geräte schon kennt oder neu anlegen muss?



LG

Flanders

Guybrush

was hast du in deiner bridge denn als bridgeRegex gesetzt? details zu deinen fhem devices wären hilfreich...

Flanders

#2
Ich habe die Bridge über set attributeTemplate sonos2mqtt_bridge_compfort erstellt.


define SonosBridge MQTT2_DEVICE
attr SonosBridge IODev myMosquitto
attr SonosBridge bridgeRegexp sonos/(RINCON_[A-Z0-9]+)[:/].* "$1"
attr SonosBridge devStateIcon 0:10px-kreis-rot 1:10px-kreis-gelb 2:10px-kreis-gruen
attr SonosBridge devicetopic sonos
attr SonosBridge getList Favorites:noArg Favorites {sonos2mqtt($NAME,$EVENT)}
attr SonosBridge icon mqtt_bridge_2
attr SonosBridge model sonos2mqtt_bridge
attr SonosBridge readingList sonos/connected:.* connected\
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),;; { "config_$1"=>$EVENT }}\
  sonos/status/[^/]+/avtransport:.* {}\
  sonos/status/[^/]+/renderingcontrol:.* {}
attr SonosBridge room MQTT2_DEVICE,Sonos
attr SonosBridge setList PauseAll:noArg $DEVICETOPIC/cmd/pauseall\
CheckSubscription:noArg $DEVICETOPIC/cmd/check-subscriptions
attr SonosBridge stateFormat connected
attr SonosBridge userReadings favlist:Favorites.* {sonos2mqtt_ur($name,'favlist')},\
grouplist:Favorites.* {sonos2mqtt_ur($name,'grouplist')}

setstate SonosBridge 2
setstate SonosBridge 2026-03-10 06:57:30 IODev myMosquitto
setstate SonosBridge 2026-03-09 14:24:27 attrTemplateVersion 20210303
setstate SonosBridge 2026-03-10 07:57:18 connected 2
setstate SonosBridge 2026-03-10 08:25:30 state PauseAll


define myMosquitto MQTT2_CLIENT 127.0.0.1:1885
attr myMosquitto autocreate simple
attr myMosquitto clientId fhem2
attr myMosquitto clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr myMosquitto disable 0
attr myMosquitto group MQTT
attr myMosquitto room MQTT2_DEVICE
attr myMosquitto username andreas

setstate RINCON_F0FXXXXXXXXXXXX00 STOPPED
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 CopyrightInfo © 2003-2026, Sonos, Inc. All rights reserved.
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 DisplaySoftwareVersion 18.1
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 Flags 0
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 HTAudioIn 0
setstate RINCON_F0XXXXXXXXXC0

define RINCON_F0FXXXXXXXXXXXX00 MQTT2_DEVICE RINCON_F0FXXXXXXXXXXXX00
attr RINCON_F0FXXXXXXXXXXXX00 alias Mobil2
attr RINCON_F0FXXXXXXXXXXXX00 devStateIcon {sonos2mqtt($name,'devStateIcon')}
attr RINCON_F0FXXXXXXXXXXXX00 devicetopic sonos
attr RINCON_F0FXXXXXXXXXXXX00 icon Sonos2mqtt_icon-S27
attr RINCON_F0FXXXXXXXXXXXX00 jsonMap volume_Master:volume mute_Master:mute
attr RINCON_F0FXXXXXXXXXXXX00 model sonos2mqtt_speaker
attr RINCON_F0FXXXXXXXXXXXX00 readingList $DEVICETOPIC/RINCON_F0FXXXXXXXXXXXX00/ZoneInfo:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/RINCON_F0FXXXXXXXXXXXX00:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/status/(.*)/avtransport:.* { sonos2mqtt_reading($NAME,$EVENT,$TOPIC) }\
sonos/RINCON_F0FXXXXXXXXXXXX00/control:.* { json2nameValue($EVENT) }\
sonos/RINCON_F0FXXXXXXXXXXXX00/Favorites:.* { json2nameValue($EVENT) }
attr RINCON_F0FXXXXXXXXXXXX00 room MQTT2_DEVICE,Sonos
attr RINCON_F0FXXXXXXXXXXXX00 setList alarm:textField { sonos2mqtt_alarm($NAME,$EVENT) }\
input:Queue {sonos2mqtt($NAME,$EVENT)}\
joinGroup: {sonos2mqtt($NAME,$EVENT)}\
leaveGroup:noArg {sonos2mqtt($NAME,$EVENT)}\
mute:true,false {sonos2mqtt($NAME,$EVENT)}\
next:noArg {sonos2mqtt($NAME,$EVENT)}\
notify:textField {sonos2mqtt($NAME,$EVENT)}\
pause:noArg {sonos2mqtt($NAME,$EVENT)}\
play:noArg {sonos2mqtt($NAME,$EVENT)}\
playUri:textField {sonos2mqtt($NAME,$EVENT)}\
previous:noArg {sonos2mqtt($NAME,$EVENT)}\
sayText:textField {sonos2mqtt($NAME,$EVENT)}\
setAVTUri:textField {sonos2mqtt($NAME,$EVENT)}\
sleep:selectnumbers,0,15,120,0,lin {sonos2mqtt($NAME,$EVENT)}\
snoozeAlarm:textField { sonos2mqtt($NAME,$EVENT) }\
speak:textField {sonos2mqtt($NAME,$EVENT)}\
stop:noArg {sonos2mqtt($NAME,$EVENT)}\
toggle:noArg {sonos2mqtt($NAME,$EVENT)}\
volume:slider,0,1,100 {sonos2mqtt($NAME,$EVENT)}\
volumeDown:noArg {sonos2mqtt($NAME,$EVENT)}\
volumeUp:noArg {sonos2mqtt($NAME,$EVENT)}\
x_raw_payload:textField {sonos2mqtt($NAME,$EVENT)}
attr RINCON_F0FXXXXXXXXXXXX00 stateFormat transportState
attr RINCON_F0FXXXXXXXXXXXX00 userReadings Master:groupName.* {(split(' \+',ReadingsVal($name,'groupName','')))[0]},\
isMaster:coordinatorUuid.* {ReadingsVal($name,'coordinatorUuid','') eq ReadingsVal($name,'uuid','')?1:0},\
inGroup:groupName.* {ReadingsVal($name,'groupName','') =~ / \+ /?1:0},\
inCouple:coordinatorUuid.* {(ReadingsVal($name,'coordinatorUuid','') ne ReadingsVal($name,'uuid','') and (index(ReadingsVal($name,'groupName',''), ReadingsVal($name,'name','')) != -1))?1:0},\
Input:currentTrack_TrackUri.* {sonos2mqtt_ur($name,'Input')}
setstate RINCON_F0FXXXXXXXXXXXX00 STOPPED
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 CopyrightInfo © 2003-2026, Sonos, Inc. All rights reserved.
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 DisplaySoftwareVersion 18.1
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 Flags 0
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 HTAudioIn 0
setstate RINCON_F0XXXXXXXXXC0

Otto123

Ich bin immer nicht sicher, ob es immer mit einem externe MQTT Broker funktioniert ...
Das er einen Player anlegt und die anderen nicht klingt komisch.
Ein Reading config_ in der Bridge sollte es nicht geben.

Hast Du mal den Part aus dem Wiki probiert?
ZitatÄndert man die Sonoslandschaft, kann man auch alles einreißen und neu erzeugen lassen. Zunächst alles löschen (für die FHEM Kommandozeile):

{fhem("delete a:model=sonos2mqtt_speaker;;delete FileLog_MQTT2_RINCON.*");;qx(rm ./log/MQTT2_RINCON_*);;return ""}
Danach muss man sonos2mqtt einfach neu starten: pm2 start ... bzw den docker container neu starten.

Eventuell musst Du aber vielleicht auch die Bridge nochmal neu machen. Die Bridge muss existieren, bevor der sonos2mqtt die ersten Daten liefert.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)