grzegorz914 / homebridge-denon-tv

Homebridge plugin for Denon/Marantz AV Receivers, publish as independent external platform accessory.
MIT License
73 stars 15 forks source link

Documentation for MQTT topics #139

Closed intrepidsilence closed 1 year ago

intrepidsilence commented 2 years ago

Can you please provide some more documentation on the MQTT topics for get and set? I ca't quite figure out what the topics are supposed to be for MQTTThing plugin to work. Thanks!

grzegorz914 commented 2 years ago

Here is only integrated MQTT client to publish all data from AVR. As prefix You can set for example: “home/denon” and rest will be added and publish automatically, the topic are “Info”, “State” and “Sound Mode”. In Broker will be visible as home/denon/Info, home/denon/State, home/denon/Sound Mode.

intrepidsilence commented 2 years ago

I still cannot get it working.

I have MQTT Prefix set to "home".

In the debug logs I see:

[3/19/2022, 4:40:50 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, debug: MQTT publish: home/Marantz/State: {
  "Power": [
    {
      "value": [
        "ON"
      ]
    }
  ],
  "InputFuncSelect": [
    {
      "value": [
        "MPLAY"
      ]
    }
  ],
  "VolumeDisplay": [
    {
      "value": [
        "Absolute"
      ]
    }
  ],
  "MasterVolume": [
    {
      "value": [
        "-43.0"
      ]
    }
  ],
  "Mute": [
    {
      "value": [
        "off"
      ]
    }
  ]
}
[3/19/2022, 4:40:50 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, debug: MQTT publish: home/Marantz/Sound Mode: {
  "surround": "Stereo"
}

So in MQTTThing plugin for the MQTT Topics I have:

Get On: home/Marantz/State/Power

But it does not set the accessory to the current power state. I can't tell what is going wrong as neither plugin gives me any errors.

I can also tell you that on the MQTT side when I sub to all topics at the command line to see what is coming in, I see this:

Client mosq-aLF2f95Wroe8wvSc21 received PUBLISH (d0, q0, r0, m0, 'home/Marantz/State', ... (379 bytes))
{
  "Power": [
    {
      "value": [
        "ON"
      ]
    }
  ],
  "InputFuncSelect": [
    {
      "value": [
        "MPLAY"
      ]
    }
  ],
  "VolumeDisplay": [
    {
      "value": [
        "Absolute"
      ]
    }
  ],
  "MasterVolume": [
    {
      "value": [
        "-43.0"
      ]
    }
  ],
  "Mute": [
    {
      "value": [
        "off"
      ]
    }
  ]
}

Which clearly shows the topic is set and at the correct location when it is being received.

intrepidsilence commented 2 years ago

Actually, now I am thinking there is another issue that I should probably solve before this one. This plugin is not reporting the right status to itself:

[3/19/2022, 6:26:36 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, get Power state successful: OFF [3/19/2022, 6:26:36 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, get Input successful, name: PS4, reference: BD [3/19/2022, 6:26:36 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, get Picture mode: 0 [3/19/2022, 6:26:36 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, get Mute state successful: ON [3/19/2022, 6:26:36 PM] [homebridge-denon-tv] Device: 192.168.15.46 Marantz, get Volume level successful: -80 dB

The receiver is on right now and on a different input than it is reporting. The volume is different, too. Also, not muted.

grzegorz914 commented 2 years ago
  1. The data in MQTT is publish as payload JSON string, all current states are here. You need only extract it.
  2. Regarding wrong status report in log(not in accessory) please try actual plugin version and let me know.