Neue Sonos-Version

Begonnen von Reinerlein, 12 März 2017, 14:53:33

Vorheriges Thema - Nächstes Thema

Nobby1805

Hallo Mitch,

echte 50% oder looped der Prozess auf einem Kern von Zweien und das macht dann 50%?
So etwas habe ich mit Reiner auch hier diskutiert: https://forum.fhem.de/index.php/topic,62552.0.html

Ich habe nicht den LogLevel des gesamten SONOS erhöht, sondern zusätzliches Logging eingebaut, "leider" ;) tritt das Problem bei mir nur alle paar Wochen auf ... bisheriger Stand ist, dass bei der Abfrage der Kommunikation zwischen dem FHEM-Hauptprozess und dem Sonos-Subprozess angezeigt wird, dass dort etwas ist, dann aber nichts gelesen wird (weil wohl doch nichts da ist) aber bei der nächsten Abfrage sofort wieder signalisiert wird da ist etwas :(

Danach habe ich das Logging noch einmal erweitert um weitere Erkenntnisse zu gewinnen, aber das ist jetzt schon ein paar Wochen her

Gruß Nobby
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Nobby1805

FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Masterfunk

Zitat von: Reinerlein am 13 März 2017, 21:28:25
Hi Detlef,

ich hatte das über ein wiederkehrendes DOIF gemacht:

define Sonos_Wohnzimmer_RefreshCurrentTrackPosition DOIF ([Sonos_Wohnzimmer:transportState] eq "PLAYING" and [Sonos_Wohnzimmer:currentNormalAudio] eq 1) (get Sonos_Wohnzimmer CurrentTrackPosition) DOELSE
attr Sonos_Wohnzimmer_RefreshCurrentTrackPosition cmdState on|off
attr Sonos_Wohnzimmer_RefreshCurrentTrackPosition devStateIcon off:taster_ch_aus_rot:on on:taster_ch_an_gruen:off set_.*:ampel_gelb
attr Sonos_Wohnzimmer_RefreshCurrentTrackPosition do always
attr Sonos_Wohnzimmer_RefreshCurrentTrackPosition wait 15

Leider ist FHEM damit echt beschäftigt, sodass ich das nicht wirklich empfehlen kann.

Am Besten wäre so ein sekündlicher Javascript-Timer, mit dem man den Balken im FTUI immer eine Sekunde weiterschiebt, und wenn das Reading "currentTrackPosition" aktualisiert wird, wird die Position des Balken korrigiert.
Wenn die Wiedergabe gestoppt wird, wird der Timer angehalten (das Reading currentTrackPosition wird in diesen Momenten nochmal korrekt aktualisiert).

Leider kenne ich mich da zuwenig aus, wie man einen Slider an ein Reading bindet und trotzdem per Javascript "weiterschiebt".

Reiner

Danke, habs noch angepasst, da bei Gruppenwiedergabe da dann Unsin angezeigt wurde:

([Sonos_Bad:transportState] eq "PLAYING" and [Sonos_Bad:currentNormalAudio] eq 1 and [Sonos_Bad:currentTitle] ne "Gruppenwiedergabe") (get Sonos_Bad CurrentTrackPosition) DOELSE

Hier noch meine HTML Dateien, es gab eine Nachfrage:

template_musik_sonos.html
<div class="top-space container cell row">
<div Class="col-3-4">

<div data-type="popup" data-width="45%" data-height="80%" class="inline">
<div data-type="image"
data-device="Device"
data-get="currentAlbumArtURL"
data-width="210px"
data-height="210px"
class="nocache">
</div>

<div class="dialog">
<header>Cover für Name</header>

<div data-type="switch"
data-device="Device"
data-get="transportState"
data-states='["PLAYING","PAUSED_PLAYBACK","STOPPED"]'
data-set-states='["Pause","Play","Play"]'
data-background-icon="-"
data-background-colors='["orange","white","white"]'
data-colors='["orange","white","white"]'
data-icons='["fa-play","fa-pause","fa-pause"]'
class="inline"
style="position: absolute; top: 25px; left: 5px;"
onclick="$('.dialog-close').trigger('click');">
</div>

<div data-type="image"
data-device="Device"
data-get="currentAlbumArtURL"
data-width="750px"
data-height="750px"
class="nocache"
onclick="$('.dialog-close').trigger('click');">
</div>

<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="slider"
data-device="Device"
data-get="currentTrackPositionSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="750px"
class="horizontal top-narrow readonly centered"></div>
</div>

<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="joinedlabel" data-device="Device" data-mask="[$1][ ~ $2][ ~ $3]" data-get='["currentTitle","currentArtist","currentAlbum"]' class="truncate top-space"></div>
</div>
<div data-type="classchanger" data-device="Device" data-get="currentStreamAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="joinedlabel" data-device="Device" data-mask="[$1 ~ ][$2][: $3]" data-get='["currentSenderInfo","currentSender","currentSenderCurrent"]' class="truncate top-space"></div>
</div>
</div>
</div>
</div>

<div Class="col-1-4">
    <div class="sheet">
        <div class="row">

<div data-type="switch" data-device="Device"
     data-states='["appeared","initialized","disappeared"]'
data-icons='["fa-thumbs-o-up","fa-thumbs-o-down fa-blink","fa-thumbs-o-down"]'
data-background-icons='["-","-","-"]'
     data-colors='["#aa6900","#505050","#505050"]'
     class="readonly inline small top-align">
</div>
<div data-type="switch" data-device="Switch"
     data-states='["on","off","set_on"]'
     data-set-states='["off","on","on"]'
data-icons='["fa-power-off","fa-power-off","fa-power-off fa-blink"]'
data-background-icons='["-","-","-"]'
     data-colors='["#aa6900","#505050","#aa6900"]'
     class="inline small top-align">
</div></div>
</div>
<br>
<br>
   <div data-type="label" class="inline" >Titel</div>
<div data-type="label" class="inline" data-device="Device" data-get="currentTrack"></div>
<div data-type="label" class="inline" >von</div>
   <div data-type="label" class="inline" data-device="Device" data-get="numberOfTracks"></div>
</div>

<br>
<br>
<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="label" data-device="Device" data-get="currentTrackPosition" class="inline"></div>
<div data-type="slider"
data-device="Device"
data-set="CurrentTrackPosition"
data-get="currentTrackPositionSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="350"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="Device" data-get="currentTrackDuration" class="inline"></div>


</div>

<div data-type="classchanger" data-device="Device" data-get="currentStreamAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div style="height: 40px;"> </div> <!-- Leerer Ersatz für die bei Streams fehlende Positionsanzeige -->
</div>

<div class="large top-space">
<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="label" data-device="Device" data-get="currentTitle" class="bold truncate" style="height: 21px;"></div>
<div data-type="joinedlabel" data-device="Device" data-mask="[$1][ ~ $2]" data-get='["currentArtist","currentAlbum"]' class="truncate" style="height: 21px;"></div>
</div>
<div data-type="classchanger" data-device="Device" data-get="currentStreamAudio" data-get-on="1" data-get-off="0" data-off-class="hide">
<div data-type="label" data-device="Device" data-get="currentSenderInfo" class="bold truncate" style="height: 21px;"></div>
<div data-type="joinedlabel" data-device="Device" data-mask="[$1][: $2]" data-get='["currentSender","currentSenderCurrent"]' class="truncate" style="height: 21px;"></div>
</div>
</div>

<div class="top-space">

<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide" class="inline top-space">
<div data-type="switch" data-device="Device" data-get="Repeat" data-set="Repeat"
data-icon="fa-repeat" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="1" data-get-off="0"
data-set-on="1" data-set-off="0" class="inline ">
</div>

<div data-type="push" data-device="Device"
data-icon="fa-step-backward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="Previous" class="inline ">
</div>

<div data-type="push" data-device="Device"
data-set="CurrentTrackPosition"
data-icon="fa-backward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="-30" class="inline ">
</div>
</div>

<div data-type="switch"
data-device="Device"
data-get="transportState"
data-states='["PLAYING","PAUSED_PLAYBACK","STOPPED"]'
data-set-states='["Pause","Play","Play"]'
data-background-icon="fa-circle-thin"
data-background-colors='["orange","white","white"]'
data-colors='["white","white","white"]'
data-icons='["fa-pause","fa-play","fa-play"]'
class="inline ">
</div>

<div data-type="classchanger" data-device="Device" data-get="currentNormalAudio" data-get-on="1" data-get-off="0" data-off-class="hide" class="inline">
<div data-type="push" data-device="Device"
data-set="CurrentTrackPosition"
data-icon="fa-forward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="+30" class="inline ">
</div>

<div data-type="push" data-device="Device"
data-icon="fa-step-forward" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
data-set-on="Next" class="inline ">
</div>

<div data-type="switch" data-device="Device" data-get="Shuffle" data-set="Shuffle"
data-icon="fa-random" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="1" data-get-off="0"
data-set-on="1" data-set-off="0" class="inline ">
</div>
</div>

<div data-type="popup" class="inline" data-width="470px" data-height="250px">
<div data-type="push"
data-icon="fa-list-ul" data-background-icon="-"
data-off-color="#fff" data-on-color="#aa6900"
class="">
</div>

<div class="dialog">
<header>Musikauswahl für Name</header>

<div class="top-space-10 left-align left-space">
<br>
<div>
<div class="large middle inline">Favoriten: </div>
<div data-type="select"
data-device="Device"
data-list="FavouritesList"
data-alias="FavouritesListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentFavouriteNameMasked"
data-set="StartFavourite"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
<br>
<div>
<div class="large middle inline">Playlists: </div>
<div data-type="select"
data-device="Device"
data-list="PlaylistsList"
data-alias="PlaylistsListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentPlaylistNameMasked"
data-set="StartPlaylist"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
<br>
<div>
<div class="large middle inline">Radiosta.: </div>
<div data-type="select"
data-device="Device"
data-list="RadiosList"
data-alias="RadiosListAlias"
data-delimiter="|"
data-quote="/"
data-get="currentRadioNameMasked"
data-set="StartRadio"
class="inline w3x"
onchange="$('.dialog-close').trigger('click');"></div>
</div>
</div>
</div>
</div>
</div>

<div data-type="slider" class="inline horizontal value tap" data-device="Device"
data-get="Volume" data-set="Volume" data-min="0" data-max="100" data-width="400px"></div>

<div data-type="switch" data-device="Device" data-get="Mute" data-set="Mute"
data-icon="oa-audio_volume_mute" data-background-icon="-"
data-on-color="#aa6900" data-off-color="gray"
data-get-on="1" data-get-off="0"
data-set-on="1" data-set-off="0" class="inline ">
</div>
</div>


Und die Einbindung in der Media Seite:

<!-- ========= Sonos Kueche =============== -->
<!-- ====================================== -->
<li class="transparent50" data-row="2" data-col="1" data-sizex="4" data-sizey="4">

<header>SONOS Küche</header>
<div data-template="template_musik_sonos.html" data-parameter='{"Name":"Kueche","Device":"Sonos_Kueche","Switch":"KU_Sonos_SW_Sw"}'></div>

</li>
<!-- ========= Sonos Schlafzimmer============ -->
<!-- ====================================== -->
<li class="transparent50" data-row="6" data-col="1" data-sizex="4" data-sizey="4">

<header>SONOS Schlafzimmer</header>
<div data-template="template_musik_sonos.html" data-parameter='{"Name":"Schlafzimmer","Device":"Sonos_Schlafzimmer","Switch":"SZ_Sonos_SW_Sw"}'></div>

</li>
<!-- ========= Sonos Wohnzimmer =============== -->
<!-- ====================================== -->
<li class="transparent50" data-row="2" data-col="5" data-sizex="4" data-sizey="4">

<header>SONOS Wohnzimmer</header>
<div data-template="template_musik_sonos.html" data-parameter='{"Name":"Wohnzimmer","Device":"Sonos_Wohnzimmer","Switch":"WZ_Sonos_SW"}'></div>

</li>
<!-- ========= Sonos Bad ================== -->
<!-- ====================================== -->
<li class="transparent50" data-row="6" data-col="5" data-sizex="4" data-sizey="4">

<header>SONOS Bad</header>
<div data-template="template_musik_sonos.html" data-parameter='{"Name":"Bad","Device":"Sonos_Bad","Switch":"BZ_Sonos_SW"}'></div>

</li>


Werd mir mal ansehen, wie die Belastung des Systems so ist.

Gruß Detlef

Masterfunk

Seit der Umstellung habe ich folgendes Problem.

Beim Gruppieren bzw. Degruppieren wernde die Player nicht mehr aktualisiert.
Sprich, die alten Cover und Trackinformationen werden weiterhin angezeigt.
Erst nach einem Refresh der Seite gehts wieder.

Susätzlich bekomme ich (allerdings nur beim Gruppieren) folgende Fehlermeldung.

DeeSPe

Ich habe soeben nach Update und "shutdown restart" Folgendes im Log gefunden:
2017-03-16 07:58:25 Global global ATTR fl_Sonos model Sonos_S1
2017-03-16 07:58:26 Global global ATTR wz_Sonos model Sonos_S6
2017.03.16 07:58:29 1 : SONOS0: Error during retreiving of RadioName: Can't use an undefined value as a HASH reference at ./FHEM/00_SONOS.pm line 1287.
2017-03-16 07:58:30 Global global ATTR ku_Sonos model Sonos_S3
2017-03-16 07:58:32 Global global ATTR bz_Sonos model Sonos_S12
2017-03-16 07:58:32 Global global ATTR sz_Sonos model Sonos_S12
2017.03.16 07:58:34 1 : SONOS0: Error during retreiving of RadioName: Can't use an undefined value as a HASH reference at ./FHEM/00_SONOS.pm line 1287.


Das waren allerdings die einzigen beiden Vorkommnisse bis jetzt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DeeSPe

10 min. später nochmal das Selbe:

2017.03.16 08:08:06 1 : SONOS0: Error during retreiving of RadioName: Can't use an undefined value as a HASH reference at ./FHEM/00_SONOS.pm line 1287.
2017-03-16 08:08:08 Global global ATTR fl_Sonos model Sonos_S1
2017.03.16 08:08:08 1 : SONOS0: Error during retreiving of RadioName: Can't use an undefined value as a HASH reference at ./FHEM/00_SONOS.pm line 1287.


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Reinerlein

Hallo Dan,

das passiert immer dann, wenn im Reading "Radios" etwas anderes als eine Hash-Struktur mit den Informationen der verfügbaren Radiosender enhtalten ist.
Er versucht bei jedem Titel herauszufinden, ob es aktuell von einer Playlist, einem Favoriten oder einem Radiofavoriten eingefügt wurde. Damit das aber nicht in Tausenden Requests an den Player (mit entsprechendem Aktualisierungsaufwand) endet, werden diese Informationen aus den verfügbaren Readings geholt.
Es gab mal Userreadings-Vorlagen, die das korrekte dort reingeschrieben haben, wenn ein "get Sonos_Player RadiosWithCovers" ausgeführt wurde (in Zukunft baue ich dafür noch eine andere Möglichkeit ein, da bin ich gerade dran).
Hast du das bei dir umgestellt? Wenn nicht, dann versuch doch einfach mal einmal einen Aufruf von "get RadiosWithCovers"...

Ich kann den Fehlerlevel gerne hochsetzen, er kommt auch nur, wenn etwas fehlerhaftes (bzw. nicht erkennbares) im Reading steht, wenn es z.B. leer ist, kommt keine Meldung.

Grüße
Reiner

DeeSPe

Ich habe ehrlich gesagt bisher gar nicht groß mit dem Modul herumgespielt.
Außer bestimmte Favoriten starten/stoppen und Gruppieren nutze ich kaum etwas von dem Modul.
Mir war diese Fehlermeldung nur aufgefallen und wollte sie melden.
Wenn es nichts Ersthaftes ist, sollte Loglevel hochsetzen reichen. ;)

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Masterfunk

Zitat von: Masterfunk am 15 März 2017, 23:27:05
Seit der Umstellung habe ich folgendes Problem.

Beim Gruppieren bzw. Degruppieren wernde die Player nicht mehr aktualisiert.
Sprich, die alten Cover und Trackinformationen werden weiterhin angezeigt.
Erst nach einem Refresh der Seite gehts wieder.

Susätzlich bekomme ich (allerdings nur beim Gruppieren) folgende Fehlermeldung.

Problem ist, nach setzen von Cors im Web Device, weg.

Gruß Detlef

Loredo

Hallo Reinerlein,


herzlichen Dank, dass du wieder Hand angelegt hast! 👍🏼
Ist es die richtige Zeit nochmals nachzufragen, ob es möglich ist eine Funktion einzubauen, dass Slave-Devices die meisten Werte seiner Master Devices übernehmen? Auch fände ich ein kombiniertes Status-Reading "stateAV" (oder ähnliches) hilfreich. Derzeit realisiere ich das ja mit 99_myutils Funktionen. Im Modul selbst wäre das alles aber besser aufgehoben.


Es geht mir dabei darum, dass die Slave-Devices sich genauso verhalten wie das Master Device bzw. deren Readings die selben Inhalte haben, damit die Anzeigen in der GUI identisch sind. Ich habe dafür auch noch folgende Funktion zum Abgleich einiger Readings wie z.B. Group*, Repeat*, Shuffle, InfoSummarize*, numberOfTracks im Einsatz:




sub mySonosUpdateSlavePlayer($) {
    my ($name) = @_;
    my $MasterPlayer = ReadingsVal($name, "MasterPlayer", $name);
    my $SlavePlayers = ReadingsVal($name, "SlavePlayer", "[]");
    my $IsMaster = ReadingsVal($name, "IsMaster", "0");


return if ($IsMaster eq "0" || $MasterPlayer ne $name );


foreach my $SlavePlayer ( @{ eval $SlavePlayers } ) {
my $SlavePlayerMaster = ReadingsVal($SlavePlayer, "MasterPlayer", $SlavePlayer);
next if($SlavePlayerMaster ne $MasterPlayer);


Log3 $name, 4, "SONOSPLAYER $name SonosUpdateSlavePlayer: Syncing readings to $SlavePlayer";


readingsBeginUpdate( $defs{$SlavePlayer} );


# sync all current* and next* readings
foreach my $reading ( keys %{ $defs{$SlavePlayerMaster}{READINGS} } ) {
next if ($reading !~ /^(current|next).*/);
my $vn = ReadingsVal($SlavePlayerMaster, $reading, "");
my $vo = ReadingsVal($defs{$SlavePlayer}, $reading, "");
readingsBulkUpdateIfChanged( $defs{$SlavePlayer}, $reading, $vn );
}


# explicitly sync some additional readings
foreach my $reading (
"GroupMute",
"GroupVolume",
"Repeat",
"RepeatOne",
"Shuffle",
"infoSummarize1",
"infoSummarize2",
"infoSummarize3",
"infoSummarize4",
"numberOfTracks",
) {
my $vn = ReadingsVal($SlavePlayerMaster, $reading, "");
my $vo = ReadingsVal($defs{$SlavePlayer}, $reading, "");
readingsBulkUpdateIfChanged( $defs{$SlavePlayer}, $reading, $vn );
}


readingsEndUpdate( $defs{$SlavePlayer}, 1);


#SONOS_ProcessInfoSummarize($SlavePlayer, \$defs{$SlavePlayer}, 'InfoSummarize1', 1);
#SONOS_ProcessInfoSummarize($SlavePlayer, \$defs{$SlavePlayer}, 'InfoSummarize2', 1);
#SONOS_ProcessInfoSummarize($SlavePlayer, \$defs{$SlavePlayer}, 'InfoSummarize3', 1);
#SONOS_ProcessInfoSummarize($SlavePlayer, \$defs{$SlavePlayer}, 'InfoSummarize4', 1);


}
}




Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Reinerlein

Hi Loredo,

ich schaue mir das mal an. Im Augenblick baue ich gerade etwas für das Ermitteln der aktuellen Abspielliste.
Ich habe etwas für das FTUI gebastelt, und da sieht es nett aus, wenn man auch eine Titelauswahl per Klappbox haben kann :)

Wenn das durch ist, würde ich da was (per Attribut steuerbares) versuchen...

Grüße
Reiner

Wichtel

Ich habe mit aktuellem FHEM auch das Problem dass mir der SONOS-UPNP-Thread abschmiert und das FHEM mitreisst.

Zusätzlich ist mir jetzt noch ein Fehler aufgefallen der wohl schon vorher bestand, aber im Forum zuletzt vor eineinhalb Jahren behandelt wurde:

Loading device description failed with error: 500 Can't connect to 192.168.49.1:55647 (timeout) at ./FHEM/00_SONOS.pm line 3922 thread 1.
Siehe https://forum.fhem.de/index.php?topic=45716.0
So wie dort, immer 4x nacheinander, und ohne dass meiner Fritzbox diese ip bekannt wäre oder irgendwas jemals von mir diesen Adressbereich verpasst bekommen hätte.

Das passiert immer 10 Min nach dem Start.
Der Absturz/hängenbleiben passiert meist so 30 Minuten bis 2 Stunden später, ohne weiteren Eintrag im Log. Auch mit Verbose des Sonos-Device auf 5.

Ich betreibe 2 Stück Sonos Play:1 als Stereopaar, also nur ein Raum und keine Gruppen.

Was soll ich dazu mal alles posten?

Ich muss den toten perl-Prozess dann mit killall -9 abschießen, ohne die -9 läuft er weiter.
Nach einem Neustart geht es dann wieder für ne Stunde oder so.

Nobby1805

Hast du Fire TV? In den Zusammenhang ist immer wieder von Problemen mit dieser IP-Adresse die Rede
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

Wichtel

Im Netz sind ein Fire TV und ein Apple TV, aber beide im 192.168.0.-Bereich, der Fire TV unter 192.168.0.37. Sie tauchen auch nicht gesondert in den Logs als erkannt auf.

Nobby1805

Kannst du den Fire nicht mal eine Zeit entfernen um zu schauen ob sich dann etwas ändert

Wenn du im Netz nach Fire TV und der IP-Adresse suchst dann gibt es etliche Treffer, schau mal ob da irgendetwas zu deiner Situation passt

So'ne Idee die ich hätte wäre , dass die Adresse beim Einschalten vor dem DHCP verwendet wird oder dass mit dieser Adresse auf Multicast-Requests reagiert wird
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)