FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: stenny am 03 März 2019, 15:48:07

Titel: [FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 03 März 2019, 15:48:07
Hallo Thorsten

Habe mal eben schnell was für einen Sonos Player zusammengeschoben.
Vielleicht kannst du da was für erstellen......

{ class => 'FUIP::Cell',
   views => [
    { class => 'FUIP::View::Html',
       posY => '115',
       popup => 'inactive',
       html => ' <div data-type="spinner"
data-device="sonos_Bad"
data-get="Volume"
data-set="Volume"
data-max="50"
data-step="1"
data-width="350"
data-icon-left="fa-volume-down tall"
data-icon-right="fa-volume-up tall"
data-gradient-color=\'["orange","red"]\'
class="tap value positiononly top-space centered">
</div>
',
       width => '500',
       sizing => 'resizable',
       posX => '61',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Lautstärke',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       posY => '67',
       popup => 'inactive',
       html => ' <div class="top-space">
<div data-type="switch" data-device="sonos_Bad" data-get="Mute" data-set="Mute"
data-icon="fa-deaf" 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 mini">
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide" class="inline top-space">
<div data-type="switch" data-device="sonos_Bad" 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 mini">
</div>

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

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

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

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

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

<div data-type="switch" data-device="sonos_Bad" 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 mini">
</div>
</div>

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

<div class="dialog">
<header><div data-type="joinedlabel" data-device="sonos_Bad" data-mask="Musikauswahl[ für $1]" data-get=\'["roomName"]\' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Favoriten: </div>
<div data-type="select"
data-device="sonos_Bad"
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>

<div>
<div class="large middle inline">Playlists: </div>
<div data-type="select"
data-device="sonos_Bad"
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>

<div>
<div class="large middle inline">Radios: </div>
<div data-type="select"
data-device="sonos_Bad"
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 class="large middle inline">Audio-Eingang: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="Sonos:LineInPlayerList"
data-alias="Sonos:LineInPlayerListAlias"
data-delimiter="|"
data-get="currentAlbum"
data-set="PlayURI"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>

<div>
<div class="large middle inline">Abspielliste: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="QueueList"
data-alias="QueueListAlias"
data-delimiter="|"
data-get="currentTrack"
data-set="Track"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>
</div>
</div>
</div>
</div>
',
       width => '500',
       sizing => 'resizable',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       posX => '-8',
       title => 'Bedienung',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       sizing => 'resizable',
       posX => '-11',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Position',
       height => '25',
       posY => '47',
       popup => 'inactive',
       html => '<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div data-type="label" data-device="sonos_Bad" data-get="currentTrackPositionSimulated" class="inline" style="width: 3em;"></div>
<div data-type="slider"
data-device="sonos_Bad"
data-set="CurrentTrackPosition"
data-get="currentTrackPositionSimulatedSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="sonos_Bad" data-get="currentTrackDuration" class="inline" style="width: 3em;"></div>

<div class="newline">
<div data-type="label" data-device="sonos_Bad" data-get="currentTrack" class="inline center-align" style="width: 3em;"></div>
<div data-type="slider"
data-device="sonos_Bad"
data-set="Track"
data-get="currentTrack"
data-max="numberOfTracks" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="sonos_Bad" data-get="numberOfTracks" class="inline center-align" style="width: 3em;"></div>
</div>
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="currentStreamAudio" data-get-on="1" data-off-class="hide">
<div style="height: 40px;"> </div> <!-- Leerer Ersatz für die bei Streams fehlende Positionsanzeige -->
</div>
',
       width => '500'
    },
    { class => 'FUIP::View::Html',
       posY => '-11',
       width => '500',
       html => ' <div class="large top-space">
<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Title" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1]" data-get=\'["currentTitle"]\' data-onupdate="checkFlowAnimation(\'#Device_Title\');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Interpret" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][ ~ $2]" data-get=\'["currentArtist","currentAlbum"]\' data-onupdate="checkFlowAnimation(\'#Device_Interpret\');" class="">
</div>
</div>
</div>
</div>
</div>
<div data-type="classchanger" data-device="sonos_Bad" data-get="currentStreamAudio" data-get-on="1" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_SenderInfo" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1]" data-get=\'["currentSenderInfo"]\' data-onupdate="checkFlowAnimation(\'#Device_SenderInfo\');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Sender" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][: $2]" data-get=\'["currentSender","currentSenderCurrent"]\' data-onupdate="checkFlowAnimation(\'#Device_Sender\');"class=""></div>
</div>
</div>
</div>
</div>
</div>
',
       popup => 'inactive',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Titel',
       posX => '53',
       sizing => 'resizable',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       height => '25',
       sizing => 'resizable',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Gruppierung',
       posX => '3',
       html => ' <div data-type="classchanger" data-device="sonos_Bad" data-get="SlavePlayerNotBonded" data-get-on=\'["[]"]\' data-on-class="hide" data-off-class="mini" class="inline">
<div data-type="switch" data-device="sonos_Bad" data-get="GroupMute" data-set="GroupMute"
data-icon="fa-deaf" 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="mini" style="margin-right: -5px;">
</div>
</div>

<div data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][ ($2)]" data-get=\'["roomName","ZoneGroupNameDetails"]\' class="truncate inline"></div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="MasterPlayer" data-get-on="sonos_Bad" data-on-class="hide" class="inline left-narrow">
<div data-type="push"
data-device="sonos_Bad"
data-icon="fa-minus-circle"
data-background-icon="-"
data-set-on="MakeStandaloneGroup"
class="inline mini gray">
</div>
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="MasterPlayer" data-get-on="sonos_Flur" data-off-class="hide" class="inline left-narrow">
<div data-type="popup" class="" data-width="400px" data-height="110px">
<div data-type="symbol"
data-icon="fa-chevron-circle-down"
class="mini"
style="height: 10px;">
</div>

<div class="dialog">
<header><div data-type="joinedlabel" data-device="sonos_Bad" data-mask="Wiedergabegruppe[ für $1] anpassen" data-get=\'["roomName"]\' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Player hinzufügen: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="AvailablePlayerList"
data-alias="AvailablePlayerListAlias"
data-delimiter="|"
data-get="-"
data-set="AddMember"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>

<div>
<div class="large middle inline">Player entfernen: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="SlavePlayerNotBondedList"
data-alias="SlavePlayerNotBondedListAlias"
data-delimiter="|"
data-get="-"
data-set="RemoveMember"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>
</div>
</div>
</div>
</div>
',
       popup => 'inactive',
       width => '500',
       posY => '181'
    }
   ],
   title => '',
   posX => '1',
   defaulted => {},
   height => '2',
   posY => '3',
   width => '3'
}


Gruß
Carsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 03 März 2019, 15:51:43
Hi,
das ist ja ein ziemliches Monster-Teil. Kannst Du mal einen Screenshot davon hier dranhängen?
Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Esjay am 07 März 2019, 09:17:40
Zitat von: stenny am 03 März 2019, 15:48:07
Hallo Thorsten

Habe mal eben schnell was für einen Sonos Player zusammengeschoben.
Vielleicht kannst du da was für erstellen......

{ class => 'FUIP::Cell',
   views => [
    { class => 'FUIP::View::Html',
       posY => '115',
       popup => 'inactive',
       html => ' <div data-type="spinner"
data-device="sonos_Bad"
data-get="Volume"
data-set="Volume"
data-max="50"
data-step="1"
data-width="350"
data-icon-left="fa-volume-down tall"
data-icon-right="fa-volume-up tall"
data-gradient-color=\'["orange","red"]\'
class="tap value positiononly top-space centered">
</div>
',
       width => '500',
       sizing => 'resizable',
       posX => '61',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Lautstärke',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       posY => '67',
       popup => 'inactive',
       html => ' <div class="top-space">
<div data-type="switch" data-device="sonos_Bad" data-get="Mute" data-set="Mute"
data-icon="fa-deaf" 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 mini">
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide" class="inline top-space">
<div data-type="switch" data-device="sonos_Bad" 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 mini">
</div>

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

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

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

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

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

<div data-type="switch" data-device="sonos_Bad" 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 mini">
</div>
</div>

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

<div class="dialog">
<header><div data-type="joinedlabel" data-device="sonos_Bad" data-mask="Musikauswahl[ für $1]" data-get=\'["roomName"]\' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Favoriten: </div>
<div data-type="select"
data-device="sonos_Bad"
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>

<div>
<div class="large middle inline">Playlists: </div>
<div data-type="select"
data-device="sonos_Bad"
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>

<div>
<div class="large middle inline">Radios: </div>
<div data-type="select"
data-device="sonos_Bad"
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 class="large middle inline">Audio-Eingang: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="Sonos:LineInPlayerList"
data-alias="Sonos:LineInPlayerListAlias"
data-delimiter="|"
data-get="currentAlbum"
data-set="PlayURI"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>

<div>
<div class="large middle inline">Abspielliste: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="QueueList"
data-alias="QueueListAlias"
data-delimiter="|"
data-get="currentTrack"
data-set="Track"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>
</div>
</div>
</div>
</div>
',
       width => '500',
       sizing => 'resizable',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       posX => '-8',
       title => 'Bedienung',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       sizing => 'resizable',
       posX => '-11',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Position',
       height => '25',
       posY => '47',
       popup => 'inactive',
       html => '<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div data-type="label" data-device="sonos_Bad" data-get="currentTrackPositionSimulated" class="inline" style="width: 3em;"></div>
<div data-type="slider"
data-device="sonos_Bad"
data-set="CurrentTrackPosition"
data-get="currentTrackPositionSimulatedSec"
data-max="currentTrackDurationSec" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="sonos_Bad" data-get="currentTrackDuration" class="inline" style="width: 3em;"></div>

<div class="newline">
<div data-type="label" data-device="sonos_Bad" data-get="currentTrack" class="inline center-align" style="width: 3em;"></div>
<div data-type="slider"
data-device="sonos_Bad"
data-set="Track"
data-get="currentTrack"
data-max="numberOfTracks" data-min="0"
data-step="1"
data-handle-diameter="5"
data-width="250"
class="horizontal tap inline">
</div>
<div data-type="label" data-device="sonos_Bad" data-get="numberOfTracks" class="inline center-align" style="width: 3em;"></div>
</div>
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="currentStreamAudio" data-get-on="1" data-off-class="hide">
<div style="height: 40px;"> </div> <!-- Leerer Ersatz für die bei Streams fehlende Positionsanzeige -->
</div>
',
       width => '500'
    },
    { class => 'FUIP::View::Html',
       posY => '-11',
       width => '500',
       html => ' <div class="large top-space">
<div data-type="classchanger" data-device="sonos_Bad" data-get="currentNormalAudio" data-get-on="1" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Title" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1]" data-get=\'["currentTitle"]\' data-onupdate="checkFlowAnimation(\'#Device_Title\');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Interpret" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][ ~ $2]" data-get=\'["currentArtist","currentAlbum"]\' data-onupdate="checkFlowAnimation(\'#Device_Interpret\');" class="">
</div>
</div>
</div>
</div>
</div>
<div data-type="classchanger" data-device="sonos_Bad" data-get="currentStreamAudio" data-get-on="1" data-off-class="hide">
<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_SenderInfo" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1]" data-get=\'["currentSenderInfo"]\' data-onupdate="checkFlowAnimation(\'#Device_SenderInfo\');" class="bold"></div>
</div>
</div>
</div>

<div style="height: 21px;">
<div style="width: 355px; position: absolute; overflow: hidden; height: 21px; margin-left: 10px; margin-right: 10px;">
<div style="position: absolute;">
<div id="Device_Sender" data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][: $2]" data-get=\'["currentSender","currentSenderCurrent"]\' data-onupdate="checkFlowAnimation(\'#Device_Sender\');"class=""></div>
</div>
</div>
</div>
</div>
</div>
',
       popup => 'inactive',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Titel',
       posX => '53',
       sizing => 'resizable',
       height => '25'
    },
    { class => 'FUIP::View::Html',
       height => '25',
       sizing => 'resizable',
       defaulted => {
        popup => '1',
        sizing => '1'
        },
       title => 'Gruppierung',
       posX => '3',
       html => ' <div data-type="classchanger" data-device="sonos_Bad" data-get="SlavePlayerNotBonded" data-get-on=\'["[]"]\' data-on-class="hide" data-off-class="mini" class="inline">
<div data-type="switch" data-device="sonos_Bad" data-get="GroupMute" data-set="GroupMute"
data-icon="fa-deaf" 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="mini" style="margin-right: -5px;">
</div>
</div>

<div data-type="joinedlabel" data-device="sonos_Bad" data-mask="[$1][ ($2)]" data-get=\'["roomName","ZoneGroupNameDetails"]\' class="truncate inline"></div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="MasterPlayer" data-get-on="sonos_Bad" data-on-class="hide" class="inline left-narrow">
<div data-type="push"
data-device="sonos_Bad"
data-icon="fa-minus-circle"
data-background-icon="-"
data-set-on="MakeStandaloneGroup"
class="inline mini gray">
</div>
</div>

<div data-type="classchanger" data-device="sonos_Bad" data-get="MasterPlayer" data-get-on="sonos_Flur" data-off-class="hide" class="inline left-narrow">
<div data-type="popup" class="" data-width="400px" data-height="110px">
<div data-type="symbol"
data-icon="fa-chevron-circle-down"
class="mini"
style="height: 10px;">
</div>

<div class="dialog">
<header><div data-type="joinedlabel" data-device="sonos_Bad" data-mask="Wiedergabegruppe[ für $1] anpassen" data-get=\'["roomName"]\' class="inline"></div></header>

<div class="top-space-10 left-align left-space">
<div>
<div class="large middle inline">Player hinzufügen: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="AvailablePlayerList"
data-alias="AvailablePlayerListAlias"
data-delimiter="|"
data-get="-"
data-set="AddMember"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>

<div>
<div class="large middle inline">Player entfernen: </div>
<div data-type="select"
data-device="sonos_Bad"
data-list="SlavePlayerNotBondedList"
data-alias="SlavePlayerNotBondedListAlias"
data-delimiter="|"
data-get="-"
data-set="RemoveMember"
class="inline w3x"
onchange="$(\'.dialog-close\').trigger(\'click\');"></div>
</div>
</div>
</div>
</div>
</div>
',
       popup => 'inactive',
       width => '500',
       posY => '181'
    }
   ],
   title => '',
   posX => '1',
   defaulted => {},
   height => '2',
   posY => '3',
   width => '3'
}


Gruß
Carsten

Moin Stenny,
würdest du der Bitte noch nachkommen? Ich glaube das es erstrebenswert ist, eine möglichst hohe Anzahl an Devices standardmäßig in FUIP abzubilden.

Grüße
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 22 März 2019, 09:02:45
Hi,
es sieht so aus, als ob es dafür doch nicht so richtig Interesse gibt, wenn man es nicht einmal schafft, davon einen Screenshot zu machen. (Auch wenn mir jetzt jemand sofort einen liefert, dann bin ich etwas skeptisch, da danach auch noch etwas "Mitarbeit" gefordert wäre.) Außerdem ist das eine ganze Menge an Coding, welches ich durcharbeiten müsste und ich hätte nicht einmal was davon, da es wohl recht Sonos-spezifisch ist.
Anstatt einen großen "Sonos-View" zu bauen, den dann ja doch jeder ein bisschen anders haben will, würde ich vorschlagen, dass sich das jeder aus "kleineren" View zusammenbaut. Wenn dann irgendwo eine Ecke fehlt, dann bin ich auch bereit, was einzubauen.
...aber so ein Riesenteil ohne Unterstützung eher nicht.
Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 07 April 2019, 14:46:46
Hallo Thorsten

Habe diese Sache aus zeitgründen aus den Augen verloren....

Sorry
Werde versuchen heute Abend ein paar Bilder zu schicken

Gruß
Carsten


Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny73 am 09 April 2019, 08:56:25
Hallo

Jetzt endlich zwei Bilder....

Im Moment viel Unterwegs (eine Silberhochzeit, eine Beerdigung, ein runder Geburtstag....)
Von Unterwegs zeitlich kaum mehr möglich....
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 03 Mai 2019, 14:48:36
Hi,
wie schon angedeutet, fällt es mir schwer, mich dazu zu entscheiden, so ein Teil selbst auszuliefern und zu unterstützen. Ich habe aber vor, es einfacher zu machen, Teile von FUIP mit anderen zu teilen. Der erste Schritt dafür ist, dass man View Templates exportieren und importieren kann. (Das geht jetzt!). Ich denke, dass das Sonos-Teil hier ein ganz gutes Beispiel ist, das mal zu testen.
Könnte also jemand mal daraus ein View Template machen ("Make View Template" im Konfig-Popup der Zelle) und das Ding exportieren? ...dann das File hier reinhängen, so dass es andere importieren können. Ich bin gespannt, was dabei rauskommt.

Wenn sich dieses Vorgehen als praktikabel erweist, dann könnte man solche View-Templates hier übers Forum oder auch übers Wiki "verteilen". Besonders "beliebte" View Templates könnte ich vielleicht auch mit FUIP selbst ausliefern, aber dazu muss ich mir noch ein bisschen etwas überlegen.

Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 03 Mai 2019, 16:34:08
Auf die schnelle ein export

Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 04 Mai 2019, 21:15:43
Zitat von: stenny am 03 Mai 2019, 16:34:08
Auf die schnelle ein export
Danke. Das ist zwar kein View Template, aber ich habe mal schnell eins draus gemacht. Außerdem habe ich überall, wo sonos_Wohnzimmer stand, ein fuip-field "device" eingefügt sowie die ganzen "device"-Felder zu einer Variable "device" im View Template gemacht. Im Ergebnis müsste man beim Verwenden dies View Templates einfach nur noch das Device auswählen müssen.
Ich hab' das Teil hier in den Anhang gepackt, vielleicht will's mal jemand ausprobieren.

Ich denke, dass es funktionieren müsste. Ich habe allerdings gesehen, dass das sizing (also die Angabe von Höhe und Breite) der einzelnen HTML-View nicht ganz stimmt. Ich kann das selbst nicht wirklich korrigieren, da ich kein Sonos habe und daher nicht sehe, bis wohin die einzelnen Teile tatsächlich gehen.

Gruß,
    Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 04 Mai 2019, 21:18:45
War der Zeit und meinem Zustand geschuldet.....

Nur Edge Netz im Krankenhaus....



Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 04 Mai 2019, 21:21:58
Zitat von: stenny am 04 Mai 2019, 21:18:45
Nur Edge Netz im Krankenhaus....
Kein WLan im Krankenhaus?
Sorry, ich meinte natürlich: Mach Dir keinen Stress und gute Besserung!
Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 04 Mai 2019, 21:24:52
Eigentlich schon.
Aber bewusst nicht genommen, mal die Auszeit nutzen.....

Danke


Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 04 Mai 2019, 21:27:42
Zitat von: stenny am 04 Mai 2019, 21:24:52
Eigentlich schon.
Aber bewusst nicht genommen, mal die Auszeit nutzen.....
Achso. ...bei mir hat das bedeutet, endlich mal in Ruhe was "für mich" entwickeln zu können. So ist dann FUIP entstanden.
Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 04 Mai 2019, 21:32:40
Dazu fehlt mir das Talent

Ich bin und bleib ein Nutzer


Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Sonos
Beitrag von: is2late am 01 Juni 2020, 07:04:39
Guten Morgen!

Wie schade, dass dieser Thread nicht fortgeführt wurde... Es gibt doch bestimmt eine Reihe von Leuten, die sich wie ich mit der Integration von Sonos in  FUIP schwer tun. Über 16.000 Aufrufe deuten darauf hin...
Ich habe mal das von Thorsten nach Stenny gefertigte Template importiert (toll übrigens, dass diese Funktion integriert wurde; danke, Thorsten!), aber gesehen, dass die Hinweise bezüglich des Sizings zutreffen - es ist alles ineinander geschoben, s. Anlage.
Leider kann ich als Anfänger daran überhaupt nichts machen.
Hat vielleicht jemand an der Integration weitergearbeitet und/oder ist bereit, seine Lösung hier einmal einzustellen?

LG Ingo
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 01 Juni 2020, 16:11:04
Wenn du das importiert hast kannst du die einzelnen Teile verschieben wie du magst


Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 01 Juni 2020, 16:32:32
Hi stenny,

die View lässt sich nur insgesamt verschieben, nicht in Teilen.

LG
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: Thorsten Pferdekaemper am 01 Juni 2020, 21:52:12
Hi,
Zitat von: is2late am 01 Juni 2020, 16:32:32
die View lässt sich nur insgesamt verschieben, nicht in Teilen.
das Ding ist ein "View Template". Siehe auch hier:
http://pferdekaemper.com/fuip/docu.html#concepts-viewtemplate
D.h. man kann es im entsprechenden Bereich in FUIP per Klickibunti ändern.
Vielleicht nützt das was...
Gruß,
   Thorsten
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 02 Juni 2020, 09:32:14
O ja, Thorsten, tut mit leid.. Ich wusste zwar, dass es ein Template ist und hatte Deine Doku dazu auch gelesen, aber offensichtlich nicht richtig verstanden. Das Ändern des Templates ist ja wirklich einfach; herzlichen Dank!
LG Ingo
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 02 Juni 2020, 10:18:43
Alles klar soweit, Thorsten und Stenny, vielen Dank!

Der Player sieht jetzt gut aus, s. Anlage. Ich hab bei "Device" in den fünf Rubriken jeweils den Namen meines Sonos-Players eingetragen und die Checkbox dahinter ("Device") aktiviert. Leider funktioniert jedoch die Bedienung nicht, dh der in FHEM abgespielte Titel wird zwar angezeigt (und auch abgespielt), kann jedoch in FUIP nicht bedient werden.
Eine Ahnung, was ich falsch mache?

LG Ingo
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 06 Juni 2020, 22:47:28
Der Player war überlagert. Das ist jetzt in Ordnung. Leider aber bleiben die Auswahlfenster für Favouriten etc leer.  Hat sonst jemand diesen Effekt und/oder kennt eine Lösung?

LG is2late
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: stenny am 07 Juni 2020, 15:14:19
Hast im sonos device alles aktiviert?

GetListDirectlyToReadings usw auf 1


Gesendet von iPhone mit Tapatalk
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 07 Juni 2020, 15:59:41
Hi stenny,

das war schon einmal gut! Tatsächlich hatte ich getListsDirectlyToReadings nicht aktiviert. Hab dies nachgeholt und auch gleich getPlaylistsListATNewVersion, getQueueListAtNewVersion, getFavouritesListAtNewVersion und getRadiosListAtNewVersion jeweils auf "1" gesetzt. Tatsächlich findet sich jetzt im Auswahlfenster in FUIP unter "Abspieliste" Inhalt. Toll!
Die anderen Fenster bleiben aber weiterhin leer, besonders blöd natürlich bei "PLaylists".
Muss ich noch etwas anderes aktivieren? Vielen Dank für Deine Hilfe!

LG is2late
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 07 Juni 2020, 16:21:05
Juchhee! Hab auf gut Glück noch diverses Anderes beim Sonos-Device aktiviert... get Favourites, Radios etc. Neugestartet und siehe da, die Auswahlfelder sind belegt. Der Sonntag ist gerettet. Tausend Dank für deine Hilfe!

LG is2late
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: australien am 17 Juni 2020, 10:02:06
Zitat von: is2late am 07 Juni 2020, 16:21:05
Juchhee! Hab auf gut Glück noch diverses Anderes beim Sonos-Device aktiviert... get Favourites, Radios etc. Neugestartet und siehe da, die Auswahlfelder sind belegt. Der Sonntag ist gerettet. Tausend Dank für deine Hilfe!

LG is2late

hallo zusammen,

ich habe jetzt auch die diversen getFav... usw mit 1 aktiviert, leider bringt mir aber das Template keine Einträge in den Dropdown Feldern.
Gibt es da noch was, was ich übersehen habe?

Ich würde auch gerne das Cover einbauen, gibt es da Tipps?

Danke
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: australien am 17 Juni 2020, 11:49:22
Cover ist erledigt, mittels html.

Die Listen sind aber weiterhin leer, interressant wären eigentlich nur die Radiosender.


Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 17 Juni 2020, 14:50:25
Hi,
hier mein RAW, vielleicht ist ja noch etwas Neues für Dich darunter:
defmod Sonos SONOS localhost:4711 30 1 5
attr Sonos getFavouritesListAtNewVersion 1
attr Sonos getListsDirectlyToReadings 1
attr Sonos getPlaylistsListAtNewVersion 1
attr Sonos getQueueListAtNewVersion 1
attr Sonos getRadiosListAtNewVersion 1
attr Sonos ignoredIPs 192.168.XXX.XX, 192.168.XXX.XX
attr Sonos room Sonos
attr Sonos targetSpeakDir /opt/fhem/SonosSpeak
attr Sonos targetSpeakFileTimestamp 1
attr Sonos targetSpeakMP3FileDir /opt/fhem/SonosSpeak
attr Sonos targetSpeakURL \\192.168.XXX.XXX\SonosSpeak
attr Sonos verbose 0


Wie genau hast Du die Cover reinbekommen?

is2late
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: australien am 17 Juni 2020, 15:38:32
Danke, muss ich überprüfen.
Im Template hab ich ein html eingefügt und platziert.
Siege screenshot oben.
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 17 Juni 2020, 15:55:44
Prima, danke!
Titel: Ständige Wiederholung
Beitrag von: is2late am 04 Oktober 2020, 11:35:41
Neuerdings wird bei mir jetzt der erste (der Playlist bzw der erste aufgerufene Titel) ständig wiederholt. "repeat" und "repeatOne" habe ich auf "0" gesetzt, trotzdem.... Man muss im Menue  per Hand weiterschalten, um den nächsten Titel zu bekommen.
Weiß jemand Rat?
Titel: Antw:[FUIP] Was für Player.... bei mir Sonos
Beitrag von: is2late am 04 Oktober 2020, 12:52:14
Nach zweimaligem Restart läuft es jetzt... vielleicht waren die Repeat-Einstellungen die Lösung...obwohl unklar, warum es früher ohne diese Einstellungen lief...