GithubHelp home page GithubHelp logo

gurtknev / diyscip Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ulrichmai/diyscip

0.0 0.0 0.0 824 KB

DIY Supervision and Control Intxx PxxxSPA with an ESP8266

License: Other

C++ 61.77% Python 3.03% C 20.14% HTML 15.07%

diyscip's Introduction

diyscip

DIY Supervision and Control Intxx PxxxSPA with an ESP8266

πŸ‡«πŸ‡· En FranΓ§ais


This projet aims to add remote supervision and control ability to the Intxx PxxxSPA without altering the initial product. So this controller card takes place between the control panel and the motor block, through its specific 5 pins connector.

It connects to your WiFi network and communicate to a MQTT server for control (MQTT publish) and command (MQTT subscribe).

⚠️ disclaimer: This project is not affiliated with Intxx. It is distributed in the hope it will be useful but WITHOUT ANY WARRANTY. Any damaged on your spa or lost of original product warranty is in your own responsibility, including any consequences of using this project.

⚠️ compatibilty: This project has been developped and test on model SSP-H20-1C only. I guess it should works with SSP-H-20-1 and SSP-H-20-2 because those models share the same control panel. For the others models, some minors software AND hardware modifications may be necessary. Feel free to contact me to share our experience and improve this project compatibility.

image

How to build it ?

You need first the hardware ! Components are easy to find but still, it need some skills to build it.

The main part is a NodeMcu V3, based on the esp8266. I used this one for prototyping. Using a NodeMcu development board rather than a simple ESP8266 chip is for convinient: it's include a 5V (from SPA) to 3.3v converter and mainly it offers a USB connection for upload and debug software. Electronic schematic is here.

As an IDE, i use Visual Studio Code with PlatformIO: Free and in my opinion, it offers a better usability for source management.

For the spa connectors which are Intxx design specific, they need to be 3D printed. I use those ones by Psykokwak. Thanks for the share ! πŸ‘

Don't feel comfortable with hardware manufacturing ? That's a Do It Yourself project πŸ˜„ But feel free to contact me at diyscip(AT)runrunweb.net, i may have some ready to use controller in my pocket. But keep in mind it's your responsibility to use it on your spa.

Settings the controller

Here we are ! The controller is in the place. At first start up, you need to connect your mobile or computer to the WiFi network "DIYSCIP_setup", a configuration screen enable you to set your home WiFi network and password then setting the MQTT server you connect to. After a checking of you settings, the controller reboots and start to operate !

To re-enter in setup mode, when your spa is powered on, press the temperature units change button 6 times quickly then switch off the spa (not electricaly but on control panel). The controller reboot and enter in setup mode.

image

Middleware and Frontend PWA App

I've also developped the middleware server and a frontend Progressive Web App for your spa ! For now it's not publicly open but email me if you want your controller to be registered in this app: diyscip(AT)runrunweb.net You can also take a free demo tour : https://diyscip.web.app

image

Behind the code

Based on reverse engineering of control panel electronics, 3 wires provide a clock, a data and a hold signal to two 8 bit shift registers in serial (74HC595). The outputs of those registers enable or not the leds (including those of the 7-digits displays). Each buttons are also connected to a register output. When it's pressed the corresponding output register is connected with data signal through a 1kOhm resistor.

The corresponding function of each register output is probably depending of the spa models. This is the point that need to be adapted in software/hardware to others models than the SSP-H20-1C.

The DIYSCIP controller is plugged in parallel with signal from control panel and motor block. For supervision, the onboard esp8266 read at clock frequency the data signal then the hold signal cut the flow to a 16 bits frame. By decoding this frame, you get the state of the leds and of the 7 digits display on control panel.

For control, it's a little be more tricky. The DIYSCIP hardware duplicates the shift register electrical logic. Then the esp8266 emulate pushed button by addressing an analogic multiplexer whom ouput become connected to the data signal on demand.

That's all ! now it can read and write states on spa, quite easy no ? πŸ˜„

An thermistor complement the electronic parts. As it's on board and take place inside the control panel colomn it is not very occurate, but still, it's an informative data about the weather condition.

At last, a MQTT client send and receive control/command from a MQTT server through a TCP connexion (not a Websocket).

The MQTT topics

The controller embedded MQTT client uses protocol v3.1.1.

Publish Topics:

  • spa/status : online | offline (Will topic)
  • spa/state : number - raw state value, a bit per control, for debug mainly.
  • spa/state/power : true | false
  • spa/state/filter : true | false
  • spa/state/heater : true | false
  • spa/state/heatreached : true | false (true if heat is reached)
  • spa/state/bubble : true | false
  • spa/temp/board : number - in Celsius degree
  • spa/temp/water : number - in Celsius degree
  • spa/temp/desired : number - in Celsius degree

Subscribe Topics:

  • spa/state/power/set : true | false
  • spa/state/filter/set : true | false
  • spa/state/heater/set : true | false
  • spa/state/temp/desired/set : number - in Celsius degree

diyscip's People

Contributors

yorffoeg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.