Codevorschlag für das YAMAHA_NP Modul

Begonnen von ra666ack, 06 Januar 2015, 00:58:34

Vorheriges Thema - Nächstes Thema

tomster

Zumindest ich bin jetzt gewarnt. Danke ;-)

Bislang gefällt mir die aktuelle Version sehr gut. Auch wenn ich meine Readings im FTUI anpassen muss und ich nunmehr wieder Probleme mit meiner input-Reading-abhängigen-Swiper-Darstellung (schönes Wort) habe. Ich habe Swiper-Tabs definiert, die in Abhängigkeit des input-Readings angesteuert werden. Leider löst jedoch jede Abfrage des Yamahas (in meinem Fall 5 Sekunden) im FTUI anscheinend auch ein Event beim input-Reading aus, obwohl es nicht im FHEM-GUI dargestellt wird (kein roter Time-Stamp). Dennoch springt mein Swiper in einen andern Tab und bleibt da. So ganz bin ich noch nicht dahinter gestiegen, was die Ursache ist. Ich hoffe, das war halbwegs verständlich geschrieben...

Zudem ist mir aufgefallen, dass seit der neuen Version die SmartPhone-App deutlich langsamer zu sein scheint. Die WebRadio-Listen brauchen zwischen ewig bis unendlich um zu laden. Ob sich das Auslesen der Listen von Modul und App dabei in die Quere kommen kann ich aber (noch) nicht sagen. Ich vermute dies jedoch stark. Oder ist das die Sache mit den 8'er-Blöcken?

martinp876

Wie gesagt, wenn die Masse zufrieden ist mache  ich mich selbständig - kein Thema.
Wenn die Änderungen gewünscht sind kann ich es bereit stellen.
Aktuell brauch ich noch eine Funktion um direkt eineSender oder einen Stream anzuwählen. Alles ander ist einfach nicht sinnvoll.
Der Player zickt allerdings - sehr tgäge, wenig handshake.

ra666ack

Hi,

grundsätzlich finde ich den Funktionsumfang recht schick. Speziell die Timereinstellung über Attribute. War bis jetzt ne Krücke.
Ich würde schon versuchen, das Abscannen der Playerlisten beizubehalten.
Evtl. könnte eine Unterscheidung, ob FHEM intern oder vom anderen Gerät aus zugegriffen wird, implementieren.
Oder durch ein Attribut, oder, oder. Ich mach mir paar Gedanken. Kann allerdings etwas dauern...

Gruß

Radek


martinp876

Hallo Radek,
Ich halte nichts von 2 Interfaces.
Mit meinem vorgeschlagenen kann man m.e. alles machen was vorher ging. Einige Kommandos sind anders, OK.
2 Interfaces ist der 3fache Aufwand und hat 4mal so viele Fehler.
Aber es ist eine Umstellung, klar.
Aktuell arbeite ich am kommenden direktPlay. Die aktuelle Anleitung um z.b. einen wunschkanal einzuschalten mit Sleep ist für mich eine Krücke die auf lange Sicht nicht tragbar ist.
Mit direktPlay wird der Input und der Stream in einem geschaltet, komfortabel und schnell hoffe ich.
Beispiele:
direktPlay aux1 # einfach, setzt nur den Input
direktPlay cd:Track_06 # schalte Input auf CD und spiele Tracks 06
direktPlay FM:97.32 # schalte auf Tuner, Band FM, Frequenz 97.32
direktPlay DAB:GONG #input Tuner, Band DAB, suche preset Stationen und schalte auf die erste, die GONG enthält
direktPlay DAB:ID55 #input Tuner, Band DAB, suche preset Stationen und schalte auf die erste, die ID55 enthält
So weit habe ich es schon. Offen ist noch
direktPlay netradio:Bookmarks,Rock,starfm #input netradio, level1 enthält Bookmark, level2 Rock, level3(Station?) Enthält starfm
Also eine Direktwahl einer netradio Station, die man gefunden hat.

Funktioniert dieser Level direktPlay brauche ich noch eine Funktion, Bookmarks zu setzen.
Die Inputs für direktPlay werden mit Kurznamen definiert. Damit kann sich jeder über ein
SetBM myStation # eine Direktwahl seines Senders, Servers, netradio,cdtracks oder USB Songs starten kann.

So muss es gehen. Die Einstellung der Sender ist etwas aufwändig. Die Anwahl dann ein click aus dem Web Interface.

Gruss Martin

tomster

Genau die von Martin beschriebene Funktionalität ist das was dem Modul noch fehlt. OK, eigentlich fehlt es eher dem Player selbst:

Was bringt das Schalten auf Webradio, wenn ich mich dann mit der Fernbedienung durch eine Trilliarde Sub-Menüs clicken muss um endlich auch einen Radiosender hören zu können?
Selbst Bookmarks benötigen mehrere Aktionen. Und noch nicht mal ein AutoPlay des letzten Webradiosenders hat das Teil...

Wenn man mit dem Modul und z.B. FTUI diese Unzulänglichkeiten ausmerzen könnte, wäre das mehr als genial. Ich darf mich dafür jetzt schon bei Euch beiden bedanken. Hervorragendste Arbeit!

DAB scheidet für mich leider aus, da ich bei mir keine DVB-T-Sender empfangen kann; nur DVB-C. Den Frequenzbereich kann aber der Yamaha nicht :-(

ra666ack

#65
Hi zusammen,

alles gut. Keine 2 Module. Bin froh, dass jemand mit so viel Enthusiasmus dabei ist. Habe mich vermutlich falsch ausgedrückt.

Ja, die Usability is wesentlich besser geworden. Tomster, der treue Poweruser hat es ja bestätigt :)

Meine Idee ging in die Richtung, wenn man den Player nicht von FHEM aus bedient, sondern von extern, sollte FHEM die Player Menüs nicht automatisch einlesen. Oder zumindest konfigurierbar machen. Ich mach viel über die App. Dabei spinnt das ganze. Übrigens, beim Yamaha_AVR würde man ein ähnliches Problem haben.

(Das Modul funktioniert auch, wenn der NP als DLNA Renderer benutzt wird. Davor muss man den Eingang auf Server setzen).

Martin, poste mal das Module, wenn aus deiner Sicht fertig.

Gruß

Radek

Tomster, ohne DAB entgeht dir was. Manchmal hilft schon eine simple "Wurfantenne". Gibts keine Weichen? Kabel und Terrestrisch mit Verstärker?

tomster

#66
Zitat
Tomster, ohne DAB entgeht dir was. Manchmal hilft schon eine simple "Wurfantenne". Gibts keine Weichen? Kabel und Terrestrisch mit Verstärker?

Ja, das glaub ich gern; allein schön wegen der wunderbaren Titel/Artist/etc -Informationen wäre das fein.  In meinem Fall (Österreichische Berge, fernab von Wien) würde ich aber die "erforderlich Länge" der Wurfantenne so auf ca. 400km schätzen ;-)
Unser Kabelanbieter hätte zwar ein wunderbares Sortiment an Digitalradiosendern im Bouquet, aber der Empfang dieser scheitert am Frequenzbereich meines Yamahas. Der kann anscheinend wirklich nur DAB-T, kein DAB-C.

ra666ack

Vergiss DAB. Gibt Schlimmeres.
Ich muss um 6:00 aufstehen und 1 1/2 h fahren, um bei dir um die Ecke zu Beginn des Ski-Tages am Lift zu stehen. 8)

tomster

Das muss ich auch. Ich wohn ja nicht dauerhaft dort. Aber wochenends würd ich - neben Skifahren - auch gern DAB-Radio hören. Geht halt leider nicht...

martinp876

Unter der Woche geht bei mir nichts. Muss am Wochenende wieder weiter machen.
Das automatische Suchen kann man ja abschalten, habe ich nicht angetastet.

Gernott

Hallo

Habe gerade mal die letzte Version testweise installiert. Das Modul schreibt allerdings selbst bei Verbose 0 solchen Text ins Logfile
2017.01.13 21:17:53 1: General >>>>  :    #statusRequest # basicStatus

Kann man das abstellen?

Gruß
G.

martinp876

so, mal was zum testen.
das Kommando
set pa_stereo directPlay cd:Track_09
set pa_stereo directPlay cd
set pa_stereo directPlay DAB:55
set pa_stereo directPlay DAB:GONG
set pa_stereo directPlay DAB:ENERG
set pa_stereo directPlay FM:97
set pa_stereo directPlay usb:Wei,Swing,Rockin
set pa_stereo directPlay DAB:ENERG
set pa_stereo directPlay server:Logitech,Musik,Alben,Themselves,Cinderella
set pa_stereo directPlay netradio:Bookmarks,Normal,ROCK

ein erster Versuch.
Es fehlen dann noch die komfort kommandos.
Das Verhalten des Players ist recht träge. Das Protokoll war auch sehr löchrig - eben nur für manuellen, langsamen betrieb ausgelegt.
Auch jetzt besteht noch Raum für Optimierungen

set pa_stereo directPlay server:Logitech,Musik,Alben,Themselves,Cinderella
furntioniert wie folgt:
Input Server wird gesetzt (wenn nicht schon geschehen
Der Player sucht die Level
Logitech,Musik,Alben,Themselves,
- also den ersten String welcher "Logitech" enthält und wählt diesen als "level1"
so geht es die Listen rauf oder runter.
Am schluss wird das Lied gewählt.
Analog bei netRadio oder DAB.
Bei DAB kann man auch Nahmen eingeben - wenn diese vorhanden sind
Diese sind vorhanden wenn man es einmal angewählt hat und es in den Readings steht. Das ist sehr Unsicherer - werden ich noch ändern. Was immer geht ist die ID auswähen "ID54" - aber nicht lesbar.

Ist noch einigen zu tun, bis man live gehen kann - testen geht schon einmal.
Die Kommandos in welchen man sich dann die eigenen Bookmarks setzen kann kommen noch. Diese werden dann directPlay  nutzen.

martinp876

so next version:
Neu sind die Kommandos zu den Favoriten.
im hidden attribut .favList wird eine abkürzung zu den Favoriten gespeichert.
wir erinnern uns:
directPlay <input>:<streamLvl2>,<streamLvl3>,<streamLvl4>
schaltet auf den entsprechenden Stream. wobei StreamLvl. eine semi-regexp sind. Es wird gesucht was matcht. Da blank nicht erlaubt ist muss man ein "." einbauen. Gleiches gilt für ",;:"

FavDefine <name>:<input>:<streamLvl2>,<streamLvl3>,<streamLvl4>
definiert einen <name> für einen Input-Stream
favDelete #löscht diesen wieder
favList #zeigt alle definierten Favoriten
favPlay #schaltet auf den Stream

Damit kann man ein
webCmd favPlay
einstellen und seinen Stream aus einem Dropdown selektieren.

Verbessert ist auch das Speichern der Sendernamen für DAB. Das passiert bei save und shutdown in einem weiteren hidden reading.

Es fehlen sicher noch ein paar sicherheitsabfragen... aber prinzipiell geht es

Beta-tester, kommentare,...

konrad8

Danke für beide (!) Module. Habe vor einiger Zeit mit dem eingecheckten angefangen und jetzt die obige eingespielt.
Mein use case, bin faul, der CRX-N560D steht in der anderen Ecke des Raumes, ich möchte vom PC steuern, bzw auch mobil. Dazu wäre mein Plan ein TabletUI aufzusetzen, hab mich aber noch nicht ernsthaft damit beschäftigt. Käme mir auch entgegen, da man im UI die Infos besser darstellen kann, als auf dem 2zeiligen Display.

Ich habe zwei Beobachtungen:
1) bei DAB schein etwas mit den Preset-Sendernamen und der Zurodnung zu den ListItems schiefzugehen, ich hatte dann irgendwann ganz viel Bayern2.
2) Habe von einem QNAP NAS per MusicCenter Titel abgespielt, hatte den EIndruck, dass Springen zum nächsten Titel nicht funktioniert, kann aber auch mein "Unwissen" sein, muss mal schauen.

Hab in den letzten Tagen eifrig recherchiert, ich hätte gerne die Sendernamen bei den Presets direkt angzeigt, hier kommt heute nur die entsprechende ID, es müsste doch eine Möglichkeit geben, diese ID direkt abzufragen. In den verfügbaren Function Trees der AVRs gibt es die Info, aber der Tree der NP scheint anders zu sein. Interessanterweise gibt die NP APP das auch nicht her. Der Baum für Play_Control ist jedenfalls anders, wie ich im heutigen Modul gesehen habe.

martinp876

#74
das springen der DAB sender hatte ich auc schón, dachte es passt jetzt. Ich werden mir das scheduling noch einmal ansehen müssen.
Das Problem bei DAB ist, dass der Receiver die Daten nicht synchronisiert anzeigt. Es passiert, dass die ID sich beim Schalten schon ändert während der Sendername noch alt ist. Evtl. muss ich länger warten.
Die Yamaha-SW habe ich entwerder nicht verstanden oder es ist schlicht Mist. Zumindest was die Konsistenz betrifft.
Das ich nicht beurteile kann  - ob bei schlechterem Empfang die Verzögerung der Korrektur des Sendernamens noch länger dauern kann. Dies zu parsen wird dann eher abenteuerlich.

Aber ja, ich werde die "flow-controll" strikter machen müssen Das sollte schon einmal helfen.
den AVR habe ich nicht, dies ist nur für den 560D getestet.

Ich nutze als Server Kodi - das funktioniert quasi garnicht. Es wird immer das alte Lied noch 10-20sec gespielt. Ist aber auch bei der Yamaha app so. Also kein FHEM problem, aber ein Problem.

PS: die DAB sendernamen habe ich geprüft. Funktioniert einwandfrei ein mir.
Hast du mit der neusten Version getestet? Möglich, dass es bei dir länger dauert, bis die sendestation empfangen und gemeldet wird. Das kann zu Problemen führen. Oder schnelles zappen. Habe ich nicht getestet.