ioBroker adapter for the Pool Digital ProCon.IP swimming pool controller. It is intended for integration with your ioBroker home automation, eg. to build logic that involves other devices or to be paired with your favorite voice assistant(s):
- You can use the cloud or IoT adapter for Alexa (and also Google Home, I think) and
- yahka adapter as bridge to the Apple HomeKit to be reached by Siri or
- use the javascript adapter to build your own custom logic.
See the wiki for more information.
The ProCon.IP pool control is a low budget network attached control unit for
home swimming pools. With its software switched relays, it can control
multiple pumps (for the pool filter and different dosage aspects) either
simply planned per time schedule or depending on a reading/value from one of
its many input channels for measurements (eg. i/o flow sensors, Dallas 1-Wire
thermometers, redox and pH electrodes). At least there is also the option to
switch these relays on demand, which makes them also applicable for switching
lights (or anything else you want) on/off.
Not all of its functionality is reachable via API. In fact there is one
documented API for reading (polling) values as CSV (/GetState.csv
). In my
memories there was another one for switching the relays on/off and on with
timer. But I cannot find the second one anymore. So not even pretty, but
functional: The ProCon.IP has two native web interfaces, which can be
analyzed, to some kind of reverse engineer a given functionality (like
switching the relays).
For more information see the following link (sorry it's only in german; haven't found an english documentation/information so far):
Just to be clear: I have nothing to do with the development, sellings, marketing or support of the pool control unit. I just developed a solution to integrate such with ioBroker to make my parent's home a bit smarter.
The adapter uses the /GetState.csv
API of the ProCon.IP to poll its values
and another - not documented - API, that operates with bitwise commands to
switch the relays. The second one is also used by the original web interfaces
of the ProCon.IP. So there might be future firmware upgrades, that brake
compatibility with this adapter or at least it functionality of switching the
relays.
For now the adapter has been tested and developed in combination with the ProCon.IP firmware revision 1.7.6.a. But it should work with any prior newer/upcoming firmware version.
Feel free to contact me, if you wish to participate in development, translation or documentation of this adapter.
Useful links for the approach will be
- the TypeScript adapter template I had started from and
- the guide for adapter developers.
If you want to support this adapter or say thank you, you can:
- Fix versioning according to prior changes in requirements (should have happened with v1.5.5).
- Raise minimum required js-controller version to 5.0.19.
- Raise minimum required node version to 20.
- Dependency updates.
- Dependency updates.
- Raise minimum required js-controller version to 5.0.19.
- Raise minimum required node version to 18.
- Fix minor issues reported by the ioBroker adapter bot (#102).
- Fix the last issues that were reported by the ioBroker adapter checker.
(Includes a minor optimization in implementation.) - Update procon-ip package to the latest version.
- Update dependencies.
- Add newline before descriptive text in adapter config.
- Update dependencies.
- Re-translate adapter config.
- Cleanup adapter code.
- Update dependencies.
- Breaking backward compatibility: For older installations, this update may require an adapter reconfiguration.
- Require
js-controller >=3.0.0
: Remove support for obsolete credential encryption mechanisms (in favor to ioBroker's native encryption mechanism). - Require
iobroker.admin >=5.0.0
: Replace old-fashioned materialize admin interface with a newer JSON defined one.
- Add generic relay timers (relays must be set to 'auto' for the timer to function).
- Update dependencies.
- Update dependencies.
- Update dependencies.
- Adapter Icon change.
- re-add read-only restrictions on
onOff
states of dosage control relays. - Add writable numeric
dosage
states to trigger timer-based manual dosage.
- Remove restrictions on dosage control relays: enable manual switching.
- Add additional boolean states for dosage control information:
info.system.chlorineDosageEnabled
,info.system.phPlusDosageEnabled
,info.system.phMinusDosageEnabled
,info.system.electrolysis
(formerly only available as combined bit-state/integer valueinfo.system.dosageControl
as delivered by the GetState.csv). - Update dependencies.
- Update dependencies.
- Update dependencies.
- Fix connection problem (see related issue).
- Update
procon-ip
API library package to v1.3.2
(should fix a bug that let the relay switching fail). - Fix minor issues that occur with invalid controller URLs.
- Update further dependencies.
- Move API library sources into a separate package.
- Update
common.name
attributes when the corresponding label changes. - Update dependencies.
- Fine tune the polling and control requests (add additional adapter settings for this).
- Wait a configurable amount of consecutive errors, before raising the log level to Warning for polling requests.
- Try to send control commands two more times, if an error occurs on the request.
- Fix Object State updates. For some reason the two js objects used to compare the before and after values of the GetState.csv calls became the same object (before was referencing the new values). That caused the adapter to never update the object states.
- Official release in ioBroker adapter repository:
The most exciting change with this release is, that it's available from the ioBroker adapter repository. Hence you can just install it, without copy/ pasting the github repo url of this adapter! - Fix all open milestone issues especially regarding the ones resulted from the adapter review).
- Add/Extend documentation
(see wiki).
Now it's up to you to extend the wiki or request me using issues to extend the wiki or README.md regarding a specific content.
- Fix write actions to the appropriate states of external relays.
This will add auto-recognition on whether the external relays are activated or not and therefore decide on how to handle write actions to the corresponding relay state.
- Add encryption for configuration settings stored in ioBroker's internal db.
- Improve http request/connection error handling.
- Reduce logging output.
- Remove the unused admin tab.
- Update dependencies including some reported as vulnerable.
- Add connection status indication for iobroker's instance tab.
- Add form validation for the configuration settings.
- Update npm dependencies.
- Group admin settings input fields in rows.
- Update vulnerable eslint-utils.
- Fix object attributes regarding the cloud adapter.
- Pre-defined
smartName
attributes for active relays and temperature sensors. - Recognize relays with 'light', 'licht' or 'leucht' in its name as
smartType
LIGHT.
- Update
lodash
(pinning version4.17.14
). - Update other indirect and direct dependencies.
- Fix missing
value
states. - Reduce logging output.
- Fix sys info state values.
- All information from
GetState.csv
as readonly states. - Writable states for all relays to toggle auto/manual.
- Writable states for relays not configured for dosage control to toggle on/off.
The MIT License (MIT)
Copyright (c) 2019-2024 ylabonte yannic.labonte@gmail.com