Hallo zusammen,
ich habe mal die ganzen offenen Entwicklungsstränge geschlossen, und einen Abschluß ins Subversion eingecheckt.
Wichtigste Erneuerung: Automatische Bookmarks
Nach Anregung von Andre (justme1968) habe ich automatische Bookmarks eingebaut. Diese arbeiten nach Konfiguration automatisch und im Kontext des SubProzesses, und damit sehr nah an den Ereignissen der Player.
Im Wiki habe ich ein eigenes Kapitel für die Einrichtung des Features beschrieben: http://www.fhemwiki.de/wiki/SONOS#Zusammenfassung_der_Bookmarkeinrichtung (http://www.fhemwiki.de/wiki/SONOS#Zusammenfassung_der_Bookmarkeinrichtung)
Des Weiteren habe ich ein paar neue Setter eingebaut, die sich auf Surround und Sub beziehen, sowie das AudioDelay der PlayBar einstellen können.
Folgendes ist jetzt eingebaut:
- Zwei weitere Ausnahmen für das Neustarten des SubThreads eingefügt.
- ControlPoint.pm: Beim Renew von Subscription wurde aus dem "carp" ein "croak" gemacht. Dadurch greifen die darüberliegenden Auffangmassnahmen.
- Neues Feature: Bookmarks für Playlisten und Titel
- Changelog in der Quelltextdatei enthält nur noch für die letzten vier Veröffentlichungen. Die komplette Liste ist nur noch im Wiki vorhanden. Dadurch wird die Dateigröße geringer.
- SetEQ eingebaut, um Subwoofer und Surroundeinstellungen vornehmen zu können: "SurroundEnable", "SurroundLevel", "SubEnable", "SubGain" und "AudioDelay"
Wie immer ab heute im SVN oder ab Morgen per Update...
Viel Spaß damit :)
Grüße
Reinerlein
hallo reiner,
ich bin eben erst dazu gekommen die bookmarks zu probieren.
die erste zeit bin ich darüber gestolpert das die attribute scheinbar nicht an den child prozess durchgereicht werden. erst nach einem disable 1 / disable 0 hat es dann funktioniert.
für einzelne lange files wie z.b. podcasts funktioniert alles sehr gut. die reaktionszeit ist absolut klasse. das geht so schnell das man nicht mal das springen merkt. klasse.
probleme habe ich aber noch mit hörbüchern die aus einzelnen traks/titel bestehen.
in meiner variante wurde der hash in diesem fall auf den album titel und nicht den track titel berechnet. der sprung punkt war dann titel nummer und position. dadurch wurden alle titel eines albums logisch zusammengefasst und der bookmark bezog sich auf das ganze album. d.h. ich konnte ein album irgendwo mitten drin abbrechen und beim nächsten start von anfang an (oder jeder anderen stelle vor dem bookmark) wurde wieder zum passenden titel an die passende stelle gesprungen.
das scheint mir bei deiner version (noch :) ) nicht zu funktionieren. alle bookmarks sind immer nur titelbasiert.
bekommen wir das noch besser hin ?
gruss
andre
Hi Andre,
dafür gibt es eigentlich die beiden Bereiche für Playlist-Bookmarks und Titel-Bookmarks.
Bei den Playlist-Bookmarks geht es um das Speichern des aktuellen Titels der aktuellen Abspielliste und bei den Titel-Bookmarks um die Position innerhalb der Titels.
Eigentlich sollte deine Anforderung durch eine Kombination beider möglich sein (zumindest wenn dein Hörbuch die gesamte aktuelle Abspielliste ausmacht).
Am Besten die RegEx-Angaben für Player und/oder TrackURI so genau wie möglich auf den benötigten Anwendungszweck fokussieren. Sonst gibt es u.U. ungeahnte Effekte bei der Wiedergabe von "normalen" Titeln :)
Oder meinst du eine andere Art des Features?
Grüße
Reiner
P.S.: Das mit dem (Nicht-)Durchreichen zum Subprozess zur Laufzeit ist eher Absicht. Ich hatte mir gedacht, dass man ja erst alle Einstellungen komplett fertig machen möchte (gerade die zwei Bereiche möchte man ja vielleicht zusammengehörig konfigurieren), und dann die Sache erst scharfstellen möchte.
Aber ich werde dazu einen entsprechenden Kommentar im Wiki ablegen...
das hörbuch ist nicht die gesamte liste.
das problem ist vielleicht das ich eigentlich überhaupt keine listen verwende. es nervt mich sogar das die aktuelle liste immer allen möglichen kram enthält den ich nicht gespielt habe :)
es kann durchaus sein das in der aktuellen liste ein paar alben musik sind, und ein paar hörbücher. diese sollten jeweils ein eigenes bookmark setzen. wenn ich dann nich ein hörbuch über jetzt spielen auswähle soll es auch ein eigenes bookmark bekommen.
ich habe gerade beide attribute auf all stehen und bekomme nur titelweise bookmarks. wenn ich mehret tracks eines solchen hörbuchs kurz anspiele hat jeder titel ein eigenes. ich kann beliebig hin und her springen und jeder titel springt zur eigenen gemerkten position. . das funktioniert perfekt. aber in diesem fall möchte ich ja ein bookmark für das ganze album haben. egal auf welche art ich es starte. wenn ich dann innerhalb des albums springe soll kein bookmark wieder her gestellt werden. erst wenn ich von etwas das nicht dieses album ist wieder zurück wechsle soll die letzte position wieder angesprungen werden.
ich glaube der knackpunkt ist das die abspielliste in meinem fall egal sein muss sondern der album titel das gruppierungs kriterium ist.
gruss
andre
Hi Andre,
OK, dann habe ich das jetzt verstanden. Ich mache mir mal Gedanken dazu...
In der jetzigen Variante funktioniert es nur auf der kompletten Abspielliste, also indem du ein Hörbuch durch "Liste ersetzen" zum Abspielen hinzufügst, dann sollte es zumindest mit dem anspringen klappen.
Grüße
Reiner
Hi Reiner,
wollte heute Abend eigtl. noch bischen das Bookmark-feature testen, allerdings läuft da irgendwas mit der PlayerDeviceRegEx schief.
z.B.
fhem-definition: Sonos_Schlafzimmer
sonos-app-definition: Schlafzimmer
bei bookmarkPlaylistDefinition: "Schlafzimmer:Sonos_Schlafzimmer", "Schlafzimmer:s_Schlafzimmer", "Schlafzimmer:s.Schlafzimmer", "Schlafzimmer:.*Sonos.Schlafzimmer.*"
wird nicht gespeichert und ich erhalte im Log nur:
2015.06.29 23:54:03.351 4: SONOS1: Calling SONOS_SaveBookmarkValues("undef", "undef") ~ SaveDir: "/opt/fhem/SonosBookmarks"
2015.06.29 23:54:03.350 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> /opt/fhem/SonosBookmarks
bei bookmarkPlaylistDefinition: "Schlafzimmer:..Schlafzimmer$"
funktioniert das speichern, nur was genau hat er denn da jetzt gefunden?
2015.06.29 23:57:28.053 3: SONOS1: Successfully saved Queue-Bookmarks of group "Schlafzimmer" to file "/opt/fhem/SonosBookmarks/SONOS_BookmarksPlaylists_Schlafzimmer.save"!
2015.06.29 23:57:28.053 4: SONOS1: Calling SONOS_SaveBookmarkValues("undef", "undef") ~ SaveDir: "/opt/fhem/SonosBookmarks"
2015.06.29 23:57:28.053 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> /opt/fhem/SonosBookmarks
Laut Wiki sollte die RegExp ja auf die fhem-def gehen, kannst du das mal prüfen, oder mach ich hier was falsch?
Danke und Gruß
Claudiu
Hi Claudiu,
die Meldungen sagen doch nur, dass es erfolgreich war., bzw. dass der Speichern-Vorgang aufgerufen wurde. Landen die Dateien denn nicht im Filesystem?
Wenn nicht, dann mal die Schreibrechte des Ordners überprüfen...
Im Normalfall ist Verbose 4 etwas zu hoch :) 3 ist deutlich besser...
Wenn du allein dein Schlafzimmer beachten möchtest, kannst du auch direkt den Namen angeben:
attr Sonos bookmarkPlaylistDefinition Schlafzimmer:Sonos_Schlafzimmer
Zum Testen einfach die Playlist des Schlafzimmers durch eine andere ersetzen, und wieder zurück-ersetzen. Dann sollte der Vorherige Titel wieder aktiviert worden sein...
Grüße
Reiner
Hi Reiner,
nein, wie geschrieben, bei bookmarkPlaylistDefinition: "Schlafzimmer:..Schlafzimmer$" wird eine Datei geschrieben,
bei den ganzen anderen Definitions wird keine Datei geschrieben.
Verbose 4 habe ich nur temporär angehabt um dem Fehler auf die Spur zu kommen, leider wurde hier trotzdem nichts hilfreiches ausgegeben :-\
Im Normalbetrieb läuft Sonos auf ruhigen verbose 1 :)
bei deiner Vorgeschlagenen definition taucht ja genau das Problem auf, dass das Device "Sonos_Schlafzimmer" nicht gefunden wird, respektive keine Datei geschrieben wird.
Gruß Claudiu
Hi Claudiu,
OK, dann hatte ich das falsch gelesen, sorry :-[
Im Log wird beim Start des SubProzesses die erkannte Definition ausgegeben. Was wird dort denn ausgegeben?
Komisch das ganze... natürlich geht das im Normalfall alles :)
Es sollte auch immer eine Datei für jede Gruppe geschrieben werden. Es kann halt sein, dass die Datei dann nur einen leeren Hash enthält, aber sie muss da sein...
Aber du hast auch nach der Konfigurationsänderung einen Neustart des SubProzesses veranlasst? Das ist wichtig, da die Konfiguration sinnvoll nur beim Start des Prozesses geladen werden kann...
Grüße
Reiner
Hi Reiner,
sooo, hab nun nochmal bisi genauer hingesehen was denn da so bei verbose4 geloggt wird...
Im Log taucht öfter "SONOS_Schlafzimmer" auf.
Wenn ich als RegEx "Schlafzimmer:SONOS_Schlafzimmer" angebe funktioniert es nun auch.
Das verwirrende ist allerdings dass in Fhem das Device als "Sonos_Schlafzimmer" angelegt ist.
Danke soweit schonmal - nun kann ich mal weitertesten mit den Bookmarks ;)
Im Anhang nochmal ein Log-mitschnitt, mit der alten RegEx wo es noch nicht funktionierte beim Start.
Gruß Claudiu
Hi Claudiu,
hmm... das mit der Groß-/Kleinschreibung ist komisch. Wird das vielleicht auf der Oberfläche nur anders angezeigt?
Ist das vielleicht einfach ein Alias?
Grüße
Reiner
Hab dir mal ein list des players angehangen, sieht für mich normal aus, kein alias und keine fhemweb täuschung ;D
Gruß Claudiu
EDIT:
Evtl. hilfreich, mein SONOS-Device ist groß geschrieben, also "SONOS" ;-)
Hi Claudiu,
da muss ich dir schon zustimmen :)
Aber wo kommt das her? Dem SubProzess werden zu Beginn alle Namen aller bekannten Player übertragen.
Das kannst du mal mit verbose 5 prüfen, da wird ausgegeben, was da so übertragen wird...
Wenn der Name falsch wäre, könnte er eigentlich auch keine Readings aktualisieren... das ist ja echt mysteriös...
Grüße
Reiner
Hier mal die verbose5 Flut, zum Glück gibts Morgen neue Logfiles ;D
Habe zwar einige male "Sonos_Schlafzimmer" drin gefunden, aber guck mal ob du was siehst ;)
Gruß Claudiu
Hi Claudiu,
danke für den Log. Ich habe da tatsächlich den Fehler drin gefunden :)
Bei bestehenden Devices wurde trotzdem der generierte Name im SubProzess verwendet. Das merkt man sonst nicht, aber bei den Bookmarks stimmt dann halt der zu vergleichende Devicename nicht (weil alles im SubProzess abgearbeitet wird).
Da ich heute nicht zum einchecken gekommen bin, versuche ich das Morgen...
Grüße
Reiner
Hi Reiner,
super dass du den Fehler so schnell finden konntest :)
Ok, spitze!, dann können ja nun die Bookmark Tests weitergehen! ;)
Gruß Claudiu
Hallo Claudiu,
sorry für die lange Dauer des eincheckens, aber irgendwie ist immer was dazwischen gekommen.
Aber nun ist es erledigt. Ab Morgen im Update oder ab Heute im SVN...
Grüße
Reiner
Hi Reiner,
kein Problem - erging mir leider nicht anders ;), bin auch noch nicht wirklich dazu gekommen weiter mit den Bookmarks zu testen. Werde das aber kommende Woche auf jeden Fall mal in Angriff nehmen und dich auf dem laufenden halten :-)
Danke nochmal! & Gruß Claudiu
Hallo,
habe unter /opt/fhem/ ein neues Verzeichnis sonosbookmarks angelegt.
Jetzt will ich, dass in diesem neuen Verzeichnis die bookmarks abgelegt werden.
Nach Eingabe von attr bookmarkSaveDir /opt/fhem/sonosbookmarks
werde ich dazu aufgefordert zuvor ein define einzugeben. define bookmarkSaveDir wirft einen Fehler.
Wie muss also der define-Befehl aussehen?
Die blöde frage kommt, weil ich ein Anfängr bin.
Danke,
Kurt
Du hast den Devicenamen vergessen
attr <DeinSonosDevice> bookmarkSaveDir /opt/fhem/sonosbookmarks
Hallo Tobias,
danke für Deine Antwort!
Aber ich komme beim Thema 'Bookmarks nicht so richtig weiter.
Folgendes tue ich:
define sonosbookmarker sonos type
attr sonosbookmarker bookmarkTitleDefinition:Kurt:all
attr sonosbookmarks bookmarkSaveDir:/opt/fhem/sonosbookmarks
save
shutdown restart
Diese Kommandos führen dazu, dass ich sonos übers WebUI nicht mehr ansprechen kann.
Schmeisse ich das Verzeichnis raus, kann ich Sonos wieder ansprechen. Bookmarks werden aber nicht geschrieben.
Wie könnte ich vorgehen, um das Problem zu lösen?
Danke und Gruß,
Kurt
Vielleicht noch eine Ergänzung:
In beiden Fällen zeigt mir das logfile:
"can't find type: Datei oder Verzeichnis nicht gefunden".
Weiß jemand Rat?
Danke und Gruß,
Kurt
Hallo Kurt,
dein define sieht für mich konfus aus.
Fakt ist: Die Attribute bookmarkTitleDefinition bookmarkSaveDir sind Attribute vom Sonos device.
Wenn Du Sonos nach Standard eingerichtet hast, hast Du bereits das Device Sonos und kannst dort in der GUI die attr einfach auswählen und befüllen.
Du brauchst kein "bookmark device"
Gruß Otto
Hallo Otto,
vielen herzlichen Dank!
Habe ich verstanden und probiere es heute Abend aus. Melde mich wieder.
Nochmals danke und Gruß,
Kurt
Hallo Otto,
das war's!
Endlich vorbei mit der rumspulerei bei Hörbüchern mit Sonos.
Danke und Gruß,
Kurt
Hallo,
neues Problem: Ich kann im logfile sehen, dass meine Bookmark-Datei geladen wird, aber ich sehe nicht, dass die Datei geschrieben/aktualisiert wird.
Effekt ist jedenfalls, dass ich Bookmarks nicht mehr nutzen kann. Ein Hörbuch beginnt immer von vorne.
Ideen?
Danke und Gruß,
Kurt