Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Projektvorstellung Multiplayer

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Projektvorstellung Multiplayer

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Kamikaze last edited by

      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

      1 Reply Last reply Reply Quote 0
      • V
        vegetto last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • K
          Kamikaze last edited by

          @vegetto:

          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.

          1 Reply Last reply Reply Quote 0
          • V
            vegetto last edited by

            @Kamikaze:

            @vegetto:

            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

            1 Reply Last reply Reply Quote 0
            • K
              Kamikaze last edited by

              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ß.

              1 Reply Last reply Reply Quote 0
              • V
                vegetto last edited by

                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?

                1 Reply Last reply Reply Quote 0
                • K
                  Kamikaze last edited by

                  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.

                  1 Reply Last reply Reply Quote 0
                  • V
                    vegetto last edited by

                    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?

                    1 Reply Last reply Reply Quote 0
                    • K
                      Kamikaze last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • V
                        vegetto last edited by

                        @Kamikaze:

                        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.

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kamikaze last edited by

                          @vegetto:

                          @Kamikaze:

                          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.

                          1 Reply Last reply Reply Quote 0
                          • V
                            vegetto last edited by

                            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

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kamikaze last edited by

                              @vegetto:

                              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.

                              1 Reply Last reply Reply Quote 0
                              • V
                                vegetto last edited by

                                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

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Kamikaze last edited by

                                  @vegetto:

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    vegetto last edited by

                                    Die Chromecast und sayit Adapters exportieren mp3 Dateien, die mit Chromecast funktionieren. Ich musste anschauen, wir ich das gemacht habe.

                                    Sent from my VKY-L29 using Tapatalk

                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      vegetto last edited by

                                      @vegetto:

                                      Die Chromecast und sayit Adapters exportieren mp3 Dateien, die mit Chromecast funktionieren. Ich musste anschauen, wir ich das gemacht habe.

                                      Sent from my VKY-L29 using Tapatalk `
                                      Hast du mit setbinarystate probiert?

                                      https://github.com/angelnu/ioBroker.chr … ce.js#L739

                                      Sent from my VKY-L29 using Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Kamikaze last edited by

                                        @vegetto:

                                        @vegetto:

                                        Die Chromecast und sayit Adapters exportieren mp3 Dateien, die mit Chromecast funktionieren. Ich musste anschauen, wir ich das gemacht habe.

                                        Sent from my VKY-L29 using Tapatalk `
                                        Hast du mit setbinarystate probiert?

                                        https://github.com/angelnu/ioBroker.chr … ce.js#L739

                                        Sent from my VKY-L29 using Tapatalk `
                                        Sorry, aber da hören meine Programmierkenntnisse auf. ich habe einfach nur mit setState in die url2play die Adresse eingetragen, von wo er sich die Playliste ziehen soll.

                                        Diese Adresse funktioniert aufgrund der eingeschränkten Funktionalität des Web-Servers wahrscheinlich nicht.

                                        Ich habe kurzerhand einen Apache-Server installiert.

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          Kamikaze last edited by

                                          So nun bin ich soweit.

                                          Ich habe das Projekt unter http://forum.iobroker.net/viewtopic.php?f=35&t=6965 veröffentlicht.

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          822
                                          Online

                                          31.7k
                                          Users

                                          79.8k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          36
                                          8168
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo