Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

Begonnen von Otto123, 31 Mai 2020, 18:30:55

Vorheriges Thema - Nächstes Thema

Wuppi68

Respekt !!!!

Tolle Arbeit.

5 Tage und gefühlt fast fertig.

Nur noch als Zusatzinfo: Das Commando Topic existiert zwei mal

- sonos/RINCON.../COMMAND
- sonos/set/Dusche/play

Die 2. Variante ist noch die alte Version, welche aber weiter funktionieren soll :-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

hoppel118

Ja, echt krass, was ihr hier in kürzester Zeit schon erreicht habt. Ich genieße gerade fernab von Bildschirmen (mal abgesehen vom Smartphone) mein Leben. ;)

Viel Spaß noch!

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

TomLee

#167
ZitatKann man in stateformat bzw dann devstateicon über normalen weg bilder rein packen?

Basierend auf deinem Vorschlag oben hab ich etwas weiter gespielt, hasse eigentlich HTML, manchmal beschäftige ich mich aber auch gerne damit.

Mit diesen http-Kommandos hab ich mich nie mit beschäftigt, mir ist völlig unklar wie man das jetzt mit mute macht.

Wenns mir jetzt noch gelingt die überlangen Texte  in dem zweiten div ohne viel Aufwand abzuschneiden dann wäre es in der Höhe auch fix, was ein Problem an der u. a. Lösung ist.
Mir ist klar das es irgendwie mit einer style Angabe span {white-space: nowrap; overflow: hidden;} iVm text-overflow: ellipsis; irgendwo im Code gehen muss, bekomms aber net hin. Kann da wer weiterhelfen ?

Mir gefällts bisher  :)

defmod Test1 MQTT2_DEVICE RINCON_000E58F7F67C01400
attr Test1 IODev MQTT2_Server
attr Test1 devStateIcon {my $img = ReadingsVal($name,"enqueuedMetadata_AlbumArtUri","");;;;\
my $ctitle = ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"currentTrack_Title","no title"):ReadingsVal($name,"state","");;;;\
my $ititle = ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"currentTrack_Artist","no title"):ReadingsVal($name,"state","");;;;\
my $atitle = ReadingsVal($name,"currentTrack_ProtocolInfo","") =~ ".*radio.*" ?\
ReadingsVal($name,"enqueuedMetadata_Title","no title") :ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"currentTrack_Album","no title") : ReadingsVal($name,"state","");;;;\
my $nctitle = ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"nextTrack_Title","no title"):ReadingsVal($name,"state","");;;;\
my $nititle = ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"nextTrack_Artist","no title"):ReadingsVal($name,"state","");;;;\
my $natitle = ReadingsVal($name,"state","") eq "PLAYING" ? ReadingsVal($name,"nextTrack_Album","no title"):ReadingsVal($name,"state","");;;;\
"<div style=\'float: left;;padding: 10px;;\'><img src='$img' style='width:250px;;;;height:250px;;;;'>\
</div>\
<div style=\'text-align: left;; float: left;;padding: 10px;; width:200px;;height:250px;;\'>\
<span>Titel:'$ctitle'</span><br>\
<span>Interpret:'$ititle'</span><br>\
<span>Album:'$atitle'</span><br><br>\
<span>Nächster Titel</span><br>\
<span>Titel:'$nctitle'</span><br>\
<span>Interpret:'$nititle'</span><br>\
<span>Album:'$natitle'</span><br><br>\
<span>\
<a href=\"/fhem?cmd.dummy=set $name previous&XHR=1\">".FW_makeImage("rc_PREVIOUS")."</a>\
<a href=\"/fhem?cmd.dummy=set $name play&XHR=1\">".FW_makeImage("rc_PLAY")."</a>\
<a href=\"/fhem?cmd.dummy=set $name pause&XHR=1\">".FW_makeImage("rc_PAUSE")."</a>\
<a href=\"/fhem?cmd.dummy=set $name next&XHR=1\">".FW_makeImage("rc_NEXT")."</a>\
</span><br>\
<span>\
<a href=\"/fhem?cmd.dummy=set $name volumedown&XHR=1\">".FW_makeImage("rc_VOLDOWN")."</a>\
<a href=\"/fhem?cmd.dummy=set $name mute&XHR=1\">".FW_makeImage("rc_MUTE")."</a>\
<a href=\"/fhem?cmd.dummy=set $name volumeup&XHR=1\">".FW_makeImage("rc_VOLUP")."</a>\
<a href=\"/fhem?cmd.dummy=set $name stop&XHR=1\">".FW_makeImage("rc_STOP")."</a>\
</span>\
</div>\
"}
attr Test1 event-on-change-reading .*
attr Test1 icon audio_volume_low
attr Test1 jsonMap volume_Master:volume mute_Master:mute volume_LF:0 volume_RF:0 mute_LF:0 mute_RF:0 enqueuedMetadata_ItemId:0 enqueuedMetadata_ParentId:0 currentTrack_ItemId:0 currentTrack_ParentId:0 coordinatorUuid:0 transportState:state nextTrack_ItemId:0 nextTrack_ParentId:0
attr Test1 model sonos2mqtt_speaker
attr Test1 readingList sonos/RINCON_000E58F7F67C01400:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr Test1 room MQTT2_DEVICE
attr Test1 setList stop:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "stop" }\
play:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "play" }\
pause:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "pause" }\
test:true,false sonos/RINCON_000E58F7F67C01400/control { "command": "mute", "input": $EVTPART1 }\
volume:slider,0,1,100 sonos/RINCON_000E58F7F67C01400/control { "command": "volume", "input": $EVTPART1 }\
mute:on,off { my $value = $EVTPART1 eq "on" ? "mute" : "unmute";;;; qq(sonos/RINCON_000E58F7F67C01400/control { "command": "$value" } ) }\
next:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "next" }\
  previous:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "previous" }\
nachricht:textField sonos/RINCON_000E58F7F67C01400/control { "command":"notify","input":{"trackUri":"$EVTPART2","onlyWhenPlaying":false,"timeout":10,"volume":$EVTPART1,"delayMs":700}}\
volumedown:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "volumedown" }\
volumeup:noArg sonos/RINCON_000E58F7F67C01400/control { "command": "volumeup" }\
setAVTUri:textField sonos/RINCON_000E58F7F67C01400/control {  "command": "setavtransporturi", "input": "$EVTPART1"}

setstate Test1 PLAYING
setstate Test1 2020-06-06 17:59:23 currentTrack_Album The Mission
setstate Test1 2020-06-06 18:40:17 currentTrack_AlbumArtUri https://cdn-profiles.tunein.com/s57109/images/logoq.png
setstate Test1 2020-06-06 18:40:17 currentTrack_Artist Jason Derulo
setstate Test1 2020-06-06 17:59:23 currentTrack_Duration 0:03:27
setstate Test1 2020-06-06 18:40:17 currentTrack_ProtocolInfo x-rincon-mp3radio:*:*:*
setstate Test1 2020-06-06 18:40:17 currentTrack_Title Want to want me
setstate Test1 2020-06-06 18:40:17 currentTrack_TrackUri x-rincon-mp3radio://http://hr-edge-2048.dus-lg.cdn.addradio.net/hr/hr3/live/mp3/128/stream.mp3?ar-distributor=f0a1
setstate Test1 2020-06-06 18:40:17 currentTrack_UpnpClass object.item
setstate Test1 2020-06-06 17:59:23 enqueuedMetadata_Album The Mission
setstate Test1 2020-06-06 18:40:17 enqueuedMetadata_AlbumArtUri https://cdn-profiles.tunein.com/s57109/images/logoq.png
setstate Test1 2020-06-06 17:59:23 enqueuedMetadata_Artist Iqulah
setstate Test1 2020-06-06 18:40:17 enqueuedMetadata_Title 89.3 hr 3 Frankfurt
setstate Test1 2020-06-06 18:40:17 enqueuedMetadata_UpnpClass object.item.audioItem.audioBroadcast
setstate Test1 2020-06-06 18:40:17 groupName Wohnzimmer
setstate Test1 2020-06-06 18:40:17 name Wohnzimmer
setstate Test1 2020-06-06 17:59:23 nextTrack_Album Dr. Heinrich Hoffmann - Der Struwwelpeter
setstate Test1 2020-06-06 17:59:23 nextTrack_AlbumArtUri http://192.168.188.38:1400/getaa?u=x-file-cifs:%2f%2f192.168.188.26%2fOwnMusic%2fH%c3%b6rb%c3%bccher%2fDer%20Struwwelpeter.mp3&v=81
setstate Test1 2020-06-06 17:59:23 nextTrack_Artist Johannes Ackner
setstate Test1 2020-06-06 17:59:23 nextTrack_Duration 0:14:23
setstate Test1 2020-06-06 17:59:23 nextTrack_ProtocolInfo x-file-cifs:*:audio/mpeg:*
setstate Test1 2020-06-06 17:59:23 nextTrack_Title Der Struwwelpeter
setstate Test1 2020-06-06 17:59:23 nextTrack_TrackUri x-file-cifs://192.168.188.26/OwnMusic/Hörbücher/Der Struwwelpeter.mp3
setstate Test1 2020-06-06 17:59:23 nextTrack_UpnpClass object.item.audioItem.musicTrack
setstate Test1 2020-06-06 18:40:17 playmode NORMAL
setstate Test1 2020-06-06 18:40:17 state PLAYING
setstate Test1 2020-06-06 18:40:17 ts 1591461617037
setstate Test1 2020-06-06 18:40:17 uuid RINCON_000E58F7F67C01400
setstate Test1 2020-06-06 18:40:17 volume 10


Anmerkung: Der Code zu devstateIcon ist von dem jsonMap transportState:state abhängig


Otto123

Moin,

kurz mal eine Info zum Thema "Sonos disappeared"
heute morgen:
2020.06.07 09:39:33 0: SONOS0: Das Lauschen auf der Schnittstelle wurde beendet. Prozess endet nun auch...
Sonos System in meiner produktiven Umgebung tot :( hatte ich jetzt witzigerweise genau so lange nicht wie wir an dem sonos2mqtt Thema probieren.

Die neuen sonos2mqtt Systeme (ich habe gerade 2 Testsysteme damit parallel laufen) funktionieren nach wie vor :) die liefen seit ein paar Tagen durch.

Was auch immer dazu führt das der normale SONOS UPNP Sub-Prozess abraucht, sonos2mqtt war davon unbeeindruckt :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

87insane

Es wird gerade untersucht ob die Ping Typen nicht laufen. Vermutlich wird das Problem auch bald behoben sein. Ich stehe aber eh auf mqtt. Wenn das alles rund ist, würde ich umsteigen. Ich teste sonos2mqtt parallel im aktuell snapshot, des prod Systems. Schönen Sonntag :)

Gesendet von meinem LM-G810 mit Tapatalk


Wuppi68

#170
da die klassische Sonos Lösung nie wirklich stabil lief bin ich relativ für  früh auf s2m umgestiegen - und im Notify dann einfach den mqtt publish hard gecoded ;-)

und das Teil lief immer problemlos durch ...

einziger Unterschied von der Anbindung:

mein FHEM Server hat mehrere Netzwerke verbunden inclusive Media VLAN und der Raspberry mit s2m hat nur das Media VLAN als Interface. Aber auch den FHEM Sonos Controller auf diesen gestartet brachte das gleiche undeterminische Disconnected ...
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

87insane

Bitte bedenke... Es geht grundsätzlich sind die Arbeiten aber noch nicht abgeschlossen. Freut einen aber wenn es schon Anklang findet! Otto123 und beta-user haben einiges vorgelegt hier.
Viel Spaß damit und bitte wünsche hier lassen :)

Gesendet von meinem LM-G810 mit Tapatalk


Wuppi68

ich benutze den schon sehr lange. Play, Stop und wenig anderes hatte ich schon "fertig". Die ersten Schritte hätte ich schon aus dem Ärmel gezogen, aber Ihr wart einfach zu schnell :-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

87insane

Wie sieht deine Bridge denn aus? Kannst ggf ja noch was ergänzen.

Kein Wunder...gibt man bei google einfach mal 2mqtt ein findet man alles. Toaster2mqtt fehlt nur noch :-P


Gesendet von meinem LM-G810 mit Tapatalk


Otto123

Denkst Du, die Toaster App in der Cloud läuft ohne MQTT :) ;D
ZitatDieser Toaster brennt per App Bilder aufs Brot
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

87insane

Omg! Dann ginge da ja auch mqtt. Also haben wir das auch geklärt. .*2mqtt = alles ist möglich :) kranker Mist :-P ich lache mich weg. Was es für "sinnlosen Kram" gibt.

Gesendet von meinem LM-G810 mit Tapatalk


Beta-User

 :) Schön, dass die community der "MQTT2-Device-Versteher" kontinuierlich wächst und wir auch "komplizierte" Geräte in den Griff zu bekommen scheinen!

Da ich eh' die Tage mal wieder ein paar Bausteinchen zusammensammeln muß und die attrTemplate-file überarbeiten: Gibt's sowas wie einen konsolidierten Stand zu einem Player-Device?
(Oder brauchen wir zwei attrTemplate-Versionen für "einfache" und "advanced" Modelle?)
Ich hätte kein Problem damit, einfach wieder eine verbesserte Zwischenversion einzustellen.

Falls es viele Spezialitäten gibt, wäre es evtl. eine Sache, dazu kurz einen Link in die "Praxisbeispiele" aufzunehmen und das ggf. mit diversen Varianten/ergänzungen/notify-"add-ons" auf eine eigene Seite im Wiki zu packen; muß ja nix großes werden, aber den "finalen" Stand wiedergeben?
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Otto123

#177
Also ich bin kurz davor 2 Templates fürs einchecken zu liefern :)
Eines für hier und eines für den Rasenmäher! ;) Hast Du sicher schon gesehen wie ich Dich kenne.
Lass mich heut abend noch mal drüber schauen?

Ich denke aber für mich ist es guter Zwischenstand ;) Die Funktionen sind aus meiner Sicht erstmal fertig. Jetzt muss es noch schön werden und status fehlt mir noch ein bisschen. Aber das wäre Step 2 und 3 zumal ich das vielleicht auch modular machen würde. Ich finde so ein "ALLES PLATSCH" Template erschlägt vielleicht auch den Einsteiger?

(Ich bin auch noch an einer ebus Überarbeitung dran, aber das dauert vielleicht noch)

Mir ist da noch aufgefallen: Du kennst ja sicher das Thema unescaped Backslash ...https://regex101.com/ meckert da auch an unseren Topic regExen rum. Ich habe die mal bei mir mal alle auf "konform" umgestellt.
Falls Du am überarbeiten bist, vielleicht bildest Du Dir ein Meinung dazu ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kjmEjfu

Sagt mal, Sonos hat ja heute seine App aufgesplittet (eine für die älteren Geräte, eine für die neueren). Hat das irgendwelche Auswirkungen auf Sonos2mqtt oder habt ihr da noch nichts beobachten können?
Migriere derzeit zu Home Assistant

Beta-User

Zitat von: Otto123 am 08 Juni 2020, 15:50:27
Also ich bin kurz davor [...]
Super!

Wollte nur mal nachhören, was der Stand ist, nachdem's irgendwie jetzt doch wieder sehr ruhig wurde, aber manches an Bausteinchen im Raum stand.

Was die anderen Themen angeht: ich mache auch (zuhauf) Fehler und weiß bei weitem nicht alles... (wird zwar immer mal wieder besser, aber grade bei den Dingen von "am Anfang" frage ich mich manchmal auch, wer denn darauf gekommen ist...)
Bin also für alle Arten von Verbesserungsvorschlägen offen. Es geht ja grade drum, Kopierfehler möglichst zu vermeiden ;) .

Ansonsten drehen sich meine derzeitigen Gedanken eher um tasmota_POW und pm-shelly (da gab es neben dem (neuen) em3-list auch noch einen Edit von 87insane, den ich bisher übersehen hatte). Vielleicht baue ich noch das eine oder andere zwei-Kanalige@shelly um, mal schauen...
Server: HP-elitedesk@Debian 12, 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: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files