-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Hi,
I am trying to turn on a zone manually to run it for the set manual watering time. I am able to push the manual watering time (10 minutes), but when I turn the zone on the second left value is 5+ hours.
This is the code I am using
#!/usr/bin/python
import asyncio
from time import sleep
from bleak import BleakScanner # type: ignore - bleak has bad export types
from melnor_bluetooth.device import Device
ADDRESS = "XX:XX:XX:XX:XX:XX" # fill with your device mac address
async def main():
ble_device = await BleakScanner.find_device_by_address(ADDRESS)
if ble_device is not None:
device = Device(ble_device)
await device.connect()
await device.fetch_state()
print(device)
await device.zone1.set_manual_watering_minutes(10)
await device.zone1.set_is_watering(True)
await device.push_state()
sleep(10)
await device.fetch_state()
print(device)
await device.disconnect()
asyncio.run(main())
And here is the result:
Device(
battery=96
valves=(
Valve(id=0|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
Device(
battery=89
valves=(
Valve(id=0|is_watering=True|manual_minutes=10|seconds_left=1684886359)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
Disconnected from XX:XX:XX:XX:XX:XX
Not sure what I am doing wrong.
I wrote another script to test how the seconds_left field value changes if I start the timer from the melnor app. It seems that the value is "random" and does not change during the time of the timer.
Example this is what I get when the timer is set to 1 minute (reading is done every 1 second with await device.fetch_state()):
Device(
battery=80
valves=(
Valve(id=0|is_watering=True|manual_minutes=1|seconds_left=1684868920)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
Device(
battery=80
valves=(
Valve(id=0|is_watering=True|manual_minutes=1|seconds_left=1684868920)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
Device(
battery=80
valves=(
Valve(id=0|is_watering=True|manual_minutes=1|seconds_left=1684868920)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
## Timer expired here ...
Device(
battery=89
valves=(
Valve(id=0|is_watering=False|manual_minutes=1|seconds_left=0)
Valve(id=1|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=2|is_watering=False|manual_minutes=20|seconds_left=0)
Valve(id=3|is_watering=False|manual_minutes=20|seconds_left=0)
)
)
Metadata
Metadata
Assignees
Labels
No labels