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

    Ok, dann weiß ich da Bescheid. Das Plugin für die Yamaha-Geräte ist ja soweit schon fertig, müsste dann nur breiter getestet werden - wenn den Nutzer dafür da sind

    Das Bemerkenswerte finde ich, dass Yamaha die komplette (naja...) Spezifikation der Schnittstelle veröffentlicht hat, so dass man damit viel umsetzen kann.

    Danke für die Info!

    Kommentar


      Hallo,

      ich schalte den Strom zu meinem Receiver tagsüber aus, da er einen recht hohen Standby-Verbrauch hat.
      Das führt natürlich zu
      Code:
      2019-12-23  10:43:03 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 0/13
      2019-12-23  10:43:03 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 1/13
      2019-12-23  10:43:06 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 2/13
      2019-12-23  10:43:18 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 3/13
      2019-12-23  10:43:21 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 4/13
      2019-12-23  10:43:24 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 5/13
      2019-12-23  10:43:33 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 6/13
      2019-12-23  10:43:40 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 7/13
      2019-12-23  10:43:47 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 8/13
      2019-12-23  10:43:54 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 9/13
      2019-12-23  10:44:01 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 10/13
      2019-12-23  10:44:08 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 11/13
      2019-12-23  10:44:15 WARNING  plugins.avdevice.avdevice-tcp-reconnect Connecting TCP avdevice: Could not connect to 192.168.177.38:23. Error:[Errno 113] Keine Route zum Zielrechner. Counter: 12/13
      Aber versucht avdevice dann irgendwann wieder eine Verbindung? Ich denke, nach den 13 Versuchen wäre ein minütlicher oder fünfminütlicher Connect-Versuch sinnvoll.

      Gruß und ein frohes Fest,
      Hendrik

      Kommentar


        Such in der Doku mal nach dependson

        Kommentar


          Hallo zusammen,

          danke an alle Beteiligten für das schöne Plugin. 👏

          Bei mir läuft alles einwandfrei mit einem DENON AVR 7200W.

          VG

          Cheers
          Art Mooney

          Kommentar


            Hi,

            ich möchte mich zunächst für das tolle Plugin Bedanken. Ich hoffe damit meinen AV-Receiver sowie einen Projektor steuern zu können.
            Leider habe ich das Problem, dass mein AV-Receiver (Anthem MRX720) nicht auf Befehle aus dem Plugin reagiert. Sende ich einen beliebigen Befehl via Telnet klappt es einwandfrei.


            Hier Mal meine Konfiguration:

            Plugin.yaml:
            Code:
            avdevice:
            plugin_name: avdevice
            model: anthem
            tcp_ip: 192.168.X.XXX
            tcp_port: '14999'
            instance: anthem
            Auf dem Webif des avdevice zeigt er mir die Verbindung mit IP grün an, also gehe ich davon aus, dass die Verbindung generell besteht.


            Die Befehle hab ich aus einer Exceltabelle vom Hersteller entnommen.
            Hier das Beispiel für Power ON/OFF:
            anthem.png

            Daraus also die anthem.txt im models-Ordner erstellt

            anthem.txt:
            Code:
            ZONE; FUNCTION; FUNCTIONTYPE; SEND; QUERY; RESPONSE; READWRITE; INVERTRESPONSE; MINVALUE; MAXVALUE; RESPONSETYPE
            
            1; power; on; Z0POW1; Z1POW?; Z1POW1; RW
            1; power; off; Z0POW0; Z1POW?; Z1POW0; RW

            und zuletzt die Itemkonfig

            anthem.yaml:

            Code:
            Anthem:
                type: foo
                Power:
                    type: bool
                    visu_acl: rw
                    avdevice_zone1@anthem: power
                    avdevice_zone1_depend@anthem: init

            Wenn ich nun aus shNG das Item von true auf false und umgekehrt umschalte, kann ich im webif des avdevice sehen, dass Befehle abgesetzt werden.
            Sending Command:
            Z0POW0,Z1POW?,Z1POW0,bool,0;Anthem.Power

            Der Receiver reagiert jedoch nicht.

            In den Logs von shNG ist folgendes zu finden:
            Code:
            2020-11-29 01:24:59 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 0. Resend Max: 10
            2020-11-29 01:25:07 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 1. Resend Max: 10
            2020-11-29 01:25:16 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 2. Resend Max: 10
            2020-11-29 01:25:24 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 3. Resend Max: 10
            2020-11-29 01:25:32 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 4. Resend Max: 10
            2020-11-29 01:25:41 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 5. Resend Max: 10
            2020-11-29 01:25:49 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 6. Resend Max: 10
            2020-11-29 01:25:58 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 7. Resend Max: 10
            2020-11-29 01:26:06 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 8. Resend Max: 10
            2020-11-29 01:26:14 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 9. Resend Max: 10
            2020-11-29 01:26:14 WARNING plugins.avdevice anthem@: Parsing Input avdevice_anthem: Giving up Sending Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power and removing from list. Original Commandlist: ['Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power', 'Z1POW?,Z1POW?,Z1POW1,bool,0', 'Z1POW?,Z1POW?,Z1POW0,bool,0']



            Sende ich über Telnet "Z0POW0;" schaltet er ab und antwortet mit "Z1POW0;". Zum Einschalten muss ich zwei Mal "Z0POW1;" senden und erhalte "Z1POW1;"


            Hab ich etwas übersehen oder falsch konfiguriert? Ich hoffe Ihr könnt mir helfen und bin für jeden Tipp dankbar.

            Viele Grüße
            Zuletzt geändert von LoRdN0n4m3; 01.12.2020, 21:27.

            Kommentar


              Hm, denke in punkto Config ist alles gut. Wenn du parallel über telnet am gleichen Port verbunden bist, wird die Verbindung nicht klappen. Warum es grün im WebIF angezeigt wird, weiß ich aktuell nicht... aber das Log deutet klar auf ein Verbindungsproblem hin.

              Du kannst das Log mal auf Debug stellen und beim Start von SHNG beobachten. Da, wo die Verbindung aufgebaut wird. Was steht da..?

              Kommentar


                Das gleichzeitiger Zugriff auf den Port Probleme machen kann habe ich gelesen. Die Telnetverbindung habe ich erst versucht, nachdem die Befehle aus dem Plugin keine Wirkung zeigten, um zu pürfen ob die Befehle überhaupt vom Receiver verarbeitet werden.

                Hier der Auszug aus dem DEBUG:

                Code:
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Resendwait: 1.0. Seconds to keep: 50.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing Serial avdevice_anthem: Serial port is None.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing TCP avdevice_anthem: IP is 192.168.X.XXX.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing TCP avdevice_anthem: Port is 14999.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing TCP avdevice_anthem: Timeoout is 1.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Dependson Item: None. Value: True
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Resetting volume after dependson is off: False. Resetting power: False.
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special Settings: Ignoring responses ['RGB', 'RGC', 'RGD', 'GBH', 'GHH', 'VTA', 'AUA', 'AUB'].
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special Settings: Error responses ['E02', 'E04', 'E06'].
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special Settings: Force buffer ['GEH01020', 'GEH04022', 'GEH05024', 'R'].
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special Settings: Ignore Display ['']
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Querying at plugin init is set to True
                2020-11-29 15:45:35 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special Settings: Exclude updates by ['']
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Plugin 'avdevice_anthem': run method called
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: No statusupdate Item set, creating dummy item.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Starting to read file anthem. Functions: {'zone0': {}, 'zone1': {}, 'zone2': {}, 'zone3': {}, 'zone4': {}}
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Number of zones: 1
                2020-11-29 15:45:38 INFO plugins.avdevice anthem@: Initializing avdevice_anthem: Created functions list, including entries for 1 zones.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Starting to create response commands. Response Commands: {}
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Special commands for solving Display issues: {'Display': {'Command': '', 'Ignore': 1, 'Item': ''}, 'Input': {'Command': '', 'Ignore': [1], 'Item': ''}, 'Nowplaying': {'Command': '', 'Item': ''}, 'Speakers': {'Command': '', 'Item': ''}}
                2020-11-29 15:45:38 INFO plugins.avdevice anthem@: Initializing avdevice_anthem: Created response commands, including 2 entries.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Starting to create Powercommands: []
                2020-11-29 15:45:38 INFO plugins.avdevice anthem@: Initializing avdevice_anthem: Created Powercommands, including 1 entries.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Starting to create query commands. Query Commands: [], Query Zone: {'zone0': [], 'zone1': [], 'zone2': [], 'zone3': [], 'zone4': []}
                2020-11-29 15:45:38 INFO plugins.avdevice anthem@: Initializing avdevice_anthem: Created query commands, including 2 entries.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Dependson Item: None.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Initializing avdevice_anthem: Running
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: scheduler_add: name = plugins.avdevice_anthem.avdevice-tcp-reconnect, parameters: prio=3, cycle=7
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: scheduler_change: name = plugins.avdevice_anthem.avdevice-tcp-reconnect, parameters: active=True, from_smartplugin=True
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: scheduler_trigger: name = plugins.avdevice_anthem.avdevice-tcp-reconnect, parameters: by='Plugin plugins.avdevice_anthem.avdevice-tcp-reconnect', prio=3
                2020-11-29 15:45:38 INFO plugins.avdevice anthem@: Connecting TCP avdevice_anthem: Connected to 192.168.X.XXX:14999
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: scheduler_get: name = plugins.avdevice_anthem.avdevice-tcp-reconnect
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: scheduler_change: name = plugins.avdevice_anthem.avdevice-tcp-reconnect, parameters: active=False, from_smartplugin=True
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Connecting TCP avdevice_anthem: Deactivating reconnect schedulerApi. Command list while connecting: []. Keep Commands: {}. Reconnecttrigger: True
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Connecting TCP avdevice_anthem: TCP is connected.
                2020-11-29 15:45:38 DEBUG plugins.avdevice anthem@: Connecting TCP avdevice_anthem: Starting Parse Input.
                Schalte ich den Receiver über die Fernbedienung ein kommt:

                Code:
                2020-11-29  15:47:15 DEBUG    plugins.avdevice    anthem@: Parsing Input avdevice_anthem: Response: Z1POW1;. Send Commands: []
                Also sollte ja generell Kommunikation zustande kommen.


                Schalte ich nun das Item aus shNG um einen Befehl zu senden wird folgendes geloggt:

                Code:
                2020-11-29 16:02:05 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Power. Reconnecttrigger: True
                2020-11-29 16:02:05 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set power to True for Anthem.Power in zone 1
                2020-11-29 16:02:05 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command Power On for zone: 1. Appending relevant query commands.
                2020-11-29 16:02:05 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z0POW1 from Multicommand-List ['Z0POW1']. Returns 7
                2020-11-29 16:02:05 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: . Name: avdevice_anthem. Sendcommands: ['Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power', 'Z1POW?,Z1POW?,Z1POW1,bool,0', 'Z1POW?,Z1POW?,Z1POW0,bool,0']
                2020-11-29 16:02:06 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: Resendcommand was sent Z0POW1 from Multicommand-List ['Z0POW1']. Returns 7
                2020-11-29 16:02:06 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Error reading.. Return from send is 7. Error: timed out
                2020-11-29 16:02:09 ERROR plugins.avdevice anthem@: Processing Response avdevice_anthem: Connection error. Error: timed out Resend Counter: 0. Resend Max: 10
                2020-11-29 16:02:09 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: ERROR. Send Commands: ['Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power', 'Z1POW?,Z1POW?,Z1POW1,bool,0', 'Z1POW?,Z1POW?,Z1POW0,bool,0']
                2020-11-29 16:02:09 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Expected response while parsing: ['Z1POW1', 'Z1POW1', 'Z1POW0'].
                2020-11-29 16:02:09 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Requesting query from Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power because response was ERROR. Resend Counter: 1
                2020-11-29 16:02:10 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Newly sorted send commands at end of parsing: ['Z0POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power', 'Z1POW?,Z1POW?,Z1POW1,bool,0', 'Z1POW?,Z1POW?,Z1POW0,bool,0']
                2020-11-29 16:02:10 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: query was sent Z1POW? from Multicommand-List ['Z1POW?']. Returns 7

                Das Ganze wiederholt sich dann 10 Mal.

                Kommentar


                  Hm, also wenn du über Fernbedienung schaltest, erkennt das Plugin das - wird dann auch das shng Item korrekt geschalten?
                  Hast du es mal mit anderen Befehlen probiert? Probier doch mal Z1POW1 statt Z0POW1. Was passiert dann?

                  Stutzig macht mich aber eigentlich das Timeout. Könntest im plugin.yaml mal tcp_timeout: 10 eingeben und schauen was passiert.

                  Kommentar


                    Genau, manuelles Ein-, und Ausschalten wird im Plugin geloggt:

                    Code:
                    2020-11-29 20:28:59 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: Z1POW1;. Send Commands: []
                    2020-11-29 20:29:43 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: Z1POW0;. Send Commands: []
                    Allerdings wird das Item nicht auf den korrekten Status gesetzt. Vielleicht liegt hier schon ein Problem vor?



                    Ich hab den Timeout auf 10s erhöht, mit dem Ergebnis, dass der Error jetzt erst nach 10 Sekunden ausgegeben wird:
                    Code:
                    2020-11-29 20:31:24 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Power. Reconnecttrigger: True
                    2020-11-29 20:31:24 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set power to True for Anthem.Power in zone 1
                    2020-11-29 20:31:24 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command Power On for zone: 1. Appending relevant query commands.
                    2020-11-29 20:31:24 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1POW1 from Multicommand-List ['Z1POW1']. Returns 7
                    2020-11-29 20:31:32 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: . Name: avdevice_anthem. Sendcommands: ['Z1POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power', 'Z1POW?,Z1POW?,Z1POW1,bool,0', 'Z1POW?,Z1POW?,Z1POW0,bool,0']
                    2020-11-29 20:31:33 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: Resendcommand was sent Z1POW1 from Multicommand-List ['Z1POW1']. Returns 7
                    2020-11-29 20:31:33 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Error reading.. Return from send is 7. Error: timed out

                    An Befehlen hab ich in der anthem.txt schon alle möglichen Kombinationen mit Z0POW0/1 bzw Z1POW0/1 getestet.

                    Via Telnet spielt es keine Rolle ob ich Z0 oder Z1 verwende, lediglich bei der Statusabfrage reagiert er nur auf Z1POW?;
                    Für Response hab ich auch schon die Ziffern durch * ersetzt - ohne Erfolg.


                    Wie genau werden die Befehle aus der anthem.txt denn abgesetzt?

                    Code:
                    ZONE; FUNCTION; FUNCTIONTYPE; SEND; QUERY; RESPONSE; READWRITE; INVERTRESPONSE; MINVALUE; MAXVALUE; RESPONSETYPE
                    
                    1; power; on; Z1POW1; Z1POW?; Z1POW1; RW
                    1; power; off; Z1POW0; Z1POW?; Z1POW0; RW
                    Hier wird ja immer ein ; als Trennzeichen benutzt. Wird dieses bei der Kommunikation mitgesendet oder wird der Befehl wie in den Logs "Sendcommands: ['Z1POW1,Z1POW?,Z1POW1,bool,0;Anthem.Power'" verarbeitet?

                    Beim Telnet muss ich immer das ; mitsenden, damit der Befehl ausgeführt wird.

                    Kommentar


                      Ich glaube, du bist auf der richtigen Spur Hatte den Befehl von deinem Anthem auch nur überflogen, offensichtlich braucht er am Ende ein ";".
                      Änder mal die Zeile 2963 im __init__.py wie folgt ab:
                      Code:
                      result = self._tcpsocket.send(bytes('{};\r'.format(multicommand), 'utf-8'))
                      Eventuell auch mal das \r raus machen, aber es sollte eigentlich nicht stören.

                      Generell würde ich die Ziffern am Ende tatsächlich durch einen * ersetzen. Würde erklären, warum dein Item nicht aktualisiert wird. Das ist bei Power zugegebenermaßen nicht so intuitiv, aber halt zB bei Volume essentiell.

                      Wenn du einen Befehl 2 Mal absetzen musst, kannst du übrigens das hier machen:
                      Z1POW1|Z1POW1

                      Kommentar


                        Okay, wir kommen dem Ganzen wohl schon etwas näher. Mit dem * statt 0/1 wird das Item in shNG aktualisiert - sehr schön


                        Mit der Änderung in __init__.py reagiert er nun folgendermaßen:
                        Code:
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Power. Reconnecttrigger: True
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set power to False for Anthem.Power in zone 1
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command power for zone: 1. Removing relevant query commands.
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1POW0 from Multicommand-List ['Z1POW0']. Returns 8
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !R --- --- Z1POW0; --- --- . Name: avdevice_anthem. Sendcommands: ['Z1POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: Z1POW0; --- --- . Name: avdevice_anthem. Sendcommands: ['Z1POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Response: Z1POW0;. Send Commands: ['Z1POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Expected response while parsing: ['Z1POW0'].
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Storing Values avdevice_anthem: Starting to store value for data Z1POW0; in dictionary. Found expected responses: ['Z1POW0'].
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is: 0 with expected type bool. Invert: False. Length: 1. Command: Z1POW
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is now: False with type <class 'bool'>.
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Storing Values avdevice_anthem: Found writeable dict key: Z1POW. Zone: zone1. Value False with type bool. Function: power.
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is: 0 with expected type bool. Invert: False. Length: 1. Command: Z1POW0;
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Converting Values avdevice_anthem: Received Value is now: False with type <class 'bool'>.
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Found key Z1POW in response at position 5 with value False.
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Parsing Input avdevice_anthem: Updated Item Anthem.Power with bool Value: False.
                        Leider wird der gewünschte Befehl noch immer nicht ausgeführt.

                        Code:
                        2020-11-29 23:31:19 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !R --- --- Z1POW0; --- --- . Name: avdevice_anthem. Sendcommands: ['Z1POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        Er antwortet mit !R was bedeutet:
                        3. Out-of-range parameters return the message "!R<OriginalCommand>". Ex: 'Z1VOL+50;' would result in a response: '!RZ1VOL+50;'
                        Ich hab versucht statt Z1POW0; Z0POW0; zu senden, dann hagelt es wieder Errors:

                        Code:
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin trying to update Anthem.Power. Reconnecttrigger: True
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: admin set power to False for Anthem.Power in zone 1
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Updating Item avdevice_anthem: Command power for zone: 1. Removing relevant query commands.
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z0POW0 from Multicommand-List ['Z0POW0']. Returns 8
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !R --- --- Z0POW0; --- --- . Name: avdevice_anthem. Sendcommands: ['Z0POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:28:39 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: Z0POW0; --- --- . Name: avdevice_anthem. Sendcommands: ['Z0POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:28:41 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: . Name: avdevice_anthem. Sendcommands: ['Z0POW0,Z1POW?,Z1POW0,bool,1;Anthem.Power']
                        2020-11-29 23:28:42 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: Resendcommand was sent Z0POW0 from Multicommand-List ['Z0POW0']. Returns 8
                        2020-11-29 23:28:42 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Error reading.. Return from send is 8. Error: timed out


                        Kommentar


                          Probiers bitte noch mit ein paar anderen Befehlen. Das Power scheint schon sehr speziell zu sein. Z0 sollte im Senden und Empfangen drin sein. Oder du nimmst in die möglichen Antworten mehrere Sachen rein Z0 und Z1.. Z0 sollte am besten auch als Zone 0 deklariert sein, da es "übergreifend" ist.

                          Kommentar


                            Okay ich sage bis hierhin schonmal vielen Dank für deine Hilfe.
                            Ich werde im Laufe des Tages dann auch noch andere Befehle ausprobieren. Essentiell für mich ist On/Off Lauter/Leiser sowie Quellenauswahl. Dachte ich starte mit dem einfachsten

                            Ich nutze eigentlich keine Zonen sondern nur Main. Bei meinem ersten Versuch sah die anthem.txt daher folgendermaßen aus:
                            Code:
                            ZONE; FUNCTION; FUNCTIONTYPE; SEND; QUERY; RESPONSE; READWRITE; INVERTRESPONSE; MINVALUE; MAXVALUE; RESPONSETYPE
                            
                            0; power; on; Z0POW1; Z1POW?; Z1POW*; RW
                            0; power; off; Z0POW0; Z1POW?; Z1POW*; RW
                            und das Item dazu:
                            Code:
                            Anthem:
                                type: foo
                                Power:
                                    type: bool
                                    visu_acl: rw
                                    avdevice@anthem: power
                                    avdevice_depend@anthem: init
                            Mit dieser Konfig funktioniert allerdings das Webif nicht mehr:
                            webif.png

                            Code:
                            2020-11-30 12:58:23 ERROR cherrypy.error.140124787061480 [30/Nov/2020:12:58:23] HTTP
                            > Traceback (most recent call last):
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 638, in respond
                            > self._do_respond(path_info)
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond
                            > response.body = self.handler()
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/lib/encoding.py", line 219, in __call__
                            > self.body = self.oldhandler(*args, **kwargs)
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__
                            > return self.callable(*self.args, **self.kwargs)
                            > File "/usr/local/smarthome/plugins/avdevice/__init__.py", line 3153, in index
                            > language=self.plugin._sh.get_defaultlanguage(), now=self.plugin.shtime.now())
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 1090, in render
                            > self.environment.handle_exception()
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/environment.py", line 832, in handle_exception
                            > reraise(*rewrite_traceback_stack(source=source))
                            > File "/home/smarthome/.local/lib/python3.7/site-packages/jinja2/_compat.py", line 28, in reraise
                            > raise value.with_traceback(tb)
                            > File "/usr/local/smarthome/plugins/avdevice/webif/templates/index.html", line 27, in top-level template code
                            > {% set item_count_zone0 = p.init.get_items('zone0')|length %}
                            > File "/usr/local/smarthome/plugins/avdevice/AVDeviceInit.py", line 71, in get_items
                            > sortedlist.sort()
                            > TypeError: '<' not supported between instances of 'list' and 'str'

                            Dabei spielt es keine Rolle ob im Item "avdevice@anthem: power" oder "avdevice_zone0@anthem: power" steht.
                            Es funktioniert nur mit "avdevice_zone1@anthem: power"

                            Hab ich da irgendwo einen Fehler übersehen? Ich hab testweise auch Mal die komplette Denonconfig benutzt und die wird einwandfrei dargestellt.
                            Zuletzt geändert von LoRdN0n4m3; 01.12.2020, 21:28.

                            Kommentar


                              Schon komisches Verhalten.. Ich muss auch zugeben, dass man das Plugin nochmals komplett von 0 programmieren sollte, aber das braucht halt leider auch viel Zeit.
                              Ich kann dir sonst nur raten, die Structs zu nutzen:
                              Code:
                                      anthem:
                                          struct:
                                            - avdevice.general
                                            - avdevice.sound_settings
                                            - avdevice.video_settings
                                            - avdevice.individual_volume
                                          instance: anthem
                              
                                          zone1:
                                            struct: avdevice.zone1
                                            instance: anthem
                              
                                          zone2:
                                            struct: avdevice.zone2
                                            instance: anthem
                              Erfordert halt eine Textdatei die sich am Denonbeispiel anlehnt, aber das wär dann Fleißaufgabe. Sonst wie gesagt, probiers mal mit Volume für Zone1.

                              Kommentar


                                Danke für den Tipp mit den Strukturen, da bin ich ein großer Fan davon. Ich könnte auch gerne versuchen eine vollständige Textdatei auszuarbeiten und bereit zu stellen, dafür müsste ich allerdings die generellen Sachen überhaupt Mal zum Laufen bekommen.

                                Mit den Strukturen funktioniert das Webif wie erwartet.
                                Da der Umfang der möglichen Befehle beim Anthem wesentlich geringer ausfällt und ich es gern übersichtlich habe, bleibe ich vorerst bei meiner Item Datei. Sobald ich hier ein zone0 Item definiere kommt es allerdings zum vorhin gezeigten Fehlerbild - stört mich jetzt weniger, da ich ja komplett mit Zone1 arbeiten kann. Wichtiger ist mir das die Steuerung generell Funktioniert. Ob es mit Zone 0 oder 1 spielt nachher eigentlich keine Rolle.

                                Hier nun mein neues Item für weitere Befehle:
                                Code:
                                Anthem:
                                    type: foo
                                        
                                    Power:
                                        type: bool
                                        visu_acl: rw
                                        avdevice_zone1@anthem: power
                                        avdevice_zone1_depend@anthem: init
                                        
                                    Mute:
                                        type: bool
                                        visu_acl: rw
                                        avdevice_zone1@anthem: mute  
                                        avdevice_zone1_depend@anthem: power        
                                    
                                    VolumeUp:
                                        type: bool
                                        visu_acl: rw
                                        avdevice_zone1@anthem: volume+
                                        avdevice_zone1_depend@anthem: power
                                        enforce_updates: 'yes'
                                
                                
                                    VolumeDown:
                                        type: bool
                                        visu_acl: rw
                                        avdevice_zone1@anthem: volume-
                                        avdevice_zone1_depend@anthem: power
                                        enforce_updates: 'yes'
                                und die zugehörige Textdatei:

                                Code:
                                ZONE; FUNCTION; FUNCTIONTYPE; SEND; QUERY; RESPONSE; READWRITE; INVERTRESPONSE; MINVALUE; MAXVALUE; RESPONSETYPE
                                
                                # General Commands
                                0; power; on; Z0POW1|1|Z0POW1; Z1POW?; Z1POW*; RW
                                0; power; off; Z0POW0; Z1POW?; Z1POW*; RW
                                
                                
                                # Zone 1 (main)
                                1; power; on; Z1POW1|1|Z1POW1; Z1POW?; Z1POW*; RW
                                1; power; off; Z1POW0; Z1POW?; Z1POW*; RW
                                1; mute; on; Z1MUT1; Z1MUT?; Z1MUT*; RW
                                1; mute; off; Z1MUT0; Z1MUT?; Z1MUT*; RW
                                1; volume+; increase; Z1VUP01; Z1VOL?; Z1VOL***; RW
                                1; volume-; decrease; Z1VDN01; Z1VOL?; Z1VOL***; RW
                                Leider verhalten sich alle Befehle genau wie im vorherigen Beispiel.

                                Code:
                                2020-12-01 00:05:22 DEBUG plugins.avdevice anthem@: Sending TCP avdevice_anthem: command was sent Z1VOL? from Multicommand-List ['Z1VOL?']. Returns 8
                                2020-12-01 00:05:22 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: !R --- --- Z1VOL?;!R --- --- Z1VOL?; --- --- . Name: avdevice_anthem. Sendcommands: ['Z1VOL?,Z1VOL?,Z1VOL***,int,float,3']
                                2020-12-01 00:05:22 DEBUG plugins.avdevice anthem@: Processing Response avdevice_anthem: Creating expected response. Buffer: Z1VOL?;!R --- --- Z1VOL?; --- --- . Name: avdevice_anthem. Sendcommands: ['Z1VOL?,Z1VOL?,Z1VOL***,int,float,3']
                                Ich vermute, dass es noch an irgendwelchen Unstimmigkeiten beim Senden der Befehle liegt.
                                Wofür stehen denn die Bindestriche in der Antwort?
                                Buffer: !R --- --- Z1VOL?;!R --- --- Z1VOL?;
                                Der ursprüngliche Befehl sollte direkt nach !R stehen, manchmal ist noch ein Zeilenumbruch dabei.

                                Hier Mal ein Auszug vom Telnet:
                                webif.png

                                Powerabfrage mit Z1POW?; Antwort: Z1POW1;
                                Lautstärkeabfrage mit Z1VOL?; Antwort Z1VOL-25;
                                Muteabfrage mit Z1MUT?; Antwort Z1MUT0;

                                Ich weiß nicht was ich noch tun soll?

                                Was mir noch aufgefallen ist:
                                Wenn ich mit Putty eine Telnet Verbindung aufbaue, muss ich 1-2 Enter Drücken und bekomme !I ans Antwort. Dann kann ich meine Kommandos senden.
                                Wenn ich mich mit dem Windows Telnetclient verbinde antwortet er direkt auf die erste Eingabe.
                                Zuletzt geändert von LoRdN0n4m3; 01.12.2020, 21:29.

                                Kommentar

                                Lädt...
                                X