Bin wieder weiter gekommen. Telnet funktioniert, allerdings mit der Einschränkung das nur Befehle gesendet werden können. Zum Beispiel mit /goform/formiPhoneAppDirect.xml?MVUP oder Down um die Lautstärke anzupassen. Geht auch im Prinzip direkt über die Telnet Integration von Homeassistant.
Ja ich weiß, wird prinzipiell auch über die Denon Integration als Attribut der Entität bereitgestellt, gibt ja noch jede Menge anderer befehle die nicht durch die Integration abgedeckt werden und soll nur als Beispiel dienen.
Was aber nicht funktioniert, ist jede Art von Status Abruf wie z.B. /goform/formiPhoneAppDirect.xml?MV? oder PW? usw.
Daher verwerwende ich jetzt https Befehle soweit durch die Web Control Oberfläche ermittelbar, danke nochmal für den Tipp @MichaelH .
Für alles was nicht darüber gesteuert werden kann (lautsärke, Menüaufruf inkl. Steuerung, etc) habe ich die Denon App über Wireshark gesnifft und die http Befehle ermittelt.
Das ganze habe ich dann mittels Chatgpt in yaml Code übersetzt und jetzt die ersten Befehle ans Laufen gebracht. Das ganze wird noch weiter ausgebaut und mit custom button usw. hübsch gemacht, ich werde hier weitere Ergebnisse Berichten.
pasted-from-clipboard.png
Im prinzip muss man nur diesen Yaml Code in die Config eintragen und für die laut leise Tasten zwei Helfer Tasten anlegen unter Geräte und Dienste --> Helfer, dort muss man nur auf den richtigen Namen der Entität achten, in diesem Fall input_button.volume_up & input_button.volume_down. Ausserdem muss natürlich die IP Adresse ausgetausch werden
sensor:
- platform: rest
name: MainZone Power
resource: https://192.168.145.65:10443/ajax/globals/get_config?type=4
method: GET
verify_ssl: false
headers:
Content-Type: application/xml
value_template: >-
{{ 'On' if (value | regex_findall_index('<MainZone><Power>(\\d+)</Power>') | int) == 1 else 'Off' }}
- platform: rest
name: Zone2 Power
resource: https://192.168.145.65:10443/ajax/globals/get_config?type=4
method: GET
verify_ssl: false
headers:
Content-Type: application/xml
value_template: >-
{{ 'On' if (value | regex_findall_index('<Zone2><Power>(\\d+)</Power>') | int) == 1 else 'Off' }}
- platform: rest
name: MainZone Input Function
resource: http://192.168.145.65:8080/goform/formMainZone_MainZoneXmlStatusLite.xml
method: GET
value_template: "{{ value_json.item.InputFuncSelect.value }}"
- platform: rest
name: MainZone Master Volume
resource: http://192.168.145.65:8080/goform/formMainZone_MainZoneXmlStatusLite.xml
method: GET
value_template: "{{ value_json.item.MasterVolume.value }}"
- platform: rest
name: MainZone Mute Status
resource: http://192.168.145.65:8080/goform/formMainZone_MainZoneXmlStatusLite.xml
method: GET
value_template: "{{ value_json.item.Mute.value }}"
rest_command:
set_mainzone_power_on:
url: "https://192.168.145.65:10443/ajax/globals/set_config?type=4&data=<MainZone><Power>1</Power></MainZone>"
method: GET
verify_ssl: false
set_mainzone_power_off:
url: "https://192.168.145.65:10443/ajax/globals/set_config?type=4&data=<MainZone><Power>3</Power></MainZone>"
method: GET
verify_ssl: false
set_zone2_power_on:
url: "https://192.168.145.65:10443/ajax/globals/set_config?type=4&data=<Zone2><Power>1</Power></Zone2>"
method: GET
verify_ssl: false
set_zone2_power_off:
url: "https://192.168.145.65:10443/ajax/globals/set_config?type=4&data=<Zone2><Power>3</Power></Zone2>"
method: GET
verify_ssl: false
set_mainzone_mute_on:
url: "http://192.168.145.65:8080/goform/formiPhoneAppDirect.xml?MUON"
method: GET
set_mainzone_mute_off:
url: "http://192.168.145.65:8080/goform/formiPhoneAppDirect.xml?MUOFF"
method: GET
volume_up:
url: "http://192.168.145.65:8080/goform/formiPhoneAppDirect.xml?MVUP"
method: GET
volume_down:
url: "http://192.168.145.65:8080/goform/formiPhoneAppDirect.xml?MVDOWN" # oder den ermittelten richtigen Parameter
method: GET
switch:
- platform: template
switches:
mainzone_power:
friendly_name: "MainZone Power"
value_template: >-
{{ is_state('sensor.mainzone_power', 'On') }}
turn_on:
- service: rest_command.set_mainzone_power_on
- delay: "00:00:00.5" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainzone_power
turn_off:
- service: rest_command.set_mainzone_power_off
- delay: "00:00:00.5" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainzone_power
zone2_power:
friendly_name: "Zone2 Power"
value_template: >-
{{ is_state('sensor.zone2_power', 'On') }}
turn_on:
- service: rest_command.set_zone2_power_on
- delay: "00:00:00.5" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.zone2_power
turn_off:
- service: rest_command.set_zone2_power_off
- delay: "00:00:00.5" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.zone2_power
mainzone_mute:
friendly_name: "MainZone Mute"
value_template: >-
{{ is_state('sensor.mainzone_mute_status', 'on') }}
turn_on:
- service: rest_command.set_mainzone_mute_on
- delay: "00:00:00.1" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainZone_mute_status
turn_off:
- service: rest_command.set_mainzone_mute_off
- delay: "00:00:00.1" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainZone_mute_status
automation:
- alias: Volume Up Button
trigger:
- platform: state
entity_id: input_button.volume_up
action:
- service: rest_command.volume_up
- delay: "00:00:00.1" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainzone_master_volume
- alias: Volume Down Button
trigger:
- platform: state
entity_id: input_button.volume_down
action:
- service: rest_command.volume_down
- delay: "00:00:00.1" # Verzögerung von 100 Millisekunden
- service: homeassistant.update_entity
target:
entity_id: sensor.mainzone_master_volume
Alles anzeigen