SB-Player: Zeigt her eure Oberflächen!

Begonnen von FHEm2005, 05 Dezember 2015, 13:04:03

Vorheriges Thema - Nächstes Thema

FHEm2005

Ich würde wie folgt vorgehen:

1. dummy dum_syncAll anlegen:
define dum_syncAll dummy
attr dum_syncAll webCmd on:off


2. sync für alle Player einschalten (Party-Mode on)
define not_party-Mode_on notify dum_syncAll:on set <player1> sync <player2>,<player2>,<player3>....  asSlave


3. sync für alle Player ausschalten (Party-Mode off)
define not_party-Mode_off notify dum_syncAll:off set <player1>unsync

Mit dem Dummy dum_syncAll hast Du einen Schalter, um alle miteinander zu verbinden und diesen Schalter in FTUI einzubinden.

Ich hoffe ich habe wegen der Kekse nicht etwas übersehen (mampf)  :P :P :P

Gruß Eberhard


Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

TWART016

Super, so hat es geklappt, hatte gehofft, es gäbe noch eine einfachere Methode. Bei den Notifys sind es natürlich Semikolon, keine Kommas  ;)

Hier mein Code:

define syncAll_PCT dummy
attr syncAll_PCT webCmd on:off
define syncAll_PCT_on notify syncAll_PCT:on set SB_Player_Kueche sync SB_Player_PCT asSlave;;set SB_Player_Bad sync SB_Player_PCT asSlave;;set SB_Player_iPhone sync SB_Player_PCT asSlave
define syncAll_PCT_off notify syncAll_PCT:off set SB_Player_Bad unsync;;set SB_Player_Kueche unsync;;set SB_Player_iPhone unsync


Und in Tablet UI
<div data-type="switch" data-device="syncAll_PCT" data-get="STATE" data-get-on='["on","off"]' data-set-on="on" data-set-off="off" data-icons='["fa-link","fa-unlink"]' data-background-icon="fa-square-o" data-on-background-color="rgba(147, 147, 147, 0)" data-off-background-color="rgba(147, 147, 147, 0)" data-on-color="rgba(208,208,208,.8)" data-off-color="rgba(208,208,208,.8)"class="cell small narrow"></div>

FHEm2005

HalloTWART016,
ZitatBei den Notifys sind es natürlich Semikolon, keine Kommas

Ich sag's ja  - die Kekse :D :D :D :D :D :D :D :D
Prima, dass es klappt.

Ich hatte auch geglaubt, mit einem RAW-Befehl das einfacher abarbeiten zu können, aber der erlaubt die Synchronisation nur mit einem Player. Zitat aus dem CLI:
ZitatThe command accepts only one playerindex or playerid.

Gruß
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

grossmaggul

Hallo,

dank der Ausführungen hier, konnte ich meinen virtuellen SqueezePlayer auch in FHEM und Tablet UI einbinden.

Eine kleine Anmerkung noch, die Favoriten/Playlisten kann man auch recht einfach aus der FAVSTR_FTUI bzw. PLAYLIST_FTUI auslesen und in Tablet UI verfügbar machen, mithilfe von data-delimiter:


       <div data-type="select"
    data-device="squeezeplayer"
            data-list="PLAYLIST_FTUI"
            data-delimiter=":"
    data-get="playlists"
    data-set="playlists"
    data-cmd="set">
       </div>
       <div data-type="select"
       data-device="squeezeplayer"
       data-list="FAVSTR_FTUI"
       data-get="playlists"
       data-set="favorites"
               data-delimiter=":"
       data-cmd="set">
        </div>


Ist etwas einfacher, da man die Listen nicht selber erstellen muß und sich nicht mit den Regex rumschlagen muß oder spricht etwas dagegen?

vg

Marc-Antón
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

zentis666

#79
Hallo!
Ich versuche gerade meine 5 Squeezeboxen in die TabletUI reinzuhängen.
Tolle Arbeit bisher, vielen Dank dafür!
Ich nutze Eberhards letztes html Template und bin fast am Ziel,
das syncen funktioniert bei mir zwar aber noch nicht die Anzeige des Syncs in der Tablet UI.
weil die UserReadings nicht aktualisiert werden wenn ich den Sync auslöse.

Ich hab folgende Geräte:
SB_Arbeitszimmer, SB_Wohnzimmer, SB_Kueche, SB_Bad und SB_Julian.

Userreading im SB_Wohnzimmer sieht so aus:

FAVSTR_FTUI {my $t=InternalVal($name,'FAVSTR','');$t=~s/,/:/g;return($t)},
PLAYLIST_FTUI {my $t=InternalVal($name,'SERVERPLAYLISTS','');$t=~s/,/:/g;return($t)},
synced_FTUI {my $s=(ReadingsVal($name,'synced',''));$s=substr($s,0,2); return($s)},
SB_Kueche {if(index(ReadingsVal($name,'synced',''),'SB_Kueche')!=-1){return 'synced'} else {return('not synced')}},
SB_Bad {if(index(ReadingsVal($name,'synced',''),'SB_Bad')!=-1){return 'synced'} else {return('not synced')}},
SB_Arbeitszimmer {if(index(ReadingsVal($name,'synced',''),'SB_Arbeitszimmer')!=-1){return 'synced'} else {return('not synced')}},
SB_Julian {if(index(ReadingsVal($name,'synced',''),'SB_Julian')!=-1){return 'synced'} else {return('not synced')}}


Die User-Readings sind auch da und stehen immer auf "not synced", wenn ich über Tablet Ui oder fhem UI (z.B. "set SB_Wohnzimmer sync SB_Kueche") den sync auslöse wird der sync zwar aktiviert
SYNCED yes
SYNCGROUP 00:04:20:2a:20:72
SYNCGROUPPN SqueezeboxRadioKüche
SYNCMASTER 00:04:20:12:84:3c
SYNCMASTERPN Squeezebox Wohnzimmer
SYNCMASTERS SqueezeboxArbeitszimmer,SqueezeboxRadioBad,SqueezeboxRadioKüche
SYNCVOLUME 0


das entsprechende User-Reading "SB_Kueche" im Gerät "SB_Wohnzimmer" aber nicht auf "synced" gesetzt.
Das ist bei allen 4 Geräten so, egal in welcher Kombination ich das probiere.
Hab ich da noch nen Tippfehler drin?
Oder liegt das daran, dass SYNCGROUPPN SqueezeboxRadioKüche
gesetzt ist? Das Attribut syncedNamesSource FHEM ist gesetzt, trotzdem wird immer der LMS Name angezeigt.

Gruß
Sven
--
FHEM auf Debian VM - ESXi 6.0 Intel Nuc i5 4th Gen, Homematic auf HMCCU - RaspberryMatic auf Raspberry PI 3,
EM1000 & FS20 über CUNO,  IT über Arduino Firmata, MiLight über WLAN-nRF Gateway, Ebus, 1Wire, diverse Squeezeboxen, Dreambox 920UHD, Homebridge

grossmaggul

#80
Hallo,

ich wollte auch mal kurz mein Machwerk vorstellen, meine "Squeezeboxen" sind ein Yamaha AV Receiver und ein alter Grundig Fine Arts Receiver, der mit einer Apple Airport Express betrieben wird. Angesteuert werden sie mit einem LMS auf einem Synology NAS, FHEM läuft auf einem Raspi.
Es geht mir nicht um eine Multiroomumgebung, sondern ich möchte die Player einfach unabhängig voneinander mit der Tablet UI bedienen, sodaß eine Synchronisierung nicht notwendig ist.
Die beiden Player lade ich über einen Button(der mit den Noten) per pagetab.

vg

Marc-Antón
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

kvo1

Hallo Marc-Antón

Würdest du den Code Posten ?
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Octopus180

Der würde mich auch interessieren, und den Hardwareaufbau.

grossmaggul

Klar kann ich den Code posten, ich habe die Datei mal für einen Player angehängt.
Die Hardware habe ich oben doch beschrieben. :)

Den Aufruf mache ich aber jetzt vom Hauptmenü aus mit einem Circle Menü

<div data-type="circlemenu" data-direction="right" class="cell large">
         <ul>
  <li>
<div data-type="push"
                     data-icon="oa-audio_audio"
                     data-background-icon="fa-circle-thin"
                     data-on-color="lightblue"
                     data-off-color="grey"
     data-on-background-color="lightblue"
     data-off-background-color="grey">
</div>
  </li>
          <!-- Wohnzimmer -->
  <li>
<div data-type="pagetab"
                      data-url="index_mm_wz.html"
                      data-icon="oa-scene_livingroom"
                      data-background-icon="fa-circle-thin"
                      data-on-color="lightblue"
                      data-off-color="grey"
                      data-on-background-color="grey"
                      data-off-background-color="lightblue"
                      class="normal">
               </div>
  </li>
          <!-- Beamerzimmer -->
          <li>
<div data-type="pagetab"
                     data-url="index_mm.html"
                     data-icon="oa-scene_cinema"
                     data-background-icon="fa-circle-thin"
                     data-on-color="lightblue"
                     data-off-color="grey"
                     data-on-background-color="grey"
                     data-off-background-color="lightblue"
                     class="normal">
               </div>
   </li>
  </ul>
        </div>
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

kvo1

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Tobias

Wie erstellst du die Playlisten? Und zwar so, das Sie das MediaList Format mit Cover, etc.. haben?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

grossmaggul

ZitatWie erstellst du die Playlisten?
Meinst Du mich?
Ich erstelle die Playlisten gar nicht, das macht das SB_PLAYER Modul und man kann sie aus dem Reading ftuiPlaylist auslesen, z.B. so

<div data-type="medialist"
           data-device="bz.yamaha_dlna"
           data-set="track"
           data-get="ftuiMedialist"
           data-pos="playlistCurrentTrack"
           class="autoscroll index1 centered top-space-2x">
       </div>
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

kvo1

Zitat von: grossmaggul am 18 Januar 2017, 09:40:41
Meinst Du mich?
Ich erstelle die Playlisten gar nicht, das macht das SB_PLAYER Modul und man kann sie aus dem Reading ftuiPlaylist auslesen, z.B. so

<div data-type="medialist"
           data-device="bz.yamaha_dlna"
           data-set="track"
           data-get="ftuiMedialist"
           data-pos="playlistCurrentTrack"
           class="autoscroll index1 centered top-space-2x">
       </div>


Moin grossmaggul,

könntest Du bitte mal die  Definition eines Players posten, das Reading ftuiPlaylist hab ich nicht, ist das ein userreading ??

danke
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

grossmaggul

Hallo,

Zitatdas Reading ftuiPlaylist
Habe ich auch nicht, nur ftuiMedialist und das ist ein Reading.
Es gibt aber auch ein Attribut ftuiSupport, das auf 1 gesetzt werden sollte.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

kvo1

grossmaggul,
Alles klar!

ich glaube ich sollte mal meine Module updaten

Zitat# $Id: 98_SB_PLAYER.pm 9752 beta 0055 CD/MM/Matthew/Heppel $
# $Id: 97_SB_SERVER.pm 9811 beta 0017 CD $
:-[ :-[
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB