I am slowly bringing floor heating to some rooms, and decided I would use a kincony a8 board to pilot the valves for the different circuits.

So I got this board and was not sure where to start. I found this link which was simple enough to give it a try.

It worked nicely, although this was actually aimed at esphome integration, which is not (yet) what I want. I would rather see how far I can get with an isolated solution, not depending on my homeassistant setup.

Continued my readings and found these firmwares and these command line instructions to work

 esptool.py --chip esp32 -p /dev/ttyUSB0 -b 460800 --before=default_reset --after=hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 2MB 0x0000  ~/Downloads/KCS_KC868_A8_V2.2.10.bin

That brought Kincony’s own firmware. Good to have as a starting point to explore possibilities, but it seems there’s a caveat: it doesn’t support multiple ds18b20 sensors on a single wire.

So next step, tasmota. There’s a reference thread with a video presentation on the kincony forum here but I stumbled on the same issue as a person going under username Vulcan described here

What worked :

  1. download tasmota32.factory.bin and flash that first (esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 write_flash -z 0x0 tasmota32.factory.bin)
  2. once logged into the AP, upgrade to tasmota from kincony
  3. figure out version is old and I need to compile (instructions ) a new version myself
  4. use python 3.11.0 (with asdf) to please platformio

then apply these settings in tasmota/user_config_override.h

#undef USE_DOMOTICZ
#undef USE_KNX
#undef USE_MATTER
#undef USE_MATTER_DEVICE

#ifndef USE_I2C
#define USE_I2C                            // I2C using library wire (+10k code, 0k2 mem, 124 iram)
#endif
#define USE_PCF8574                        // [I2cDriver2] Enable PCF8574 I/O Expander (I2C addresses 0x20 - 0x26 and 0x39 - 0x3F) (+1k9 code)
#define USE_PCF8574_SENSOR                 // enable PCF8574 inputs and outputs in SENSOR message
#define USE_PCF8574_DISPLAYINPUT           // enable PCF8574 inputs display in Web page
#define USE_PCF8574_MQTTINPUT              // enable MQTT message & rule process on input change detection : stat/%topic%/PCF8574_INP = {"Time":"2021-03-07T16:19:23+01:00","PCF8574-1_INP":{"D1":1}}
#define USE_ETHERNET           // Add support for ethernet (Currently fixed for Olimex ESP32-PoE)
#define ETH_TYPE          0    // [EthType] 0 = ETH_PHY_LAN8720, 1 = ETH_PHY_TLK110, 2 = ETH_PHY_IP101
#define ETH_ADDR          0    // [EthAddress] 0 = PHY0 .. 31 = PHY31
#define ETH_CLKMODE       3    // [EthClockMode] 0 = ETH_CLOCK_GPIO0_IN, 1 = ETH_CLOCK_GPIO0_OUT, 2 = ETH_CLOCK_GPIO16_OUT, 3 = ETH_CLOCK_GPIO17_OUT
#define USE_RC_SWITCH   // Add support for RF transceiver using library RcSwitch (+2k7 code, 460 iram)
#define USE_RF_SENSOR   // Add support for RF sensor receiver (434MHz or 868MHz) (+0k8 code)
#define USE_THEO_V2     // Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver (+1k4 code)
#define USE_ALECTO_V2   // Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 weather stations using 868MHz RF sensor receiver (+1k7 code)

#define USE_BLE_ESP32                  // Enable BLE on ESP32 - needs at least 2M flash
// #define USE_THERMOSTAT TODO: wire sensors and use setthings from https://tasmota.github.io/docs/Thermostat/

#endif  // _USER_CONFIG_OVERRIDE_H_
  1. platformio run -e tasmota32
  2. through the web ui, upgrade the firmware found in build_outputs/firmware (need to go through factory first, and regular firmware after)