Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

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

Vorheriges Thema - Nächstes Thema

Ralli

#1305
Für einen Sonos Move:


<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="/xml/review.xsl"?><ZPSupportInfo><LocalBatteryStatus>
<Data name="Health">GREEN</Data>
<Data name="Level">100</Data>
<Data name="Temperature">NORMAL</Data>
<Data name="PowerSource">SONOS_CHARGING_RING</Data>
</LocalBatteryStatus><!-- SDT: 0 ms --></ZPSupportInfo>


Für einen Sonos Roam:


<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="/xml/review.xsl"?><ZPSupportInfo><LocalBatteryStatus>
<Data name="Health">GREEN</Data>
<Data name="Level">80</Data>
<Data name="Temperature">NORMAL</Data>
<Data name="PowerSource">SONOS_CHARGING_RING</Data>
</LocalBatteryStatus><!-- SDT: 0 ms --></ZPSupportInfo>


"hubecker" hat bereits ein Issue aufgemacht: https://github.com/svrooij/node-sonos-ts/issues/176
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.4 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.69.7.20230506) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa

Ralli

#1306
@Otto:

Die 99_sonos2mqttUtils.pm habe ich wie folgt minimal ergänzt, um beim Einschalten eines/mehrerer Alarms/Alarme auch noch die Lautstärke mitgeben zu können (eines meiner Kinder regelt die gerne über die Sonos-App wieder runter 8)):


...
if ($cmd eq 'alarm') {
   my $annex = "";
   $arr[-1] =~ /^[Vv]olume.([0-9]+)$/;
   if (defined($1)) {
      $annex .= ',"Volume":'.$1;
      pop @arr;
   }
   my $acmd = lc shift @arr;
   my $ids = shift @arr //return 'all|id[,id]|json missing, usage alarm enable|disable|update all|id[,id]|json';
   my %t=('enable'=>'true','disable'=>'false');
   if ($acmd eq 'update') {
      fhem(qq(set $bridge setalarm $ids));
      return '';
   } elsif ($acmd eq 'enable' or $acmd eq 'disable') {
       if ($ids eq "all") { $ids = ReadingsVal($NAME,"AlarmListIDs","")}
       for (split ',',$ids) {
         fhem(qq(set $bridge setalarm {"ID":$_,"Enabled":$t{$acmd}$annex}));
       }
     return '';
   }
} else {return 'usage alarm enable|disable|update all|id[,id]|json'}
}
...


Damit ist ein Kommando wie


set MQTT2_RINCON_xxxxx alarm enable all volume=10


möglich. Vielleicht magst du das ja ergänzen. Die Lösung mit $annex .= habe ich deswegen gewählt, weil dies m.E. einen generischen Ansatz darstellt, über den man auch ggf. noch weitere Modifier mit einbauen könnte.
Gruß,
Ralli

Intel NUC11TNHi7+NUC7i5BNH mit Proxmox 7.4 und QDevice auf RPi, virtualisiertes fhem 6.2 dev, virtualisierte RaspberryMatic (3.69.7.20230506) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.29), FBDECT, Siri und Alexa