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.
    • 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
                          • mcm1957
                            mcm1957 last edited by

                            Wenn ich das hier grob überfliege dann geht es schon länger nicht mehr um den VOLUMIO ADAPTER sondern um eine Skript das ihn - wenn ichs richtig sehe - ersetzt.

                            Könnte hier jemand klarstellen, ob der Adapter:
                            https://github.com/a-i-ks/ioBroker.volumio
                            nun brauchbar ist (mit Einschränkungen) oder derzeit bereits ein Totalausfall?

                            Es gibt zwar ein Issue dazu (https://github.com/a-i-ks/ioBroker.volumio/issues/12) aber so richtig klar ist (mir) nicht ob es da um ein Einzelproblem handelt oder nicht,

                            Auf was ich raus will:
                            Wenn der Adapter zu 99% nicht mehr unfktioniert würde ich / sollte man ein Issue mit einem gewissen Timeout erstellen. Und anschließend den Adapter zumindest mal aus dem Stable Repo nehmen.

                            Das kann und will ich aber nicht tun, nur weil er ev bei einigen wenigen Installationen zickt. Ich brächte also eher klare Aussagen. EV. kann auch wer der Probleme nachvollziehen kann im referenzierten Issue nachfrage und / oder wenn das besser passt ein neues Issue anlegen.

                            Danke

                            sjfm-design created this issue in a-i-ks/ioBroker.volumio

                            closed abstürze des adapters #12

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

                              @mcm57 naja, länger ist relativ. ich bin mit besagtem adapter nicht zurecht gekommen und hat mir immer wieder probleme gemacht. ja, die scripte ersetzen den adapter komplett.
                              da du mein issue erwähnst. nuja, nicht wirklich was verändert, auch wenn da was gemacht wurde.
                              im moment komm ich mit den scripten von @muellerra (trotz meiner unfähigkeit mit JS) gut zurecht.
                              vllt könnte man das mal in einen "neuen" adapter gießen?

                              edith ist da: wie gesagt, für mich ist das reine spielerei. so ein mugge geschichtel mit alexa würe mir mehr wert bringen. die beschreibung im iQontrol wiki ist auch nicht mehr up2date. zumindest klapperts bei mir nicht mehr.

                              a-i-ks 1 Reply Last reply Reply Quote 1
                              • a-i-ks
                                a-i-ks @da_Woody last edited by

                                Hallo Leute, der Volumio Adapter ist jetzt gefixt. Entschuldigt, dass es so lange gedauert hat. Der aktuelle master Stand auf Github kann noch bis Samstag Abend getestet werden. Danach veröffentliche ich ihn offiziell in v0.2.0.

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

                                  @a-i-ks na Mal schauen. Wollte seit Tagen den Raspberry schon zusätzlich in der Werkstatt rein operieren.
                                  Alexa klappt ja so. Allerdings hab ich auch Boxen hängen. Muss ich nur noch Adapter für die Mini Klinke basteln.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  928
                                  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