NEWS
Projektvorstellung Multiplayer
-
Hallo,
den debug werde ich gleich durchführen. Jetzt habe ich zum Thema Repeatmode auch einen issue aufgemacht, da ich hierbei eine Fehlermeldung erhalte:
https://github.com/angelnu/ioBroker.chr … /issues/11
chromecast.0 2017-06-09 22:03:40.076 error Chromcast_AZ - Sorry, update for chromecast.0.Chromcast_AZ.player.repeatMode not supported! chromecast.0 2017-06-09 22:03:27.988 error Chromcast_AZ - Sorry, update for chromecast.0.Chromcast_AZ.player.repeatMode not supported! chromecast.0 2017-06-09 21:54:18.432 info Chromcast AZ - Connected client
So den Debug habe ich angehängt. `
Ups, ich hatte das state für repeat addiert aber nicht implementiert X-)Danke für den issue. Ich schaue, was ich in den nächsten Tagen machen kann..
Sent from my VKY-L29 using Tapatalk
-
Ich habe Version 1.3.0 released - da sind alle repeat Möglichkeiten unter chromecast.<device>.playlist.repeat*
Das raw playlist ist unter chromecast.<device>.playlist.raw.
Falls es hilft, kann ich auch Methoden anbieten, um playlists zu verändern: https://github.com/angelnu/castv2-playe … er.js#L171</device></device>
-
Das hört sich ja fantastisch an. Wie kommen ich an das Release dran? Mein iobroker sagt noch, dass die Version 1.2.3. die aktuelle ist.
-
-
Sieh mal hier
http://www.iobroker.net/docu/?page_id=5 … stallieren
Gruß
Rainer `
Danke schön, das hat geholfen.
-
Da bin ich wieder.
Leider muss ich sagen, dass es hier noch ein Problem gibt. Nach der Installation erhalte ich jetzt Fehlermeldungen (Siehe logfile2.txt).
Dann habe ich den Adapter gestoppt, den gesamten Objektbaum gelöscht und neu gestartet.
Ergebnis: Objektbaum wurde wieder aufgebaut, aber die Fehlermeldung kommen immer noch.
Da Entwickler gerne auch noch einen debug wünschen, haben ich diesen in logfile3.txt angehängt.
1055_logfile2.txt
1055_logfile3.txt -
Uhm, ich kann es bei mir nicht reproduzieren aber ich habe eine Vermutung, woher es kommt.
Die Zeile mit Probleme ist /opt/iobroker/node_modules/iobroker.chromecast/lib/chromecastDevice.js:756 :
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state === undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Bitte ein Gleich von Zeile 756 entfernen so, dass es so ausieht:
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state == undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Danach Adapter neue starten und schauen, ob das Problem gefixt ist. Wenn ja, würde ich es in git fixen.
-
Uhm, ich kann es bei mir nicht reproduzieren aber ich habe eine Vermutung, woher es kommt.
Die Zeile mit Probleme ist /opt/iobroker/node_modules/iobroker.chromecast/lib/chromecastDevice.js:756 :
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state === undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Bitte ein Gleich von Zeile 756 entfernen so, dass es so ausieht:
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state == undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Danach Adapter neue starten und schauen, ob das Problem gefixt ist. Wenn ja, würde ich es in git fixen. `
Davor habe ich auch am meisten Angst, wenn ich meine Lösung präsentiere und die Probleme nicht nachstellen kann.
Aber deine Vermutung hat dich nicht getäuscht. Problem ist gefixt. Adapter läuft und ich werde die Funktionen jetzt testen.
Repeat single funktioniert schon einmal.
Rest werde ich berichten, wenn ich alles getestet habe. Wahrscheinlich morgen abend.
-
Uhm, ich kann es bei mir nicht reproduzieren aber ich habe eine Vermutung, woher es kommt.
Die Zeile mit Probleme ist /opt/iobroker/node_modules/iobroker.chromecast/lib/chromecastDevice.js:756 :
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state === undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Bitte ein Gleich von Zeile 756 entfernen so, dass es so ausieht:
if ( (id.indexOf(that._NAMESPACE) !== 0) || (state == undefined) || (state.from.indexOf(adapter.namespace) >= 0) ) return;
Danach Adapter neue starten und schauen, ob das Problem gefixt ist. Wenn ja, würde ich es in git fixen. `
Davor habe ich auch am meisten Angst, wenn ich meine Lösung präsentiere und die Probleme nicht nachstellen kann.
Aber deine Vermutung hat dich nicht getäuscht. Problem ist gefixt. Adapter läuft und ich werde die Funktionen jetzt testen.
Repeat single funktioniert schon einmal.
Rest werde ich berichten, wenn ich alles getestet habe. Wahrscheinlich morgen abend. `
Prima, dann werde ich Version 1.3.1 mit dem fix hochladen.Bei Open source gibt es keine Verpflichtungen: wenn Probleme gefunden werden, probiert man Sachen bis es funktioniert. Ich habe den chromecast Adapter kodiert, da ich es selber gebraucht habe und jetzt profitiere von Leute die Du, die Tolle Erweiterungen bauen, die ich benutzen kann
Sent from my Samsung Galaxy Note Pro 12.2 SM-P905 using Tapatalk
-
Hallo vegetto,
ich konnte nicht solange warten, und habe schon einiges getestet. Hier meine Erkenntnisse:
Lade ich eine neue Playlist dann erhalte ich:
raw : [{"itemId":9,"media":{"contentId":"http://192.168.2.5/Musik/Section1/Stefan%20Waggershausen/Hallo%20Engel/Stefan%20Waggershausen%20-%20Der%20Clown%20ist%20tot.mp3","metadata":{"title":"Der Clown ist tot","artist":"Stefan Waggershausen "},"contentType":"audio/mpeg","duration":193.649689},"autoplay":true},{"itemId":10,"media":{"contentId":"http://192.168.2.5/Musik/Section1/Stefan%20Waggershausen/Hallo%20Engel/Stefan%20Waggershausen%20-%20Fünf%20Uhr%20früh.mp3","metadata":{"title":"Fünf Uhr früh","artist":"Stefan Waggershausen "},"contentType":"audio/mpeg"},"autoplay":true},{"itemId":11,"media":{"contentId":"http://192.168.2.5/Musik/Section1/Stefan%20Waggershausen/Hallo%20Engel/Stefan%20Waggershausen%20-%20Hallo%20Engel.mp3","metadata":{"title":"Hallo Engel","artist":"Stefan Waggershausen "},"contentType":"audio/mpeg"},"autoplay":true},{"itemId":12,"media":{"contentId":"http://192.168.2.5/Musik/Section1/Stefan%20Waggershausen/Hallo%20Engel/Stefan%20Waggershausen%20-%20Nachtcafé.mp3","metadata":{"title":"Nachtcafé","artist":"Stefan Waggershausen "},"contentType":"audio/mpeg"},"autoplay":true}]
wobei itemId scheinbar nicht bei 0 oder eins beginnt sondern hochgezählt wird.
mit den Einstellungen:
playlist repeatAll state Chromcast_AZ.playlist.repeatAll state status repeatAllShuffle state Chromcast_AZ.playlist.repeatAllShuffle state status false repeatMode state Chromcast_AZ.playlist.repeatMode state status REPEAT_OFF repeatOff state Chromcast_AZ.playlist.repeatOff state status true repeatSingle state Chromcast_AZ.playlist.repeatSingle state status false
und
metadata channel Chromcast_AZ.metadata channel album state Chromcast_AZ.metadata.album state status artist state Chromcast_AZ.metadata.artist state status Stefan Waggershausen title state Chromcast_AZ.metadata.title state status Der Clown ist tot
Soweit so gut. Wenn jetzt die Liste abgearbeitet wird, ändern sich die metadata wie gewünscht und raw enthält nach wie vor die erwarteten Informationen (Ausnahme siehe oben).
Repeat_single: Funktion arbeitet wie erwartet, raw-Daten bleiben unverändert.
REPEAT-Shuffle aktiviert: Funktion arbeitet wie erwartet, aber die raw-Daten verstehe ich nicht vollständig.
raw : [{"itemId":12,"autoplay":true},{"itemId":11,"autoplay":true},{"itemId":10,"autoplay":true},{"itemId":9,"autoplay":true}]
Vermutung: Neufestlegung der Reihenfolge, aber warum sind alle weiteren Informationen verschwunden? Vermutung hat sich bestätigt.
Zum Verständnis: Schalte ich jetzt den RepeatMode aus, bleibt diese Reihenfolge scheinbar bestehen. Ist das so gewollt? Ich hätte erwartet, dass der Player dann auf die Originalreihenfolge zurück wechselt.
Einstellung:
repeatAll state Chromcast_AZ.playlist.repeatAll state status repeatAllShuffle state Chromcast_AZ.playlist.repeatAllShuffle state status true repeatMode state Chromcast_AZ.playlist.repeatMode state status REPEAT_ALL_AND_SHUFFLE repeatOff state Chromcast_AZ.playlist.repeatOff state status false repeatSingle state Chromcast_AZ.playlist.repeatSingle state status false
Zusammenfassung:
Grundsätzlich sind alle wichtigen Funktionen jetzt vorhanden.
Stop: Verhalten sollte noch einmal überprüft werden, mit Pause kann dies aber umgangen werden.
Play: Automaisch beim Laden der url2play und über status.playing erreichbar, wenn vorher nicht auf false gesetzt wurde.
Skip-Forward: über playlist.jump 1 durchführbar
Skip-Backward: über playlist.jump -1 durchführbar
Mute: über status.muted verfügbar
Loop: Einzelnes Lied wiederholen verfügbar über playlist.repeat-single
Repeat: Gesamte Playlist endlos über playlist.repeatAll verfügbar
Zufällige Wiedergabe: über playlist.repeatAllShuffle verfügbar.
Playlistenbearbeitung im Player: Diese Funktion benötige ich nicht, da meine Basis immer nur die lokal verfügbaren Playlisten sein können, um ein scrollen durch diese Listen mit der Bereitstellung der ID3Tags zu ermöglichen.
Jetzt fehlt mir eigentlich nur noch die aktive Liednr in deinem Adapter, damit ich daraus jeweils auf meine Liste verweise und die zugehörigen ID3tags darstellen kann.
So jetzt bin ich an der Reihe, dir eine Erweiterung zur Verfügung zu stellen. Ein paar Tage brauche ich aber noch, da ich den Cache-Prozess noch optimieren muß.
-
Ja, ItemID ist ein Art von UUID, die die Chromecasts intern benutzen.
Ich habe Version 1.3.1 auf git hochgeladen: da habe ich dem Fix von gestern und auch ein playlist.getCurrentItemId addiert.
Für das Stop benutze ich status.playing=false. Hast Du in deinem Player stop und pause oder nur stop?
-
Du beschämst mich. So schnell war noch keiner.
Vielen Dank für diese Lösung.
Mit dem Item kann ich gut leben. Habe den Adapter in der Version 1.3.1 ausprobiert und er funktioniert.
Du bist gut. Perfekt wäre, wenn du noch ein Statement zu dem Punkt mit dem raw Inhalt bei REPEAT-SHUFFLE abgeben würdest.
Beim dem Stop-Problem hast du mich wahrscheinlich noch nicht richtig verstanden:
Für das Stop benutze ich status.playing=false. Hast Du in deinem Player stop und pause oder nur stop?
Ich nutze auch status.playing=false, was meines Erachtens sinnvoll ist. Mein Problem ist nicht status.playing=false, sondern status.playing=true nach einem status.playing=false.
Dann geht der Adapter in den Status chromecast.0.Chromcast_AZ.player.playerState = BUFFERING und dann hängt sich der gesamte Adapter/Chromcast weg. Selbst ein Restart des Adapters liefert keine Besserung. Ein Neustart des Chromcast schon.
-
prima, ich freue mich, dass Du weiterkommst
Das raw nehme ich von die neueste status Update: das chromecast sendet leider nicht immer ein komplettes Status zurück…
Ich kann das fixen aber dafür brauche ich zu wiessen, wenn die abgekürzte raw kommt: kommt direkt nach Du REPEAT-SHUFFLE setzest oder nach die Playliste zum Ende kommt und es wieder von vorne anfängt? Wenn es direkt nach dem REPEAT-SHUFFLE kommt, wird die Playlist Reinfolge direkt geändert oder erst nach die Playliste komplet gespielt wurde?
Wo verwändest Du status.playing=true? Könntest Du da wieder url2play verwendet? Btw: bei mir geht es mit status.playing=true. Ich habe in jede Zimmer ein Schalter, um status.playing zu true/false zu setzen und damit kann man wieder die alte playliste spielen. Leider in deinem Log konnte ich nicht sagen, wass bei Dir anders ist...
Welches node.js Version verwendest Du? Auf welches Computer?
-
Na ja, das weiterkommen habe ich dir zu verdanken:
Also nun zu deinen Fragen:
Entwicklungsrechner: chromcast V1.3.1 auf Rasperry Pi 2 mit node version v6.10.0
Produktivrechner: chromcast V.1.2.3 auf Intel NUC (Ubuntu 16.4 mit node version v4.8.3
Raw-Problem: Laden der url2play, Player fängt an zu spielen. Jetzt setze ich Repeat_AllShuffle.
1. Lied läuft immer noch und raw bleibt unverändert. Der Player spielt aber die Lieder noch in der Reihenfolge ab.
Wenn die Playliste das erste mal abgearbeitet ist, ändert sich die Reihenfolge und raw hat die veränderten Werte (Liedreihenfolge) ohne die Zusatzinformationen.
Die Veränderungen am playing mache ich direkt auf den Adapter-Objekt chromecast.0.Chromcast_AZ.status.playing im iobroker Objekte.
Dieses Verhalten ist übrigends von beiden Rechnern das Gleiche
-
Raw-Problem: Laden der url2play, Player fängt an zu spielen. Jetzt setze ich Repeat_AllShuffle.
1. Lied läuft immer noch und raw bleibt unverändert. Der Player spielt aber die Lieder noch in der Reihenfolge ab.
Wenn die Playliste das erste mal abgearbeitet ist, ändert sich die Reihenfolge und raw hat die veränderten Werte (Liedreihenfolge) ohne die Zusatzinformationen. `
Ich habe Version 1.3.2 in github released, wo ich Status erkenne, die keine mediaInfo haben. Dann ignoriere ich die, und triggere ein neues getStatus. Kannst Du es bitte probieren? Ich bin nicht zu Hause so kann ich kann nur sehr begrenz testen.
Wenn es bei Dir funktioniert, würde ich das Version auch am npm releasen.
Btw: könntest Du bitte probieren, ob das problem bei status.playing=true auch ohne Playlist bei Dir vorkommt? Es ist mir ausgefahllen, da ich am meisten nur einzige URLs (radio Streamming) benutze. Playlists benutze ich nur, wenn ich auf alle Zimmern in der Wohnung "Wochenende" Musik abspiele und das mache ich ohne Schalter am Tablet.
-
Raw-Problem: Laden der url2play, Player fängt an zu spielen. Jetzt setze ich Repeat_AllShuffle.
1. Lied läuft immer noch und raw bleibt unverändert. Der Player spielt aber die Lieder noch in der Reihenfolge ab.
Wenn die Playliste das erste mal abgearbeitet ist, ändert sich die Reihenfolge und raw hat die veränderten Werte (Liedreihenfolge) ohne die Zusatzinformationen. `
Ich habe Version 1.3.2 in github released, wo ich Status erkenne, die keine mediaInfo haben. Dann ignoriere ich die, und triggere ein neues getStatus. Kannst Du es bitte probieren? Ich bin nicht zu Hause so kann ich kann nur sehr begrenz testen.
Wenn es bei Dir funktioniert, würde ich das Version auch am npm releasen.
Btw: könntest Du bitte probieren, ob das problem bei status.playing=true auch ohne Playlist bei Dir vorkommt? Es ist mir ausgefahllen, da ich am meisten nur einzige URLs (radio Streamming) benutze. Playlists benutze ich nur, wenn ich auf alle Zimmern in der Wohnung "Wochenende" Musik abspiele und das mache ich ohne Schalter am Tablet. `
Das mache ich doch gern.
Raw-Problem: Laden der url2play, Player fängt an zu spielen. Jetzt setze ich Repeat_AllShuffle.
1. Lied läuft immer noch und raw bleibt unverändert. Der Player spielt aber die Lieder noch in der Reihenfolge ab.
Wenn die Playliste das erste mal abgearbeitet ist, ändert sich die Reihenfolge <u>nicht</u> und raw hat die ursprünglichen (Liedreihenfolge) <u>mit</u> den Zusatzinformationen.
Stop/Start-Problem: Du hast leider nicht recht. Gebe ich nur eine Radio-URL an, dann funktioniert das status.playing=true/false auch nicht richtig. Scheinbar verabschiedet sich der gesamte Player. Ich setze bei mir die Version 1.24.88047 auf dem Player ein. Da ich nach einer Aktion mit status.playing=true/false auch von meinem Produktivrechner keine Aktivitäten mehr aus dem Player holen kann, könnte es vielleicht daran liegen, dass wir zwei unterschiedliche Versionen einsetzen.
Verwende ich nur eine mp3-Datei, dann ist es das gleiche Problem.
Sorry für die schlechten Nachrichten.
-
Ist das jetzt ok mit RAW und shuffle oder braucht man etwas mehr?
Am WE schaue ich welches Version vom Player habe ich…
Sent from my VKY-L29 using Tapatalk
-
Ist das jetzt ok mit RAW und shuffle oder braucht man etwas mehr?
Am WE schaue ich welches Version vom Player habe ich…
Sent from my VKY-L29 using Tapatalk `
Sorry vegetto, wenn ich mich unklar ausgedrückt habe.
Also ich habe das Ganze noch einmal durchgespielt, mit einer längeren Playliste.
Jetzt ist das Ergebnis gut. Die Raw-Daten bleiben wie sie sind und die currentItemId ändert sich zufällig. Ich habe mich beim ersten Test verwirren lassen.
Eine Anmerkung sei mir noch gestattet:
Es wird erst die Playliste komplett abgearbeitet, bevor die zufällige Wiedergabe einsetzt.
Das ist aber Kosmetik. Vielleicht hast du noch eine Idee. Grundsätzlich kann ich mit diesem Player jetzt meine Oberfläche fertig bauen.
Auch werde ich das spezielle start/stop-Verhalten mit berücksichtigen.
-
Vielleicht kannst du, nach du den shuffle aktivierst, ein jump machen, um zum Ende der Liste zu gehen…
Ich schaue danach, was die Dokumentation von Chromecast sagt.
Sent from my VKY-L29 using Tapatalk
-
Vielleicht kannst du, nach du den shuffle aktivierst, ein jump machen, um zum Ende der Liste zu gehen…
Ich schaue danach, was die Dokumentation von Chromecast sagt.
Sent from my VKY-L29 using Tapatalk `
Das werde ich dann auch so erst einmal einbauen.Aber ich habe jetzt noch eine ganz andere Frage:
Hast du eine Idee, wie ich das Web-Interface (iobroker vis Port 8082 dazu bringe, die m3u playlisten auch mit dem richtigen Content type auszuliefern).
Situation: Ich nehme meine lokalen Playlisten und möchte die nun über den bestehenden Dienst vom iobroker in den Chromecast laden.
Scheinbar funktioniert hierbei der content type nicht, wenn ich diese Datei über den normalen Browser öffnen, sehe ich den Inhalt. Mache ist das Ganze über einen Apache-Server, dass speichert er mir die Datei.
Gebe ich die Playliste direkt im chromcast ein (über iobroker interface) spielt er das nicht ab. Gebe ich den Apache-Server an, dann funktioniert es.