Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Volumio adapter?

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Volumio adapter?

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

      @muellerra hmm, instanz wieder mal gestartet. mal komplett deinstalliert, jetzt neu 0.1.3.
      aber nach wie vor:
      1d767870-3603-4085-9645-e8a1bf7b1d1f-grafik.png
      somit wird mal nix aktualisiert bei einem senderwechsel bei internetradio.
      da werden auch die scripts nichts ändern.

      M 1 Reply Last reply Reply Quote 0
      • M
        muellerra @da_Woody last edited by

        @da_woody Hi, ich glaube ich hab das vergessen zu erwähnen. Mit dem Skript wird der Adapter nicht mehr benötigt. Ich hab mir das mal als alternative zu dem volumio adapter geschrieben.

        da_Woody 2 Replies Last reply Reply Quote 0
        • da_Woody
          da_Woody @muellerra last edited by

          @muellerra AHA! 🙂 na dann mal schauen wenn ich zeit finde...
          kommt ja auch noch dazu:
          be8cc895-e3b2-4c5d-8620-e50559473e40-grafik.png

          1 Reply Last reply Reply Quote 0
          • da_Woody
            da_Woody @muellerra last edited by da_Woody

            @muellerra so, hab jetzt rumgebastelt. in meiner sturheit latürnich einen eigenen ordner gemacht. 😄 in iQontrol auch schon geändert.
            ad7c7478-63c5-406c-bdc0-bb11bf0931a3-grafik.png
            soweit alles geändert, fehler in zeile 9 gefunden, war } statt]... kann mir ja halbwegs helfen.
            allerdings bekomm ich in 362 einen geklatscht, den ich nicht packe. kannst da mal reinlinsen? hab ja nur einen raspi dran, sollte aber mit den änderungen passen.
            Volumio.txt
            danke.gif

            M 1 Reply Last reply Reply Quote 1
            • M
              muellerra @da_Woody last edited by muellerra

              @da_woody Hi, schau mal in Zeile 362 ans Ende, da hab ich vergessen ein / zu entfernen...🤦🤦🤦
              Bildschirmfoto 2024-01-30 um 17.01.05.png
              Habs auch gleich im ursprünglichen post angepasst

              da_Woody 1 Reply Last reply Reply Quote 0
              • da_Woody
                da_Woody @muellerra last edited by

                @muellerra 😁 dachte ich mir, allerdings bin ich nicht so weit drinnen beim proggen.
                Der Rest passt bei meinen Änderungen?
                Werden durch den Fehler die DPs nicht komplett angelegt?

                M 1 Reply Last reply Reply Quote 0
                • M
                  muellerra @da_Woody last edited by

                  @da_woody ich habs mal kurz gedifft, deine Änderungen sollten ja nur die IP-Adressen und der Ordner sein. Das passt.

                  @da_woody sagte in Volumio adapter?:

                  Werden durch den Fehler die DPs nicht komplett angelegt?

                  lass das Skript am besten 2 mal (erfolgreich) durchlaufen. Dann sind aufjedenfall die DP alle erstellt und die event listener alle scharf.

                  Ich habs mal kurz mit einem Volumio durchgetestet, sollte alles auch mit einem Volumio funktionieren. Lediglich "Multiroom Features" könnte es sein dass "Müll" in die DP geschrieben wird. aber bei nur einem Volumio sollte das egal sein, im Zweifel einfach die setState auskommentieren.

                  da_Woody 2 Replies Last reply Reply Quote 1
                  • da_Woody
                    da_Woody @muellerra last edited by

                    @muellerra den Namen hab ich auch auf Studio geändert. Tögal.
                    Mach ich nachher, bin grad auf ein gutes AbendBier im Stammlokal. 🙂
                    Multitasking, ioB, 3D-Drucken, im Kopf noch Planung für Kanten Abdeckungen für die Wandvertafelung zuschneiden und fräsen...

                    1 Reply Last reply Reply Quote 1
                    • da_Woody
                      da_Woody @muellerra last edited by

                      @muellerra autsch...

                      19:19:22.367	info	javascript.0 (521) Start javascript script.js.common.Volumio.Volumio
                      19:19:22.392	info	javascript.0 (521) script.js.common.Volumio.Volumio: registered 22 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                      19:19:25.887	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:25.887	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:26.387	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:26.387	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:26.887	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:26.887	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:27.387	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:27.387	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:27.889	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:27.889	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:28.391	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:28.391	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:28.890	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:601:8)
                      19:19:28.890	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:942:9)
                      19:19:29.011	info	javascript.0 (521) Stop script script.js.common.Volumio.Volumio
                      

                      ok, da dürfte was nicht passen... rrBroker gibts bei mir ja nicht.

                      if(getState('ping.1.rrBroker.' + Volumios[ID_Volumio]).val){
                      

                      warum allerdings 942 motzt...

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        muellerra @da_Woody last edited by

                        @da_woody hab den Hinweis auf den ping Adapter im Post ergänzt. Danke für den Hinweis!!! Zeile 942 motzt, weil der Fehler in der Funktion restapiRequest ist und die in Zeile 942 aufgerufen wird.
                        Installier mal dem ping Adapter und pass die Zeile an (s. Ursprungspost).
                        Falls noch was auffällt einfach bescheid sagen, mir fällt es manchmal schwer selbst immer alle Abhängigkeiten in meinen unzähligen Skripten sofort zu finden 😆

                        da_Woody 1 Reply Last reply Reply Quote 0
                        • da_Woody
                          da_Woody @muellerra last edited by

                          @muellerra okido
                          zeile 7-9

                          var Folder = 'javascript.0.Volumio.Player.Volumio_Player_' // 
                          var Volumios = ["Studio"] //["rStream","workStream","kitchenStream","flurStream"]  //muss in beiden Skripten identisch sein
                          var Volumios_IPs = ["210"] //["82","58","48","72"] //192.168.178 wird dann im Skript hart gesetzt -> ggf. abändern!
                          

                          zeile 601

                             if(getState('ping.0.Studio.' + Volumios[ID_Volumio]).val){
                          

                          zeile 942

                                  restapiRequest('192.168.0.' + Volumios_IPs[ID_Volumio],"getState",ID_Volumio)
                          

                          ping ist schon lange an board, wegen anwesenheit, hinzugefügt Studio
                          0cdad294-7a80-425c-aa3f-80a5b9cb1ac6-grafik.png
                          61088d72-35eb-48a3-b8d7-6c378354c1bf-grafik.png
                          fehler tropsdem noch da... rest-api einstellungen?
                          ich hau mal die hufe hoch, kopf erledigt für heute... droelf.gif

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            muellerra @da_Woody last edited by muellerra

                            @da_woody

                            if(getState('ping.0.Studio.' + Volumios[ID_Volumio]).val){
                            

                            ändern zu:

                            if(getState('ping.0.ioBroker.' + Volumios[ID_Volumio]+ '.alive').val){
                            

                            er muss auf alle Fälle auf den boolschen State zugreifen, welcher anzeigt ob das Gerät erreichbar ist oder nicht.
                            Zudem den Volumio Namen, bei dir Studio nicht rein schreiben, der wird ja über die schleife aus dem Volumios Array ausgelesen. Bei dir entspricht dann
                            Volumios[ID_Volumio] gleich "Studio"
                            Anscheinend hab ich damals bei mir keine erweiterte info im ping adapter eingestellt:
                            Bildschirmfoto 2024-01-30 um 21.13.55.png ,
                            daher ohne .alive

                            da_Woody 1 Reply Last reply Reply Quote 0
                            • da_Woody
                              da_Woody @muellerra last edited by

                              @muellerra moin. dachte, ich hätte eine eingebung gehabt, dachte ich aber nur... wutb.gif
                              hatte im 2. script

                              var Volumios = ["Studio"] //["rStream","workStream","kitchenStream","flurStream"]  //muss in beiden Skripten identisch sein
                              

                              nicht angepasst.
                              dann komplett neu angefangen, da der fehler nach wie vor da war. kurioser weise hat sich durch deine änderung das warning um eine zeile verschoben.

                              09:53:07.452	info	javascript.0 (521) Start javascript script.js.common.Volumio.Volumio
                              09:53:07.473	info	javascript.0 (521) script.js.common.Volumio.Volumio: registered 22 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                              09:53:10.972	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:10.972	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:11.471	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:11.471	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:11.976	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:11.976	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:12.472	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:12.472	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:12.972	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:12.972	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:13.472	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:13.472	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:13.973	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:13.973	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:14.473	warn	javascript.0 (521) at restapiRequest (script.js.common.Volumio.Volumio:602:8)
                              09:53:14.473	warn	javascript.0 (521) at Object.getVolumioStates (script.js.common.Volumio.Volumio:943:9)
                              09:53:14.800	info	javascript.0 (521) Stop script script.js.common.Volumio.Volumio
                              

                              602 nach deinen angaben ausgebessert

                              if(getState('ping.0.ioBroker.' + Volumios[ID_Volumio]).val + '.alive'){
                              

                              der DP ist da und auf true
                              aa2584d3-ec64-4034-83b2-4018208bff73-image.png
                              943 sehe ich auch keinen fehler

                              restapiRequest('192.168.0.' + Volumios_IPs[ID_Volumio],"getState",ID_Volumio)
                              

                              zusätzlich hab ich im states_icons script die zeile 4 geändert, damit ich in den objekten nur mehr player0 bekomme

                              var names = ['Volumio_Player_0'] //,'Volumio_Player_1','Volumio_Player_2','Volumio_Player_3']
                              

                              das klappt auch.
                              ich weis echt nicht mehr weiter... nochmal das neue hauptscript...
                              Volumio.txt
                              alle 3 scripte 3x durchsucht ob ich was übersehn habe. (notepad++ mit suchen und ersetzen)

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                muellerra @da_Woody last edited by muellerra

                                @da_woody

                                if(getState('ping.<instance>.<iobrokerHostName>.' + Volumios[ID_Volumio] + '.alive').val){
                                

                                Das .val ist an falscher stelle. Da wäre ein Syntax highlighting im Forum ganz nett

                                da_Woody 1 Reply Last reply Reply Quote 0
                                • da_Woody
                                  da_Woody @muellerra last edited by

                                  @muellerra dankedeus.gif
                                  wollte schon am rad drehn. hab ich gestern abend echt nicht mehr mitbekommen. näxter fault dann, hab iobroker getippt statt ioBroker. logischer weise selber fehler. fool.gif
                                  okido, die 3 scripte laufen jetzt. jetzt kann ich mich um iQontrol kümmern... banane2.gif

                                  M 1 Reply Last reply Reply Quote 1
                                  • M
                                    muellerra @da_Woody last edited by

                                    @da_woody das freut mich 😊
                                    Viel Spaß mit dem Skript 😊

                                    da_Woody 1 Reply Last reply Reply Quote 0
                                    • da_Woody
                                      da_Woody @muellerra last edited by

                                      @muellerra jup!
                                      auch schon bißchen in iQontrol gefummelt.
                                      7c441a89-4915-4620-b674-b964a08afe0d-grafik.png

                                      1 Reply Last reply Reply Quote 1
                                      • M
                                        muellerra last edited by muellerra

                                        Mir kam grad noch in den Sinn, das der im Skript angelegte javascript.0.Allgemeine_Variablen.Player.Volumio_Player_<VolumioID>.playbackInfo.statusIncomingCall Datenpunkt durchaus sinnvoll in Verwendung ist. Ich verwende ihn als Merker für den Play/Pause Status. So werden dann z.b. bei einem aus- oder eingehendem Anruf (über Fritz!Box) alle spielenden Volumios pausiert und nach dem auflegen wieder fortgesetzt. Volumios die nicht spielen werden nicht angesteuert. Bei Playern im Multiroomverbund, wird nur der sendende Volumio getriggert.
                                        Die im Ursprungspost geposteten globalen Funktionen werden vorausgesetzt:

                                        @muellerra sagte in Volumio adapter?:

                                        und hier noch weitere, vllt nützliche, Funktionen (bei mir global definiert)

                                        function getVolumiosReceiving(VolumiosReceiving,ReturnID){
                                        usw...
                                        
                                        var ID_Ringing = "tr-064.0.callmonitor.ringing"
                                        var ID_PhoneStatus = "tr-064.0.callmonitor.toPauseState" // connected, end(wenn nichts ist), ring
                                        var FolderVolumio = 'javascript.0.Allgemeine_Variablen.Player.Volumio_Player_'
                                        on({id: ID_PhoneStatus, change: 'ne'}, function (obj) {
                                            var value = obj.state.val;
                                            var timestamp = obj.state.ts;
                                            var oldValue = obj.oldState.val
                                            var Verursacher = obj.id;
                                            var VolumiosStatus = getVolumiosStatus([])
                                            var ReceivingVolumiosIDs = getVolumiosReceiving([],true)
                                        
                                            if(value != 'end' && value != 'connect'){ // connect da sonst nichts ausgeführt wird, wenn der angenommene anruf beendet wird
                                                //Aktionen die passieren, wenn jemand anruft oder jemand im gespräch ist
                                                
                                                //Volumios auf Pause         
                                                var PlayingVolumiosIDs = getVolumiosPlaying([],true)
                                                log(ReceivingVolumiosIDs)
                                                for(var iop in VolumiosStatus){
                                                    setState(FolderVolumio + iop + '.playbackInfo.statusIncomingCall',VolumiosStatus[iop])
                                                    //nur pis die nicht empfangen auf pause setzen, der rest erledigt sich von alleine
                                                    if(ReceivingVolumiosIDs.indexOf(String(iop)) != -1 ){ // pi empfängt
                                                    }else{ // pi empfängt nicht
                                                        setState(FolderVolumio + iop + '.control.pause',true)
                                        
                                                    }
                                                }
                                            }
                                            if(value == 'end' && oldValue != 'end'){
                                                // aktionen, wenn aufgelegt wird oder das telefon nicht mehr klingelt
                                        
                                                //Volumios auf Play, wenn sie vorher pausiert wurden
                                                for(var xbf in VolumiosStatus){
                                                    var VolumioStatusHistoric = getState(FolderVolumio + xbf + '.playbackInfo.statusIncomingCall').val
                                                    if(VolumioStatusHistoric == 'play' || VolumioStatusHistoric == "play"){ // hier aber aich nur die die nicht receiven!
                                                        //nur pis die nicht empfangen auf play setzen, bzw toggeln
                                                        if(ReceivingVolumiosIDs.indexOf(String(xbf)) != -1 ){ // pi empfängt
                                                        }else{ // pi empfängt nicht
                                                            setState(FolderVolumio + xbf + '.PlayPause',true) //toogle, da play multiroom killt wenn multiroom aktiv ist...
                                        
                                                        }
                                                    }
                                                }
                                            }
                                        });  
                                        
                                        da_Woody 1 Reply Last reply Reply Quote 0
                                        • da_Woody
                                          da_Woody @muellerra last edited by

                                          @muellerra nicht schlecht!
                                          was mir noch gefallen würde, favoriten, sender und co. auswahl...

                                          M 1 Reply Last reply Reply Quote 1
                                          • M
                                            muellerra @da_Woody last edited by

                                            @da_woody Gute Idee!, den Use Case hab ich bei mir aber tatsächlich nicht, daher hab ich es auch nicht implementiert. Darf gerne jemand anders übernehmen😜

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            900
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            75
                                            4371
                                            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