Screenlogic/Screenlogic2 overview and $20 wireless fix! I explain how you can easily use a wifi/wireless network adapter to provide a wireless link. Update for pentair screenlogic software. There are several reasons for this dynamic: First, new technologies are emerging, as a result, the equipment is being improved and that, in turn, requires software changes. Secondly, the needs of users are growing, requirements are increasing and the needs are changing for pentair screenlogic software. This is a simple run through on how to set up your screen logic and what everything means. If you have any questions please contact us through our website at. ScreenLogic is just an add on that lets you talk with the Automation system. All the programming is still stored inside the EasyTouch or IntelliTouch panel.
Latest versionReleased:
Interface for Pentair ScreenLogic connected pool controllers over IP via Python
Project description
screenlogicpy
is an interface for Pentair ScreenLogic connected pool controllers over IP via python.
The screenlogicpy
package can be installed from PyPI using pip
.
The ScreenLogicGateway
class is the primary interface.
Gateway Discovery
The discovery
module's discover()
function can be used to get a list of all discovered ScreenLogic gateways on the local network. Each gateway is represented as a dict
object that can then be directly used to instanciate a ScreenLogicGateway
class.
Querying data
The ScreenLogicGateway
class updates all data at once from the ScreenLogic gateway. That data is cached as a dict
object for continued reference by the consuming application. The consuming application may get this data at anytime with the get_data()
method.
Updating the data
When instanciated, the ScreenLogicGateway
class object will perform an initial update of all available data to populate it's internal cache. A consuming application may request further updates of the internal data with the update()
method.
After update()
, The consuming application may then query the new data with get_data()
.
Note: This update consists of:
- Connecting and logging-on to the specified ScreenLogic gateway.
- Sending requests for
- Pool controller configuration
- Current pool status
- Detailed information for each configured pump
- Detailed pool chemistry information
- Closing the connection to the gateway.
Warning: This method is not rate-limited. The calling application is responsible for maintaining reasonable intervals between updates.
Pentair Screenlogic Software Download
Performing actions
The following actions can be performed with methods on the ScreenLogicGateway
object:
- Set a specific circuit to on or off
- Set a heating mode for a specific body of water (spa/pool)
- Set a target heating temperature for a specific body of water (spa/pool)
- Select various color-enabled lighting options
Each method will return True
if the operation reported no exceptions.Note: The methods do not confirm the requested action is now in effect on the pool controller.
Turning a circuit ON or OFF
A circuit can be requested to be turned on or off with the set_circuit()
method. set_circuit
takes two required arguments, circuitID
which is the id number of the circuit as an int
, and circuitState
which represents the desired new state of the circuit, as an int
. See Circuit State below.
Setting a heating mode
The desired heating mode can be set per body of water (pool or spa) with set_heat_mode()
. set_heat_mode
takes two required arguments, body
as an int
representing the body of water, and mode
as an int
of the desired heating mode.
Setting a target temperature
The target heating temperature can be set per body of water (pool or spa) with set_heat_temp()
. set_heat_temp
takes two required arguments, body
as an int
representing the body of water, and temp
as an int
of the desired target temperature.
Setting light colors or shows
Colors or color-shows can be set for compatible color-enable lighting with set_color_lights()
. set_color_lights
takes one required argument, light_command
as an int
representing the desired command/show/color
Screenlogicpy can also be used via the command line. The primary design is for the command line output to be consume/parsed by other applications and thus by default is not very human-readable. For more human-friendly output, specify the -v
option.
Basic usage
Without any arguments, screenlogicpy will attempt to discover a gateway on the LAN, and display a human readable 'dashboard' of the current state of their pool.
Argument usage
Optional arguments
-h, --help
Argparse help
command. Available at any stage of positional commands.
-v, --verbose
Tells screenlogicpy to be a little more verbose in it's output. Friendlier for humans.
-i, --ip
Specify the IP address of the ScreenLogic gateway to connect to. Note: If the IP address is not specified, screenlogicpy will attempt to discover ScreenLogic gateways on the local network, and connect to the first one that responds. This is generally fine if you only have one ScreenLogic gateway.
-p, --port
Specify the port of the ScreenLogic gateway to connect to. Needs to be used in conjunction with -i, --ip
option.
Positional arguments
discover
Attempts to discover ScreenLogic gateways on the local network via UDP broadcast. Returns [ip address]:[port]
of each discovered ScreenLogic gateway, one per line.
get
The get option is use with additional options to return the current state of the additional option specified.
get circuit, c
Returns 1 for on and 0 for off
get heat-mode, hm
Returns the current heating mode for the specified body of water.Note:[body]
can be an int
or string
representing the body of water.
get heat-temp, ht
Returns the current target heating temperature for the specified body of water.Note:[body]
can be an int
or string
representing the body of water.
get heat-state, hs
Returns the current state of the heater for the specified boty of water. The current state will match the heat mode when heating is active, otherwise will be 0 (off).Note:[body]
can be an int
or string
representing the body of water.
get current-temp, t
Returns the current temperature for the specified body of water. This is actually the last-known temperature from when that body of water was active (Pool or Spa)Note:[body]
can be an int
or string
representing the body of water.
get json, j
Returns a json dump of all data cached in the data dict
.
set
All set
commands work like their corresponding get
commands, but take an additional argument or arguments for the desired setting.
set circuit, c
Sets the specified circuit to the specified circuit state. Note:[circuit state]
can be an int
or string
representing the desired circuit state.
set heat-mode, hm
Sets the desired heating mode for the specified body of water.Note:[body]
can be an int
or string
representing the body of water. [heat mode]
can be an int
or string
representing the desired heat mode
set heat-temp, ht
Sets the desired target heating temperature for the specified body of water.Note:[body]
can be an int
or string
representing the body of water. [heat temp]
is an int
representing the desired target temperature.
v0.3.0+:
set color-lights, cl
Sets a color mode for all color-capable lights configured on the pool controller. Note:[color mode]
can be either the int
or string
representation of a color mode.
Circuit State
int | string | Name |
---|---|---|
0 | off | Off |
1 | on | On |
Body
int | string | Name |
---|---|---|
0 | pool | Pool |
1 | spa | Spa |
Heat Modes
int | string | Name | Description |
---|---|---|---|
0 | off | Off | Heating is off |
1 | solar | Solar | Heating will use solar heat to achieve the desired temperature set point. |
2 | solar_preferred | Solar Preferred | Heating will use solar if available to achieve the desired temperature set point, otherwise it will use the heater. |
3 | heater | Heater | Heating will use the heater to achieve the desired temperature set point. |
4 | dont_change | Don't Change | Don't change the heating mode based on circuit or function changes. |
Color Modes
int | string | Name | Description |
---|---|---|---|
0 | all_off | All Off | Turns all light circuits off. |
1 | all_on | All On | Turns all light circuits on to their last mode. |
2 | color_set | Color Set | Sets light circuits to their pre-set colors as set in the pool controller. |
3 | color_sync | Color Sync | Synchronize all IntelliBrite, SAm, SAL, or FIBERworks color changing lights and synchronize their colors. |
4 | color_swim | Color Swim | Cycles through white, magenta, blue and green colors. (Emulates Pentair SAm color changing light.) |
5 | party | Party | Rapid color changing building the energy and excitement. |
6 | romance | Romance | Slow color transitions creating a mesmerizing and calming effect. |
7 | caribbean | Caribbean | Transitions between a variety of blues and greens. |
8 | american | American | Patriotic red, white and blue transition. |
9 | sunset | Sunset | Dramatic transitions of orange, red and magenta tones. |
10 | royal | Royal | Richer, deeper, color tones. |
11 | save | Save Color | Save the exact colors that are being displayed. |
12 | recall | Recall Color | Recall the saved colors. |
13 | blue | Blue | Fixed color: Blue |
14 | green | Green | Fixed color: Green |
15 | red | Red | Fixed color: Red |
16 | white | White | Fixed color: White |
17 | magenta | Magenta | Fixed color: Magenta |
18 | thumper | Thumper | Toggles the solenoid thumper on MagicStream laminars. |
19 | next_mode | Next Mode | Cycle to the next color mode. |
20 | reset | Reset | Reset light modes. |
21 | hold | Hold | Hold light transitions. |
Acknowledgements
Based on https://github.com/keithpjolley/soipip
The protocol and codes are documented fairly well here: https://github.com/ceisenach/screenlogic_over_ip
Release historyRelease notifications | RSS feed
0.4.1
0.4.0
0.3.0
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size screenlogicpy-0.4.1-py3-none-any.whl (38.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes |
Filename, size screenlogicpy-0.4.1.tar.gz (37.6 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for screenlogicpy-0.4.1-py3-none-any.whl
Algorithm | Hash digest |
---|---|
SHA256 | ec22e266179c6aff09165e9bf5371682fdfc88e44d47c89985b530e5d6c326f4 |
MD5 | eaa8a26473da9cb23d96dc0af221ef8e |
BLAKE2-256 | 1881e432b6928e3ac59b9b46d14e9a215c2cb9938b8a5783a5d708179b675fcd |
Hashes for screenlogicpy-0.4.1.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | 1e3f804bc60ded9b66818e6c523e13990b29cde88a88bcfa7416e68e11828172 |
MD5 | ef3c66d5cc247294a20dddf3e90c2d8c |
BLAKE2-256 | 21bee50b8eff9cd164ca80aecb52661644c1c478b1fc4af1b44ad224d162473a |
Released:
Interface for Pentair ScreenLogic connected pool controllers over IP via Python
Project description
screenlogicpy
is an interface for Pentair ScreenLogic connected pool controllers over IP via python.
The screenlogicpy
package can be installed from PyPI using pip
.
The ScreenLogicGateway
class is the primary interface.
Gateway Discovery
The discovery
module's discover()
function can be used to get a list of all discovered ScreenLogic gateways on the local network. Each gateway is represented as a dict
object that can then be directly used to instanciate a ScreenLogicGateway
class.
Pentair Screenlogic Software
Querying data
The ScreenLogicGateway
class updates all data at once from the ScreenLogic gateway. That data is cached as a dict
object for continued reference by the consuming application. The consuming application may get this data at anytime with the get_data()
method.
Updating the data
When instanciated, the ScreenLogicGateway
class object will perform an initial update of all available data to populate it's internal cache. A consuming application may request further updates of the internal data with the update()
method.
After update()
, The consuming application may then query the new data with get_data()
.
Note: This update consists of:
- Connecting and logging-on to the specified ScreenLogic gateway.
- Sending requests for
- Pool controller configuration
- Current pool status
- Detailed information for each configured pump
- Detailed pool chemistry information
- Closing the connection to the gateway.
Warning: This method is not rate-limited. The calling application is responsible for maintaining reasonable intervals between updates.
Performing actions
The following actions can be performed with methods on the ScreenLogicGateway
object:
- Set a specific circuit to on or off
- Set a heating mode for a specific body of water (spa/pool)
- Set a target heating temperature for a specific body of water (spa/pool)
- Select various color-enabled lighting options
Each method will return True
if the operation reported no exceptions.Note: The methods do not confirm the requested action is now in effect on the pool controller.
Turning a circuit ON or OFF
A circuit can be requested to be turned on or off with the set_circuit()
method. set_circuit
takes two required arguments, circuitID
which is the id number of the circuit as an int
, and circuitState
which represents the desired new state of the circuit, as an int
. See Circuit State below.
Setting a heating mode
The desired heating mode can be set per body of water (pool or spa) with set_heat_mode()
. set_heat_mode
takes two required arguments, body
as an int
representing the body of water, and mode
as an int
of the desired heating mode.
Setting a target temperature
The target heating temperature can be set per body of water (pool or spa) with set_heat_temp()
. set_heat_temp
takes two required arguments, body
as an int
representing the body of water, and temp
as an int
of the desired target temperature.
Setting light colors or shows
Colors or color-shows can be set for compatible color-enable lighting with set_color_lights()
. set_color_lights
takes one required argument, light_command
as an int
representing the desired command/show/color
Screenlogicpy can also be used via the command line. The primary design is for the command line output to be consume/parsed by other applications and thus by default is not very human-readable. For more human-friendly output, specify the -v
option.
Basic usage
Without any arguments, screenlogicpy will attempt to discover a gateway on the LAN, and display a human readable 'dashboard' of the current state of their pool.
Argument usage
Optional arguments
-h, --help
Argparse help
command. Available at any stage of positional commands.
-v, --verbose
Tells screenlogicpy to be a little more verbose in it's output. Friendlier for humans.
-i, --ip
Specify the IP address of the ScreenLogic gateway to connect to. Note: If the IP address is not specified, screenlogicpy will attempt to discover ScreenLogic gateways on the local network, and connect to the first one that responds. This is generally fine if you only have one ScreenLogic gateway.
-p, --port
Pentair Screenlogic Download For Pc
Specify the port of the ScreenLogic gateway to connect to. Needs to be used in conjunction with -i, --ip
option.
Positional arguments
Pentair Pool Screenlogic Software
discover
Attempts to discover ScreenLogic gateways on the local network via UDP broadcast. Returns [ip address]:[port]
of each discovered ScreenLogic gateway, one per line.
get
The get option is use with additional options to return the current state of the additional option specified.
get circuit, c
Returns 1 for on and 0 for off
get heat-mode, hm
Returns the current heating mode for the specified body of water.Note:[body]
can be an int
or string
representing the body of water.
get heat-temp, ht
Returns the current target heating temperature for the specified body of water.Note:[body]
can be an int
or string
representing the body of water.
get heat-state, hs
Returns the current state of the heater for the specified boty of water. The current state will match the heat mode when heating is active, otherwise will be 0 (off).Note:[body]
can be an int
or string
representing the body of water.
get current-temp, t
Returns the current temperature for the specified body of water. This is actually the last-known temperature from when that body of water was active (Pool or Spa)Note:[body]
can be an int
or string
representing the body of water.
get json, j
Returns a json dump of all data cached in the data dict
.
set
All set
commands work like their corresponding get
commands, but take an additional argument or arguments for the desired setting.
set circuit, c
Sets the specified circuit to the specified circuit state. Note:[circuit state]
can be an int
or string
representing the desired circuit state.
set heat-mode, hm
Sets the desired heating mode for the specified body of water.Note:[body]
can be an int
or string
representing the body of water. [heat mode]
can be an int
or string
representing the desired heat mode
set heat-temp, ht
Sets the desired target heating temperature for the specified body of water.Note:[body]
can be an int
or string
representing the body of water. [heat temp]
is an int
representing the desired target temperature.
v0.3.0+:
set color-lights, cl
Sets a color mode for all color-capable lights configured on the pool controller. Note:[color mode]
can be either the int
or string
representation of a color mode.
Circuit State
int | string | Name |
---|---|---|
0 | off | Off |
1 | on | On |
Body
int | string | Name |
---|---|---|
0 | pool | Pool |
1 | spa | Spa |
Heat Modes
int | string | Name | Description |
---|---|---|---|
0 | off | Off | Heating is off |
1 | solar | Solar | Heating will use solar heat to achieve the desired temperature set point. |
2 | solar_preferred | Solar Preferred | Heating will use solar if available to achieve the desired temperature set point, otherwise it will use the heater. |
3 | heater | Heater | Heating will use the heater to achieve the desired temperature set point. |
4 | dont_change | Don't Change | Don't change the heating mode based on circuit or function changes. |
Pentair Screenlogic Software Update
Color Modes
int | string | Name | Description |
---|---|---|---|
0 | all_off | All Off | Turns all light circuits off. |
1 | all_on | All On | Turns all light circuits on to their last mode. |
2 | color_set | Color Set | Sets light circuits to their pre-set colors as set in the pool controller. |
3 | color_sync | Color Sync | Synchronize all IntelliBrite, SAm, SAL, or FIBERworks color changing lights and synchronize their colors. |
4 | color_swim | Color Swim | Cycles through white, magenta, blue and green colors. (Emulates Pentair SAm color changing light.) |
5 | party | Party | Rapid color changing building the energy and excitement. |
6 | romance | Romance | Slow color transitions creating a mesmerizing and calming effect. |
7 | caribbean | Caribbean | Transitions between a variety of blues and greens. |
8 | american | American | Patriotic red, white and blue transition. |
9 | sunset | Sunset | Dramatic transitions of orange, red and magenta tones. |
10 | royal | Royal | Richer, deeper, color tones. |
11 | save | Save Color | Save the exact colors that are being displayed. |
12 | recall | Recall Color | Recall the saved colors. |
13 | blue | Blue | Fixed color: Blue |
14 | green | Green | Fixed color: Green |
15 | red | Red | Fixed color: Red |
16 | white | White | Fixed color: White |
17 | magenta | Magenta | Fixed color: Magenta |
18 | thumper | Thumper | Toggles the solenoid thumper on MagicStream laminars. |
19 | next_mode | Next Mode | Cycle to the next color mode. |
20 | reset | Reset | Reset light modes. |
21 | hold | Hold | Hold light transitions. |
Acknowledgements
Based on https://github.com/keithpjolley/soipip
The protocol and codes are documented fairly well here: https://github.com/ceisenach/screenlogic_over_ip
Release historyRelease notifications | RSS feed
0.4.1
0.4.0
0.3.0
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size screenlogicpy-0.4.1-py3-none-any.whl (38.5 kB) | File type Wheel | Python version py3 | Upload date | Hashes |
Filename, size screenlogicpy-0.4.1.tar.gz (37.6 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for screenlogicpy-0.4.1-py3-none-any.whl
Algorithm | Hash digest |
---|---|
SHA256 | ec22e266179c6aff09165e9bf5371682fdfc88e44d47c89985b530e5d6c326f4 |
MD5 | eaa8a26473da9cb23d96dc0af221ef8e |
BLAKE2-256 | 1881e432b6928e3ac59b9b46d14e9a215c2cb9938b8a5783a5d708179b675fcd |
Hashes for screenlogicpy-0.4.1.tar.gz
Algorithm | Hash digest |
---|---|
SHA256 | 1e3f804bc60ded9b66818e6c523e13990b29cde88a88bcfa7416e68e11828172 |
MD5 | ef3c66d5cc247294a20dddf3e90c2d8c |
BLAKE2-256 | 21bee50b8eff9cd164ca80aecb52661644c1c478b1fc4af1b44ad224d162473a |