pyhusmow

Control your Husqvarna automower using Automower connect API.


License
GPL-3.0
Install
pip install pyhusmow==0.2.0

Documentation

pyhusmow

Control your Husqvarna automower using Automower connect API.

Requirements

  • python 3
  • requests
  • python-dateutil

One way to configure the environment to run pyhusmow

pyhusmow requires a recent version of requests so you can use virtualenv to install dependencies without modifying your system:

virtualenv -p python3 husmow_venv
source husmow_venv/bin/activate
pip3 install pyhusmow
husmow --help
husmow_logger --help

Then you can run pyhusmow without loading the virtual environment explicitly:

./husmow_venv/bin/husmow --help

Commands

Read status of your automower

husmow --login yourmaillogin --password yourpassword status

Start your automower

husmow --login yourmaillogin --password yourpassword control START

Stop your automower

husmow --login yourmaillogin --password yourpassword control STOP

Park your automower

husmow --login yourmaillogin --password yourpassword control PARK

Run HTTP server

You can run a tiny webserver to command your automower using HTTP commands (can be useful for home automation boxes...):

husmow --login yourmaillogin --password yourpassword server

Then you can use GET requests to:

  • start your automower: http://127.0.0.1:1234/start
  • stop your automower: http://127.0.0.1:1234/stop
  • park your automower: http://127.0.0.1:1234/park
  • get the status of your automower: http://127.0.0.1:1234/status returns status as json in the response body

All of these HTTP requests return 200 if the command was successfully sent to Husqvarna server and 500 in case of problem.

You can change the IP address or port using options --address and --port but you shouldn't open this server outside of you local network because this tiny server is not designed to be as secure as common web server.

husmow --login yourmaillogin --password yourpassword server --address 0.0.0.0 --port 2345

To avoid sending too much status requests to Husqvarna server, status is not refreshed before 30 seconds (can be configured using --expire option in seconds).

Save configuration in configuration file

You can save login, password, output_format, log_level in automower.cfg in the directory where you run this script to omit these information from the command line for the next run.

To save information, just type your command with all information and add the option --save to command line:

husmow --login yourmaillogin --password yourpassword --log-level INFO --save control PARK

And the next time you run the command, you can omit these information from the command line:

husmow control PARK

The file 'automower.cfg' is created in the current directory where you run the script and THE PASSWORD IS STORED IN PLAIN TEXT.

Warning

The API and command line are not stable and can change at any time.

Contributors

Special Thanks

I thank moumou for mowing my lawn very well !