Skip to content

Commit 74ce26d

Browse files
committed
fix services yaml breaking in newer HAOS versions
1 parent 7a71c7e commit 74ce26d

5 files changed

Lines changed: 65 additions & 54 deletions

File tree

custom_components/mammotion/coordinator.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ async def async_send_cloud_command(
270270
except (DeviceOfflineException, NoConnectionException) as ex:
271271
"""Device is offline try bluetooth if we have it."""
272272
LOGGER.error(f"Device offline: {ex.iot_id}")
273+
return False
273274

274275
async def check_firmware_version(self) -> None:
275276
"""Check if firmware version is updated."""
@@ -420,7 +421,9 @@ async def async_request_iot_sync(self, stop: bool = False) -> None:
420421
count=0,
421422
)
422423

423-
async def async_plan_route(self, operation_settings: OperationSettings) -> bool:
424+
async def async_plan_route(
425+
self, operation_settings: OperationSettings
426+
) -> bool | None:
424427
"""Plan mow."""
425428

426429
if self.data.report_data.dev:
@@ -982,10 +985,10 @@ def get_coordinator_data(self, device: MammotionMixedDeviceManager) -> MowingDev
982985

983986
async def _async_update_event_message(self, event: ThingEventMessage) -> None:
984987
if event.params.identifier == "device_warning_code_event":
985-
event: DeviceNotificationEventParams = event.params
988+
event_params: DeviceNotificationEventParams = event.params
986989
# '[{"c":-2801,"ct":1,"ft":1731493734000},{"c":-1008,"ct":1,"ft":1731493734000}]'
987990
try:
988-
warning_event = json.loads(event.value.data)
991+
warning_event = json.loads(event_params.value.data)
989992
LOGGER.debug("warning event %s", warning_event)
990993
await self._async_update_data()
991994
if mower := self.manager.mower(self.device_name):

custom_components/mammotion/lawn_mower.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@
3434
vol.Optional("collect_grass_frequency", default=10): vol.All(
3535
vol.Coerce(int), vol.Range(min=5, max=100)
3636
),
37-
vol.Optional("border_mode", default=1): vol.In([0, 1]),
37+
vol.Optional("border_mode", default=1): vol.All(vol.Coerce(int), vol.In([0, 1])),
3838
vol.Optional("job_version", default=0): vol.Coerce(int),
3939
vol.Optional("job_id", default=0): vol.Coerce(int),
4040
vol.Optional("speed", default=0.3): vol.All(
4141
vol.Coerce(float), vol.Range(min=0.2, max=1.2)
4242
),
43-
vol.Optional("ultra_wave", default=2): vol.In([0, 1, 2, 10, 11]),
44-
vol.Optional("channel_mode", default=0): vol.In([0, 1, 2, 3]),
43+
vol.Optional("ultra_wave", default=2): vol.All(
44+
vol.Coerce(int), vol.In([0, 1, 2, 10, 11])
45+
),
46+
vol.Optional("channel_mode", default=0): vol.All(
47+
vol.Coerce(int), vol.In([0, 1, 2, 3])
48+
),
4549
vol.Optional("channel_width", default=25): vol.All(
4650
vol.Coerce(int), vol.Range(min=5, max=35)
4751
),
@@ -55,9 +59,13 @@
5559
vol.Optional("toward_included_angle", default=0): vol.All(
5660
vol.Coerce(int), vol.Range(min=-180, max=180)
5761
),
58-
vol.Optional("toward_mode", default=0): vol.In([0, 1, 2]),
59-
vol.Optional("mowing_laps", default=1): vol.In([0, 1, 2, 3, 4]),
60-
vol.Optional("obstacle_laps", default=1): vol.In([0, 1, 2, 3, 4]),
62+
vol.Optional("toward_mode", default=0): vol.All(vol.Coerce(int), vol.In([0, 1, 2])),
63+
vol.Optional("mowing_laps", default=1): vol.All(
64+
vol.Coerce(int), vol.In([0, 1, 2, 3, 4])
65+
),
66+
vol.Optional("obstacle_laps", default=1): vol.All(
67+
vol.Coerce(int), vol.In([0, 1, 2, 3, 4])
68+
),
6169
vol.Optional("start_progress", default=0): vol.All(
6270
vol.Coerce(int), vol.Range(min=0, max=100)
6371
),

custom_components/mammotion/services.yaml

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ start_mow:
3737
max: 100
3838
unit_of_measurement: ""
3939
border_mode:
40-
example: 0
41-
default: 0
40+
example: "0"
41+
default: "0"
4242
required: false
4343
selector:
4444
select:
4545
translation_key: "border_mode"
4646
options:
47-
- 0
48-
- 1
47+
- "0"
48+
- "1"
4949
job_version:
5050
example: 0
5151
default: 0
@@ -70,30 +70,30 @@ start_mow:
7070
mode: box
7171
unit_of_measurement: "m/s"
7272
ultra_wave:
73-
example: 2
74-
default: 2
73+
example: "2"
74+
default: "2"
7575
selector:
7676
select:
7777
translation_key: "ultra_wave"
7878
options:
79-
- 0
80-
- 1
81-
- 2
82-
- 10
83-
- 11
79+
- "0"
80+
- "1"
81+
- "2"
82+
- "10"
83+
- "11"
8484
required: false
8585
channel_mode:
86-
example: 0
87-
default: 0
86+
example: "0"
87+
default: "0"
8888
required: false
8989
selector:
9090
select:
9191
translation_key: "channel_mode"
9292
options:
93-
- 0
94-
- 1
95-
- 2
96-
- 3
93+
- "0"
94+
- "1"
95+
- "2"
96+
- "3"
9797
channel_width:
9898
example: 25
9999
default: 25
@@ -103,15 +103,15 @@ start_mow:
103103
min: 5
104104
max: 35
105105
rain_tactics:
106-
example: 1
107-
default: 1
106+
example: "1"
107+
default: "1"
108108
required: false
109109
selector:
110110
select:
111111
translation_key: "rain_tactics"
112112
options:
113-
- 0
114-
- 1
113+
- "0"
114+
- "1"
115115
blade_height:
116116
example: 0
117117
default: 25
@@ -141,41 +141,41 @@ start_mow:
141141
max: 180
142142
unit_of_measurement: degrees
143143
toward_mode:
144-
example: 0
145-
default: 0
144+
example: "0"
145+
default: "0"
146146
selector:
147147
select:
148148
translation_key: "toward_mode"
149149
options:
150-
- 0
151-
- 1
152-
- 2
150+
- "0"
151+
- "1"
152+
- "2"
153153
required: false
154154
mowing_laps:
155-
example: 1
156-
default: 1
155+
example: "1"
156+
default: "1"
157157
selector:
158158
select:
159159
translation_key: "mowing_laps"
160160
options:
161-
- 0
162-
- 1
163-
- 2
164-
- 3
165-
- 4
161+
- "0"
162+
- "1"
163+
- "2"
164+
- "3"
165+
- "4"
166166
required: false
167167
obstacle_laps:
168-
example: 1
169-
default: 1
168+
example: "1"
169+
default: "1"
170170
selector:
171171
select:
172172
translation_key: "obstacle_laps"
173173
options:
174-
- 0
175-
- 1
176-
- 2
177-
- 3
178-
- 4
174+
- "0"
175+
- "1"
176+
- "2"
177+
- "3"
178+
- "4"
179179
required: false
180180
start_progress:
181181
example: 0

poetry.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "Mammotion-HA"
3-
version = "0.3.0"
3+
version = "0.3.1"
44
description = "Mammotion lawn mower integration for HACS"
55
authors = ["Michael Arthur <michael@jumblesoft.co.nz>", "jLynx <@jlynx>"]
66
readme = "README.md"

0 commit comments

Comments
 (0)