i8beef / HomeAutio.Mqtt.GoogleHome

MIT License
215 stars 29 forks source link

selectChannel and setInput broke #86

Closed profiluefter closed 4 years ago

profiluefter commented 4 years ago

I updated to the latest docker image and selectChannel and setInput now fails with the Assistant saying "Sorry, something went wrong and I'm unable to control your home device." Also there is an error in the Google Cloud Logs: "Backend failure". The HomeAutio logs look normal though.

selectChannel worked once since the update which is strange because I can't reproduce it with the same config. It's very weird.

I changed SelectChannel to lowercase in my googleDevices.json but it doesn't make a difference. Commands like on/off and MediaControl still work though!

googleDevices.json

``` { "radio": { "id": "radio", "type": "action.devices.types.SPEAKER", "willReportState": true, "roomHint": "Küche", "name": { "name": "Hama Radio", "nicknames": [ "Radio", "Küchenradio", "Pfusch Radio", "Pfuschradio", "Hama Radio" ] }, "deviceInfo": { "manufacturer": "Hama" }, "traits": [ { "trait": "action.devices.traits.Volume", "attributes": { "volumeMaxLevel": 33, "volumeCanMuteAndUnmute": true }, "commands": { "action.devices.commands.setVolume": { "volumeLevel": "radio/setVolume" }, "action.devices.commands.mute": { "mute": "radio/mute" } }, "state": { "currentVolume": { "topic": "radio/currentVolume", "googleType": "numeric", "valueMap": null }, "isMuted": { "topic": "radio/isMuted", "googleType": "bool", "valueMap": null } } }, { "trait": "action.devices.traits.MediaState", "attributes": { "supportActivityState": true, "supportPlaybackState": true }, "state": { "playbackState": { "topic": "radio/playbackState", "googleType": "string", "valueMap": null } } }, { "trait": "action.devices.traits.TransportControl", "attributes": { "transportControlSupportedCommands": [ "NEXT", "PAUSE", "PREVIOUS", "RESUME", "SEEK_RELATIVE", "SEEK_TO_POSITION", "SET_REPEAT" ] }, "commands": { "action.devices.commands.mediaNext": { "_": "radio/next" }, "action.devices.commands.mediaPause": { "_": "radio/pause" }, "action.devices.commands.mediaPrevious": { "_": "radio/previous" }, "action.devices.commands.mediaResume": { "_": "radio/resume" }, "action.devices.commands.mediaRepeatMode": { "isOn": "radio/changeRepeat" }, "action.devices.commands.mediaSeekRelative": { "relativePositionMs": "radio/seekRelative" }, "action.devices.commands.mediaSeekToPosition": { "absPositionMs": "radio/seekAbsolute" } } }, { "trait": "action.devices.traits.OnOff", "state": { "on": { "topic": "radio/isOn", "googleType": "bool", "valueMap": null } }, "commands": { "action.devices.commands.OnOff": { "on": "radio/setOn" } } }, { "trait": "action.devices.traits.InputSelector", "attributes": { "availableInputs": [ { "key": "IR", "names": [ { "lang": "de", "name_synonym": [ "Internetradio", "Radio", "Internet" ] } ] }, { "key": "Spotify", "names": [ { "lang": "de", "name_synonym": [ "Spotify" ] } ] }, { "key": "MP", "names": [ { "lang": "de", "name_synonym": [ "Musikabspieler", "USB" ] }, { "lang": "en", "name_synonym": [ "Music player" ] } ] }, { "key": "DAB", "names": [ { "lang": "de", "name_synonym": [ "DAB" ] }, { "lang": "en", "name_synonym": [ "Digital Radio Broadcasting" ] } ] }, { "key": "FM", "names": [ { "lang": "de", "name_synonym": [ "FM-Radio", "FM", "UKW-Radio", "UKW", "Antenne" ] } ] }, { "key": "AUXIN", "names": [ { "lang": "de", "name_synonym": [ "AUX-Eingang", "Kabel-Eingang", "AUX-Kabel", "Kabel" ] }, { "lang": "en", "name_synonym": [ "Auxiliary Input", "AUX-Input" ] } ] }, { "key": "BLUETOOTH", "names": [ { "lang": "de", "name_synonym": [ "Bluetooth" ] }, { "lang": "en", "name_synonym": [ "Bluetooth" ] } ] }, { "key": "CD", "names": [ { "lang": "de", "name_synonym": [ "CD", "Musik-CD", "Audio-CD" ] }, { "lang": "en", "name_synonym": [ "Compact Disk" ] } ] } ] }, "state": { "currentInput": { "topic": "radio/currentInput", "googleType": "string", "valueMap": null } }, "commands": { "action.devices.commands.SetInput": { "_": "radio/setInputAll", "newInput": "radio/setInput" } } }, { "trait": "action.devices.traits.Channel", "attributes": { "availableChannels": [ { "key": "0", "names": [ "Ö1", "Österreich 1" ], "number": "1" }, { "key": "1", "names": [ "Radio Oberösterreich", "Radio OÖ" ], "number": "2" }, { "key": "2", "names": [ "Hitradio Ö3", "Ö3", "Österreich 3" ], "number": "3" }, { "key": "3", "names": [ "Schwany 4" ], "number": "4" }, { "key": "4", "names": [ "hr2 Kultur", "hr2" ], "number": "5" }, { "key": "5", "names": [ "Bayern 3" ], "number": "6" }, { "key": "6", "names": [ "Bayern 2 Süd", "Bayern 2" ], "number": "7" }, { "key": "9", "names": [ "Arabella Niederösterreich", "Radio Arabella", "Arabella" ], "number": "10" }, { "key": "29", "names": [ "Bibelradio" ], "number": "30" } ] }, "commands": { "action.devices.commands.selectChannel": { "_": "radio/setPresetAll", "channelCode": "radio/setPresetIndex", "channelName": "radio/setPresetName", "channelNumber": "radio/setPresetNumber" } } } ] } } ```

i8beef commented 4 years ago
  1. Yes, your googleDevices.json will need to have the lower case variant to work here.
  2. Make sure you do a "sync my devices" after the change.
  3. Sometimes Google Home just freaks out for a few hours. This implementation IS working for me, so I'm confident its correct.

I'm not using the availableChannels though. Its just an empty array for me... totally possible Google is freaking on language issues on that.

profiluefter commented 4 years ago

I'll let it sync over night then. availableChannels worked before so at least when using the numbers it shouldn't be a problem. Thanks again for the fast response!

i8beef commented 4 years ago

So did it work out for you? My local edition is working now, and I even generated an availableChannels and tha'ts working.

profiluefter commented 4 years ago

Sorry for the late response! I'm currently having other issues that I'm trying to troubleshoot. If it's working for you then it's obviously a problem on my side so I'll close this. Thanks for your help with my older issues!