home-assistant-intents 2024.4.24__tar.gz → 2024.5.28__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. {home-assistant-intents-2024.4.24/home_assistant_intents.egg-info → home-assistant-intents-2024.5.28}/PKG-INFO +1 -1
  2. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/__init__.py +15 -0
  3. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/bg.json +26 -0
  4. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/en.json +273 -3
  5. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/es.json +56 -8
  6. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/fr.json +109 -9
  7. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/pt.json +30 -2
  8. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ru.json +2 -2
  9. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28/home_assistant_intents.egg-info}/PKG-INFO +1 -1
  10. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/pyproject.toml +1 -1
  11. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/LICENSE.md +0 -0
  12. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/MANIFEST.in +0 -0
  13. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/README.md +0 -0
  14. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/af.json +0 -0
  15. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ar.json +0 -0
  16. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/bn.json +0 -0
  17. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ca.json +0 -0
  18. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/cs.json +0 -0
  19. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/da.json +0 -0
  20. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/de-CH.json +0 -0
  21. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/de.json +0 -0
  22. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/el.json +0 -0
  23. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/et.json +0 -0
  24. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/eu.json +0 -0
  25. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/fa.json +0 -0
  26. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/fi.json +0 -0
  27. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/fr-CA.json +0 -0
  28. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/gl.json +0 -0
  29. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/gu.json +0 -0
  30. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/he.json +0 -0
  31. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/hi.json +0 -0
  32. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/hr.json +0 -0
  33. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/hu.json +0 -0
  34. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/id.json +0 -0
  35. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/is.json +0 -0
  36. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/it.json +0 -0
  37. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ka.json +0 -0
  38. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/kn.json +0 -0
  39. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ko.json +0 -0
  40. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/lb.json +0 -0
  41. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/lt.json +0 -0
  42. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/lv.json +0 -0
  43. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ml.json +0 -0
  44. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/mn.json +0 -0
  45. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ms.json +0 -0
  46. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/nb.json +0 -0
  47. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/nl.json +0 -0
  48. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/pl.json +0 -0
  49. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/pt-br.json +0 -0
  50. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ro.json +0 -0
  51. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/sk.json +0 -0
  52. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/sl.json +0 -0
  53. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/sr.json +0 -0
  54. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/sv.json +0 -0
  55. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/sw.json +0 -0
  56. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/te.json +0 -0
  57. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/tr.json +0 -0
  58. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/uk.json +0 -0
  59. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/ur.json +0 -0
  60. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/vi.json +0 -0
  61. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/zh-cn.json +0 -0
  62. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/zh-hk.json +0 -0
  63. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/data/zh-tw.json +0 -0
  64. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents/languages.py +0 -0
  65. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents.egg-info/SOURCES.txt +0 -0
  66. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents.egg-info/dependency_links.txt +0 -0
  67. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents.egg-info/top_level.txt +0 -0
  68. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/home_assistant_intents.egg-info/zip-safe +0 -0
  69. {home-assistant-intents-2024.4.24 → home-assistant-intents-2024.5.28}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: home-assistant-intents
3
- Version: 2024.4.24
3
+ Version: 2024.5.28
4
4
  Summary: Intents for Home Assistant
5
5
  Author-email: The Home Assistant Authors <hello@home-assistant.io>
6
6
  License: Apache-2.0
@@ -92,6 +92,21 @@ class ErrorKey(str, Enum):
92
92
  DUPLICATE_ENTITIES_IN_FLOOR = "duplicate_entities_in_floor"
93
93
  """More than one entity in an floor matched with the same name."""
94
94
 
95
+ FEATURE_NOT_SUPPORTED = "feature_not_supported"
96
+ """Entity does not support a required feature."""
97
+
98
+ ENTITY_WRONG_STATE = "entity_wrong_state"
99
+ """Entity is not in the correct state."""
100
+
101
+ TIMER_NOT_FOUND = "timer_not_found"
102
+ """No timer matched the provided constraints."""
103
+
104
+ MULTIPLE_TIMERS_MATCHED = "multiple_timers_matched"
105
+ """More than one timer targeted for an action matched the constraints."""
106
+
107
+ NO_TIMER_SUPPORT = "no_timer_support"
108
+ """Vocie satellite does not support timers."""
109
+
95
110
 
96
111
  def get_intents(
97
112
  language: str,
@@ -997,6 +997,26 @@
997
997
  }
998
998
  }
999
999
  ]
1000
+ },
1001
+ "HassListAddItem": {
1002
+ "data": [
1003
+ {
1004
+ "sentences": [
1005
+ "добави <item> (в|към) <my_list>",
1006
+ "сложи <item> (в|към) <my_list>",
1007
+ "прибави <item> (в|към) <my_list>",
1008
+ "запиши <item> (в|към) <my_list>"
1009
+ ],
1010
+ "response": "item_added",
1011
+ "requires_context": {
1012
+ "domain": "todo"
1013
+ },
1014
+ "expansion_rules": {
1015
+ "my_list": "[ моя| моите] [ списък| списъка| списъка ми] [с|със|за] {name} [ми]",
1016
+ "item": "{shopping_list_item:item}"
1017
+ }
1018
+ }
1019
+ ]
1000
1020
  }
1001
1021
  },
1002
1022
  "responses": {
@@ -1035,6 +1055,9 @@
1035
1055
  "cover_area": "Отворих {{ slots.area }}",
1036
1056
  "cover_device_class": "Отворих {{ slots.device_class }}"
1037
1057
  },
1058
+ "HassListAddItem": {
1059
+ "item_added": "Добавих {{ slots.item }}"
1060
+ },
1038
1061
  "HassGetWeather": {
1039
1062
  "default": "{% set weather_condition = {\n 'clear': 'и ясно',\n 'clear-night': 'и ясно',\n 'cloudy': 'и облачно',\n 'exceptional': 'and exceptional',\n 'fog': 'с мъгла',\n 'hail': 'с градушка',\n 'lightning': 'с грамотевици',\n 'lightning-rainy': 'с грамотевици и дъжд',\n 'partlycloudy': 'и с частична облачност',\n 'pouring': 'и обилни дъждове',\n 'rainy': 'и дъждовно',\n 'snowy': 'и снеговалеж',\n 'snowy-rainy': 'със сняг и дъжд',\n 'sunny': 'и слънчево',\n 'windy': 'и ветровито',\n 'windy-variant': 'with wind and clouds'\n} %} {{ state.attributes.get('temperature') }} {{ state.attributes.get('temperature_unit') }} {{ weather_condition.get((state.state | string).lower(), \"\") }}\n"
1040
1063
  },
@@ -1539,6 +1562,9 @@
1539
1562
  "out": "off"
1540
1563
  }
1541
1564
  ]
1565
+ },
1566
+ "shopping_list_item": {
1567
+ "wildcard": true
1542
1568
  }
1543
1569
  },
1544
1570
  "expansion_rules": {
@@ -2455,6 +2455,43 @@
2455
2455
  }
2456
2456
  ]
2457
2457
  },
2458
+ "HassCancelTimer": {
2459
+ "data": [
2460
+ {
2461
+ "sentences": [
2462
+ "<timer_cancel>[ the| my] timer",
2463
+ "<timer_cancel>[ the| my] <timer_start> timer",
2464
+ "<timer_cancel>[ the| my] timer for <timer_start>",
2465
+ "<timer_cancel>[ the| my] {area} timer",
2466
+ "<timer_cancel>[ the| my] timer in <area>",
2467
+ "<timer_cancel>[ the| my] {timer_name:name} timer",
2468
+ "<timer_cancel>[ the| my] timer for {timer_name:name}"
2469
+ ]
2470
+ }
2471
+ ]
2472
+ },
2473
+ "HassTimerStatus": {
2474
+ "data": [
2475
+ {
2476
+ "sentences": [
2477
+ "timer[s] status",
2478
+ "status of[ the| my] timer[s]",
2479
+ "[how much ]time[ is] left on[ the| my] timer[s]",
2480
+ "<timer_start> timer status",
2481
+ "status of[ the| my] <timer_start> timer",
2482
+ "[how much ]time[ is] left on[ the| my] <timer_start> timer",
2483
+ "{area} timer status",
2484
+ "status of[ the| my] {area} timer[s]",
2485
+ "status of[ the| my] timer[s] in <area>",
2486
+ "[how much ]time[ is] left on[ the| my] {area} timer",
2487
+ "[how much ]time[ is] left on[ the| my] timer[s] in <area>",
2488
+ "{timer_name:name} timer status",
2489
+ "status of[ the| my] {timer_name:name} timer[s]",
2490
+ "[how much ]time[ is] left on[ the| my] {timer_name:name} timer"
2491
+ ]
2492
+ }
2493
+ ]
2494
+ },
2458
2495
  "HassGetWeather": {
2459
2496
  "data": [
2460
2497
  {
@@ -2744,6 +2781,22 @@
2744
2781
  "requires_context": {
2745
2782
  "domain": "media_player"
2746
2783
  }
2784
+ },
2785
+ {
2786
+ "sentences": [
2787
+ "(unpause|resume)"
2788
+ ],
2789
+ "requires_context": {
2790
+ "area": {
2791
+ "slot": true
2792
+ }
2793
+ }
2794
+ },
2795
+ {
2796
+ "sentences": [
2797
+ "(unpause|resume)[ [the |my ](music|[tv ]show[s]|media[ player[s]]) ][ in] <area>",
2798
+ "(unpause|resume) <area> (music|[tv ]show[s]|media[ player[s]])"
2799
+ ]
2747
2800
  }
2748
2801
  ]
2749
2802
  },
@@ -2807,6 +2860,32 @@
2807
2860
  }
2808
2861
  ]
2809
2862
  },
2863
+ "HassIncreaseTimer": {
2864
+ "data": [
2865
+ {
2866
+ "sentences": [
2867
+ "add <timer_duration> to[ the| my] timer",
2868
+ "add <timer_duration> to[ the| my] <timer_start> timer",
2869
+ "add <timer_duration> to[ the| my] timer for <timer_start>",
2870
+ "add <timer_duration> to[ the| my] {area} timer",
2871
+ "add <timer_duration> to[ the| my] timer in <area>",
2872
+ "add <timer_duration> to[ the| my] {timer_name:name} timer",
2873
+ "add <timer_duration> to[ the| my] timer (named|called|for) {timer_name:name}"
2874
+ ]
2875
+ },
2876
+ {
2877
+ "sentences": [
2878
+ "increase[ the| my] timer by <timer_duration>",
2879
+ "increase[ the| my] <timer_start> timer by <timer_duration>",
2880
+ "increase[ the| my] timer for <timer_start> by <timer_duration>",
2881
+ "increase[ the| my] {area} timer by <timer_duration>",
2882
+ "increase[ the| my] timer in <area> by <timer_duration>",
2883
+ "increase[ the| my] {timer_name:name} timer by <timer_duration>",
2884
+ "increase[ the| my] timer (named|called|for) {timer_name:name} by <timer_duration>"
2885
+ ]
2886
+ }
2887
+ ]
2888
+ },
2810
2889
  "HassLightSet": {
2811
2890
  "data": [
2812
2891
  {
@@ -2952,6 +3031,64 @@
2952
3031
  "requires_context": {
2953
3032
  "domain": "media_player"
2954
3033
  }
3034
+ },
3035
+ {
3036
+ "sentences": [
3037
+ "next [track|item]",
3038
+ "(skip [(to [the ]next [(song|track)]|([the ](song|track)|this [(song|track)]))])"
3039
+ ],
3040
+ "requires_context": {
3041
+ "area": {
3042
+ "slot": true
3043
+ }
3044
+ }
3045
+ },
3046
+ {
3047
+ "sentences": [
3048
+ "next [track|item] [in ]<area>",
3049
+ "(skip [(to [the ]next [(song|track)]|([the ](song|track)|this [(song|track)]) )];[in ]<area>)"
3050
+ ]
3051
+ }
3052
+ ]
3053
+ },
3054
+ "HassPauseTimer": {
3055
+ "data": [
3056
+ {
3057
+ "sentences": [
3058
+ "pause[ the| my] timer",
3059
+ "pause[ the| my] <timer_start> timer",
3060
+ "pause[ the| my] timer for <timer_start>",
3061
+ "pause[ the| my] {area} timer",
3062
+ "pause[ the| my] timer in <area>",
3063
+ "pause[ the| my] {timer_name:name} timer",
3064
+ "pause[ the| my] timer (named|called|for) {timer_name:name}"
3065
+ ]
3066
+ }
3067
+ ]
3068
+ },
3069
+ "HassDecreaseTimer": {
3070
+ "data": [
3071
+ {
3072
+ "sentences": [
3073
+ "remove <timer_duration> from[ the| my] timer",
3074
+ "remove <timer_duration> from[ the| my] <timer_start> timer",
3075
+ "remove <timer_duration> from[ the| my] timer for <timer_start>",
3076
+ "remove <timer_duration> from[ the| my] {area} timer",
3077
+ "remove <timer_duration> from[ the| my] timer in <area>",
3078
+ "remove <timer_duration> from[ the| my] {timer_name:name} timer",
3079
+ "remove <timer_duration> from[ the| my] timer (named|called|for) {timer_name:name}"
3080
+ ]
3081
+ },
3082
+ {
3083
+ "sentences": [
3084
+ "decrease[ the| my] timer by <timer_duration>",
3085
+ "decrease[ the| my] <timer_start> timer by <timer_duration>",
3086
+ "decrease[ the| my] timer for <timer_start> by <timer_duration>",
3087
+ "decrease[ the| my] {area} timer by <timer_duration>",
3088
+ "decrease[ the| my] timer in <area> by <timer_duration>",
3089
+ "decrease[ the| my] {timer_name:name} timer by <timer_duration>",
3090
+ "decrease[ the| my] timer (named|called|for) {timer_name:name} by <timer_duration>"
3091
+ ]
2955
3092
  }
2956
3093
  ]
2957
3094
  },
@@ -2964,6 +3101,59 @@
2964
3101
  "requires_context": {
2965
3102
  "domain": "media_player"
2966
3103
  }
3104
+ },
3105
+ {
3106
+ "sentences": [
3107
+ "pause"
3108
+ ],
3109
+ "requires_context": {
3110
+ "area": {
3111
+ "slot": true
3112
+ }
3113
+ }
3114
+ },
3115
+ {
3116
+ "sentences": [
3117
+ "pause[ [the |my ](music|[tv ]show[s]|media[ player[s]]) ][ in] <area>",
3118
+ "pause <area> (music|[tv ]show[s]|media[ player[s]])"
3119
+ ]
3120
+ }
3121
+ ]
3122
+ },
3123
+ "HassUnpauseTimer": {
3124
+ "data": [
3125
+ {
3126
+ "sentences": [
3127
+ "(resume|continue)[ the| my] timer",
3128
+ "(resume|continue)[ the| my] <timer_start> timer",
3129
+ "(resume|continue)[ the| my] timer for <timer_start>",
3130
+ "(resume|continue)[ the| my] {area} timer",
3131
+ "(resume|continue)[ the| my] timer in <area>",
3132
+ "(resume|continue)[ the| my] timer (named|called|for) {timer_name:name}",
3133
+ "(resume|continue)[ the| my] {timer_name:name} timer"
3134
+ ]
3135
+ }
3136
+ ]
3137
+ },
3138
+ "HassStartTimer": {
3139
+ "data": [
3140
+ {
3141
+ "sentences": [
3142
+ "<timer_duration> timer",
3143
+ "timer for <timer_duration>",
3144
+ "<timer_duration> timer for {timer_name:name}",
3145
+ "timer for <timer_duration> (named|called) {timer_name:name}",
3146
+ "<timer_set>[ a] <timer_duration> timer",
3147
+ "<timer_set>[ a] timer for <timer_duration>",
3148
+ "<timer_set>[ a] <timer_duration> timer (named|called|for) {timer_name:name}",
3149
+ "<timer_set>[ a] timer (named|called) {timer_name:name} for <timer_duration>",
3150
+ "<timer_set>[ a] timer for <timer_duration> (named|called) {timer_name:name}"
3151
+ ],
3152
+ "requires_context": {
3153
+ "area": {
3154
+ "slot": false
3155
+ }
3156
+ }
2967
3157
  }
2968
3158
  ]
2969
3159
  },
@@ -3043,6 +3233,29 @@
3043
3233
  "requires_context": {
3044
3234
  "domain": "media_player"
3045
3235
  }
3236
+ },
3237
+ {
3238
+ "sentences": [
3239
+ "<numeric_value_set> volume to <volume> [percent]",
3240
+ "turn volume (up|down) to <volume> [percent]",
3241
+ "<numeric_value_set> the volume to <volume> [percent]",
3242
+ "turn (the volume;(up|down)) to <volume> [percent]"
3243
+ ],
3244
+ "requires_context": {
3245
+ "area": {
3246
+ "slot": true
3247
+ }
3248
+ }
3249
+ },
3250
+ {
3251
+ "sentences": [
3252
+ "<numeric_value_set> <area> volume to <volume> [percent]",
3253
+ "turn <area> [volume] (up|down) to <volume> [percent]",
3254
+ "turn [volume] (up|down) to <volume> [percent][in ]<area>",
3255
+ "(<numeric_value_set> the volume to <volume> [percent];[in ]<area>)",
3256
+ "<numeric_value_set> the volume [in ]<area> to <volume> [percent]",
3257
+ "(turn (the volume;(up|down)) to <volume> [percent];[in ]<area>)"
3258
+ ]
3046
3259
  }
3047
3260
  ]
3048
3261
  }
@@ -3062,6 +3275,8 @@
3062
3275
  "no_entity": "Sorry, I am not aware of any device called {{ entity }}",
3063
3276
  "no_entity_in_area": "Sorry, I am not aware of any device called {{ entity }} in the {{ area }} area",
3064
3277
  "no_entity_in_floor": "Sorry, I am not aware of any device called {{ entity }} in the {{ floor }} floor",
3278
+ "entity_wrong_state": "Sorry, no device is {{ state | lower }}",
3279
+ "feature_not_supported": "Sorry, no device supports the required features",
3065
3280
  "no_entity_exposed": "Sorry, {{ entity }} is not exposed",
3066
3281
  "no_entity_in_area_exposed": "Sorry, {{ entity }} in the {{ area }} area is not exposed",
3067
3282
  "no_entity_in_floor_exposed": "Sorry, {{ entity }} in the {{ floor }} floor is not exposed",
@@ -3073,7 +3288,10 @@
3073
3288
  "no_device_class_in_floor_exposed": "Sorry, no {{ device_class }} in the {{ floor }} floor is exposed",
3074
3289
  "duplicate_entities": "Sorry, there are multiple devices called {{ entity }}",
3075
3290
  "duplicate_entities_in_area": "Sorry, there are multiple devices called {{ entity }} in the {{ area }} area",
3076
- "duplicate_entities_in_floor": "Sorry, there are multiple devices called {{ entity }} in the {{ floor }} floor"
3291
+ "duplicate_entities_in_floor": "Sorry, there are multiple devices called {{ entity }} in the {{ floor }} floor",
3292
+ "timer_not_found": "Sorry, I couldn't find that timer",
3293
+ "multiple_timers_matched": "Sorry, I am unable to target multiple timers",
3294
+ "no_timer_support": "Sorry, timers are not supported on this device"
3077
3295
  },
3078
3296
  "intents": {
3079
3297
  "HassGetState": {
@@ -3098,6 +3316,9 @@
3098
3316
  "lock": "Unlocked",
3099
3317
  "valve": "Closed"
3100
3318
  },
3319
+ "HassStartTimer": {
3320
+ "default": "Timer started"
3321
+ },
3101
3322
  "HassShoppingListAddItem": {
3102
3323
  "item_added": "Added {{ slots.item }}"
3103
3324
  },
@@ -3117,9 +3338,18 @@
3117
3338
  "HassMediaPause": {
3118
3339
  "default": "Paused"
3119
3340
  },
3341
+ "HassPauseTimer": {
3342
+ "default": "Timer paused"
3343
+ },
3344
+ "HassTimerStatus": {
3345
+ "default": "{% set num_timers = slots.timers | length %}\n{% set active_timers = slots.timers | selectattr('is_active') | list %}\n{% set num_active_timers = active_timers | length %}\n{% set paused_timers = slots.timers | rejectattr('is_active') | list %}\n{% set num_paused_timers = paused_timers | length %}\n{% set next_timer = None %}\n\n{% if num_timers == 0: %}\n No timers.\n{% elif num_active_timers == 0: %}\n {# No active timers #}\n {% if num_paused_timers == 1: %}\n {% set next_timer = paused_timers[0] %}\n Timer is paused.\n {% else: %}\n {{ num_paused_timers }} paused timers.\n {% endif %}\n{% else: %}\n {# At least one active timer #}\n {% if num_active_timers == 1: %}\n {% set next_timer = active_timers[0] %}\n {% else: %}\n {# Get active timer that will finish soonest #}\n {% set sorted_timers = active_timers | sort(attribute='total_seconds_left') %}\n {% set next_timer = sorted_timers[0] %}\n {{ num_active_timers }} running timers.\n {% endif %}\n\n {% if num_paused_timers == 1: %}\n 1 paused timer.\n {% elif num_paused_timers > 0: %}\n {{ num_paused_timers }} paused timers.\n {% endif %}\n{% endif %}\n\n{% if next_timer: %}\n {# At least one active timer #}\n {% if (next_timer.rounded_hours_left == 1) and (next_timer.rounded_minutes_left > 0): %}\n 1 hour and {{ next_timer.rounded_minutes_left }} minutes\n {% elif (next_timer.rounded_hours_left == 1): %}\n 1 hour\n {% elif (next_timer.rounded_hours_left > 1) and (next_timer.rounded_minutes_left > 0): %}\n {{ next_timer.rounded_hours_left }} hours and {{ next_timer.rounded_minutes_left }} minutes\n {% elif (next_timer.rounded_hours_left > 1): %}\n {{ next_timer.rounded_hours_left }} hours\n {% elif (next_timer.rounded_minutes_left == 1) and (next_timer.rounded_seconds_left > 0): %}\n 1 minute and {{ next_timer.rounded_seconds_left }} seconds\n {% elif (next_timer.rounded_minutes_left == 1): %}\n 1 minute\n {% elif (next_timer.rounded_minutes_left > 1) and (next_timer.rounded_seconds_left > 0): %}\n {{ next_timer.rounded_minutes_left }} minutes and {{ next_timer.rounded_seconds_left }} seconds\n {% elif (next_timer.rounded_minutes_left > 1): %}\n {{ next_timer.rounded_minutes_left }} minutes\n {% elif (next_timer.rounded_seconds_left == 1): %}\n 1 second\n {% elif (next_timer.rounded_seconds_left > 1): %}\n {{ next_timer.rounded_seconds_left }} seconds\n {% endif %}\n\n {% if num_timers > 1: %}\n {# Give some extra information to disambiguate #}\n left on\n {% if (next_timer.start_hours > 0) and (next_timer.start_minutes > 0): %}\n {{ next_timer.start_hours }} hour and {{ next_timer.start_minutes }} minute\n {% elif (next_timer.start_hours > 0): %}\n {{ next_timer.start_hours }} hour\n {% elif (next_timer.start_minutes > 0) and (next_timer.start_seconds > 0): %}\n {{ next_timer.start_minutes }} minute and {{ next_timer.start_seconds }} second\n {% elif (next_timer.start_minutes > 0): %}\n {{ next_timer.start_minutes }} minute\n {% elif (next_timer.start_seconds > 0): %}\n {{ next_timer.start_seconds }} second\n {% endif %}\n\n {% if next_timer.name: %}\n {{ next_timer.name }}\n {% elif next_timer.area: %}\n {{ next_timer.area }}\n {% endif %}\n\n timer.\n {% else: %}\n left.\n {% endif %}\n{% endif %}\n"
3346
+ },
3120
3347
  "HassListAddItem": {
3121
3348
  "item_added": "Added {{ slots.item }}"
3122
3349
  },
3350
+ "HassUnpauseTimer": {
3351
+ "default": "Timer resumed"
3352
+ },
3123
3353
  "HassGetWeather": {
3124
3354
  "default": "{% set weather_condition = {\n 'clear': 'and clear',\n 'clear-night': 'and clear',\n 'cloudy': 'and cloudy',\n 'exceptional': 'and exceptional',\n 'fog': 'with fog',\n 'hail': 'with hail',\n 'lightning': 'with lightning',\n 'lightning-rainy': 'with lightning and rain',\n 'partlycloudy': 'and partly cloudy',\n 'pouring': 'and pouring rain',\n 'rainy': 'and raining',\n 'snowy': 'and snowing',\n 'snowy-rainy': 'with snow and rain',\n 'sunny': 'and sunny',\n 'windy': 'and windy',\n 'windy-variant': 'with wind and clouds'\n} %} {{ state.attributes.get('temperature') }} {{ state.attributes.get('temperature_unit') }} {{ weather_condition.get((state.state | string).lower(), \"\") }}\n"
3125
3355
  },
@@ -3131,7 +3361,7 @@
3131
3361
  "default": "Started"
3132
3362
  },
3133
3363
  "HassMediaUnpause": {
3134
- "default": "Unpaused"
3364
+ "default": "Resumed"
3135
3365
  },
3136
3366
  "HassSetPosition": {
3137
3367
  "default": "Position set"
@@ -3139,12 +3369,21 @@
3139
3369
  "HassMediaNext": {
3140
3370
  "default": "Playing next"
3141
3371
  },
3372
+ "HassCancelTimer": {
3373
+ "default": "Timer cancelled"
3374
+ },
3142
3375
  "HassClimateGetTemperature": {
3143
3376
  "default": "{% set temperature = state_attr(state.entity_id, 'current_temperature') %} {% if temperature == 1: %} {{ temperature }} degree {% else: %} {{ temperature }} degrees {% endif %}\n"
3144
3377
  },
3145
3378
  "HassSetVolume": {
3146
3379
  "default": "Volume set"
3147
3380
  },
3381
+ "HassDecreaseTimer": {
3382
+ "default": "Timer updated"
3383
+ },
3384
+ "HassIncreaseTimer": {
3385
+ "default": "Timer updated"
3386
+ },
3148
3387
  "HassVacuumReturnToBase": {
3149
3388
  "default": "Returning"
3150
3389
  }
@@ -3649,6 +3888,27 @@
3649
3888
  "from": 0,
3650
3889
  "to": 100
3651
3890
  }
3891
+ },
3892
+ "timer_seconds": {
3893
+ "range": {
3894
+ "from": 1,
3895
+ "to": 100
3896
+ }
3897
+ },
3898
+ "timer_minutes": {
3899
+ "range": {
3900
+ "from": 1,
3901
+ "to": 100
3902
+ }
3903
+ },
3904
+ "timer_hours": {
3905
+ "range": {
3906
+ "from": 1,
3907
+ "to": 100
3908
+ }
3909
+ },
3910
+ "timer_name": {
3911
+ "wildcard": true
3652
3912
  }
3653
3913
  },
3654
3914
  "expansion_rules": {
@@ -3673,7 +3933,17 @@
3673
3933
  "home": "(home|house|appartment|flat)",
3674
3934
  "everywhere": "(everywhere|in all [the] rooms|in every room[s]|in each room|in the <home>)",
3675
3935
  "here": "(here|in here|in this room|in the room)",
3676
- "what_is_the_class_of_name": "(<what_is> the <class> (of|in|from|(indicated|measured) by) <name> [in <area>]|<what_is> <name>['s] <class> [in <area>]|<what_is> <area> <name>['s] <class>)"
3936
+ "what_is_the_class_of_name": "(<what_is> the <class> (of|in|from|(indicated|measured) by) <name> [in <area>]|<what_is> <name>['s] <class> [in <area>]|<what_is> <area> <name>['s] <class>)",
3937
+ "timer_set": "(start|set|create)",
3938
+ "timer_cancel": "(cancel|stop)",
3939
+ "timer_duration_seconds": "{timer_seconds:seconds} second[s]",
3940
+ "timer_duration_minutes": "{timer_minutes:minutes} minute[s][ [and ]{timer_seconds:seconds} second[s]]",
3941
+ "timer_duration_hours": "{timer_hours:hours} hour[s][ [and ]{timer_minutes:minutes} minute[s]][ [and ]{timer_seconds:seconds} second[s]]",
3942
+ "timer_duration": "<timer_duration_seconds>|<timer_duration_minutes>|<timer_duration_hours>",
3943
+ "timer_start_seconds": "{timer_seconds:start_seconds} second[s]",
3944
+ "timer_start_minutes": "{timer_minutes:start_minutes} minute[s][ [and ]{timer_seconds:start_seconds} second[s]]",
3945
+ "timer_start_hours": "{timer_hours:start_hours} hour[s][ [and ]{timer_minutes:start_minutes} minute[s]][ [and ]{timer_seconds:start_seconds} second[s]]",
3946
+ "timer_start": "<timer_start_seconds>|<timer_start_minutes>|<timer_start_hours>"
3677
3947
  },
3678
3948
  "skip_words": [
3679
3949
  "please",
@@ -31,8 +31,7 @@
31
31
  },
32
32
  {
33
33
  "sentences": [
34
- "<apaga> [(la|las)] (luz | luces) <area>",
35
- "<apaga> todas las luces <area>",
34
+ "<apaga> [<todos>] <luces> <area>",
36
35
  "<apaga> <area>"
37
36
  ],
38
37
  "slots": {
@@ -42,7 +41,8 @@
42
41
  },
43
42
  {
44
43
  "sentences": [
45
- "<apaga> todas las luces"
44
+ "<apaga> [<todos>] <luces> <todas_partes>",
45
+ "<apaga> <todos> <luces>"
46
46
  ],
47
47
  "response": "light_all",
48
48
  "slots": {
@@ -52,7 +52,8 @@
52
52
  },
53
53
  {
54
54
  "sentences": [
55
- "<apaga> ((la luz|las luces)[<de_aqui>]|todas las luces <de_aqui>)"
55
+ "<apaga> [<todos>] <luces> <de_aqui>",
56
+ "<apaga> <luces>"
56
57
  ],
57
58
  "response": "lights_area",
58
59
  "slots": {
@@ -64,6 +65,16 @@
64
65
  }
65
66
  }
66
67
  },
68
+ {
69
+ "sentences": [
70
+ "<apaga> [<todos>] <luces> <planta>",
71
+ "<apaga> <planta>"
72
+ ],
73
+ "response": "lights_floor",
74
+ "slots": {
75
+ "domain": "light"
76
+ }
77
+ },
67
78
  {
68
79
  "sentences": [
69
80
  "<cierra> <name> [<area>]"
@@ -2536,7 +2547,7 @@
2536
2547
  "data": [
2537
2548
  {
2538
2549
  "sentences": [
2539
- "<enciende> [[(el|la|los|las)] (luz|luces|(interruptor[es]|llave[s] de [la luz]))] [de|del] <name>"
2550
+ "<enciende> <luces> [de [l(a|o)[s]]|del] <name>"
2540
2551
  ],
2541
2552
  "response": "light",
2542
2553
  "requires_context": {
@@ -2545,7 +2556,7 @@
2545
2556
  },
2546
2557
  {
2547
2558
  "sentences": [
2548
- "<enciende> [toda[s]] ([la] luz | [las] luces) <area>",
2559
+ "<enciende> [<todos>] <luces> <area>",
2549
2560
  "<enciende> <area>"
2550
2561
  ],
2551
2562
  "slots": {
@@ -2555,7 +2566,18 @@
2555
2566
  },
2556
2567
  {
2557
2568
  "sentences": [
2558
- "<enciende> [todas] la[s] lu(z|ces)[<de_aqui>]"
2569
+ "<enciende> [<todos>] <luces> <todas_partes>",
2570
+ "<enciende> <todos> <luces>"
2571
+ ],
2572
+ "response": "light_all",
2573
+ "slots": {
2574
+ "domain": "light"
2575
+ }
2576
+ },
2577
+ {
2578
+ "sentences": [
2579
+ "<enciende> [<todos>] <luces> <de_aqui>",
2580
+ "<enciende> <luces>"
2559
2581
  ],
2560
2582
  "response": "lights_area",
2561
2583
  "slots": {
@@ -2567,6 +2589,16 @@
2567
2589
  }
2568
2590
  }
2569
2591
  },
2592
+ {
2593
+ "sentences": [
2594
+ "<enciende> [<todos>] <luces> <planta>",
2595
+ "<enciende> <planta>"
2596
+ ],
2597
+ "response": "lights_floor",
2598
+ "slots": {
2599
+ "domain": "light"
2600
+ }
2601
+ },
2570
2602
  {
2571
2603
  "sentences": [
2572
2604
  "<enciende> [todos] [los|el] (ventilador[es]|abanico[s]) <area>"
@@ -2999,18 +3031,24 @@
2999
3031
  "no_intent": "Lo siento, no he entendido",
3000
3032
  "handle_error": "Se ha producido un error inesperado al procesar la instrucción",
3001
3033
  "no_area": "Lo siento, no conozco ningún área llamada {{ area }}",
3034
+ "no_floor": "Lo siento, no conozco ninguna planta llamada {{ floor }}",
3002
3035
  "no_domain": "{% set translations = {\n \"button\": \"ningún botón\",\n \"camera\": \"ninguna cámara\",\n \"input_button\": \"ningún botón de entrada\",\n \"alarm_control_panel\": \"ninguna alarma\",\n \"automation\": \"ninguna automatización\",\n \"fan\": \"ningún ventilador\",\n \"climate\": \"ningún termostato\",\n \"humidifier\": \"ningún humidificador\",\n \"input_boolean\": \"ningún interruptor\",\n \"siren\": \"ninguna sirena\",\n \"water_heater\": \"ningún calentador de agua\",\n \"light\": \"ninguna luz\",\n \"switch\": \"ningún interruptor\",\n \"script\": \"ningún script\",\n \"remote\": \"ningún control remoto\",\n \"lock\": \"ninguna cerradura\",\n \"vacuum\": \"ningún aspirador\",\n \"scene\": \"ninguna escena\",\n \"media_player\": \"ningún reproductor multimedia\",\n \"lawn_mower\": \"ningún cortacésped\",\n \"valve\": \"ninguna válvula\"\n } %}\n{% if domain in translations -%}\n Lo siento, no conozco {{ translations[domain] }}\n{%- else -%}\n Lo siento, no conozco ningún elemento del tipo indicado\n{%- endif %}\n",
3003
3036
  "no_domain_in_area": "{% set translations = {\n \"button\": \"ningún botón\",\n \"camera\": \"ninguna cámara\",\n \"input_button\": \"ningún botón de entrada\",\n \"alarm_control_panel\": \"ninguna alarma\",\n \"automation\": \"ninguna automatización\",\n \"fan\": \"ningún ventilador\",\n \"climate\": \"ningún termostato\",\n \"humidifier\": \"ningún humidificador\",\n \"input_boolean\": \"ningún interruptor\",\n \"siren\": \"ninguna sirena\",\n \"water_heater\": \"ningún calentador de agua\",\n \"light\": \"ninguna luz\",\n \"switch\": \"ningún interruptor\",\n \"script\": \"ningún script\",\n \"remote\": \"ningún control remoto\",\n \"lock\": \"ninguna cerradura\",\n \"vacuum\": \"ningún aspirador\",\n \"scene\": \"ninguna escena\",\n \"media_player\": \"ningún reproductor multimedia\",\n \"lawn_mower\": \"ningún cortacésped\",\n \"valve\": \"ninguna válvula\"\n } %}\n{% if domain in translations -%}\n Lo siento, no conozco {{ translations[domain] }} en el área {{ area }}\n{%- else -%}\n Lo siento, no conozco ningún elemento del tipo {{ domain }} en el área {{ area }}\n{%- endif %}\n",
3037
+ "no_domain_in_floor": "{% set translations = {\n \"button\": \"ningún botón\",\n \"camera\": \"ninguna cámara\",\n \"input_button\": \"ningún botón de entrada\",\n \"alarm_control_panel\": \"ninguna alarma\",\n \"automation\": \"ninguna automatización\",\n \"fan\": \"ningún ventilador\",\n \"climate\": \"ningún termostato\",\n \"humidifier\": \"ningún humidificador\",\n \"input_boolean\": \"ningún interruptor\",\n \"siren\": \"ninguna sirena\",\n \"water_heater\": \"ningún calentador de agua\",\n \"light\": \"ninguna luz\",\n \"switch\": \"ningún interruptor\",\n \"script\": \"ningún script\",\n \"remote\": \"ningún control remoto\",\n \"lock\": \"ninguna cerradura\",\n \"vacuum\": \"ningún aspirador\",\n \"scene\": \"ninguna escena\",\n \"media_player\": \"ningún reproductor multimedia\",\n \"lawn_mower\": \"ningún cortacésped\",\n \"valve\": \"ninguna válvula\"\n } %}\n{% if domain in translations -%}\n Lo siento, no conozco {{ translations[domain] }} en la planta {{ floor }}\n{%- else -%}\n Lo siento, no conozco ningún elemento del tipo {{ domain }} en la planta {{ floor }}\n{%- endif %}\n",
3004
3038
  "no_device_class": "{% set translations = {\n \"awning\": \"ningún toldo\",\n \"blind\": \"ninguna persiana\",\n \"curtain\": \"ninguna cortina\",\n \"door\": \"ninguna puerta\",\n \"garage\": \"ninguna puerta de garaje\",\n \"gate\": \"ninguna puerta\",\n \"shade\": \"ningún estor\",\n \"shutter\": \"ninguna contraventana\",\n \"window\": \"ninguna ventana\"\n } %}\n{% if device_class in translations -%}\n Lo siento, no conozco {{ translations[device_class] }}\n{%- else -%}\n Lo siento, no conozco ningún elemento de la clase {{ device_class }}\n{%- endif %}\n",
3005
3039
  "no_device_class_in_area": "{% set translations = {\n \"awning\": \"ningún toldo\",\n \"blind\": \"ninguna persiana\",\n \"curtain\": \"ninguna cortina\",\n \"door\": \"ninguna puerta\",\n \"garage\": \"ninguna puerta de garaje\",\n \"gate\": \"ninguna puerta\",\n \"shade\": \"ningún estor\",\n \"shutter\": \"ninguna contraventana\",\n \"window\": \"ninguna ventana\"\n } %}\n{% if device_class in translations -%}\n Lo siento, no conozco {{ translations[device_class] }} en el área {{ area }}\n{%- else -%}\n Lo siento, no conozco ningún elemento de la clase {{ device_class }} en el área {{ area }}\n{%- endif %}\n",
3040
+ "no_device_class_in_floor": "{% set translations = {\n \"awning\": \"ningún toldo\",\n \"blind\": \"ninguna persiana\",\n \"curtain\": \"ninguna cortina\",\n \"door\": \"ninguna puerta\",\n \"garage\": \"ninguna puerta de garaje\",\n \"gate\": \"ninguna puerta\",\n \"shade\": \"ningún estor\",\n \"shutter\": \"ninguna contraventana\",\n \"window\": \"ninguna ventana\"\n } %}\n{% if device_class in translations -%}\n Lo siento, no conozco {{ translations[device_class] }} en la planta {{ floor }}\n{%- else -%}\n Lo siento, no conozco ningún elemento de la clase {{ device_class }} en la planta {{ floor }}\n{%- endif %}\n",
3006
3041
  "no_entity": "Lo siento, no conozco ningún dispositivo llamado {{ entity }}",
3007
3042
  "no_entity_in_area": "Lo siento, no conozco ningún dispositivo llamado {{ entity }} en el área {{ area }}",
3008
3043
  "no_entity_exposed": "Lo siento, el dispositivo {{ entity }} no se expone al asistente",
3009
3044
  "no_entity_in_area_exposed": "Lo siento, el dispositivo {{ entity }} en el área {{ area }} no se expone al asistente",
3045
+ "no_entity_in_floor_exposed": "Lo siento, el dispositivo {{ entity }} en la planta {{ floor }} no se expone al asistente",
3010
3046
  "no_domain_exposed": "Lo siento, no se expone al asistente ningún elemento de tipo {{ domain }}",
3011
3047
  "no_domain_in_area_exposed": "Lo siento, no se expone al asistente ningún elemento de tipo {{ domain }} en el área {{ area }}",
3048
+ "no_domain_in_floor_exposed": "Lo siento, no se expone al asistente ningún elemento de tipo {{ domain }} en la planta {{ floor }}",
3012
3049
  "no_device_class_exposed": "Lo siento, no se expone al asistente ningún elemento de clase {{ device_class }}",
3013
3050
  "no_device_class_in_area_exposed": "Lo siento, no se expone al asistente ningún elemento de clase {{ device_class }} en el área {{ area }}",
3051
+ "no_device_class_in_floor_exposed": "Lo siento, no se expone al asistente ningún elemento de clase {{ device_class }} en la planta {{ floor }}",
3014
3052
  "duplicate_entities": "Lo siento, hay varios dispositivos denominados {{ entity }}",
3015
3053
  "duplicate_entities_in_area": "Lo siento, hay varios dispositivos denominados {{ entity }} en el área {{ area }}"
3016
3054
  },
@@ -3029,6 +3067,7 @@
3029
3067
  "default": "{{ slots.name }} se ha desconectado",
3030
3068
  "light": "{{ slots.name }} se ha apagado",
3031
3069
  "lights_area": "Luces apagadas",
3070
+ "lights_floor": "Luces apagadas",
3032
3071
  "fans_area": "Ventiladores apagados",
3033
3072
  "cover": "{{ slots.name }} se ha cerrado",
3034
3073
  "light_all": "Todas las luces apagadas",
@@ -3044,6 +3083,8 @@
3044
3083
  "default": "{{ slots.name }} se ha activado",
3045
3084
  "light": "{{ slots.name }} se ha encendido",
3046
3085
  "lights_area": "Luces encendidas",
3086
+ "lights_floor": "Luces encendidas",
3087
+ "light_all": "Se han encendido todas las luces",
3047
3088
  "fan": "{{ slots.name }} se ha encendido",
3048
3089
  "fans_area": "Ventiladores encendidos",
3049
3090
  "cover": "{{ slots.name }} se ha abierto",
@@ -3640,7 +3681,7 @@
3640
3681
  "cambia": "(cambi(a[r]|á|e|o)|(muev[a|e]|mov[er|é]))",
3641
3682
  "cierra": "(cierr(a|e)|cerr(ar|á)|<baja>)",
3642
3683
  "cual_es": "(Cuál es [el|la]|Cuáles son [los|las])",
3643
- "de_aqui": "[ (de|en)] (aquí|acá|la habitación|la pieza)",
3684
+ "de_aqui": "[ (de|en)] (aquí|acá|(el|la) <habitación>)",
3644
3685
  "dime": "(sab(es|é)|dime|dec(ir|í|id)[me]|ind(i|í)(ca|que|car|cá)[me])",
3645
3686
  "dime_si": "<dime> si",
3646
3687
  "donde_se_encuentra": "dónde <se_encuentra>",
@@ -3649,9 +3690,11 @@
3649
3690
  "establece": "(pon[ga|er|é]|estable[z]c(a|e|er|é)|ajust(a|e|ar|á)|configur(a|e|ar|á)|cambi(a[r]|á|e))",
3650
3691
  "establece_abre_cierra": "(<establece>|<abre>|<cierra>)",
3651
3692
  "establece_sube_baja": "(<establece>|<enciende>|<sube>|<baja>)",
3693
+ "luces": "[el|la|l(a|o)s] (luz|luces|lámpara[s]|bombill(a|o)[s]|ampolleta[s]|luminaria[s]|lamparilla[s]|foco[s]|interruptor[es]|llave[s][ de la luz])",
3652
3694
  "mide": "[que] ([es|está] (mid(e|ie)|medi|indica|marca)[ndo|d(a|o)]|tiene|hay) [por|en]",
3653
3695
  "name": "[el|la|los|las] {name}",
3654
3696
  "pausa": "(paus(a|ar|e|á)|par(a|ar|e|á))|det(én|ener|enga|ené)",
3697
+ "planta": "[en|del|de] [el|la] ([planta|piso] {floor}|{floor} (planta|piso))",
3655
3698
  "pista": "(pista|canción|medio|vídeo|video|elemento)",
3656
3699
  "posición": "{position}[ ][%|por[ ]cien[to]]",
3657
3700
  "puerta": "[el|la] (puerta|portón|cancela|verja|reja|compuerta|portillo)",
@@ -3661,6 +3704,11 @@
3661
3704
  "temp": "[el|la] (temperatura|calor|grados)",
3662
3705
  "temperature": "{temperature} [grados] [{temperature_unit}]",
3663
3706
  "volumen": "{volume:volume_level}[ ][%|por[ ]cien[to]]",
3707
+ "habitación": "(habitaci(ón|ones)|pieza[s]|cuarto[s]|aposento[s]|sala[s]|[re]cámara[s])",
3708
+ "todos": "(tod(a|o)s [l(a|o)s]|cada [un(a|o) de l(a|o)s]|tod(a|o)s y cada un(a|o) de l(a|o)s)",
3709
+ "casa": "(casa|apartamento|departamento|piso)",
3710
+ "todas_partes": "[en |de[l] ](todas [las ]partes|todos los sitios|todos [los ]lados|<todos> <habitación>|[<todos> <habitación> [de[l]|en] ][el |la ]<casa>)",
3711
+ "aquí": "[en |de ](aquí|est(a|e) (habitación|pieza|cuarto))",
3664
3712
  "cual_es_la_medida_del_sensor": "(<cual_es>|Qué|Cuánt(a|o)[s]) [(la (cantidad|medida)|el nivel) de ][<class> (de|del|en|desde|por|<mide>)] [[el ](sensor |medidor )[de ]]<name> [<area>]"
3665
3713
  },
3666
3714
  "skip_words": [
@@ -2841,11 +2841,45 @@
2841
2841
  {
2842
2842
  "sentences": [
2843
2843
  "<lis> sur [<le>]{name}",
2844
- "<reprends> [la lecture] sur [<le>]{name}"
2844
+ "<lecture> sur [<le>]{name}",
2845
+ "<reprends> [<le>]<media> sur [<le>]{name}",
2846
+ "<reprends> [<le>]<media> <en_route> sur [<le>]{name}",
2847
+ "<reprends> <le> <lecture> <de> [<le>]<media> sur [<le>]{name}",
2848
+ "<reprends> <le> <lecture> <de> [<le>]<media> <en_route> sur [<le>]{name}",
2849
+ "<reprends> <le> <lecture> sur [<le>]{name}",
2850
+ "<reprends> <le> <lecture> <en_route> sur [<le>]{name}",
2851
+ "<reprends> [<le>]{name} <en_route>"
2845
2852
  ],
2846
2853
  "requires_context": {
2847
2854
  "domain": "media_player"
2848
2855
  }
2856
+ },
2857
+ {
2858
+ "sentences": [
2859
+ "<lecture>",
2860
+ "<reprends> [<le>]<media>",
2861
+ "<reprends> [<le>]<media> <en_route>",
2862
+ "<reprends> <le> <lecture> <de> [<le>]<media>",
2863
+ "<reprends> <le> <lecture> <de> [<le>]<media> <en_route>",
2864
+ "<reprends> <le> <lecture>",
2865
+ "<reprends> <le> <lecture> <en_route>"
2866
+ ],
2867
+ "requires_context": {
2868
+ "area": {
2869
+ "slot": true
2870
+ }
2871
+ }
2872
+ },
2873
+ {
2874
+ "sentences": [
2875
+ "<lecture> <dans> [<le>]{area}",
2876
+ "<reprends> [<le>]<media> <dans> [<le>]{area}",
2877
+ "<reprends> [<le>]<media> <en_route> <dans> [<le>]{area}",
2878
+ "<reprends> <le> <lecture> <de> [<le>]<media> <dans> [<le>]{area}",
2879
+ "<reprends> <le> <lecture> <de> [<le>]<media> <en_route> <dans> [<le>]{area}",
2880
+ "<reprends> <le> <lecture> <dans> [<le>]{area}",
2881
+ "<reprends> <le> <lecture> <en_route> <dans> [<le>]{area}"
2882
+ ]
2849
2883
  }
2850
2884
  ]
2851
2885
  },
@@ -3056,11 +3090,30 @@
3056
3090
  {
3057
3091
  "sentences": [
3058
3092
  "<media> suivant[e] sur [<le>]{name}",
3059
- "<mets> (<le>|au|à la) <media> suivant[e] [sur] [<le>]{name}"
3093
+ "<mets> (<le>|au |à la )<media> suivant[e] [sur] [<le>]{name}"
3060
3094
  ],
3061
3095
  "requires_context": {
3062
3096
  "domain": "media_player"
3063
3097
  }
3098
+ },
3099
+ {
3100
+ "sentences": [
3101
+ "suivant[e]",
3102
+ "<media> suivant[e]",
3103
+ "<mets> (<le>|au |à la )<media> suivant[e]"
3104
+ ],
3105
+ "requires_context": {
3106
+ "area": {
3107
+ "slot": true
3108
+ }
3109
+ }
3110
+ },
3111
+ {
3112
+ "sentences": [
3113
+ "suivant[e] <dans> [<le>]{area}",
3114
+ "<media> suivant[e] <dans> [<le>]{area}",
3115
+ "<mets> (<le>|au |à la )<media> suivant[e] <dans> [<le>]{area}"
3116
+ ]
3064
3117
  }
3065
3118
  ]
3066
3119
  },
@@ -3070,11 +3123,39 @@
3070
3123
  "sentences": [
3071
3124
  "<mets> [<le>]{name} (sur|en) pause",
3072
3125
  "<mets> (sur|en) pause [<le>]{name} ",
3073
- "Pause sur [<le>]{name}"
3126
+ "<mets> [<le>]<media> (sur|en) pause sur [<le>]{name} ",
3127
+ "Pause sur [<le>]{name}",
3128
+ "[<le>]{name} en pause",
3129
+ "<eteins> [<le>]<media> sur [<le>]{name}",
3130
+ "<eteins> <le> <lecture> <de> [<le>]<media> sur [<le>]{name}",
3131
+ "<eteins> <le> <lecture> sur [<le>]{name}"
3074
3132
  ],
3075
3133
  "requires_context": {
3076
3134
  "domain": "media_player"
3077
3135
  }
3136
+ },
3137
+ {
3138
+ "sentences": [
3139
+ "<eteins> [<le>]<media>",
3140
+ "<eteins> <le> <lecture> <de> [<le>]<media>",
3141
+ "<eteins> <le> <lecture>",
3142
+ "pause",
3143
+ "<mets> [<le>]<media> (sur|en) pause"
3144
+ ],
3145
+ "requires_context": {
3146
+ "area": {
3147
+ "slot": true
3148
+ }
3149
+ }
3150
+ },
3151
+ {
3152
+ "sentences": [
3153
+ "<eteins> [<le>]<media> <dans> [<le>]{area}",
3154
+ "<eteins> <le> <lecture> <de> [<le>]<media> <dans> [<le>]{area}",
3155
+ "<eteins> <le> <lecture> <dans> [<le>]{area}",
3156
+ "pause <dans> [<le>]{area}",
3157
+ "<mets> [<le>]<media> (sur|en) pause <dans> [<le>]{area}"
3158
+ ]
3078
3159
  }
3079
3160
  ]
3080
3161
  },
@@ -3141,11 +3222,26 @@
3141
3222
  {
3142
3223
  "sentences": [
3143
3224
  "<regle> [<le>]{name} [à|sur] {volume:volume_level}<pourcent>",
3144
- "<regle> le volume [<de>] [<le>]{name} [à|sur] {volume:volume_level}<pourcent>"
3225
+ "<regle> [<le>]<volume> [<de>] [<le>]{name} [à|sur] {volume:volume_level}<pourcent>"
3145
3226
  ],
3146
3227
  "requires_context": {
3147
3228
  "domain": "media_player"
3148
3229
  }
3230
+ },
3231
+ {
3232
+ "sentences": [
3233
+ "<regle> [<le>]<volume> [à|sur] {volume:volume_level}<pourcent>"
3234
+ ],
3235
+ "requires_context": {
3236
+ "area": {
3237
+ "slot": true
3238
+ }
3239
+ }
3240
+ },
3241
+ {
3242
+ "sentences": [
3243
+ "<regle> [<le>]<volume> [à|sur] {volume:volume_level}<pourcent> <dans> [<le>]{area}"
3244
+ ]
3149
3245
  }
3150
3246
  ]
3151
3247
  }
@@ -3793,13 +3889,14 @@
3793
3889
  "eclaire": "(éclaire|éclairer|illumine|illuminer)",
3794
3890
  "eteins": "(éteint|eteint|éteins|eteins|éteindre|eteindre|désactive|désactiver|stoppe|stopper|arrête|arrêter|coupe|couper|<eteins_dirty>)",
3795
3891
  "ferme": "(ferme|fermer|baisse|baisser)",
3796
- "lis": "(lis|lire|lecture)",
3797
- "mets": "(mets|mettre|passe|passer)",
3892
+ "lis": "(lis|lire)",
3893
+ "mets": "(mets|mettre|passe|passer|mets_dirty)",
3798
3894
  "ouvre": "(ouvre|ouvrir|monte|monter)",
3799
- "regle": "(règle|régler|met|mets|mettre|ajuste|ajuster|change|changer)",
3895
+ "regle": "(règle|régler|met|mets|mettre|ajuste|ajuster|change|changer|mets_dirty)",
3800
3896
  "renvoie": "(renvoie|renvoyer|arrête|arrêter|stop[pe]|stopper)",
3801
- "reprends": "(reprends|reprendre|reprise)",
3897
+ "reprends": "(remets|remettre|reprends|reprend|reprendre|reprise|relance|relancer)",
3802
3898
  "eteins_dirty": "(étant|étends|étend|étendre|état|et tant|et teins|et teint|et teints|et t'as|été|étais|était)",
3899
+ "mets_dirty": "(mais|maître)",
3803
3900
  "lumiere": "(lumière|lampe|ampoule)",
3804
3901
  "lumieres": "(lumières|lampes|ampoules)",
3805
3902
  "ventilateur": "[le ](ventilateur|brasseur d'air)",
@@ -3807,7 +3904,10 @@
3807
3904
  "fenetre": "(fenetre[s]|fenêtre[s]|baie[s]|velux|vélux|lucarne[s])",
3808
3905
  "appareil": "(appareil|machine|équipement)[s]",
3809
3906
  "capteur": "(capteur|sonde|détecteur)[s]",
3810
- "media": "(morceau|chanson|élément|podcast|film|vidéo|épisode|média)",
3907
+ "media": "(morceau|chanson|musique|son|élément|podcast|film|vidéo|épisode|radio|média)",
3908
+ "lecture": "(lecture|visionnage)",
3909
+ "volume": "(volume|son|watt[s])",
3910
+ "en_route": "(en route)|(en marche)",
3811
3911
  "yatil": "(y a[-][ ]t[-][']il|il y a)",
3812
3912
  "estil": "(est|sont)[-][ ][(il[s]|elle[s])]",
3813
3913
  "atil": "(ont|a)[-][ ][t][ ][-][(il[s]|elle[s])]",
@@ -26,6 +26,20 @@
26
26
  "domain": "light"
27
27
  }
28
28
  },
29
+ {
30
+ "sentences": [
31
+ "<desliga> [(o | os | a | as)] (luz | luzes | candeeiro | candeeiros)",
32
+ "<desliga> [(todas | todos)] [(o | os | a | as)] (luz | luzes | candeeiro | candeeiros) aqui"
33
+ ],
34
+ "slots": {
35
+ "domain": "light"
36
+ },
37
+ "requires_context": {
38
+ "area": {
39
+ "slot": true
40
+ }
41
+ }
42
+ },
29
43
  {
30
44
  "sentences": [
31
45
  "<fecha> [(o | a)] [(porta | portão) da] garagem"
@@ -38,7 +52,7 @@
38
52
  },
39
53
  {
40
54
  "sentences": [
41
- "<fecha> [as | os] [(cortinas | cortinados | estores | persianas)] <na_zona>"
55
+ "<fecha> [as|os|a|o] [(cortina|cortinas|cortinado|cortinados|estore|estores|persiana|persianas)] <na_zona>"
42
56
  ],
43
57
  "response": "cover",
44
58
  "slots": {
@@ -89,6 +103,20 @@
89
103
  "domain": "light"
90
104
  }
91
105
  },
106
+ {
107
+ "sentences": [
108
+ "<liga> [(o | os | a | as)] (luz | luzes | candeeiro | candeeiros)",
109
+ "<liga> [(todas | todos)] [(o | os | a | as)] (luz | luzes | candeeiro | candeeiros) aqui"
110
+ ],
111
+ "slots": {
112
+ "domain": "light"
113
+ },
114
+ "requires_context": {
115
+ "area": {
116
+ "slot": true
117
+ }
118
+ }
119
+ },
92
120
  {
93
121
  "sentences": [
94
122
  "(liga | ligue | ligar) [todas] as ventoinhas <na_zona>"
@@ -127,7 +155,7 @@
127
155
  },
128
156
  {
129
157
  "sentences": [
130
- "<abre> [as|os] [(cortinas | cortinados | estores | persianas)] <na_zona>"
158
+ "<abre> [as|os|a|o] [(cortina|cortinas|cortinado|cortinados|estore|estores|persiana|persianas)] <na_zona>"
131
159
  ],
132
160
  "response": "cover",
133
161
  "slots": {
@@ -101,7 +101,7 @@
101
101
  "data": [
102
102
  {
103
103
  "sentences": [
104
- "[Какая] погода"
104
+ "[Какая ][сейчас ] погода"
105
105
  ]
106
106
  },
107
107
  {
@@ -2608,7 +2608,7 @@
2608
2608
  "item_added": "Добавил {{ slots.item }}"
2609
2609
  },
2610
2610
  "HassGetWeather": {
2611
- "default": "{% set weather_condition = {\n 'clear': ', ясно',\n 'clear-night': ', ясная ночь',\n 'cloudy': ', облачно',\n 'exceptional': ', экстремальные погодные явления',\n 'fog': ', туман',\n 'hail': ', град',\n 'lightning': ', гроза',\n 'lightning-rainy': ', дождь с грозой',\n 'partlycloudy': ', частичная облачность',\n 'pouring': ', ливень',\n 'rainy': ', дождь',\n 'snowy': ', снег',\n 'snowy-rainy': ', мокрый снег',\n 'sunny': ', солнечно',\n 'windy': ', ветренно',\n 'windy-variant': ', ветренно и облачно'\n} %}\n\n\n{% set temperature = state.attributes.get('temperature') | float %} {% if temperature < 0 %}\n {% set temperature_string = 'минус ' ~ (temperature * -1) | string | replace('.', ',') %}\n{% else %}\n {% set temperature_string = temperature | string | replace('.', ',') %}\n{% endif %} {{ temperature_string }} {{ state.attributes.get('temperature_unit') }}{{ weather_condition.get((state.state | string).lower(), state.state | string) }}\n"
2611
+ "default": "{% set weather_condition = {\n 'clear': ', ясно',\n 'clear-night': ', ясная ночь',\n 'cloudy': ', облачно',\n 'exceptional': ', экстремальные погодные явления',\n 'fog': ', туман',\n 'hail': ', град',\n 'lightning': ', гроза',\n 'lightning-rainy': ', дождь с грозой',\n 'partlycloudy': ', частичная облачность',\n 'pouring': ', ливень',\n 'rainy': ', дождь',\n 'snowy': ', снег',\n 'snowy-rainy': ', мокрый снег',\n 'sunny': ', солнечно',\n 'windy': ', ветренно',\n 'windy-variant': ', ветренно и облачно'\n} %}\n\n {% set temperature = state.attributes.get('temperature') | float %}\n {% if temperature.is_integer() %}\n {% if temperature == 0 %}\n {% set temperature_string = 0 | string %}\n {% elif temperature < 0 %}\n {% set temperature_string = 'минус ' ~ (temperature | abs | int ) | string %}\n {% else %}\n {% set temperature_string = 'плюс ' ~ (temperature | int) | string %}\n {% endif %}\n {% else %}\n {% if temperature < 0 %}\n {% set temperature_string = 'минус ' ~ (temperature | abs) | string | replace('.', ',') %}\n {% else %}\n {% set temperature_string = 'плюс ' ~ temperature | string | replace('.', ',') %}\n {% endif %}\n {% endif %}\n\n{{ \"Сейчас \" ~ temperature_string}}{{ weather_condition.get((state.state | string).lower(), state.state | string) }}\n"
2612
2612
  },
2613
2613
  "HassLightSet": {
2614
2614
  "brightness": "Яркость {{ slots.name }} установлена на {{ slots.brightness }}",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: home-assistant-intents
3
- Version: 2024.4.24
3
+ Version: 2024.5.28
4
4
  Summary: Intents for Home Assistant
5
5
  Author-email: The Home Assistant Authors <hello@home-assistant.io>
6
6
  License: Apache-2.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "home-assistant-intents"
7
- version = "2024.4.24"
7
+ version = "2024.5.28"
8
8
  license = {text = "Apache-2.0"}
9
9
  description = "Intents for Home Assistant"
10
10
  readme = "README.md"