[New Addon] Pentair Screenlogic

Do you know what the circuit ID is of the feature you created? I haven’t implemented dynamic circuit IDs yet and at least one other person pointed out that some circuit IDs are higher than what is supported currently.

The circuit Id is 540

yep, that is why it isn’t working. I have only hard coded circuit IDs up to 519. I plan to support this in the next release if I can find some time.

1 Like

I’m trying to put together a Dockerized version of poolController and poolController-mqtt that can be installed as a HASSIO add-on (which can also be used outside of HASSIO). I need to get this up and running for my pool anyway!

@ryans and @joe2 I’m really interested in your progress on getting nodejs-poolcontroller running with HA. I’ve got it (V 6.0) up and running for my Intellicenter with a dedicated Pi hardwired to the Intellicenter. I’m using the dashpanel webclient to communicate, but really want to set it up in HA.
Any progress on your end? I’m happy to be of help in testing in any way.

1 Like

What’s the difference with your idea and this current Addon UX wise?

Is there a way to query and determine which light mode or color is currently selected?

Just started getting this error today. Tried rebuilding and restarting without luck


events.js: 292

throw er;

// Unhandled

Error: connect EHOSTUNREACH

1921681157 :80

error

event

at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) Emitted error event on UnitConnection instance at:

at Socket.<anonymous> (/node_modules/node screenlogic/index.js:154:13) at Socket.emit (events.js:315:20) at emitErrorNT (internal/streams/destroy.js:92:8)

at emitErrorAndcloseNT

(internal/streams/destroy.js:60:3) at processTicksAndRejections (internal/process/task_queues.js:84:21) {

errno: EHOSTUNREACH', code: 'EHOSTUNREACH',

syscall: 'connect', address: ' 1921681157 ', port: 80

}

events.js:292 throw er; // Unhandled 'error' event

Disregard I realized my IP changed when my router restarted last night. Switched it back and made it static and it’s working again

Just to riff a bit on your error report…I experience frequent similar connectivity errors as a result of poor WiFi and find myself restarting my pentair-screenlogic container to get things happy again. Wondering if connectivity could be robustified so as to gracefully retry connections when issues arise?

I saw a release, this circuit still doesn’t work from HA. I perused the code, and didn’t find an implementation change for this. Any idea when this will get in?

No, the last release was just merging in a pull request from resistr to add the ability to have a ScreenLogic password.

I’m sorry I haven’t gotten around to adding dynamic circuits yet. I haven’t forgotten though.

1 Like

Version 1.21 released

changelog:

  • Updated circuits to be dynamic. No longer a limit to the number of circuits supported.
  • Added pump watts/rpm/gpm support
  • Added salt IntelliClor support
  • Removed password support - This didn’t work as expected
1 Like

@bwoodworth when I updated I found this in the logs repeating over and over. Pump status is not being reporting to HA.

/node_modules/node-screenlogic/send_state_to_ha.js:52
    this.getPumpStatus(0);
         ^

TypeError: this.getPumpStatus is not a function
    at UnitConnection.<anonymous> (/node_modules/node-screenlogic/send_state_to_ha.js:52:10)
    at UnitConnection.emit (events.js:315:20)
    at UnitConnection.onClientMessage (/node_modules/node-screenlogic/index.js:287:14)
    at Socket.<anonymous> (/node_modules/node-screenlogic/index.js:148:15)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23)

Dynamic circuits work though. :smiley:

Try doing a rebuild on the addon page. It may not have installed the latest version of the node.js library when updating.

That did it, thanks

Hi Brian. I am absolutely stuck on getting this to work and I could really use your help. I’m still new to Home Assistant (10 months into it) so forgive me if I’m missing something extremely simple here.

My Pentair Config Files:
MQTT_server: 127.0.0.1
MQTT_port: ‘1883’
MQTT_user: xxxxxxxxxx
MQTT_password: xxxxxxxxxxx
ScreenLogic_server: 127.0.0.1

My Pentair Log File:
events.js:292
throw er; // Unhandled ‘error’ event
^
Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
Emitted ‘error’ event on UnitConnection instance at:
at Socket. (/node_modules/node-screenlogic/index.js:162:13)
at Socket.emit (events.js:315:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: ‘ECONNREFUSED’,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘127.0.0.1’,
port: 80
}
Error: Connection refused
MQTT Client exited with non-zero status

My MQTT Config Files:
logins: []
anonymous: false
customize:
active: false
folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

My MQTT Log Files:
[21:46:54] INFO: Setup mosquitto configuration
[21:46:54] INFO: No local user available
[21:46:56] INFO: Initialize Hass.io Add-on services
[21:46:56] INFO: Initialize Home Assistant discovery
[21:46:56] INFO: Start Mosquitto daemon
1595382416: mosquitto version 1.6.3 starting
1595382416: Config loaded from /etc/mosquitto.conf.
1595382416: Loading plugin: /usr/share/mosquitto/auth-plug.so
1595382416: |-- *** auth-plug: startup
1595382416: ├── Username/password checking enabled.
1595382416: ├── TLS-PSK checking enabled.
1595382416: └── Extended authentication not enabled.
1595382416: Opening ipv4 listen socket on port 1883.
1595382416: Opening ipv6 listen socket on port 1883.
1595382416: Opening websockets listen socket on port 1884.
1595382416: Opening ipv4 listen socket on port 8883.
1595382416: Opening ipv6 listen socket on port 8883.
1595382416: Opening websockets listen socket on port 8884.
1595382416: Warning: Mosquitto should not be run as root/administrator.
1595382421: New connection from 172.30.32.1 on port 1883.
[INFO] found homeassistant on local database
1595382423: New client connected from 172.30.32.1 as Pentair (p2, c1, k60, u’homeassistant’).

OTHER INFO:
System - Raspberry Pi3 + Home Assistant Cloud

Any help sorting this out would be greatly appreciated! Thanks in advance!

Hi Ryan,
If you make any progress on this, I’d love to know about it. I would like to bypass screenlogic and just use an rs485 usb dongle with a HA addon to communicate with the EasyTouch directly. So far, nodejs-poolController (https://github.com/tagyoureit/nodejs-poolController) seems to work well as a standalone option.

@UNC2K3 Your ScreenLogic_server IP address is localhost (127.0.0.1). Is that intentional?

That is, in my configuration it’s the IP address of the ScreenLogic Protocol Adapter box, a metal box about the size of two decks of cards stacked on each other. As a separate device on the network, it has a separate (and static) IP address in the 192.168.1.x address space. So, not 127.0.0.1.

For that matter, in my config I have given the “real” static IP address for my MQTT_server, which is the same as my Home Assistant server. So, while it is the local device, I don’t use the localhost address.

Given that your error is CONNECTION REFUSED, it seems likely that you might not be reaching the device at the address that you think you are. Try using the “real” IP addresses for those two devices instead of 127.0.0.1.

Thanks for keeping this going and adding new features. I just updated it and it’s very useful to have the salt cell level and pump rpm report their values. Do you know if it’s possible to set the salt cell level (1-100)? I’ve tried to set a new value through mqtt but it only seems to read it not change it.

Alderete has it right. You need to assign a static or reserved IP address to your Pentair ScreenLogic Protocol Adapter on your network, and input that address in your configuration.