home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
72.39k stars 30.29k forks source link

Google Assistant : Alarm control panel only works partially in english ... , Not at all in other languages #37345

Closed pergolafabio closed 1 year ago

pergolafabio commented 4 years ago

The problem

I have lot of lights/switches/scripts exposed to Google Assistant (nabucasa) , my GA setup is setup in Dutch language, no secundary english language, all is working fine, except for the "alarm control panel"

if i setup enlglish as second language then i get better responses

SO GA setup in dutch only: if i say Arm the alarm => this stand is not available => not OK disable the alarm => alarm already disabled => ok disable the alarm (if armed) => HA disables the alarm => GA respons => unexpected error ... not OK

SO GA setup in dutch and english as secundary: if i say Arm the alarm => i am not sure wich level, say armed home or armed away => OK now! disable the alarm => alarm already disabled => ok disable the alarm (if armed) => HA disables the alarm => GA respons => unexpected error ...

its better in english, but still errors

Environment

Problem-relevant configuration.yaml

 - platform: mqtt
   name: Risco Alarm
   state_topic: "riscopanel/alarm/0/status"
   command_topic: "riscopanel/alarm/0/set"
   payload_disarm: "DISARM" 
   payload_arm_home: "ARM_HOME"
   payload_arm_away: "ARM_AWAY"
   code_arm_required: false

#GA Setup
    alarm_control_panel.risco_alarm:
      name: Alarm
      room: Security 
      aliases:
        - Alarm
        - Risco
        - Beveiliging
        - Security
probot-home-assistant[bot] commented 4 years ago

google_assistant documentation google_assistant source (message by IssueLinks)

probot-home-assistant[bot] commented 4 years ago

Hey there @home-assistant/cloud, mind taking a look at this issue as its been labeled with an integration (google_assistant) you are listed as a codeowner for? Thanks! (message by CodeOwnersMention)

kje1 commented 4 years ago

I've been doing some more testing on this today as I noticed that GA was no longer returning the error "something went wrong controlling security alarm" when I was asking it to arm to armed_home. However it does still return the error when I ask it to be set to armed_away.

There is only 1 difference between these modes in my home assistant configuration and that is the arming time. For armed home this is set to 0 seconds whilst armed away is set to 30 seconds. Today I changed the armed_away arming time to be 0 seconds and asked GA to arm to away and no error was returned. I then set the arming time back to 30 seconds and... the error returned.

It was mentioned here that this could be because GA doesn't return the status back within 8 seconds, although the error appears imemdiately after issuing the arm command. I think what's happening is that it somehow must know that the arming time is > 0 seconds (or maybe 8 seconds) and therefore returns the error immediately.

Hopefully this helps in the debugging process.

pergolafabio commented 4 years ago

I have arming time 0 sec, but still having the same issues

kje1 commented 4 years ago

Is that in Dutch or English? For me, I'm only getting one error which is when I ask for the alarm to be set to armed_away. Now I've learnt that error is only happening with an arming time different to 0 seconds.

pergolafabio commented 4 years ago

In English also, see the issue thread I created earlier... In Dutch it's even worse

matteobombardi commented 4 years ago

I have the same issue in italian

Screwdgeh commented 4 years ago

Guys,

I would like to contribute by proposing code to support other languages at least for the alarm component, maybe it will be helpful for other components in the long run. I have Verisure myself and was able to make it work succesfully by adding just a few lines that insert Dutch translations into the ArmDisarm trait for Google assistant.

I would like to know however how home assistant key contributors would like to see this implementation:

  1. Have Home Assistant figure out the language setting (need to still figure out how it does this in the first place) and based on that automatically add the right language keywords to Google Assistant based on the available translations. (no extra user input required but goes wrong if user uses some other language for google assistant than home assistant)
  2. Have a language configuration option for the google assistant component in which the user can specify the language he is preferring:
    google_assistant:
    project_id: YOUR_PROJECT_ID
    service_account: !include SERVICE_ACCOUNT.JSON
    language: "nl"

    Perhaps preferred to have 1 as default and have the ability to override via configuration?

  3. Just have the keywords per mode be added to the google assistant as a configuration option for alarm control panels - most versatile but most complex, e.g.
    google_assistant:
    project_id: YOUR_PROJECT_ID
    service_account: !include SERVICE_ACCOUNT.JSON
    entity_config:
    alarm_control_panel.<name>:
      level: "arm_home"
         extra_keyword: { "keyword": "thuis", "lang": "nl" }
      level: "arm_away"
         extra_keyword: { "keyword": "afwezig", "lang": "nl"}

    I would go with combination of 1 and 2 and completely disregard 3, please give me some feedback and I can propose the concrete code changes to do so.

(I am new to code contributions but really love home assistant especially with the google assistant integration and already have been making some tweaks and building custom components for myself and would love to share something robust that can also help other people!)

pergolafabio commented 4 years ago

Happy to test, allthough I am using nabucasa, not sure if I can override it as a custom

balloob commented 4 years ago

We do not control the translations in Google Assistant. If the translation are incorrect, you can file an issue in their public bug tracker https://issuetracker.google.com/issues/new?component=655104

Screwdgeh commented 4 years ago

Thanks for the comment, Google does provide many translations, however not in this case - have a look at: https://developers.google.com/assistant/smarthome/traits/armdisarm

Per alarm level Google expects a synonym specified in a certain language defined by the data supplier. So it would be up to home assistant in this case to provide it. E.g.:

{ "availableArmLevels": { "levels": [{ "level_name": "L1", "level_values": [{ "level_synonym": ["low security", "home and guarding", "level 1", "SL1"], "lang": "en" }] }, { "level_name": "L2", "level_values": [{ "level_synonym": ["high security", "away and guarding", "level 2", "away", "SL2"], "lang": "en" }] }], "ordered": true } }

I believe it can be done by using the localization strings in home assistant for the alarm panel component. Question is about what is the best/preferred approach for this?

BigWebstas commented 3 years ago

In english on Hass 0.117.2 i am getting similar results the house alarm arms but google responds with "something went wrong" After more reading, this might be a seperate issue

piitaya commented 3 years ago

Any idea about the best/preferred approach? I have similar issues with the alarm, the fan speed (https://developers.google.com/assistant/smarthome/traits/fanspeed) and the channel (https://developers.google.com/assistant/smarthome/traits/channel). The channel aren't implemented yet but I planned to do it.

Fan speed synonyms are already added in home assistant but it's not translated.

speed_synonyms = {
   fan.SPEED_OFF: ["stop", "off"],
   fan.SPEED_LOW: ["slow", "low", "slowest", "lowest"],
   fan.SPEED_MEDIUM: ["medium", "mid", "middle"],
   fan.SPEED_HIGH: ["high", "max", "fast", "highest", "fastest", "maximum"],
}

We can add this like this but I'm not sure about the approach... (I prefer the method 3 to avoid any translations in home assistant core but it's for advanced user... However, the local google_assistant integration is already for advanced users.

google_assistant:
   project_id: YOUR_PROJECT_ID
   service_account: !include SERVICE_ACCOUNT.JSON
   language: "en"
   speed_traits_config:
      speed_low:
         synonyms: ["slow", "low", "slowest", "lowest"]
      speed_medium:
         synonyms: ["medium", "mid", "middle"]
github-actions[bot] commented 3 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

gpatryk commented 3 years ago

I'm still getting "Something went wrong" on 2021.3.4.

github-actions[bot] commented 3 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

gpatryk commented 3 years ago

The issue still persist in 2021.7.0. Please leave it open.

github-actions[bot] commented 2 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Nardol commented 2 years ago

Still occurring with Home Assistant 2021.10. The fact Google Assistant integration is not translatable makes this issue not solved.

github-actions[bot] commented 2 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Nardol commented 2 years ago

Still the same

dasb00ter commented 2 years ago

I'm still seeing this behaviour. I'm using English and asking Google home to "set my home alarm to away". It then asks for me code which I give. The action is performed but Google home warns "that something went wrong". After reading multiple duplicates I found my way here. Thanks, sorry to repeat what others are saying but it seems the issue gets closed if it becomes stale. I'm on 2022.3.7

github-actions[bot] commented 2 years ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

dasb00ter commented 2 years ago

Still happening. Although weirdly I was able to disable my alarm without error once in awhile

dasb00ter commented 2 years ago

I'm still seeing this behaviour. "something went wrong while operating the home alarm"is the response

wtstreetglow commented 2 years ago

This is still happening. I agree with @dasb00ter

Is this being looked at? Let's all hope so.

Thank you all for all of your hard work!

andremiller commented 1 year ago

Still happening, using English language on both HA and Google Assistant, Home Assistant 2022.10.5, OS 9.3, manual Google Assistant integration. MQTT alarm panel.

When arming my alarm with 'Hey Google, set house alarm to armed home' it executes the action correctly and arms my alarm, but responds with "something went wrong".

issue-triage-workflows[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

mayermatt commented 1 year ago

Currently running Home Assistant 2023.1.7, manual Google Assistant integration, and a manual alarm control panel.

I can no longer reproduce this issue, so I'm cautiously optimistic that this is resolved! If I ask Google Assistant to set the alarm to armed, disarmed, etc. it seems to behave as expected, and I'm now getting an "all right, disarming X" response instead of the previous "something went wrong" response.

Can anyone corroborate?

andremiller commented 1 year ago

I'm still experiencing this issue, using Home Assistant 2013.1.7, with my configuration as described here

issue-triage-workflows[bot] commented 1 year ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment πŸ‘ This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.