Any luck getting this figured out? I seem to be having the same issue. It connects to the MQTT server and I copied the switches and sensors into my yaml, but nothing shows. When I look around in my SMB share I don’t see a Pentair folder in custom components. Should I have a folder in there?
@osufnl499 You won’t see a folder in custom_components because this is not a component/integration. It is an addon.
@farberm It sounds like there is a still an issue with your MQTT broker. Can you use an MQTT snooper app to see if there is any traffic being sent back and forth?
Ok I figured it out. I use MQTT explorer and see the values updating. The documentation shows a leading “/” under each sensor (/pentair/pooltemp/state) but when it reports it doesn’t have the leading /. I updated all the sensors and now I can see them in HA, but can’t figure out how to control anything from HA or MQTT explorer. For example:
“pentair/heater/pool/mode/state = off” in MQTT explorer. If I change it to on (raw) and publish it, it changes it for a second then goes back to off.
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’.
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?
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.