Autor Thema: Sonos2mqtt - vielleicht hat jemand Lust mitzumachen  (Gelesen 62475 mal)

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #30 am: 02 Juni 2020, 13:01:11 »
Bei mir siehts mit rawEvents .* (.*weils nur das Device gibt bei dem Server) so aus:
....

Gruß

Thomas

Danke! Ich bin echt zu blöd dafür. Also wie ich das hinbekomme wird mir auf ewig ein Rätzel sein. Hab das schon x mal gefragt aber bekomme es einfach nicht so hin :(

Anbei mal meine aktuelle Readingslist der Bridge (Ist so ganz okay, denke ich oder?):
sonos/connected:.* connected
homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}
sonos/status/.*/avtransport:.* { json2nameValue($EVENT) }
sonos/status/.*/renderingcontrol:.* { json2nameValue($EVENT) }
sonos/RINCON_([0-9A-Z]+):.* { json2nameValue($EVENT) }

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #31 am: 02 Juni 2020, 13:07:44 »
@TomLee: Danke!
Das gibt m.E. einen besseren Überblick, mit was man es zu tun hat.

Irgendwie unschön, dass alles doppelt und dreifach ist in den drei Zweigen, die eigentlich interessieren. Scheint aber so zu sein, dass man für eine vollständige Info wirklich "nicename" und "techname" braucht...

Aber "lc" von "name" scheint das zu sein, was nach "sonos/status/" gebraucht wird, um es zu vertemplaten, ohne auf den homeassistant-Zweig angewiesen zu sein? =>ReadingsVal sollte das liefern können... bridgeRegexp beim Zentralgerät auf den "techname" anzusetzen sollte also reichen?

(MAn. solltet ihr das "homeassistant" in die rignoreRegexp aufnehmen...).
Readingslist der Bridge könnte dann so passen:
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:.* {}
Erläuterungen:
- sonos/connected müssen wir uns gesondert ansehen, das scheint ähnlich zu ticken wie "announce" bei den shelly (one-for-all, muß per regex in jedem Gerät ausgewertet weeden, ob da was dabei ist (wie sieht das Reading dazu über der Zeit aus?).)
- avtransport und rederingcontrol interessieren eigentlich erst in den "Einzelgeräten". Damit das aber nicht immer wieder neu angelegt wird, und überhaupt Readings erzeugt werden, "himmeln" wir das direkt (in der Bridge) bzw. legen es dann gezielt in den sub-Geräten an (s.o.)...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3655
  • ... wer sät, der erntet ...
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #32 am: 02 Juni 2020, 13:10:40 »
Zitat
Danke! Ich bin echt zu blöd dafür. Also wie ich das hinbekomme wird mir auf ewig ein Rätzel sein. Hab das schon x mal gefragt aber bekomme es einfach nicht so hin

Komm ich nicht mit !? du meinst das hier jetzt nur die vier rawEvents schön untereinander aufgelistet sind ?
Die hab ich im Eventmonitor aus den normalen Events rausgepickt um sie hier einfach zum kopieren bereitzustellen.

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #33 am: 02 Juni 2020, 13:35:39 »
@Beta-User: Hast du
sonos/RINCON_([0-9A-Z]+):.* { json2nameValue($EVENT) }absichtlich weg gelassen?

Zitat
Aber "lc" von "name" scheint das zu sein, was nach "sonos/status/" gebraucht wird, um es zu vertemplaten, ohne auf den homeassistant-Zweig angewiesen zu sein? =>ReadingsVal sollte das liefern können... bridgeRegexp beim Zentralgerät auf den "techname" anzusetzen sollte also reichen?
du meinst lc (lowercase)? Auch hier kann ich deinen Gedanken nicht folgen :-\ Du sprichst manchmal aber auch ein Programmierer-Deutsch^^
Ich möchte die Bridge zuerst fertig machen und dann die Geräte. Habe aktuell also die Readingslist drin wie du sagtest + die eine Zeile mehr.

Zitat
wie sieht das Reading dazu über der Zeit aus?
Im connected Reading steht immer eine gesamt Zahl der verbundenen Geräte. Also bei mir 3 oder aktuell 2 (eine ist aktuell abgeklemmt).

Zitat
bzw. legen es dann gezielt in den sub-Geräten an (s.o.)
Auf welchen Beitrag, beziehst du dich?

aktuelles List:
Internals:
   CID        mqttjs_56a1977e
   DEF        mqttjs_56a1977e
   DEVICETOPIC MQTT_sonos_bridge
   FUUID      5ed60f7b-f33f-fcb4-5c80-665a5a1723b8fa51
   IODev      sonosmqtt
   LASTInputDev sonosmqtt
   MSGCNT     489
   NAME       MQTT_sonos_bridge
   NR         449
   STATE      offline
   TYPE       MQTT2_DEVICE
   sonosmqtt_MSGCNT 489
   sonosmqtt_TIME 2020-06-02 13:48:21
   OLDREADINGS:
   READINGS:
     2020-06-02 13:48:21   bridge_state    offline
     2020-06-02 13:48:16   config_RINCON_5CAAFD79D52801400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_5CAAFD79D52801400/control","device":{"identifiers":["RINCON_5CAAFD79D52801400"],"manufacturer":"Sonos","name":"Badezimmer"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_5CAAFD79D52801400","name":"Badezimmer","state_topic":"sonos/RINCON_5CAAFD79D52801400","unique_id":"sonos2mqtt_RINCON_5CAAFD79D52801400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-02 13:48:16   config_RINCON_7828CAF427B201400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_7828CAF427B201400/control","device":{"identifiers":["RINCON_7828CAF427B201400"],"manufacturer":"Sonos","name":"Wohnzimmer"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_7828CAF427B201400","name":"Wohnzimmer","state_topic":"sonos/RINCON_7828CAF427B201400","unique_id":"sonos2mqtt_RINCON_7828CAF427B201400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-02 13:48:16   config_RINCON_7828CAF4289001400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_7828CAF4289001400/control","device":{"identifiers":["RINCON_7828CAF4289001400"],"manufacturer":"Sonos","name":"Küche"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_7828CAF4289001400","name":"Küche","state_topic":"sonos/RINCON_7828CAF4289001400","unique_id":"sonos2mqtt_RINCON_7828CAF4289001400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
     2020-06-02 13:48:21   connected       0
     2020-06-02 13:45:22   coordinatorUuid RINCON_7828CAF4289001400
     2020-06-02 13:45:22   currentTrack_Album Sweet Dreams
     2020-06-02 13:45:22   currentTrack_AlbumArtUri http://192.168.20.71:1400/getaa?s=1&u=x-sonosapi-stream:s306651%3fsid%3d254%26flags%3d8224%26sn%3d0
     2020-06-02 13:45:22   currentTrack_Artist F4ST
     2020-06-02 13:45:22   currentTrack_Duration 0:02:08
     2020-06-02 13:45:22   currentTrack_ItemId -1
     2020-06-02 13:45:22   currentTrack_ParentId -1
     2020-06-02 13:45:22   currentTrack_ProtocolInfo sonos.com-http:*:application/octet-stream:*
     2020-06-02 13:45:22   currentTrack_Title DJ Mag Germany Radio by iloveradio.de
     2020-06-02 13:45:22   currentTrack_TrackUri x-sonosapi-stream:s306651?sid=254&flags=8224&sn=0
     2020-06-02 13:45:22   currentTrack_UpnpClass object.item
     2020-06-02 13:45:22   enqueuedMetadata_AlbumArtUri https://i.scdn.co/image/ab67706f00000002aa995282d5635f79a4384b4c
     2020-06-02 13:45:22   enqueuedMetadata_Artist Spotify
     2020-06-02 13:45:22   enqueuedMetadata_ItemId -1
     2020-06-02 13:45:22   enqueuedMetadata_ParentId -1
     2020-06-02 13:45:22   enqueuedMetadata_Title DJ Mag Germany Radio by iloveradio.de
     2020-06-02 13:45:22   enqueuedMetadata_UpnpClass object.item.audioItem.audioBroadcast
     2020-06-02 13:45:22   groupName       Küche
     2020-06-02 13:45:22   mute_LF         false
     2020-06-02 13:45:22   mute_Master     false
     2020-06-02 13:45:22   mute_RF         false
     2020-06-02 13:45:22   name            Küche
     2020-06-02 13:45:22   nextTrack_Album Zombie (Zombic & Felix Schorn Remix)
     2020-06-02 13:45:22   nextTrack_AlbumArtUri http://192.168.20.70:1400/getaa?s=1&u=x-sonos-spotify:spotify:track:3p07oZZpSNdVtN93M5yIY5%3fsid%3d9%26flags%3d8224%26sn%3d3
     2020-06-02 13:45:22   nextTrack_Artist Besomorph
     2020-06-02 13:45:22   nextTrack_Duration 0:02:40
     2020-06-02 13:45:22   nextTrack_ItemId -1
     2020-06-02 13:45:22   nextTrack_ParentId -1
     2020-06-02 13:45:22   nextTrack_ProtocolInfo sonos.com-spotify:*:audio/x-spotify:*
     2020-06-02 13:45:22   nextTrack_Title Zombie (Zombic & Felix Schorn Remix)
     2020-06-02 13:45:22   nextTrack_TrackUri x-sonos-spotify:spotify:track:3p07oZZpSNdVtN93M5yIY5?sid=9&flags=8224&sn=3
     2020-06-02 13:45:22   nextTrack_UpnpClass object.item.audioItem.musicTrack
     2020-06-02 13:45:22   playmode        NORMAL
     2020-06-02 13:45:22   transportState  STOPPED
     2020-06-02 13:45:22   ts              1591098320592
     2020-06-02 13:45:22   uuid            RINCON_7828CAF4289001400
     2020-06-02 13:45:22   volume_LF       100
     2020-06-02 13:45:22   volume_Master   49
     2020-06-02 13:45:22   volume_RF       100
Attributes:
   IODev      sonosmqtt
   devStateIcon online:10px-kreis-gruen offline:10px-kreis-rot
   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:.* {}
sonos/RINCON_([0-9A-Z]+):.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   stateFormat bridge_state
   userReadings bridge_state:connected:.* { ReadingsVal("$name","connected",0) > "0" ? "online" : "offline" }

Ach ja... Also gefakten online Stati der Bridge selber könnte man ein userReading nutzen in folgender Art:
bridge_state:connected:.* { ReadingsVal("$name","connected",0) > "0" ? "online" : "offline" }Ansonsten müsste man den Dienst irgendwie abfragen. Woher bekommen die anderen Bridges ihren Stati?


@TomLee: Geil.. wie blöd man einfach sein kann.. ich hampel die ganze Zeit auf der Bridge rum anstelle des wirklichen Servers. Kein wunder das ich auch nichts angezeigt bekomme...
« Letzte Änderung: 02 Juni 2020, 13:49:31 von 87insane »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #34 am: 02 Juni 2020, 14:06:23 »
Ja, das fehlt _in der Bridge_ absichtlich, das gehört jeweils zu den Sub-Devices, die via bridgeRegexp angelegt werden sollten.

Und es macht m.E. nicht den großen Sinn, bridge und Subgeräte separat "fertig" machen zu wollen; letztendlich soll jede Info ja irgendwo landen, und nur zusammen wird ein Schuh draus...

(Mein "Progammiererdeutsch" scheint ja zum Nachdenken anzuregen, und ja, mit "lc" ist lowercase gemeint (bzw. eben die Funktion lc); was das Ding unter "name" im JSON sendet, ist Groß geschrieben, in der readingList (als Bestandteil des topic-Trees) brauchen wir es aber "richtig" bzw. regex-konform, und da verwendet der sonos2-Programmierer scheinbar eben Kleinschreibung - warum auch immer... (unter diesem Gesichtspunkt wundert man sich noch mehr über Sonderzeichen).

Wenn "connected" sich tatsächlich nur auf die bridge bzw. die Anzahl der dort gerade angedockten Geräte bezieht, darf das selbstredend (nur) da bleiben, ein userReading braucht man m.E. nicht.

An dem list sieht man jetzt auch sehr schön, dass homeassistant (für uns) unnütz ist ;) (jedenfalls, wenn man unterstellt, dass wir "name" als Reading in den Sub-Devices bekommen, die bridgeRegexp anlegt).

Mit "s.o." war nur gemeint, dass bridgeRegexp _nur_ den kurzen Techname weiterleiten sollte (Otto hatte ursprünglich mal zwei Zeilen vorgeschlagen; hab's jetzt nochmal nachgesehen, bei der zweiten ging es um den (endlich zu streichenden/vergessenden/irgorierenden!) homeassistant-Zweig). Der muß also raus. Würde auch auf das Sonos verzichten, aus irgendeinem Grund steht ja überall das "RINCON_..." drin. Daher evtl. (bei dem von dir verwendeten Namen):
attr MQTT_sonos_bridge bridgeRegexp sonos/(RINCON_[0-9A-F]+):.* "$1"
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 19685
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #35 am: 02 Juni 2020, 15:15:46 »
Man Jungs, kaum macht man mal ne Radtour quer durch die Leipziger Seenplatte - muss man 100 Seiten lesen :) ;D ;D

@Beta-User mein "Scriptcode" für die Raw Def ist für mich sowas wie der lernende Übergang vom Perl zum Template. Du fragst so locker was daran besser sein soll: Kann ich Dir sagen: Ich kann noch kein Template :) Das war der Versuch bei einer halben Flasche Goldriesling zu verstehen was man am "Gerät erzeugen" überhaupt / wie machen könnte und muss.

Ich habe mir gestern für einen Player vier Device erstellt. Das hilft beim sehen und verstehen, was weg kann und was bleiben muss:
define MQTT2_Sonos_AZ_HA MQTT2_DEVICE Sonos_347E5C82560801400
attr MQTT2_Sonos_AZ_HA IODev sonosmqtt
attr MQTT2_Sonos_AZ_HA readingList homeassistant/music_player/RINCON_347E5C82560801400/sonos/config:.* { json2nameValue($EVENT) }
attr MQTT2_Sonos_AZ_HA room MQTT2_DEVICE

define MQTT2_Sonos_AZ_RINCON MQTT2_DEVICE Sonos_347E5C82560801400
attr MQTT2_Sonos_AZ_RINCON IODev sonosmqtt
attr MQTT2_Sonos_AZ_RINCON readingList sonos/RINCON_347E5C82560801400:.* { json2nameValue($EVENT) }
attr MQTT2_Sonos_AZ_RINCON room MQTT2_DEVICE

define MQTT2_Sonos_AZ_StatusAVT MQTT2_DEVICE Sonos_347E5C82560801400
attr MQTT2_Sonos_AZ_StatusAVT IODev sonosmqtt
attr MQTT2_Sonos_AZ_StatusAVT readingList sonos/status/arbeitszimmer/avtransport:.* { json2nameValue($EVENT) }
attr MQTT2_Sonos_AZ_StatusAVT room MQTT2_DEVICE

define MQTT2_Sonos_AZ_StatusRender MQTT2_DEVICE Sonos_347E5C82560801400
attr MQTT2_Sonos_AZ_StatusRender IODev sonosmqtt
attr MQTT2_Sonos_AZ_StatusRender readingList sonos/status/arbeitszimmer/renderingcontrol:.* { json2nameValue($EVENT) }
attr MQTT2_Sonos_AZ_StatusRender room MQTT2_DEVICE

Ich denke der sonos/RINCON_347E5C82560801400 Zweig ist der den man im praktischen Betrieb braucht. In zwei Stufen könnte man die Geräte anlegen und sprechend benennen. Also wahrscheinlich 3 mal ein Template anwenden, oder nur einmal und zwei notify einbauen die die Geräte konfigurieren.

@87insane Hast Du die Steuerung jetzt hinbekommen?
« Letzte Änderung: 02 Juni 2020, 15:52:51 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #36 am: 02 Juni 2020, 15:46:11 »
Ja, das ist alles nicht so einfach zu verstehen, wenn man "alles in einen Topf" wirft... Das mit den 4 Geräten ist schon mal eine gute Sache, um das ganze zu ordnen, läuft ja in dieselbe Richtung.

Habe hier mal einen (ungetesteten) Vorschlag, wie man die hier vorhandenen Infos evtl. jetzt "sortieren" kann, hoffe, das hilft auf Basis der rieslinggestützten Erkenntnisse zur vollendeten Erleuchtung:
###########################################
# sonos2mqtt
# The sonos2mqtt bridge device (entire hex id of devices as bridgeRegexp)
name:sonos2mqtt_bridge
desc:The sonos2mqtt bridge device
filter:TYPE=MQTT2_DEVICE
order:M_01
par:BASE_TOPIC;base topic set in configuration.yaml of the sonos2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
attr DEVICE readingList\
  BASE_TOPIC/connected:.* connected\
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}\
  BASE_TOPIC/status/[^/]+/avtransport:.* {}\
  BASE_TOPIC/status/[^/]+/renderingcontrol:.* {}
attr DEVICE bridgeRegexp\
  BASE_TOPIC/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"

name:sonos2mqtt_speaker
desc:A sonos2mqtt speaker device
filter:TYPE=MQTT2_DEVICE
order:M_02
par:BASE_TOPIC;base topic set in configuration.yaml of the sonos2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;techname of the device ;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](RINCON_[0-9A-Z]+):.*, ? $1 : undef }
par:DEVNAME;friendly name as set in sonos gadget itself;{ lc(ReadingsVal("DEVICE","name","unknown")) }
attr DEVICE readingList\
  BASE_TOPIC/status/DEVNAME/avtransport:.* { json2nameValue($EVENT,'AV_',$JSONMAP) }\
  BASE_TOPIC/status/DEVNAME/renderingcontrol:.* { json2nameValue($EVENT,'REND_',$JSONMAP) }\
  BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr DEVICE setList\
  stop:noArg BASE_TOPIC/DEV_ID/control { "command": "stop" }\
  play:noArg BASE_TOPIC/DEV_ID/control { "command": "play" }\
  volume:slider,0,1,100 BASE_TOPIC/DEV_ID/control { "command": "volume", "input": $EVTPART1 }"

Anmerkungen:
- Statt dreier Geräte sind die Readings jetzt mit einem Präfix versehen, die aus "avtransport" bzw. "renderingcontrol" kommen. Für den (nicht unwahrscheinlichen) Fall, dass da irgendwas brauchbares dabei ist, kann man das via jsonMap dann umbenennen und den Rest ins digitale Nirvana befördern;
- Habe auch mal pauschal $JSONMAP ermöglicht, damit wir ggf. etwas mehr Freiheiten haben, die Readings "schöner" zu benennen (z.B. Volume wirklich (einheitlich) groß zu schreiben);
- Falls zu häufig immer dieselben ungeänderten Infos kommen => siehe "true" ;)
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3655
  • ... wer sät, der erntet ...
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #37 am: 02 Juni 2020, 16:22:01 »
Wenn ich auf dieses automatisch angelegte Device

defmod MQTT2_mqttjs_70fe3e7c MQTT2_DEVICE mqttjs_70fe3e7c
attr MQTT2_mqttjs_70fe3e7c IODev MQTT2_Server
attr MQTT2_mqttjs_70fe3e7c readingList mqttjs_70fe3e7c:sonos/connected:.* connected\
mqttjs_70fe3e7c:homeassistant/music_player/RINCON_000E58F7F67C01400/sonos/config:.* { json2nameValue($EVENT) }\
mqttjs_70fe3e7c:sonos/status/wohnzimmer/avtransport:.* { json2nameValue($EVENT) }\
mqttjs_70fe3e7c:sonos/status/wohnzimmer/renderingcontrol:.* { json2nameValue($EVENT) }\
mqttjs_70fe3e7c:sonos/RINCON_000E58F7F67C01400:.* { json2nameValue($EVENT) }
attr MQTT2_mqttjs_70fe3e7c room MQTT2_DEVICE

setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURI x-rincon-mp3radio://http://opml.radiotime.com/Tune.ashx?id=e88185605&;sid=s2485&;formats=aac,mp3,hls&;partnerId=rjyYMwEH&;serial=AHFLNOA3T2XT6VWH2BAPMLPWOGLA
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURIMetaData_AlbumArtUri https://cdn-radiotime-logos.tunein.com/s2485q.png
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURIMetaData_ItemId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURIMetaData_ParentId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURIMetaData_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AVTransportURIMetaData_UpnpClass object.item.audioItem.audioBroadcast
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 AlarmRunning false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Bass 3
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentCrossfadeMode false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentMediaDuration NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentPlayMode NORMAL
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentRecordQualityMode NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentSection 0
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrack 1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackDuration 0:00:00
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_AlbumArtUri http://192.168.188.38:1400/getaa?u=x-rincon-mp3radio:%2f%2fhttp:%2f%2fopml.radiotime.com%2fTune.ashx%3fid%3de88185605%26sid%3ds2485%26formats%3daac,mp3,hls%26partnerId%3drjyYMwEH%26serial%3dAHFLNOA3T2XT6VWH2BAPMLPWOGLA&v=81
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_ItemId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_ParentId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_ProtocolInfo x-rincon-mp3radio:*:*:*
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_TrackUri x-rincon-mp3radio://http://opml.radiotime.com/Tune.ashx?id=e88185605&sid=s2485&formats=aac,mp3,hls&partnerId=rjyYMwEH&serial=AHFLNOA3T2XT6VWH2BAPMLPWOGLA
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackMetaData_UpnpClass object.item
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTrackURI x-rincon-mp3radio://http://opml.radiotime.com/Tune.ashx?id=e88185605&;sid=s2485&;formats=aac,mp3,hls&;partnerId=rjyYMwEH&;serial=AHFLNOA3T2XT6VWH2BAPMLPWOGLA
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 CurrentTransportActions Set, Stop, Play
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 DirectControlIsSuspended false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURI x-rincon-mp3radio://http://opml.radiotime.com/Tune.ashx?id=e88185605&;sid=s2485&;formats=aac,mp3,hls&;partnerId=rjyYMwEH&;serial=AHFLNOA3T2XT6VWH2BAPMLPWOGLA
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURIMetaData_AlbumArtUri https://cdn-radiotime-logos.tunein.com/s2485q.png
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURIMetaData_ItemId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURIMetaData_ParentId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURIMetaData_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 EnqueuedTransportURIMetaData_UpnpClass object.item.audioItem.audioBroadcast
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 HeadphoneConnected false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Loudness true
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Mute_LF false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Mute_Master false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Mute_RF false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 NumberOfTracks 1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 OutputFixed false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 PlaybackStorageMedium NETWORK
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 PossiblePlaybackStorageMedia NONE, NETWORK
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 PossibleRecordQualityModes NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 PossibleRecordStorageMedia NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 PresetNameList FactoryDefaults
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 RecordMediumWriteStatus NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 RecordStorageMedium NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 RestartPending false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SleepTimerGeneration 0
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SnoozeRunning false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SpeakerSize 4
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SubCrossover 0
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SubEnabled true
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SubGain 0
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 SubPolarity 0
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 TransportPlaySpeed NOT_IMPLEMENTED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 TransportState STOPPED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 TransportStatus OK
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Treble -5
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Volume_LF 100
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Volume_Master 18
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:50 Volume_RF 100
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 availability_topic sonos/connected
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_1 adv-command
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_10 playmode
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_11 previous
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_12 queue
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_13 seek
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_14 selecttrack
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_15 setavtransporturi
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_16 sleep
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_17 speak
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_18 stop
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_19 switchtoline
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_2 command
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_20 switchtoqueue
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_21 switchtotv
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_22 toggle
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_23 unmute
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_24 volume
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_25 volumedown
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_26 volumeup
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_3 joingroup
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_4 leavegroup
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_5 mute
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_6 next
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_7 notify
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_8 pause
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 available_commands_9 play
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 command_topic sonos/RINCON_000E58F7F67C01400/control
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 connected 2
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 coordinatorUuid RINCON_000E58F7F67C01400
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_AlbumArtUri http://192.168.188.38:1400/getaa?u=x-rincon-mp3radio:%2f%2fhttp:%2f%2fopml.radiotime.com%2fTune.ashx%3fid%3de88185605%26sid%3ds2485%26formats%3daac,mp3,hls%26partnerId%3drjyYMwEH%26serial%3dAHFLNOA3T2XT6VWH2BAPMLPWOGLA&v=81
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_ItemId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_ParentId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_ProtocolInfo x-rincon-mp3radio:*:*:*
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_TrackUri x-rincon-mp3radio://http://opml.radiotime.com/Tune.ashx?id=e88185605&sid=s2485&formats=aac,mp3,hls&partnerId=rjyYMwEH&serial=AHFLNOA3T2XT6VWH2BAPMLPWOGLA
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 currentTrack_UpnpClass object.item
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 device_class speaker
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 device_identifiers_1 RINCON_000E58F7F67C01400
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 device_manufacturer Sonos
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 device_name Wohnzimmer
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 enqueuedMetadata_AlbumArtUri https://cdn-radiotime-logos.tunein.com/s2485q.png
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 enqueuedMetadata_ItemId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 enqueuedMetadata_ParentId -1
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 enqueuedMetadata_Title 102.8 Radio Regenbogen Heidelberg
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 enqueuedMetadata_UpnpClass object.item.audioItem.audioBroadcast
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 groupName Wohnzimmer
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 icon mdi:speaker
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 json_attributes true
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 json_attributes_topic sonos/RINCON_000E58F7F67C01400
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 mute_LF false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 mute_Master false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 mute_RF false
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 name Wohnzimmer
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 payload_available 2
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 playmode NORMAL
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 state_topic sonos/RINCON_000E58F7F67C01400
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 transportState STOPPED
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 ts 1591107290558
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:45 unique_id sonos2mqtt_RINCON_000E58F7F67C01400_speaker
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 uuid RINCON_000E58F7F67C01400
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 volume_LF 100
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 volume_Master 18
setstate MQTT2_mqttjs_70fe3e7c 2020-06-02 16:14:51 volume_RF 100

das sonos2mqtt_bridge-Template anwende dann wird das bridgeRegexp -Attribut angelegt aber keine rL, warum ist das so oder versteh ich was falsch, sehe es nicht.

attr DEVICE readingList\
  BASE_TOPIC/connected:.* connected\
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}\
  BASE_TOPIC/status/[^/]+/avtransport:.* {}\
  BASE_TOPIC/status/[^/]+/renderingcontrol:.* {}
attr DEVICE bridgeRegexp\
  BASE_TOPIC/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"

defmod MQTT2_mqttjs_70fe3e7c MQTT2_DEVICE mqttjs_70fe3e7c
attr MQTT2_mqttjs_70fe3e7c IODev MQTT2_Server
attr MQTT2_mqttjs_70fe3e7c bridgeRegexp sonos/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"
attr MQTT2_mqttjs_70fe3e7c room MQTT2_DEVICE

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #38 am: 02 Juni 2020, 16:25:46 »
Ja hab ich.
Template übernehme ich wenn du dafür so fröhlich weiter machst.

Generell werden die templates pro Gerät gesetzt. Macht auch Sinn. Stell dir vor du kaufst morgen eine zusätzliche Sonos. Sie würde erkannt, erstellt und der user muss nur noch das Template auswählen.

Solange wir uns alle einig sind wie es am ende sein soll, kann ich anfangen. Am besten sollten wir mal genau festhalten in einem Beitrag wie wir es wollen. Bitte bitte aber so das ich mitkomme. Ich hab öfter das Problem beta-userranisch zu verstehen. Muss dann immer 4 mal lesen weil mir die Perl seite nicht so präsent ist. Wenigstens lc hatte ich noch im Kopf :-P

Was wir brauchen:
1 × Template Bridge
1 x temolate devices

Ich habe 2x Sonos one und einmal Sonos play 1.
Da sollten wir auch gucken wie sich andere Geräte verhalten. Was hast du/ihr?

Gesendet von meinem LM-G810 mit Tapatalk


Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #39 am: 02 Juni 2020, 16:29:09 »
Die rL landet im eigentlichen Player. Via Bridge werden diese raus geregext und an den Player weiter gegeben. Die Bridge selber bietet innerhalb dieses Modul leider keine Infos/readings wie online/offline zb. Aber es kann natürlich sein das man das noch aktivieren kann. Warte da noch auf Mail Antwort da das Wiki des Module, sagen wir mal dürftig ist.

Gesendet von meinem LM-G810 mit Tapatalk


Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16312
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #40 am: 02 Juni 2020, 16:30:06 »
Mist, die bridgeRegexp muß vor der readingList definiert werden, denn das löscht sonst die neue rL gleich wieder... so herum sollte es gehen:
###########################################
# sonos2mqtt
# The sonos2mqtt bridge device (entire hex id of devices as bridgeRegexp)
name:sonos2mqtt_bridge
desc:The sonos2mqtt bridge device
filter:TYPE=MQTT2_DEVICE
order:M_01
par:BASE_TOPIC;base topic set in configuration.yaml of the sonos2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
attr DEVICE bridgeRegexp\
  BASE_TOPIC/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"
attr DEVICE readingList\
  BASE_TOPIC/connected:.* connected\
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),; { "config_$1"=>$EVENT }}\
  BASE_TOPIC/status/[^/]+/avtransport:.* {}\
  BASE_TOPIC/status/[^/]+/renderingcontrol:.* {}

name:sonos2mqtt_speaker
desc:A sonos2mqtt speaker device
filter:TYPE=MQTT2_DEVICE
order:M_02
par:BASE_TOPIC;base topic set in configuration.yaml of the sonos2mqtt bridge;{ AttrVal("DEVICE","devicetopic",AttrVal("DEVICE","readingList","")) =~ m,[\b]?([^/:]+)[/].+, ? $1 : undef }
par:DEV_ID;techname of the device ;{ AttrVal("DEVICE","readingList","") =~ m,[^/]+[/](RINCON_[0-9A-Z]+):.*, ? $1 : undef }
par:DEVNAME;friendly name as set in sonos gadget itself;{ lc(ReadingsVal("DEVICE","name","unknown")) }
attr DEVICE readingList\
  BASE_TOPIC/status/DEVNAME/avtransport:.* { json2nameValue($EVENT,'AV_',$JSONMAP) }\
  BASE_TOPIC/status/DEVNAME/renderingcontrol:.* { json2nameValue($EVENT,'REND_',$JSONMAP) }\
  BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr DEVICE setList\
  stop:noArg BASE_TOPIC/DEV_ID/control { "command": "stop" }\
  play:noArg BASE_TOPIC/DEV_ID/control { "command": "play" }\
  volume:slider,0,1,100 BASE_TOPIC/DEV_ID/control { "command": "volume", "input": $EVTPART1 }"
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #41 am: 02 Juni 2020, 16:31:37 »
Okay dann ziehe ich meine aussage mal zurück. Hätte gedacht das es so okay ist.

Als ich das händisch getestet hatte war egal wie rum die rL weg. Aber ich will nicht sagen das die Hitze mir auf den Kopf geschlagen ist :-P teste es später nochmal. Aber bei dem Tempo kann ich das vermutlich bis dahin fertig aus dem SVN laden. Geil wie schnell das hier geht.

Gesendet von meinem LM-G810 mit Tapatalk
« Letzte Änderung: 02 Juni 2020, 16:33:37 von 87insane »

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3655
  • ... wer sät, der erntet ...
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #42 am: 02 Juni 2020, 16:35:50 »
funzt, Danke. Weiter kann ich erst heute Aben wieder spielen.

defmod MQTT2_mqttjs_b2916b6c MQTT2_DEVICE mqttjs_b2916b6c
attr MQTT2_mqttjs_b2916b6c IODev MQTT2_Server
attr MQTT2_mqttjs_b2916b6c bridgeRegexp sonos/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"
attr MQTT2_mqttjs_b2916b6c 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 MQTT2_mqttjs_b2916b6c room MQTT2_DEVICE

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3655
  • ... wer sät, der erntet ...
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #43 am: 02 Juni 2020, 16:48:45 »
Nur zur Vollständigkeit, war zu schnell, hab jetzt mal s2m neugestartet, es gibt mit dem Template jetzt 2 Readings.

defmod MQTT2_mqttjs_b2916b6c MQTT2_DEVICE mqttjs_b2916b6c
attr MQTT2_mqttjs_b2916b6c IODev MQTT2_Server
attr MQTT2_mqttjs_b2916b6c bridgeRegexp sonos/(RINCON_[A-Za-z0-9._]*)[/]?.*:.* "$1"
attr MQTT2_mqttjs_b2916b6c 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 MQTT2_mqttjs_b2916b6c room MQTT2_DEVICE

setstate MQTT2_mqttjs_b2916b6c 2020-06-02 16:42:08 config_RINCON_000E58F7F67C01400 {"available_commands":["adv-command","command","joingroup","leavegroup","mute","next","notify","pause","play","playmode","previous","queue","seek","selecttrack","setavtransporturi","sleep","speak","stop","switchtoline","switchtoqueue","switchtotv","toggle","unmute","volume","volumedown","volumeup"],"command_topic":"sonos/RINCON_000E58F7F67C01400/control","device":{"identifiers":["RINCON_000E58F7F67C01400"],"manufacturer":"Sonos","name":"Wohnzimmer"},"device_class":"speaker","icon":"mdi:speaker","json_attributes":true,"json_attributes_topic":"sonos/RINCON_000E58F7F67C01400","name":"Wohnzimmer","state_topic":"sonos/RINCON_000E58F7F67C01400","unique_id":"sonos2mqtt_RINCON_000E58F7F67C01400_speaker","availability_topic":"sonos/connected","payload_available":"2"}
setstate MQTT2_mqttjs_b2916b6c 2020-06-02 16:42:08 connected 2

Offline 87insane

  • Hero Member
  • *****
  • Beiträge: 1448
Antw:Sonos2mqtt - vielleicht hat jemand Lust mitzumachen
« Antwort #44 am: 02 Juni 2020, 17:01:03 »
Hey - Es geht soweit super...
Hat einer von Euch aber schonmal ins LOG vom Dienst gesehen? Hab da z.B.
2020-06-02T14:54:50.291Z [Warning] Error executing play for Badezimmer (RINCON_5CAAFD79D52801400)
 SonosError: Sonos error on Play UPnPError 701
    at AVTransportService.handleErrorResponse (/usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos/lib/services/base-service.js:209:23)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async AVTransportService.handleRequest (/usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos/lib/services/base-service.js:168:16)
    at async AVTransportService.SoapRequestWithBodyNoResponse (/usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos/lib/services/base-service.js:104:16)
    at async AVTransportService.Play (/usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos/lib/services/av-transport.service.js:91:32)
    at async SonosDevice.Play (/usr/local/lib/node_modules/sonos2mqtt/node_modules/@svrooij/sonos/lib/sonos-device.js:724:27)
    at async Function.ExecuteCommand (/usr/local/lib/node_modules/sonos2mqtt/lib/sonos-command-mapping.js:38:24)
    at async Function.ExecuteControl (/usr/local/lib/node_modules/sonos2mqtt/lib/sonos-command-mapping.js:7:20)
    at async EventEmitter.<anonymous> (/usr/local/lib/node_modules/sonos2mqtt/lib/sonos-to-mqtt.js:79:17) {
  Action: 'Play',
  FaultCode: 's:Client',
  Fault: 'UPnPError',
  UpnpErrorCode: 701
}

Aber an sich geht alles was bisher an Befehlen vorhanden ist.

Das sagt das Netz: a 701 error points to a general connectivity problem
Aber Netzwerkseitig ist an sich alles OK. Das kommt mit sogar mit LAN Kabel. Aber es kommt auch nicht immer.
Falls das jemand wissen mag. Bei mir kommt der ERROR immer dann wenn der Player an sich vorher noch keine Quelle hatte. Alle die SONOS nutzen kennen das.
Wenn man die Dinger neu an Strom steckt und auf Play drückt passiert nichts. Erst wenn einmal ein Stream oder so gestartet wurde geht play.
« Letzte Änderung: 02 Juni 2020, 17:05:35 von 87insane »

 

decade-submarginal