Sonos nun offiziell im SVN

Begonnen von Reinerlein, 17 Dezember 2014, 15:39:23

Vorheriges Thema - Nächstes Thema

Reinerlein

Hallo Sonos-Freunde,

es ist vollbracht!
Ich habe gerade das Modul im SVN eingecheckt. Es sollte also ab Morgen im Update drin sein ;D

Des Weiteren habe ich das Wiki entsprechend angepasst, und bei den Readings, bzw. Set- und Get-Befehlen eine Strukturierung vorgenommen, damit man vielleicht etwas leichter den passenden Befehl finden kann.
Das sind ja mittlerweile einige, und das macht es nicht gerade übersichtlicher...

Außerdem gibt es dann natürlich auch die Commandref auf Deutsch und Englisch, wobei dort nur alle Befehle mit Parametern beschrieben sind. Für nähere Hinweise und Tipps und Tricks bleibt weiterhin das Wiki die erste Wahl...

Grüße
Reinerlein

strauch

@Reinerlein, Dank und gratulation :-) Tolles Modul und seit den letzten Updates hab ich auch keine Abstürze mehr.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Loredo

Echt Klasse, ich freue mich sehr darauf damit die Feiertage zu verbringen  ;D
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

Hallo nochmal,

da habe ich vor lauter Schreck doch die Changelist für 2.6 vergessen :)

  • Die Zeichenkodierung bei Datenübernahme vom Zoneplayer kann nun über das Attribut characterDecoding eingestellt werden
  • Bei Gruppen-/LineIn-/SPDIF-Wiedergabe wird wieder die liefernde Zone angezeigt (als Albumname)
  • SetCurrentPlaylist hatte einen Tippfehler, und konnte dementsprechend nicht ausgeführt werden
  • Unter Ubuntu gibt es die SHA1-Library nicht mehr, sodass man dort eine andere einbinden muss (SHA)
  • Wenn bei den Methoden zum heraussuchen der FHEM-Devices etwas nicht gefunden wurde, dann wird jetzt eine Fehlermeldung mit dem gesuchten Merkmal ausgegeben
  • Es können jetzt IP-Adressen von der UPnP-Verarbeitung ausgeschlossen werden
  • Es wird nun ein fester Mimetype 'jpg' für Google Music und Simfy festgelegt
  • Beim Alarm-Reading-Setzen wurde etwas doppelt gesetzt, was u.U. zu Fehlern führen konnte
  • Die Read-Function wurde robuster gegen Übertragungsprobleme gemacht
  • Das Wiederherstellen des Playerzustands nach einem PlayURITemp sieht nun auch den PlayBar-Eingang vor
  • Es wird nun anstatt der WebCmd-Auflistung ein RemoteControl beim Erstellen der Komponenten erzeugt
  • Wenn sich doch noch ein UPnP-Device als Player ausgibt, dann wird dies nun etwas sicherer erkannt
  • Der Eingang einer Playbar kann nun auf anderen Playern wiedergegeben werden (mittels des Fhem-Namens)
  • Lesen wurde auf DevIo_SimpleRead umgestellt (stand auf DevIo_DoSimpleRead). Dadurch wird das Fehlerhandling vereinfacht.
  • Man kann die Zeit für das Warten auf den Subprozess nun beim Define mit angeben. Standardmäßig wird 8 verwendet.
  • Es wird nun in regelmäßigen Abständen (Intervall wie bei der Prüfung der Sonosplayer) geprüft, ob die Verbindung zum Subprozess noch funktioniert
  • Die Readings, die beim Start nicht geladen werden dürfen, werden beim Start von Fhem nun initialisiert. Damit wird die Fehlermeldung in MOTD verhindert
  • Der Zeitstempel in der Konsolenausgabe berücksichtigt nun auch die Global-Angabe, ob Millisekunden mit ausgegeben werden sollen
  • Der Start wurde komplett überarbeitet. Nun sind die einzelnen Wartebereiche in Timer ausgelagert, sodass Fhem nicht mit warten blockiert wird.
  • Die Wiederherstellung des alten Playerzustands nach einem PlayURITemp (und damit auch bei Speak) wird nun auch bei Dateien gemacht, die mit 0s Dauer ermittelt werden (da sie sehr kurz sind).
  • Der Aufruf der Google Text2Speech-Engine wird nun bei mehr als 95 Zeichen in mehrere Aufrufe aufgeteilt. Damit sind nun auch lange Texte über Google möglich, allerdings geht die Textmelodie u.U. verloren.
  • Man kann jetzt für die Speak-Erzeugung ein JPG- oder PNG-Bild angeben. Dies kann für jedes Speak-Programm getrennt erfolgen.
  • Beim Speak-Aufruf werden Umlaute nun auch korrekt an den Text2Speech-Generator (z.B. Google) übergeben, und korrekt in den MP3-Tag geschrieben
  • Spotify-Cover werden nun in größerer Auflösung (meist 640x640 Pixel) direkt von Spotify heruntergeladen, und enthalten dann nicht mehr das Spotify-Logo
  • Es gibt zwei neue Readings 'currentAlbumArtURL' und 'nextAlbumArtURL', die die Originalpfade zum eigenen Download darstellen
  • Es gibt nun zwei Prozeduren, die als Grundlage oder Beispiel für die Verwendung von ReadingsGroups dienen können: 'SONOS_getTitleRG' und 'SONOS_getCoverRG'
  • Beim automatischen Erzeugen der Sonos-Devices werden nun ReadingsGroups mit mehr Informationen erzeugt. Dies kann (und soll) auch als Vorlage für eigene Ideen Verwendet werden
  • Es gibt eine weitere ReadingsGroup-Vorlage (steht auch im Wiki), mit der Listen (Playlisten, Favoriten und Radios) dargestellt werden können
  • Es gibt zwei neue Attribute "proxyCacheTime" und "proxyCacheDir", die einen Cache im Proxy aktivieren
  • Es gibt drei neue Getter am Sonosplayer-Device: "FavouritesWithCover", "PlaylistsWithCover" und "RadiosWithCovers". Diese geben eine Datenstruktur zurück, die den Titel und das Cover des Elements enthält.
  • Die Prozeduren für die Anzeige des aktuellen und nächsten Titels verwenden nun ausschließlich DIV-Container (anstatt Tabellen). Dadurch klappt die Anzeige auch in einem Dashboard.
  • Die Standard-ReadingsGroup-Anzeige durch die Prozeduren sind nun Parametrisiert. Man kann die minimale Breite der Anzeige sowie den Abstand zwischen aktuellem und nächstem Titel in Pixel festlegen
  • Manche Sender (z.B. Capital Radio Türkiye) haben verbotene Newlines in den Titelinformationen mitgesendet. Diese werden nun entfernt.
  • Man kann das Cover nun anklicken (oder antippen), und erhält dann die Coverdarstellung in einer Vollbilddarstellung mit Abspielstatus und Titelinformationen
  • Es gibt zwei neue Befehle 'StartPlaylist' und 'StartRadio', die die gleichen Parameter wie ihre Pendants mit 'Load' am Anfang haben, nur dass hier das Abspielen gleich gestartet wird.
  • Es gibt jetzt ein Reading 'currentTrackPosition', welches bei jedem Transportstate-Wechsel (neuer Titel, Play/Pause/Stop usw.) gesetzt wird. Damit kann man die verbleibende Restzeit eines laufenden Titels ermitteln, bzw. den Pausezeitpunkt anzeigen.
  • Beim Wiedergeben von TV oder sonstigen externen Quellen, wird jetzt nicht mehr das 'leere' Cover angezeigt, sondern ein TV-Cover bzw. ein Default-Input-Cover

Ist ja auch eine erkleckliche Liste geworden...

Grüße
Reinerlein

rapster

Hi Reinerlein,

super!, hat es ja doch noch vor Weihnachten geklappt ;D 8)

Ich bin gespannt wie die Statistik für das Modul ausfällt!

Gruß Claudiu

der-Lolo


Frank Hell


Loredo

#7
Hi Reinerlein,


ich bin nicht sicher, ob der Checkin im SVN jetzt so erfolgreich war. Im Update Protokoll sehe ich nur die beiden Module, aber die ganzen zusätzlichen Libs nicht. Hattest du dich diesbezüglich nochmals mit Rudi und Co abgestimmt? Es kann sein, dass dafür ein paar Sonderlocken notwendig sind und/oder etwas umgestellt werden muss an deinen Modulen, damit es mit der Daten und Update-Struktur, wie sie Rudi vorgesehen hat, funktioniert.


Edit: Ich beziehe mich insbesondere auf den Ordner "./lib".
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 habe auch das Update heute Morgen gemacht und die Dateien im lib-Ordner nicht bekommen, habe das aber darauf zurückgeführt, dass ich die Dateien im lib-Ordner ja schon genau in derselben Version vorliegen habe.
Die beiden pm-Dateien wurden ja durch Subversion verändert (der ID-Eintrag), die anderen aber nicht...

Ich bin noch nicht dazu gekommen, dass auf einem jungfräulichen System zu testen. Das schaffe ich erst heute Abend...

Grüße
Reinerlein

justme1968

zusätzliche directories (und deren inhalt) werden im update nicht automatisch verteilt sondern müssen mit rudi abgestimmt werden weil er hier von hand eingreifen muss.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

m311331

Hi reinerlein,

dein modul ist super !
echt tolle Arbeit !!!

Vielen Dank dafür
und auch für den super schnellen Support hier im Forum  :)


mfg. m311331

Reinerlein

#11
Hallo zusammen,

nur kurz zur Bestätigung: Die notwendigen Ordner in "FHEM/lib" werden wirklich nicht per Update ausgeliefert. Das bedeutet, dass das Modul so für eine frische Installation nicht lauffähig sein wird.

Für diese Fälle muss man weiterhin das Modul aus dem Dev-Bereich herunterladen:

update all http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt


Rudi möchte diese Ordner nicht drin haben, da man sie wohl (zumindest eins) per CPAN erhalten könnte.
Da ich das noch nie selber verwendet habe (unter Windows verwende ich den ActivePerl Paketmanager, unter Debian verwende ich apt-Pakete), und auch keine Zerstückelung des Moduls möchte, wird es vielleicht auf einen Rückbau auf die Thirdparty-Installations-Möglichkeit hinauslaufen...

Aber mal schauen, was noch so passiert. Vielleicht kann man ja auch den Installationsmechanismus umbauen...

Grüße
Reinerlein

krikan

Hallo Reinerlein,

erst mal vielen Dank für Dein tolles Modul!

Dass man per cpan/apt-get Perl-Pakete nachinstallieren muss, haben wir doch bei diversen anderen Modulen auch. Wenn Du in der commandref danach suchst, wirst Du diverse Treffer haben. Darum halte ich es aus meiner User-Sicht für unproblematisch, wenn Du in der commandref auf diese Voraussetzung hinweist. Ziel: Ich hätte SONOS gerne im normalen Update, statt als Thirdparty-Install. Wenn es "nur" um die Update-Verteilung von Eigenentwicklungen geht, hat Rudi vielleicht auch keine Probleme, das ins update aufzunehmen.

Gruß, Christian

Loredo

ich stimme krikan da zu.

Zumal man auch möchte, dass Perl Pakete automatisch aktualisiert werden. Du solltest nicht der Lieferant dafür sein, wenn sie einfach in zB Debian enthalten sind. Müssten deine Module nur noch so geschrieben sein, dass sie nicht in FHEM/lib suchen :-)
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

Hallo,

wir reden hier von der UPnP-Lib, die ich angepasst habe, und die sowieso nicht per CPAN zu bekommen ist (scheint für Rudi auch kein Problem zu sein), und von einer MP3-Lib, bei dir ich mich noch vage daran erinnern kann, dass viele Versionen davon fehlerhaft waren (und ich noch nichtmal weiß, ob sie per CPAN o.ä. erhältich sind).
Ich möchte dabei sicherstellen, dass *genau* diese Dateien verwendet werden. Damit läuft alles. Wer weiß, wie es mit anderen Versionen aussieht...

Die anderen notwendigen Libs müssen ja sowieso installiert sein (Netzwerk u.ä.). Da ist die Version nicht so wichtig und ist dementsprechend auch nicht mit in der Lieferung...

Mir geht es um die Lauffähigkeit out-of-the-box für diese libs und darum, dass wir bei Fehlern nicht noch klären müssen, ob die richtigen libs installiert sind. Also eigentlich nichts dramatisches.

Grüße
Reinerlein