www-ShapeLabs-de / Judo-i-soft-save-plus-to-mqtt-bridge

A small device to write and read settings to Judo i-soft safe+ water softening system with homeassistant
MIT License
20 stars 6 forks source link

Judo i-soft save+ to mqtt bridge for homeassistant

This is a small workarount to read and control the Judo isoft safe+ water softener with homeassisant (hassio). It is the version with the small character-lcd and leakage protection.

Unfortunately it is not possible to communicate directly with this version of the plant. Port 8000 and port 8124, through which the system can be read out on the Judo isoft-plus, are closed. The only way to access settings and data is via the cloud server. To do this, you must register the system for the cloud service as described in the user manual and create a user account. There is also a judo smartphone app for this, but it is of course nicer to have everything in homeassisant :-)

Notice: There are 2 versions of the system, which sound very similar.

Config:

General settings must be made in the config file.

Running on a generic Linux platform:

The requirement is of course that a Python environment is installed on the Linux:

$ sudo apt update && upgrade
$ sudo apt install python3-pip

It may still be necessary to install the paho-mqtt package:

$sudo pip install paho-mqtt

Copy/Clone the repo to your home-folder or wherever you want. Rename the config_getjudo_default.py

mv config_getjudo_default.py config_getjudo.py

Do the settings in config_getjudo.py , see @ Chapter "Config" After that you can start the script. On Linux platforms it is best to include it in the systemd-manager. To do this, create a new systemd-service:

$sudo nano /etc/systemd/system/getjudo.service
[Unit]
Description=getjudo service
After=multi-user.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/python3 /home/<username>/getjudo.py
[Install]
WantedBy=multi-user.target

User rights may still need to be assigned:

sudo chmod +x /etc/systemd/system/getjudo.service && chmod +x ~/*getjudo.py

Reload the daemon:

$sudo systemctl daemon-reload

Enable the autostart, if our platform restarts e.g.:

$sudo systemctl enable getjudo.service

Start the service:

$sudo systemctl start getjudo.service

Running in AppDeamon docker directly in HomeAssistant (experimental; work in progress)

  1. MQTT should be already setup and running

  2. Install AppDaemon and Studio Code Server (Optional) through HomeAssistant Add-Ons store (https://community.home-assistant.io/t/home-assistant-community-add-on-appdaemon-4/163259)

  3. Configure AppDaemon with the following settings:

    init_commands: []
    python_packages:
    - paho-mqtt
    system_packages:
  4. Copy all files from the python folder into the folder appdaemon/apps/main (incl. temp_getjudo.py) -> Studio Code Server . Rename config_getjudo_default.py to config_getjudo.py

  5. Modify the apps.yaml file:

main_app:
  module: main_entity
  class: main_loop
  1. Modify config_judo.py to your system
  2. Start AppDaemon and check the logs for potential errors
  3. You can easily add more scripts into main_entity.py -> main file, where all scripts are called

-> the getjudo.py can be also started from a local Win10 VSCode installation, for easier tests of the config (after adding python through extensions and paho-mqtt with pip install)

Startup

Afterwards the device should set itself up automatically with mqtt-autoconfig in homeassitant with all entities:

HASSIO autoconfig of this device

alias: Notify Judo Isoft save plus
description: "This is an example template, how to configure the notification as automation for Telegram-Bot"
trigger:
  - platform: mqtt
    topic: Keller/Judo_isoftsaveplus/notify
condition: []
action:
  - service: notify.ha_message
    data:
      message: >-
        Judo I-soft SAVE+:
        {{states("sensor.judo_isoftsaveplus_keller_meldung")}}
mode: single

!!!!Attention!!!!

Don't post/mail or publish your generated Token anywhere. It allows grand access to the plant!

This Project based of informations from:

Many thanks to this guys!!! & special thanks to Daniel who did the Appdeamon implementation and testing.