Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: AV Device (für Yamaha, Pioneer, Denon, etc.)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Ich habe wohl ne Vermutung..

    Dann schmeiß mal die Response für volume increase raus.
    Beziehungsweise könntest du es so angehen wie im Denon File ohne den * im volumeup:
    Code:
    1; volume+; increase; MVUP; ; MV; W
    1; volume-; decrease; MVDOWN; ; MV; W
    Lass also das volume set besser wie's war. Und probier bitte nochmals mit den Queries drin. Poste dann nochmals das Log beim ersten Einschalten, wenn was nicht funzt.

    Ansonsten ist jetzt die Frage, ob in der Doku noch was aktualisiert werden sollte oder falsch war..!?
    Zuletzt geändert von Onkelandy; 03.12.2020, 22:41. Grund: volumeup korrektur

    Kommentar


      Ich glaube ich habe eine Kombination gefunden, die funktioniert:

      anthem.txt:
      Code:
      1; volume; set; ; Z1VOL?; Z1VOL***; R; ; -90; -00; num
      1; volume+; increase; Z1VUP01; ; ; W
      1; volume-; decrease; Z1VDN01; ; ; W
      EDIT:
      Ja es lag wohl im increase Befehl oder an dessen Response.
      Mit dieser Konfiguration funktioniert auch:

      Code:
      1; volume; set; Z1VOL*** ; Z1VOL?; Z1VOL***; RW; ; -90; -00; num
      Zuletzt geändert von LoRdN0n4m3; 03.12.2020, 22:48.

      Kommentar


        Nun hab ich doch noch was gefunden Volume auf einen Wert setzen funktioniert nicht, verstehe allerdings nicht warum.


        Bei:
        Code:
        1; volume; set; Z1VOL*** ; Z1VOL?; Z1VOL***; RW; ; -90; -00; num
        Setze ich das Item Volume auf den Wert -30 wird aus den *** im Befehl sowie Response 000:
        Code:
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Volume. Reconnecttrigger: True
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set volume to -30 for Anthem.Volume in zone 1
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Update Zone 1 Command Set, adding to empty Commandlist ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume'] for Anthem.Volume. Command: Z1VOL000
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command volume for zone: 1. Removing relevant query commands.
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1VOL000 from Multicommand-List ['Z1VOL000']. Returns 9
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !RZ1VOL000;;. Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']
        2020-12-03 23:16:03 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: ;. Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']
        2020-12-03 23:16:05 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: . Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']
        2020-12-03 23:16:06 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: Resendcommand was sent Z1VOL000 from Multicommand-List ['Z1VOL000']. Returns 9
        2020-12-03 23:16:06 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Error reading.. Return from send is 9. Error: timed out
        Dann hab ich es wieder versucht mit:
        Code:
        1; volume; set; Z1VOL*{num}; Z1VOL?; Z1VOL***; RW; ; -90; -00; num
        Sendebefehl wird Z1VOL*{num}, funktioniert also nicht, der gewollte Wert -30 steht dann aber zumindest im Response.


        Ich hatte vorher auch den Befehl zur Quellenanwahl umgesetzt:
        Code:
        1; source; set; Z1INP*; Z1INP?; Z1INP*; RW; ; 1; 9; num
        und der funktionierte auf Anhieb wie gewünscht:
        Code:
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Source. Reconnecttrigger: True
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set source to 8 for Anthem.Source in zone 1
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Update Zone 1 Command Set, adding to empty Commandlist ['Z1INP8,Z1INP?,Z1INP8,int,float ,1;Anthem.Source'] for Anthem.Source. Command: Z1INP8
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command source for zone: 1. Removing relevant query commands.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1INP8 from Multicommand-List ['Z1INP8']. Returns 7
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: Z1INP8;;. Name: avdevice_anthem. Sendcommands: ['Z1INP8,Z1INP?,Z1INP8,int,float ,1;Anthem.Source']
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: Z1INP8. Send Commands: ['Z1INP8,Z1INP?,Z1INP8,int,float ,1;Anthem.Source']
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Expected response while parsing: ['Z1INP8'].
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Storing Values avdevice_anthem: Starting to store value for data Z1INP8 in dictionary. Found expected responses: ['Z1INP8'].
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is: 8 with expected type int,float . Invert: False. Length: 1. Command: Z1INP
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is now: 8 with type <class 'int'>.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Storing Values avdevice_anthem: Found writeable dict key: Z1INP. Zone: zone1. Value 8 with type int,float . Function: source.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is: 8 with expected type int,float . Invert: False. Length: 1. Command: Z1INP8
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is now: 8 with type <class 'int'>.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Found key Z1INP in response at position 5 with value 8.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Updated Item Anthem.Source with int,float Value: 8.
        2020-12-03 23:15:35 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: . Send Commands: []
        2020-12-03 23:15:38 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: . Send Commands: []
        2020-12-03 23:15:38 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: . Send Commands: []

        Wo ist der Unterschied? Eine Vermutung war, dass er vielleicht mit negativen Werten nicht klar kommt, also Volume auf 30 gesetzt, doch im Befehl bleibt trotzdem 000

        Als nächstes kam mir noch die Idee mit der Stellenanzahl wegen dem Vorzeichen, also noch:

        Code:
        1; volume; set; Z1VOL-**; Z1VOL?; Z1VOL***; RW; ; -90; -00; num
        getestet, doch er übernimmt den Wert aus dem Item einfach nicht in den Befehl.
        Zuletzt geändert von LoRdN0n4m3; 03.12.2020, 23:37.

        Kommentar


          Bei Letzterem musst du auch bei response das - mit zwei * machen. Und min max positiv setzen oder raus nehmen

          vermutlich reicht auch min/max raus nehmen.
          Zuletzt geändert von Onkelandy; 03.12.2020, 23:41.

          Kommentar


            Stimmt,

            Code:
            1; volume; set; Z1VOL-**; Z1VOL?; Z1VOL-**; RW; ; ; ; num
            Funktioniert. Allerdings muss man dann mit positiven Werten arbeiten. Gibt es noch eine andere Möglichkeit außer mit einem Translation File die Werte wieder negativ zu bekommen?

            Kommentar


              Hilfsitem und eval: value *-1

              aber reicht es nicht erst mal min max raus zu nehmen bei drei *?

              Kommentar


                Nur min max rausnehmen halt leider nicht gereicht, es gibt da wohl Probleme mit negativen Werten, vielleicht wegen dem Vorzeichen?

                Zur Not muss es dann wirklich mit nem Hilfsitem gehn.

                Ich danke dir vielmals für deine Hilfe, alleine hätte ich es niemals so weit geschafft.
                Für mich habe ich bis hierher alle wichtigen Befehle realisiert, wenn Bedarf besteht kann ich gerne noch versuchen die anthem.txt zu vervollständigen und hier bereit zu stellen.
                Was ich bisher gesehen habe unterscheidet sich der Funktionsumfang vom Denon, weshalb es wahrscheinlich sinnvoll wäre für den Anthem auch eine eigene Struktur anzulegen, damit nicht so viele Geister in der Itemdefinition sind.

                Kommentar


                  Hi!
                  Ich schau mir das mit dem negativen Vorzeichen noch an. Das Plugin sendet also nach wie vor Volume 000, auch wenn du kein min max drin hast..?
                  So schlimm ist es aber eh nicht, das translation Feature wäre hier perfekt zum "Fixen". Bitte poste gerne hier die fertigen Ergebnisse (model file und struct).

                  Bei der Doku geh ich nochmals drüber. Es sollte klargestellt werden, dass ein * immer einen Wert darstellt, der direkt ins Item geschrieben wird. Daher macht es beim volume up und down keinen Sinn...

                  Kommentar


                    Ich habe den Codeteil gefunden, der dafür gesorgt hat, dass ein value immer min. 0 ist und abgeändert. Außerdem wird nun *{num} gleich behandelt wie *{str}. Wobei das im konkreten Fall ja keine Rolle spielen sollte. Testest du bitte nochmals mit dem alten txt File ohne - im Volume?

                    Hab das zip nochmals aktualisiert. Teste bitte gerne mit dem Volume und min/max Wert und dann ohne min/max. In letzterem Fall müsste wieder das alte Phänomen auftreten, dass VOL000 gesendet wird. Das ist quasi ein Feature (ohne zu wissen, wofür ich das genau gebraucht hatte ). Mit Angabe von min -80 und max 0 sollte es aber gehen.
                    Angehängte Dateien
                    Zuletzt geändert von Onkelandy; 05.12.2020, 11:31. Grund: Aktualisiertes File.

                    Kommentar


                      Hey, vielen Dank fürs erweitern. Wenn das funktioniert wäre spitze

                      Er sendet aber leider immernoch 000 egal ob mit oder ohne min/max Angabe.


                      anthem.txt:
                      Code:
                      1; volume; set; Z1VOL***; Z1VOL?; Z1VOL***; RW; ; -90; 0; num
                      Code:
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Volume. Reconnecttrigger: True
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set volume to -40 for Anthem.Volume in zone 1
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Update Zone 1 Command Set, adding to empty Commandlist ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume'] for Anthem.Volume. Command: Z1VOL000
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command volume for zone: 1. Removing relevant query commands.
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1VOL000 from Multicommand-List ['Z1VOL000']. Returns 9
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !RZ1VOL000;;. Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']
                      2020-12-05 12:07:03 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: ;. Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']
                      2020-12-05 12:07:09 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: . Name: avdevice_anthem. Sendcommands: ['Z1VOL000,Z1VOL?,Z1VOL000,int,float ,3;Anthem.Volume']

                      Ich hätte noch zwei weitere Fragen.
                      Es gibt ein bisschen Probleme, wenn shNG neugestartet wird und der Receiver bereits eingeschaltet ist. Dann kennt shNG den Status nicht und sendet zuerst den Power On Befehl, bekommt aber nicht die erwartete Antwort und er verläuft sich in Errors.

                      Nun dachte ich, dass durch das depend: init Item der Status beim Start vom smHG abgefragt würde, oder ist dem nicht so?
                      anthem.yaml
                      Code:
                          Power:
                              type: bool
                              visu_acl: rw
                              avdevice_zone1@anthem: power
                              avdevice_zone1_depend@anthem: init
                      Bekomme ich es irgendwie hin, dass der Powerstatus vom Receiver beim Start von shNG abgefragt wird?



                      Die nächste Frage, wie gehe ich mit Befehlen um die eine reine Info Ausgabe haben, wie z.B. Resolution?
                      Sollte der Befehl dafür ins Send oder ins Query, oder doch beides?

                      Code:
                      1; resolution; ; Z1IRH?; Z1IRH?; Z1IRH****; RW

                      Kommentar


                        Ad reine Info Ausgabe: Ich setz es immer ins Send und Query.
                        Ad depend_init: Ja, eigentlich sollte hier der Querycommand beim Herstellen der Verbindung gesendet werden. Nicht zwingend beim Start von shng, aber halt sobald die Verbindung da ist. Alternativ könntest du noch ein Item und einen Eintrag im Textfile machen, das NUR die Abfrage macht. Und dort im Item ein crontab: init
                        Warum erhält er aber nicht die gewünschte Antwort beim Senden von Power On, falls schon ein ist?! Bzw. WAS kommt da als Antwort retour. Diese kannst du im Textfile ja mit "|xyz" dran hängen.

                        Zum Volume 0 Problem - das ist nun gefixt, wenn man min/max negativ angibt, siehe File im Anhang.
                        Angehängte Dateien
                        Zuletzt geändert von Onkelandy; 05.12.2020, 20:53. Grund: File dabei

                        Kommentar


                          Okay danke für die Antwort.
                          Den Logs zufolge wird keine Statusabfrage von Power nach Herstellen der Verbindung gemacht, aber wenn ich das mit einem Extra Item lösen kann passt das.

                          Wenn er Eingeschaltet ist und einen erneuten Einschaltbefehl bekommt gibt es eine leere Antwort. Gerade im Telnet getestet. Da kann das Plugin also nichts dafür wenn keine verwertbare Antwort kommt.

                          Volume negativ senden klappt leider immernoch nicht. Habe ohne min/max, -90; 0; und -80; -5; probiert. Sendet immer 000.

                          Code:
                          1; volume; set; Z1VOL***; Z1VOL?; Z1VOL***; RW; ; -80; -5; num

                          Kommentar


                            Sorry, war das falsche File

                            Das mit dem Status beim Erstellen der Verbindung.. hmmm, da hatte ich da noch einen Zwischenschritt drin. Die depend: init werden wohl wirklich nur dann ausgeführt, wenn es ein Item statusupdate gibt. Dadurch ist man wohl flexibler im Setup. Erstell also noch ein Item:
                            Code:
                                    update:
                                        remark: Send all queries
                                        type: bool
                                        visu_acl: rw
                                        avdevice_zone0@instance: statusupdate
                                        enforce_updates: True
                            Außerdem muss der Parameter statusquery auf true sein (was aber default ist). Dann werden nämlich statusupdate automatisch auf true gesetzt und die Queries raus geschickt, die ein init dabei haben. So müsste das zumindest sein Doku hab ich leicht aktualisiert diesbezüglich.

                            Die Sache mit der leeren Antwort ist fies. Vielleicht fällt dir da was ein?
                            Angehängte Dateien

                            Kommentar


                              Die letzte Datei hat funktioniert Nun werden negative Werte gesendet. Freut mich sehr, dass das nun klappt.
                              Ebenso löst das statusupdate mein Problem mit dem Neustart von shNG wenn der Receiver bereits Eingeschaltet ist.


                              Im Moment bin ich dabei mir ein Widget für die smartVISU zu bauen, wenn das soweit funktioniert werde ich die restlichen Befehle umsetzen. Da wird es sicher den ein oder anderen Stolperstein geben, bei dem ich wahrscheinlich etwas Starthilfe brauche
                              Bis dahin nochmal vielen vielen Dank!

                              Kommentar


                                Möchtest vielleicht vor dem Widget das Textfile mit den Befehlen bereitstellen? Dann könnte ich die neue Version veröffentlichen

                                Kommentar

                                Lädt...
                                X