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.
Hello! I’m wondering if anybody has successfully integrated the V-Green 2.7 HP VS pump with Home Assistant using only an ESP?
I’ve seen @gazoodle 's repo, but it looks like the ESP he mentions is no longer made, and I’m also not sure if the 2.7 HP version of the pump is compatible?
I would LOVE to gain control of the speeds in Home Assistant, just not sure if it’s possible without a dedicated “pool controller” like the big brands make.
I’m using with with a V-Green 2.7HP. Works great controlling the pump – however I was unable to get it to control the auxiliary relay that is on the this pump. I am using the original ESP. You do not need the automation interface, and I couldn’t stand the V.Link wifi adapter made by Century, so this replaced it perfectly.
The ATOM from M5Stack looks like was recently updated and is now only available as the ATOM S3 (S3Lite) and you can pop on a rs-485 Interface module.
I’m not sure if it would be backward compatible with the code from gazoodle.
well done @Scope666 once you are done why don’t you post a few pictures/screenshots and code snippets? then it will be easy for anyone to replicate. Thanks!
Here’s my config so far. I’m trying to read the amps as others have in this thread, but it’s not very accurate since it’s only reading the whole number. (1.0, 2.0, etc.)
Here’s how it looks in HA at the moment. (I’m always tweaking)
Look good. I am working on the same setup. I have some of the basic commands tested and working. However, my VS pump doesn’t have contacts for external programs. I have read around a good bit and It s seems some older version drives have the external program dry contacts, but the newer the drivers seem to have the dry contacts removed and it is only RS485 comms.
Basically, the issue is when I run the “external program x” command and nothing happens. I assume that is because this pump doesn’t have the input. I think need to load some registers with RPM setpoints and then call them for each program, rather than run the “external program”.
I got the Atom S3 Lite with the ATOM RS-485 that was linked to in a github issue. The pump does not respond. I’m just getting this error over and over again:
[11:22:50][D][century_vs_pump:140]: Pump command 43 no response received - removed from send queue
[11:22:51][D][century_vs_pump:140]: Pump command 45 no response received - removed from send queue
[11:22:52][D][switch:012]: 'Pool Pump Controller Run' Turning ON.
[11:22:52][D][switch:055]: 'Pool Pump Controller Run': Sending state ON
[11:22:53][D][century_vs_pump:140]: Pump command 45 no response received - removed from send queue
[11:22:54][D][century_vs_pump:140]: Pump command 45 no response received - removed from send queue
[11:22:55][D][century_vs_pump:140]: Pump command 45 no response received - removed from send queue
[11:22:57][D][century_vs_pump:140]: Pump command 41 no response received - removed from send queue
[11:22:58][D][century_vs_pump:140]: Pump command 43 no response received - removed from send queue
I’ve configured it to run with GPIO05 and 06:
# You need a UART to talk to the RS485 bus
uart:
baud_rate: 9600
rx_pin: GPIO05
tx_pin: GPIO06
I’ve tried swapping the A/B wires, swapping 05/06 as well as a few other GPIO combinations. Any advice? Will the ATOM S3 Lite just not work? If so I can order this instead. I hooked my Jandy VS Controller back up in the mean time.
I figured out my problem. It was dip switch 5. I was reading through some of the links off of the github link and saw that for some pumps dip switch 5 toggles it between Jandy Mode an RS-485 mode. When I switched that it started working.
Now it’s automation time! Speed up when the heater is on, run high enough for the skimmers a few hours a day, turn on automatically when power is restored, set speed based on time of day, freeze protection… the possibilities are endless! Thank you!