[New Addon] Pentair Screenlogic

What documentation are your referring to?

Do you see an thermostat device in the UI?

The valid values for pentair/heater/pool/mode/state are ‘off’ and ‘heat’.

That is not my repository. It is krk628’s

Brian:

Thanks for your help. I do not see that there is any communication to the MQTT broker. I am running MQTT on my Synology via Mosquitto. I have usernames and password enabled on the broker and I can connect via another client that I use for my house generator.

I have tried installer the MQTT broker thru integration and also via just adding the following to my config file
mqtt:
broker: mqttserver ip
username: mqttusername
password: mqttpassword

Both give the same result.

Do I need to be doing something else to my config.yaml.
My guess is that this may have to do with username and password issues but I am not sure what the issue is.

When I have MQTT explorer running I do not see any communication for subscribe from pentair.

Of note I am running Cassio on my Synology which is also running Mosquitto. I did not think that should be the issue.

Also: Why does the configuration have ‘1883’ in quotes?

You can test your Home Assistant -> MQTT connection by creating a simple switch in your configuration.yaml:

switch:
  - platform: mqtt
    name: "Test Switch"
    command_topic: testswitch/command
    state_topic: testswitch/state

Then when you toggle that switch on the front end you should see the traffic on your MQTT broker if you have everything set up properly. You will need to restart Home Assistant after adding the switch to your config before it will show up.

So I just tested my pentair spa switch. When I click on it I see pentair show up in the subscribe section on MQTT Explorer. I am not getting any values for spa temp pool temp items etc. Why would that be. I have also included and config.yaml.

Configure a default setup of Home Assistant (frontend, api, etc)

default_config:

Uncomment this if you are using SSL/TLS, running in Docker container, etc.

http:

base_url: example.duckdns.org:8123

Text to speech

tts:

  • platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

frontend:
themes: !include_dir_merge_named themes

mqtt:
broker: 192.168.2.113
port: 1883
username: mqttusername
password: mqttpassword
discovery: true

You can create more switches for other circuits in you pool controller (lights, jets, cleaner, etc.)

Just use the same convention and change the circuit ID

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

  • platform: mqtt
    name: testswitch
    command_topic: testswitch/command
    state_topic: testswitch/state

If you want to set up a thermostat device in HA to control the heater on your pool or spa

climate:

  • platform: mqtt
    name: “Pool”
    min_temp: 40
    max_temp: 104
    modes:
    • “off”
    • “heat”
      current_temperature_topic: pentair/pooltemp/state
      action_topic: pentair/circuit/505/state
      mode_command_topic: pentair/heater/pool/mode/set
      mode_state_topic: pentair/heater/pool/mode/state
      temperature_command_topic: pentair/heater/pool/temperature/set
      temperature_state_topic: pentair/heater/pool/setpoint/state
  • platform: mqtt
    name: “Spa”
    min_temp: 40
    max_temp: 104
    modes:
    • “off”
    • “heat”
      current_temperature_topic: pentair/spatemp/state
      action_topic: pentair/circuit/500/state
      mode_command_topic: pentair/heater/spa/mode/set
      mode_state_topic: pentair/heater/spa/mode/state
      temperature_command_topic: pentair/heater/spa/temperature/set
      temperature_state_topic: pentair/heater/spa/setpoint/state

sensors to contain the values from ScreenLogic. If you are using the thermostat config from above you can probably skip the pooltemp and spatemp

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_orp
    state_topic: pentair/orp/state

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

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

When you start the Pentair Addon what do you see in the addon log?

The log shows all the correct values from the pentair screen logic. Am I setting up something wrong on my Overview cards?

Log
“delay”: 0
},
{
“id”: 542,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 543,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 545,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 546,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
}
],
“pH”: 7.7,
“orp”: 370,
“saturation”: -0.04,
“saltPPM”: 0,
“pHTank”: 1,
“orpTank”: 6,
“alarms”: 1
}
pool ok=1
pool active=true
pool temp=70
pool settemp=63
pool heatStatuse=0
pool heatStatuse=off
spa active=true
spa temp=69
spa settemp=100
spa heatStatuse=heat
salt ppm=0
pH=7.7
orp=370
saturation=-0.04
air temp=67
freezeMode=0
alarms=1
Number of circuitArray Objects=15
calcium=250
cyanuric acid=18
alkalinity=90
salt cell installed=false
controller is in celsius=false
controllerId=100
pumpCircArray=134,129,0,0,0,0,0,0
Number of bodyArray Objects=15
bodyArray=
circuitId: 500
name: Spa
circuitId: 501
name: Aux 1
circuitId: 502
name: Lights
circuitId: 503
name: Jets
circuitId: 504
name: Fountain
circuitId: 505
name: Pool
circuitId: 507
name: Cleaner
circuitId: 508
name: SPA WAT HI
circuitId: 509
name: Aux 8
circuitId: 540
name: Spa Waterfall
circuitId: 541
name: Spa High
circuitId: 542
name: SPA MED
circuitId: 543
name: PARTY
circuitId: 545
name: Fountain 1
circuitId: 546
name: spa spill v

That looks good. Your connection to ScreenLogic is working. Double check your Addon config has the proper MQTT info?

Welp I’m an idiot haha. I got it working now. I clicked on the first link in your first post where you gave credit to krk628 and that was my problem. Anyway, everything is up and running. Thanks for making this and thanks for the help.

Brian:

Yes I have installed the MQTT integration and set its setting to the same username and password and in your addon.

I am fairly new to HASS so I may be doing something wrong on my card setup. When I look at configuration entities all the pentair items do not have a unique ID and the pencil icon has a line thru it this setting cannot be managed. This may be normal.

When I set up a history graph for something like Calcium ORP, or pH, I look at the editor and it is as follows:
Entities:

  • entity: sensor.pentair_orp
    hours_to_show: 24
    refresh_interval: 0
    title: Pool ORP
    type: history-graph

Is there something wrong with how I set this up or am I doing something Ellie wrong as a noob.

Thanks again.

I rechecked and when I click on pool switch I do see the topic show up on the MQTT Explorer

My MQTT broker is run on my Synology NAS and not part of my HASS setup cuz I use it for my generator, It is located on the same machine and I am using it static in address, The NAS is also running HASS in a docker setup. I do not think that should matter. I do not see all the topic show up on the MQTT Explorer only the switch topic after I click on the switch.

Brian:

I have reinstalled everything as follows…

I installed your add-on, the mqtt broker add-on and the MQTT integration. I inserted the username and password created after MQTT broker add-on installed into your config. I set Ip address of screenlogic adapter. Based upon the MQTT broker log below, I am definitely connecting.

I think based upon the Pentair Log that the Error: Connection refused is from the screenlogic adapter? Is that correct? I connect to the screenlogic device immediately but then after the first connection it dis-connects. Is that what this log is showing? If so would that account for not seeing data on the Overview --cards?

Screen Shot 2020-05-07 at 5.09.30 PM
If that is the case how do I determine the cause?

My pool system is Intellitouch i10+3d Firmware 1.170
Adapter 5.2 Build 738.0 Rel
Remote access set to no password

Thanks again for your help.

Log from MQTT Broker:
[08:04:35] INFO: Initialize Hass.io Add-on services
[08:04:35] INFO: Initialize Home Assistant discovery
[08:04:35] INFO: Start Mosquitto daemon
1588853075: mosquitto version 1.6.3 starting
1588853075: Config loaded from /etc/mosquitto.conf.
1588853075: Loading plugin: /usr/share/mosquitto/auth-plug.so
1588853075: |-- *** auth-plug: startup
1588853075: ├── Username/password checking enabled.
1588853075: ├── TLS-PSK checking enabled.
1588853075: └── Extended authentication not enabled.
1588853075: Opening ipv4 listen socket on port 1883.
1588853075: Opening ipv6 listen socket on port 1883.
1588853075: Opening websockets listen socket on port 1884.
1588853075: Warning: Mosquitto should not be run as root/administrator.
1588853076: New connection from 172.30.32.1 on port 1883.
[INFO] found [email protected] on Home Assistant
1588853077: New client connected from 172.30.32.1 as mqtt-explorer-5cb80d53 (p2, c1, k60, u’[email protected]’).
1588853078: New connection from 172.30.32.1 on port 1883.
[INFO] found homeassistant on local database
1588853078: New client connected from 172.30.32.1 as auto-DD1338AC-AEA6-8990-F327-5C14739441E7 (p2, c1, k60, u’homeassistant’).
1588853080: New connection from 172.30.32.1 on port 1883.
1588853080: New client connected from 172.30.32.1 as genmon (p2, c1, k60, u’[email protected]’).
1588853080: New connection from 172.30.32.1 on port 1883.
[INFO] found farberm on Home Assistant
1588853081: New client connected from 172.30.32.1 as indigo-mqtt-798843088 (p2, c1, k60, u’farberm’).
1588854875: Saving in-memory database to /data/mosquitto.db.
1588856676: Saving in-memory database to /data/mosquitto.db.
1588858477: Saving in-memory database to /data/mosquitto.db.
1588860278: Saving in-memory database to /data/mosquitto.db.
1588862079: Saving in-memory database to /data/mosquitto.db.
1588863880: Saving in-memory database to /data/mosquitto.db.
1588865681: Saving in-memory database to /data/mosquitto.db.
1588867482: Saving in-memory database to /data/mosquitto.db.
1588869283: Saving in-memory database to /data/mosquitto.db.
1588871084: Saving in-memory database to /data/mosquitto.db.
1588872885: Saving in-memory database to /data/mosquitto.db.
1588874686: Saving in-memory database to /data/mosquitto.db.
1588876487: Saving in-memory database to /data/mosquitto.db.
1588878288: Saving in-memory database to /data/mosquitto.db.
1588880089: Saving in-memory database to /data/mosquitto.db.
1588881890: Saving in-memory database to /data/mosquitto.db.
1588883691: Saving in-memory database to /data/mosquitto.db.

Pentair Add-on Log (Initial info from adapter then Connection refused
},
{
“id”: 542,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 543,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 545,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
},
{
“id”: 546,
“state”: 0,
“colorSet”: 0,
“colorPos”: 0,
“colorStagger”: 0,
“delay”: 0
}
],
“pH”: 7.7,
“orp”: 345,
“saturation”: -0.06,
“saltPPM”: 0,
“pHTank”: 1,
“orpTank”: 6,
“alarms”: 1
}
pool ok=1
pool active=true
pool temp=69
pool settemp=63
pool heatStatuse=0
pool heatStatuse=off
spa active=true
spa temp=68
spa settemp=100
spa heatStatuse=heat
salt ppm=0
pH=7.7
orp=345
saturation=-0.06
air temp=66
freezeMode=0
alarms=1
Number of circuitArray Objects=15
calcium=250
cyanuric acid=18
alkalinity=90
salt cell installed=false
controller is in celsius=false
controllerId=100
pumpCircArray=134,129,0,0,0,0,0,0
Number of bodyArray Objects=15
bodyArray=
circuitId: 500
name: Spa
circuitId: 501
name: Aux 1
circuitId: 502
name: Lights
circuitId: 503
name: Jets
circuitId: 504
name: Fountain
circuitId: 505
name: Pool
circuitId: 507
name: Cleaner
circuitId: 508
name: SPA WAT HI
circuitId: 509
name: Aux 8
circuitId: 540
name: Spa Waterfall
circuitId: 541
name: Spa High
circuitId: 542
name: SPA MED
circuitId: 543
name: PARTY
circuitId: 545
name: Fountain 1
circuitId: 546
name: spa spill v
MQTT Client exited with non-zero status
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
MQTT Client exited with non-zero status
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
MQTT Client exited with non-zero status
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused
Error: Connection refused

It looks to me like the MQTT connection is not working. I don’t think it would connect successfully to ScreenLogic once and then fail.

The addon doesn’t connect to the MQTT broker until after it connects to the ScreenLogic and output all the initial values.

What does your MQTT broker addon config look like?

Did you ever get the light part working?

This is my config for MQTT Broker:

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

This is my config for pentair:

MQTT_server: 127.0.0.1
MQTT_port: ‘1883’
MQTT_user: mqtt
MQTT_password: mqtt
ScreenLogic_server: 192.168.2.21

I created a user: username: mqtt, password: mqtt

Is there something else I should be adding somewhere?

Try the actual IP address of your Hass server. 127.0.0.1 might not work since they are in containers.

@osufnl499 I haven’t had a chance to figure out colors yet.

Thanks. That seems to have fixed it…

Not sure if this would be possible, but can you add pump speed in RPM as a sensor? I happened to notice my pump cycling up and down today while in the house. The cause was low water level that caused my skimmer to be stuck and the pump taking in air. Easy fix, but with pentair I don’t get notifications about this. If this value was available as a sensor I could create an automation to notify me of issues like this.

1 Like

I don’t think it is possible using the current version of node-screenlogic library that this addon uses. That would have to get added.