jackbrown1993 / Jacuzzi-RS485

Python Module for Jacuzzi Hot Tubs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Jacuzzi Smart Control

Code style: black

Project Purpose

To provide an interface for Jacuzzi's with or without the ProLink module. An RS485 Serial to WiFi adaptor can instead be used, connected to the RS485 port on the main board. The adaptor I used was around £25 on Amazon.co.uk (https://www.amazon.co.uk/gp/product/B097C8PT6F). With settings as 115200,8,1,NONE

Currently the project allows control via MQTT or a terminal interface.

Getting Started

Whether you utilize the Jacuzzi ProLink module or opt for an RS485 to WiFi Adaptor, it is essential to determine the IP address assigned to the module on your home network. In the following example, we have identified the module's IP address as 192.168.1.125. By default, the ProLink module tends to employ port 4257, but if desired, you can specify an alternative port using the "--port" flag.

Terminal Interface (port flag is optional and defaults to 4257)

python3 app/ui_app.py --ip 192.168.1.125 --port 9988

MQTT (Current only supported using a Docker container)

Rename the file example.env to .env and populate the following variables.

MQTT_IP - IP address of your MQTT server.

MQTT_PORT - Port that your MQTT server is listening on. (Optional - Defaults to 1883)

MQTT_USER - Username of MQTT server.

MQTT_PASSWORD - Password of MQTT server.

JACUZZI_IP - IP address of your ProLink or RS485 to WiFi module.

JACUZZI_PORT - Port of your ProLink or RS485 to WiFi module. (Optional - Defaults to 4257)

An MQTT Bridge is provided to allow easy integration with other systems. You will need a separate MQTT server running (Mosquitto is a relatively easy and robust one). The MQTT topics follow the Homie convention, making them self-describing.

Publishing a float value to homie/hot_tub/jacuzzi/set_temperature/set will change the set temp value of Jacuzzi.

Docker

There is published docker image at ghcr.io/jackbrown1993/jacuzzi-rs485:latest which is based on the master branch.

Run docker image using published image docker run -d -e MQTT_IP= -e MQTT_PORT= -e MQTT_USER= -e MQTT_PASSWORD= -e JACUZZI_IP= -e JACUZZI_PORT= ghcr.io/jackbrown1993/jacuzzi-rs485:latest

Run docker image built locally:

Fist build the image: docker build -t jacuzzi-rs485 .

Then run the image: docker run -e MQTT_IP= -e MQTT_PORT= -e MQTT_USER= -e MQTT_PASSWORD= -e JACUZZI_IP= -e JACUZZI_PORT= jacuzzi-rs485

docker-compose example using published image: docker-compose.yml

docker-compose example with image built locally: docker-compose.dev.yml

Inspirations and Credits

About

Python Module for Jacuzzi Hot Tubs

License:Apache License 2.0


Languages

Language:Python 99.9%Language:Dockerfile 0.1%