Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 2.08 KB

README.md

File metadata and controls

36 lines (25 loc) · 2.08 KB

Roamer

A website for monitoring your Husqvarna automowers.

This project uses pyhusmow and Django to periodically fetch the current state of your Husqvarna automowers, record all states in a database and display them on a website.

It is not intended to mimic the features of the Husqvarna mobile apps for smartphones, but to complement them:

  • show status history (e.g. a timeline of mower activity over the past week),
  • show information in web browsers (i.e. also desktop browsers, not only mobile),
  • show multiple mowers on a single page (no need to explicitly switch between them),
  • send e-mail (e.g. on errors).

Note that this is not a ready-to-use program for end users that can easily be installed. It requires at least basic knowledge of Python and Django to deploy it on a web server.

Overview

The automowers (robots) periodically transfer their state via a mobile data connection to the Husqvarna servers. From there, just as the smartphone apps, we regularly fetch the current mower states and store them in the database. The database content is used to create the web pages.

Querying the mower states from the Husqvarna servers and storing them in our database is is implemented as a Django management command, query_Husqvarna. This script has two modes of operation that deserve a consideration:

If the script can regularly be run on a machine that has direct access to the project's database, it can store the mower state directly and is done. This is the easiest and most reliable approach, but not all hosting providers support cron jobs and outgoing connections to remote servers.

The alternative is to run query_Husqvarna on a different machine that is independent from the one that hosts the web application: The script connects to and queries the states from the Husqvarna servers normally. Then it submits the data via a normal web form to the web instance, whose form implementation takes the data and in turn writes it into the local database.