Squeezebox Modul - erste Version

Begonnen von bugster_de, 17 Dezember 2013, 22:12:10

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Beim Versuch das UI von Ronny (vielen Dank dafür) nachzubauen sind mir noch verschiedene Fehler im Modul aufgefallen die dazu führen dass die Aktualisierung von diversen Zuständen nicht oder verspätet erfolgt. In der Version 0039 von 98_SB_PLAYER sollte dies behoben sein.

Grüße,

ChrisD

Rince

Zitat@Rince, @Dieda: könnt ihr testen ob damit die TTS-Probleme behoben sind ?

Sorry, war im Urlaub :)

Ich habe heute früh ein Update deiner Module gefahren und schau es mir mal an.


(Hatte mit der alten Version noch 2 Probleme, vielleicht sind die jetzt weg; Favoriten gingen nicht, obwohl tts idle (Lösung: resetTTS), Player Status "off" obwohl Player definitv an und auch am LMS sichtbar (Lösung: reload???))
Wird aber 2-3 Tage dauern, bis ich dir bescheid geben kann.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

kvo1

Hallo ChrisD;

Zitat von: ChrisD am 06 Juni 2015, 22:29:48
Hallo,

Beim Versuch das UI von Ronny (vielen Dank dafür) nachzubauen sind mir noch verschiedene Fehler im Modul aufgefallen die dazu führen dass die Aktualisierung von diversen Zuständen nicht oder verspätet erfolgt. In der Version 0039 von 98_SB_PLAYER sollte dies behoben sein.

Grüße,

ChrisD

mir ist zwar hier nicht wirklich etwas aufgefallen, aber dennoch danke , hab das Modul mal aktualisiert !

Klaus
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

kvo1

Hallo Ronny,

ich habe folgende Meldung in  aus meiner  99_myUtils:


Zitat2015.06.09 09:54:12 1: PERL WARNING: Use of uninitialized value $resultString in string eq at ./FHEM/99_myUtils.pm line 55.

Zeile 55 kommt der SUB     "wrapLine"      if ($resultString eq '')

LG
Klaus
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

RoBra81

Probier's mal damit:

sub
wrapLine($$)
{
  my ($string, $maxLength) = @_;
  $string = decode_entities($string);
my @stringParts = split(/ /, $string);
  my $actRowLength = 0;
  my $resultString = '';
  while (scalar(@stringParts) > 0) {
  my $tempString = shift @stringParts;
    if ($actRowLength > 0)
    {
    if (($actRowLength + length($tempString)) > $maxLength)
      {
      $actRowLength = 0;
        $resultString .= '<br>';
      }
    }
    $resultString .= $tempString;
    $actRowLength += length($tempString);
    if (scalar(@stringParts) > 0)
    {
    $resultString .= ' ';
    $actRowLength += 1;
    }
  }
  if ($resultString eq '')
  {
  return ' ';
  }
  else
  {
  return $resultString;
  }
}

kvo1

jetzt kommt

Zitat2015.06.09 20:47:04 2: Undefined subroutine &main::decode_entities called at ./FHEM/99_myUtils.pm line 33.

also hier  =>  $string = decode_entities($string);

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

RoBra81

Zitat von: kvo1 am 09 Juni 2015, 20:50:59
jetzt kommt

also hier  =>  $string = decode_entities($string);

Sorry, die Zeile habe ich der Einfachheit halber damals rausgelassen, da man noch ein use braucht:

use HTML::Entities;


Also entweder die Zeile löschen oder das use hinzufügen...

kvo1

Zitat von: RoBra81 am 09 Juni 2015, 20:54:09
Sorry, die Zeile habe ich der Einfachheit halber damals rausgelassen, da man noch ein use braucht:

use HTML::Entities;


Also entweder die Zeile löschen oder das use hinzufügen...

Hmmmm, vielleicht sollte ich mich doch mal mit html beschäftigen ?

Wohin kommt das genau ? in Deine SUB ?


oder am Anfang der 99_myUtils.pm??

also so....


package main;

use strict;
use warnings;
use POSIX;
use HTML::Entities;


sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}


sorry , schon klar sind Basic´s
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

RoBra81


Rince

Erstes Feedback zur neuen Version:
TTS scheint bedeutend stabiler zu laufen.

Hatte noch keinen Fall, wo ich manuell einen resetTTS anstoßen mußte (werfe aber da noch mal ein Auge drauf). Werde heute Abend mal 2 Player synchen und weiter beobachten.


Ein neuer Fehler hat sich allerdings eingeschlichen:
Wenn man direkt beim Start von fhem (global initialized) eine TTS Ansage lostritt, kommt diese nicht mehr, da der Player zu diesem Zeitpunkt vom Modul noch nicht als "lauffähig" anerkannt wird.

Man müßte also eine Verzögerung einbauen (z.B. ein at anlegen, welches dann 10 Sekunden später den Text vorliest).

Alternativ könnte auch bei einem nicht bereiten Player vielleicht kurze Zeit gewartet werden, ob der Player nicht doch bereit wird, und die Nachricht dann lostreten? So eine Art 10 Sekunden Puffer? Wenn der Player bis dahin nicht fertig ist, wäre es sinnvoll die Nachricht zu verwerfen.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Chris1540

Hallo Ronny,

ich habe auch Deine Readingsgroup nachgebaut. Die sieht echt klasse aus und funktioniert auch.
Dennoch habe ich da noch Fragen. Ich möchte imFloorplan auf einem 7" Tablet mehrere Player über Deine Readinggroups darstellen. Leider ist Deine größe, wenn ich diese 1 zu 1 übernehme zu lang,
und man müsste am Bildschirm scrollen um den unteren Teil zu sehen.
Ich würde gerne diese Groups etwas kleiner (auch wenn es dann ggf etwas fummelig wird) darstellen. Wie kann ich das anstellen? Wo muss ich da ansetzen?

Nächste Frage wäre, wenn ich mit dem Player einen Verstärker einschalten will, wie würde ich da vorgehen? Ich habe zum einen bei einigen Raspi`s einen seperat über HM geschalteten Verstärker davor, bzw auch über die Logitech Harmony. Diese sollen sowohl beim einzelnen einschalten, als auch wenn ich mit anderen Playern synce eingeschaltet bzw ausgeschaltet werden.

Noch mal vielen Dank für diese Klasse umsetzung.

Gruß Chris

RoBra81

Zitat von: Chris1540 am 10 Juni 2015, 19:44:59
Wie kann ich das anstellen? Wo muss ich da ansetzen?

Da gibt es verschiedene Möglichkeiten, anzusetzen:
- du kannst statt des knob-Widgets für die Lautstärke einen Slider nutzen (wie das geht kannst du meiner zweiten Readingsgroup entnehmen)
- du kannst das knob-Widget kleiner machen: width und heigth bei
'volume' => 'volume:knob,min:0,max:100,width:180,height:150,fgColor:yellow,skin:tron,thickness:0.3,angleoffset:-125,anglearc:250'
- du kannst das coverart-Bild kleiner machen: width bei
valueSuffix { 'coverarturl_remote' => '" width="180" onError="this.src=\'http://192.168.18.10:8085/fhem/images/default/cover_200x200.png\';;" >' }
- du kannst andere Symbole verwenden
- du kannst Zeilen weglassen
- du kannst die Schrift der ReadingsGroup über das Style-Attribut anpassen (CSS)
...

Ronny

ChrisD

Hallo,

@Rince:

ZitatEin neuer Fehler hat sich allerdings eingeschlichen:
Wenn man direkt beim Start von fhem (global initialized) eine TTS Ansage lostritt, kommt diese nicht mehr, da der Player zu diesem Zeitpunkt vom Modul noch nicht als "lauffähig" anerkannt wird.

Dies kommt durch eine Änderung in der Version 0038. Falls ein Player nicht 'present' ist, werden Befehle an ihn ignoriert. Bisher wurde die Befehle weitergegeben und führten zu falschen Zuständen und Anzeigen im Modul. Ich habe dies in der Version 0040 erstmal rückgängig gemacht. Kannst du testen ob es damit wieder funktioniert ?

@Chris1540:

Du kannst den Verstärker direkt über das SB_PLAYER-Modul schalten lassen. Dazu musst du den Namen des Schalters in der Definition des Players mit angeben, z.B:
00:11:22:33:44:55 ampl:meineHMSteckdose
Eine kurze Beschreibung zu der Option 'ampl' und dem Attribut 'amplifier' findest du im 1. Beitrag.

Grüße,

ChrisD


Rince

Teste es heute Nachmittag.
Hast du auf die Schnelle eine Idee, weshalb meine Geräte oft auf State "off" gehen?

Wenn ich am Server einen statusRequest mache sind sie sofort wieder alle "on"


Hier ein Player, auf dem grade B5 läuft und dessen State off ist:
AMPLIFIER  none
   ARTWORKURL http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png
   CANPOWEROFF 1
   COVERARTLINK none
   COVERARTURL http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png&h=50&w=50
   COVERID    -112401648
   DEF        02:0f:06:82:ae:7c
   DISPLAYTYPE none
   FAVREF
   FAVSELECT  B5_aktuell_900_Nachrichten
   FAVSET     favorites
   FAVSTR     Canon_in_D_1997_-_Remaster,filemediaFritteMusikSamplerZX3German_Top_100_Single_Jahrescharts_2014004-andreas_bourani_-_auf_unsmp3,ROCK_ANTENNE_Erding_Freising_Ebersberg_879_Pop,B5_aktuell_900_Nachrichten,Ohrmuschel_Radio_924_Classic_Rock,ANTENNE_BAYERN_1033_Pop
   FHEMUID    020f0682ae7c
   IODev      SqueezeBoxServer
   ISREMOTESTREAM 1
   LASTALARM  1
   LASTANSWER status - 1 tags:Kcu player_name:cubie player_connected:1 player_ip:192.168.5.31:34611 power:1 signalstrength:0 mode:play remote:1 current_title:B5 aktuell time:1741.8871111393 rate:1 mixer volume:80 playlist repeat:0 playlist shuffle:0 playlist mode:off seq_no:0 playlist_cur_index:0 playlist_timestamp:1433996400.09838 playlist_tracks:1 remoteMeta:HASH(0x7f794d8) playlist index:0 id:-112401648 title:Bundestagsjuristen kritisieren offenbar Vorratsdaten-Gesetz artwork_url:http://cdn-radiotime-logos.tunein.com/s24903q.png coverid:-112401648 url:http://br-mp3-b5aktuell-m.akacast.akamaistream.net/7/779/142694/v1/gnl.akacast.akamaistream.net/br_mp3_b5aktuell_m
   LASTInputDev SqueezeBoxServer
   MODEL      squeezelite
   MSGCNT     22662
   NAME       cubie_SB_PLAYER
   NR         289
   NTFY_ORDER 50-cubie_SB_PLAYER
   PLAYERIP   192.168.5.31:34611
   PLAYERMAC  02:0f:06:82:ae:7c
   PLAYERNAME cubie
   SBSERVER   192.168.5.31:9000
   SERVERPLAYLISTS Peter_1,Peter_10,Peter_11,Peter_12,Peter_2,Peter_3,Peter_30,Peter_5,Peter_6,Peter_7,Peter_8,Peter_9
   STATE      off
   SYNCED     no
   SYNCGROUP  none
   SYNCGROUPPN none
   SYNCMASTER none
   SYNCMASTERPN none
   SYNCMASTERS wz_Squeeze_Audio,Andis_TapsBrett
   SYNCVOLUME 0
   SqueezeBoxServer_MSGCNT 22662
   SqueezeBoxServer_TIME 2015-06-11 06:49:04
   TYPE       SB_PLAYER
   WILLSLEEPIN ?
   Readings:
     2015-06-11 06:45:01   alarmsDefaultVolume 50
     2015-06-11 06:45:01   alarmsEnabled   on
     2015-06-11 06:45:01   alarmsFadeIn    on
     2015-06-11 06:45:01   alarmsSnooze    9
     2015-06-11 06:45:01   alarmsTimeout   60
     2015-06-11 06:49:04   connected       1
     2015-06-11 06:49:04   coverarturl     http://www.mysqueezebox.com/public/imageproxy?u=http%3A%2F%2Fcdn-radiotime-logos.tunein.com%2Fs24903q.png&h=50&w=50
     2015-06-11 06:48:54   currentAlbum
     2015-06-11 06:48:54   currentArtist
     2015-06-11 06:20:01   currentMedia    http://br-mp3-b5aktuell-m.akacast.akamaistream.net/7/779/142694/v1/gnl.akacast.akamaistream.net/br_mp3_b5aktuell_m
     2015-06-11 06:48:54   currentPlaylistName B5 aktuell 90.0 (Nachrichten)
     2015-06-11 06:45:01   currentPlaylistUrl
     2015-06-11 06:48:54   currentTitle    Bundestagsjuristen kritisieren offenbar Vorratsdaten-Gesetz
     2015-06-11 06:48:54   duration        0
     2015-06-11 06:48:54   favorites       B5_aktuell_900_Nachrichten
     2015-06-08 20:26:09   lastir          ?
     2015-06-11 06:20:00   lastunkowncmd   favorites playlist play item_id:a0ea99ce.2
     2015-06-11 06:49:04   playStatus      playing
     2015-06-11 06:49:04   playlistCurrentTrack 1
     2015-06-11 06:49:04   playlistTracks  1
     2015-06-11 06:48:54   playlists       B5_aktuell_900_Nachrichten
     2015-06-11 06:49:04   power           on
     2015-06-11 06:49:04   presence        present
     2015-06-11 06:49:04   repeat          off
     2015-06-11 06:49:04   shuffle         off
     2015-06-11 06:49:04   signalstrength  wired
     2015-06-10 22:48:46   state           off
     2015-06-11 06:49:04   synced          none
     2015-06-10 21:22:48   talkStatus      idle
     2015-06-11 06:49:04   volume          80
     2015-06-11 06:49:04   volumeStraight  80
   Helper:
     ALARMSCOUNT 0
     CoverOk    0
     lastGetStatus 1433997901.43663
     lastModeQuery 1433998134.55435
     lastTimeQuery 1433998134.56152
     playlistIds -112401648
     ttsExtstate 0
     ttsVolume  100
     ttsstate   0
     Sb_player_favs:
       Antenne_bayern_1033_pop:
         ID         a0ea99ce.1
         URL        http://opml.radiotime.com/Tune.ashx?id=s42824&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       B5_aktuell_900_nachrichten:
         ID         a0ea99ce.2
         URL        http://opml.radiotime.com/Tune.ashx?id=s24903&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Canon_in_d_1997_-_remaster:
         ID         a0ea99ce.5
         URL        media/Fritte/Musik/OST/Shades%20of%20Grey%20-%20das%20Klassik%20Album/05%20-%20Canon%20in%20D%20(1997%20-%20Remaster).mp3
       Ohrmuschel_radio_924_classic_rock:
         ID         a0ea99ce.3
         URL        http://opml.radiotime.com/Tune.ashx?id=s101658&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Rock_antenne_erding_freising_ebersberg_879_pop:
         ID         a0ea99ce.4
         URL        http://opml.radiotime.com/Tune.ashx?id=s48784&formats=aac,ogg,mp3,wmpro,wma,wmvoice,real&partnerId=16
       Filemediafrittemusiksamplerzx3german_top_100_single_jahrescharts_2014004-andreas_bourani_-_auf_unsmp3:
         ID         a0ea99ce.6
         URL        media/Fritte/Musik/Sampler/ZX3German%20Top%20100%20Single%20Jahrescharts%202014/004-andreas_bourani_-_auf_uns.mp3
     Sb_player_playlists:
       Peter_1:
         ID         19732
         NAME       Peter_1
       Peter_10:
         ID         19729
         NAME       Peter_10
       Peter_11:
         ID         19730
         NAME       Peter_11
       Peter_12:
         ID         19731
         NAME       Peter_12
       Peter_2:
         ID         19721
         NAME       Peter_2
       Peter_3:
         ID         19722
         NAME       Peter_3
       Peter_30:
         ID         19718
         NAME       Peter_30
       Peter_5:
         ID         19724
         NAME       Peter_5
       Peter_6:
         ID         19725
         NAME       Peter_6
       Peter_7:
         ID         19726
         NAME       Peter_7
       Peter_8:
         ID         19727
         NAME       Peter_8
       Peter_9:
         ID         19728
         NAME       Peter_9
     Sb_player_syncmasters:
       Andis_tapsbrett:
         MAC        00:09:4c:20:c1:41
       Wz_squeeze_audio:
         MAC        e8:4e:06:11:b8:29
     Alarmplaylists:
       Aktuelle_wiedergabeliste_verwenden:
         category   Aktuelle Wiedergabeliste
         title      Aktuelle Wiedergabeliste verwenden
         url        Aktuelle Wiedergabeliste verwenden
       Filemediafrittemusikostshades_of_grey_-_das_klassik_album05_-_canon_in_d_1997_-_remastermp3:
         category   Favoriten
         title      Canon in D (1997 - Remaster)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Chris1540

Hallo
@ChrisD

Prima, Danke für die Hilfestellung. Den Verstärker konnte ich so einbinden. Aber wie mache ich das wenn ich bei meiner Harmony einen set Befehl zum starten meines Verstärkers absetzen möchte?

@Ronny

Du hast ja bei Dir die Playlist eingebunden, ich würde aber gern zusätzlich die "favorites" mit einbinden. Ich verzweifel gerade an den Readingsgroup. Könntest Du mir bitte da helfen?

Gruß Chris