Update to the comms issue: Turns out, this doesn’t work with the ESP8266 too well, as in not giving me Demand RPM feedback or the slider not reflecting current RPM I suspect something to do with only having 1 UART that this can really use.
Replaced it with an ESP32 and everything works as it should. Just trying to read Motor input power page 0, address 17, or Inverter input power, page 0, address 4.
Are you guys able to build code after updating ESPHome to version 2023.4.0 ?
It is failing for me with:
In file included from src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.cpp:1:
src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.h: In constructor 'esphome::century_vs_pump::CenturyVSPumpSensor::CenturyVSPumpSensor(esphome::century_vs_pump::CenturyVSPump*, uint8_t, uint8_t, uint16_t, const string&, const string&)':
src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.h:22:30: error: no matching function for call to 'esphome::century_vs_pump::CenturyVSPumpSensor::set_name(const string&)'
set_name(name);
^
In file included from src/esphome/components/sensor/sensor.h:5,
from src/esphome/components/centuryvspump/CenturyVSPump.h:7,
from src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.h:3,
from src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.cpp:1:
src/esphome/core/entity_base.h:20:8: note: candidate: 'void esphome::EntityBase::set_name(const char*)'
void set_name(const char *name);
^~~~~~~~
src/esphome/core/entity_base.h:20:8: note: no known conversion for argument 1 from 'const string' {aka 'const std::__cxx11::basic_string<char>'} to 'const char*'
Compiling /data/test-esp-32/.pioenvs/test-esp-32/src/esphome/components/esp32/preferences.cpp.o
Compiling /data/test-esp-32/.pioenvs/test-esp-32/src/esphome/components/homeassistant/time/homeassistant_time.cpp.o
*** [/data/test-esp-32/.pioenvs/test-esp-32/src/esphome/components/centuryvspump/sensor/CenturyVSPumpSensor.cpp.o] Error 1
- platform: centuryvspump
name: ${friendly_name} Filter Pump Current
address: 1
page: 0
scale: 1000 ## 1000 per Gen 3 EPC modbus Comm Protocol
type: custom
unit_of_measurement: Amps
- platform: centuryvspump
name: ${friendly_name} Filter Pump Voltage
address: 31 ## or 2 Mains Voltage RMS
page: 1 ## or 3 for Mains Voltage RMS
scale: 230 ## NA per manual
type: custom
unit_of_measurement: Volts
I did more tests last couple days - looks like current sensor does not show correct amperage.
I have CT clamps also to measure current which are calibrated and more or less matching Klein Tools Tester.
When I run motor on low 1200-1800 RPM - current sensor is very close to what CT clamps detecting. But on full power it stuck on 7A and never going higher. CT Clamp is showing 9.5-10A at the same time.
Voltage is always show Unknown.
Just did an experiment and got the same results as you. At low RPM, it reads 0 but at 1200-1800, reads 1.00000 and at 3450, reads 6.000 amps. Nowhere near what my clamp meter reads.
I also noticed one more issue - basically pump never goes to 3450 rpm. Even if I set it to 3450 it is only reaching 3226-3227 rpm. It was working fine before latest fix. I also replaced esp32 but that should not be an issue. Could it be some bug? Can you try to check on your side?
It’s working good here. Here’s some screenshots. The gauge is running off the response from the pump, as it was bigger and easier to see from a distance.
Attached some pictures of the inside wiring of the pump, and something of the manual for the rather expensive Intellisyn Manual (not using this product).
Do you think/know if the CenturyVSPump code will work?
I don’t see any option between Regal Modbus v4.17 protocol and OEM version. Does anyone know which protocol works and if not how the Modbus can be activated?
Has anyone tried ESP stack with RS485 to Wifi or Ethernet? It would make things easier for me.
Has anyone integrated with Chlorinator?
I am aware of the nodejs controller with HA integration but prefer to keep it simple/less devices/systems.