[New Addon] Pentair Screenlogic

1.26 fixed the problem. Thanks

@jaime.payan Do you have the switches and sensors configured in your configuration.yaml?

Yes, I have the following:

switch:
  - platform: mqtt
    name: pentair_pool
    command_topic: /pentair/pool/command
    state_topic: /pentair/pool/state

  - platform: mqtt
    name: pentair_spa
    command_topic: /pentair/spa/command
    state_topic: /pentair/spa/state

sensor:

  - platform: mqtt
    name: pentair_pooltemp
    state_topic: /pentair/pooltemp/state

  - platform: mqtt
    name: pentair_spatemp
    state_topic: /pentair/spatemp/state

  - platform: mqtt
    name: pentair_airtemp
    state_topic: /pentair/airtemp/state

  - platform: mqtt
    name: pentair_alkalinity
    state_topic: /pentair/alkalinity/state

  - platform: mqtt
    name: pentair_calcium
    state_topic: /pentair/calcium/state

  - platform: mqtt
    name: pentair_cyanuricacid
    state_topic: /pentair/cyanuricacid/state

  - platform: mqtt
    name: pentair_ph
    state_topic: /pentair/ph/state

  - platform: mqtt
    name: pentair_saltppm
    state_topic: /pentair/saltppm/state

  - platform: mqtt
    name: pentair_saturation
    state_topic: /pentair/saturation/state

I think it has to do with the sensor configuration, because in the MQTT Explorer I can see that there are the values.

What is the exact issue? Are the sensors in HA not updating with the values you see coming across on MQTT?

Yes, that is the problem

Pentair2

This is working great! On my pool spa, I only have one temperature probe and it’s by the equipment rather than in the swim area. This means most of the day the temperatures are reporting incorrectly. I would like it to ONLY report temperatures when the water is flowing through the system (pool or spa are on). How can I change this template sensor to ONLY update temperatures when the pool or spa are on?

  - platform: mqtt
    name: pentair_pooltemp
    state_topic: pentair/pooltemp/state
    unit_of_measurement: '°F'
  - platform: mqtt
    name: pentair_spatemp
    state_topic: pentair/spatemp/state
    unit_of_measurement: '°F'

This addon only knows what the ScreenLogic system is reporting. If your system is reporting temperature changes when the pumps are not running this addon is going to get those changes too. My system doesn’t update the temperatures when the pumps aren’t running. Are the temperatures in the ScreenLogic app incorrect?

You might be able to accomplish what you want using template sensors in HA, but I’m not an expert on how to do that. There is a lot of documentation on it though.

1 Like

Thank you for this add-on
I cannot get it to connect
The logs show this

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 191.168.0.246:80
    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: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: 'ETIMEDOUT',
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '191.168.0.246',
  port: 80
}
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 191.168.0.246:80
    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: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: 'ETIMEDOUT',
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '191.168.0.246',
  port: 80
}
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: connect ETIMEDOUT 191.168.0.246:80
    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: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: 'ETIMEDOUT',
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '191.168.0.246',
  port: 80
}

I have the same issue
did you figure it out? Thanks

Thanks for providing this addaddon. Works great!

Newb here. What am I doing wrong?

I took these steps:

  1. Went into Supervisor / Add-ons and added the repo. The Pentair Add-on appeared! Yaay

  2. Installed the Pentair add-on

  3. Clicked the Configuration tab in the Pentair add-on and set the MQTT server, user, pass and port, and set the Screenlogic Server

  4. Started the Add-on. Looked good - Log showed:
    [s6-init] making user provided files available at /var/run/s6/etc…exited 0.
    [s6-init] ensuring user provided files have correct perms…exited 0.
    [fix-attrs.d] applying ownership & permissions fixes…
    [fix-attrs.d] done.
    [cont-init.d] executing container initialization scripts…
    [cont-init.d] done.
    [services.d] starting services
    [services.d] done.
    version=POOL: 5.2 Build 738.0 Rel
    pool ok=1
    pool active=false
    pool temp=56
    pool settemp=40
    pool heatStatuse=0
    pool heatStatuse=off
    spa active=false
    spa temp=51
    spa settemp=100
    spa heatStatuse=heat
    salt ppm=3300
    pH=0
    orp=0
    saturation=0
    air temp=54
    freezeMode=0
    alarms=0
    Number of circuitArray Objects=9
    calcium=0
    cyanuric acid=0
    alkalinity=0
    controller is in celsius=false
    controllerId=100
    pumpCircArray=134,0,0,0,0,0,0,0
    Number of bodyArray Objects=9
    bodyArray=
    circuitId: 500
    name: Spa
    circuitId: 501
    name: Pool Light
    circuitId: 502
    name: Spa Light
    circuitId: 503
    name: Air Blower
    circuitId: 504
    name: Waterfall
    circuitId: 505
    name: Pool
    circuitId: 506
    name: Spa SAL
    circuitId: 507
    name: Spa SAm
    circuitId: 508
    name: Pool High
    numPumps=1
    pumpID 0 watts=0
    pumpID 0 rpms=0
    pumpID 0 gpms=255
    salt cell installed=false
    salt cell satus=129
    salt cell level 1=99
    salt cell level 2=20
    CLOSING CONNECTION

  5. Looked around and realized nothing really changed, so re-read the instructions and it mentions adding options from configuration-entries.yaml to HASS, so I believe that means using the File Editor Add-on and editing my configuration.yaml file. So for testing, I just copied everything except the cards: section into that file and restarted

  6. That didn’t work, got tons of errors, so then I tried minimizing the configuration.yaml file to just a few switches and sensors, but that also failed. Here’s what I tried:

switch:
  - platform: mqtt
    name: pentair_pool
    command_topic: pentair/circuit/505/command
    state_topic: pentair/circuit/505/state
  - platform: mqtt
    name: pentair_spa
    command_topic: pentair/circuit/500/command
    state_topic: pentair/circuit/500/state

When I start things up, I get this error:
2021-02-07 21:33:38 ERROR (MainThread) [homeassistant.setup] Setup failed for mqtt: Integration failed to initialize.

2021-02-07 21:33:38 ERROR (MainThread) [homeassistant.setup] Unable to prepare setup for platform mqtt.switch: Unable to set up component.

2021-02-07 21:33:38 ERROR (MainThread) [homeassistant.setup] Unable to prepare setup for platform mqtt.switch: Unable to set up component.

There are no other errors, details, or anything.

What am I doing wrong?

Well, I’m dumb. The issue is mqtt wasn’t defined as a platform in configuration.yaml and had nothing to do with this plugin.

Core version 2021.2.1 reports: “Add-on config ‘startup’ with ‘before’ is deprecated. Please report this to the maintainer of Pentair Screenlogic”, any clue if an update of this add-on is in the works to revise the deprecated parameters?

1 Like

Where are you seeing this?

Just wanted to stop in and thank you for this add-on. I’ve been using it for a while now and it’s rock solid.

2 Likes

@bwoodworth I am seeing the same warning about ‘startup’ with ‘before’ being deprecated. It’s in the Supervisor log.

As @thunderdanp indicated it was in the supervisor logs under the system tab

This add-on has been great! Thank you for this!

I have a question - the temperature sensor/device in HA works, but only shows heat or no heat. But our system has the option for Solar + Heat or Solar Preferred on the original Pentair Screenlogic controller. Is there any way to trigger these options in this add-on? In other words, the Pentair supports more modes than just off and heat. How can I represent that here?

1 Like

great work Brian. getting my pool into some sort of home automation has been a goal of mine for a while.

I feel like im very close, just not seeing the active results in HA. Was wondering if someone might know what im missing.

my MQTT config is this:

logins:
  - username: mosquitto
    password: pw
anonymous: true
customize:
  active: false
  folder: mosquitto
certfile: fullchain.pem
keyfile: privkey.pem
require_certificate: false

this is what i see in the MQTT log
1617733292: New client connected from 172.30.32.1 as mosq-YJkBdza6QXQnSjdPtX (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-YJkBdza6QXQnSjdPtX disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-7xpOKoBcGJ9z5JMjjI (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-7xpOKoBcGJ9z5JMjjI disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-7o1latlLtHgyk3i1PM (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-7o1latlLtHgyk3i1PM disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-SD2H6WHsulbkVLNA4x (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-SD2H6WHsulbkVLNA4x disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-9pq1sHFfD52cPUaEOb (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-9pq1sHFfD52cPUaEOb disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-r0WuHVnnqy1lXSVc4z (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-r0WuHVnnqy1lXSVc4z disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-AnVVsMNJ8GmVCcYFMR (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-AnVVsMNJ8GmVCcYFMR disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-S3B1a4crSRkXhXBvpf (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-S3B1a4crSRkXhXBvpf disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-rI1dilM0G5VK136YaL (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-rI1dilM0G5VK136YaL disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-M54mBa8KfvlvA0EJGJ (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-M54mBa8KfvlvA0EJGJ disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-ELBk5ubPtEXt07618B (p2, c1, k60, u’mosquitto’).
1617733292: Client mosq-ELBk5ubPtEXt07618B disconnected.
1617733292: New connection from 172.30.32.1 on port 1883.
1617733292: New client connected from 172.30.32.1 as mosq-5GUCdzNWrcUcElReSA (p2, c1, k60, u’mosquitto’).

this is what i see in the pentair addon. These values are accurate, pool is on and the temp is accurate.
[s6-init] making user provided files available at /var/run/s6/etc…exited 0.
[s6-init] ensuring user provided files have correct perms…exited 0.
[fix-attrs.d] applying ownership & permissions fixes…
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts…
[cont-init.d] done.
[services.d] starting services
[services.d] done.
version=POOL: 5.2 Build 738.0 Rel
pool ok=1
pool active=true
pool temp=69
pool settemp=85
pool heatStatuse=0
pool heatStatuse=off
spa active=false
spa temp=69
spa settemp=100
spa heatStatuse=off
salt ppm=0
pH=0
orp=0
saturation=0
air temp=76
freezeMode=0
alarms=1
Number of circuitArray Objects=7
calcium=0
cyanuric acid=0
alkalinity=0
controller is in celsius=false
controllerId=100
pumpCircArray=0,0,0,0,0,0,0,0
Number of bodyArray Objects=7
bodyArray=
circuitId: 500
name: Spa
circuitId: 501
name: Cleaner
circuitId: 502
name: Air Blower
circuitId: 503
name: Aux 3
circuitId: 505
name: Pool
circuitId: 510
name: Feature 1
circuitId: 511
name: Feature 2
numPumps=0
salt cell installed=true
salt cell satus=0
salt cell level 1=50
salt cell level 2=0
CLOSING CONNECTION

but when i try to just put a card for the temp in lovelace the value says “unavailable”

i copied and pasted the example settings from the repo and put them in the configuration.yaml i feel like this isn’t exactly right but not sure what i need to do.

do i need to subscribe to topics in MQTT? im not seeing any of the pentair stuff come up in the logs. Any help would be much appreciated.