Replies: 39 comments 64 replies
-
|
If you are referring to Intellicenter, no. I see they have released 3.004 which means they completely scrapped 2.x. I can pretty much guarantee that there would need to be some upgrades to njsPC before it works with 3.x FW. |
Beta Was this translation helpful? Give feedback.
-
|
Can you both send me a packet capture? I have some specific instructions which might help me out. Phase 1 - Existing config
Phase 2 - New config
I am thinking about ways to have an app that will interactively capture the packets, but I'd like to start with seeing what the v3 firmware has in store. |
Beta Was this translation helpful? Give feedback.
-
|
I won’t be able to do this until Pentair gets me the replacement motherboard/main circuit board. All my RS-485 comm ports went down after the last storm and they are replacing it under warranty. |
Beta Was this translation helpful? Give feedback.
-
|
I will work on this tomorrow morning. Thanks for the continuing support for a great product! --John Taylor
From: tagyoureit ***@***.***>
Sent: Tuesday, November 25, 2025 3:26 PM
To: tagyoureit/nodejs-poolController ***@***.***>
Cc: jwtaylor310 ***@***.***>; Comment ***@***.***>
Subject: Re: [tagyoureit/nodejs-poolController] IntelliCenter FW 3.004 Compatible? (Discussion #1090)
Nope! Nothing has been done yet. A packet capture would be extremely helpful. If you have a valid set of pool*.json files (or complete packet capture zip) with your current hardware (even if it was from the Easytouch, but preferably from a working v1.064 Intellicenter firmware), that would be very useful. I put together the following directions and if you have time to test on v3.004 I'll see what it looks like.
Step 1: Start Capture with Configuration Reload
1. Open dashPanel in your web browser
2. Navigate to Settings → Logging tab
3. Under the Packets section:
* Enable "Capture Replay" checkbox
* Check "Capture Configuration Reload" option
4. Click "Begin Capture" button
✅ This automatically:
* Backs up your existing configuration
* Enables packet capture mode
* Reloads configuration from scratch
* Starts capturing from system initialization
The capture is now recording everything!
Step 2: Trigger Configuration Reload on IntelliCenter Panel
Important: The app likely won't allow operations while in capture mode. Use the physical IntelliCenter panel instead.
On Your Physical IntelliCenter Panel:
1. Press Settings (gear icon)
2. Navigate to General
3. Select System Reboot
This will cause the system to reinitialize and send all configuration messages including any specific start up sequences.
Wait for Initialization
Wait 60-90 seconds for the system to fully reinitialize. You should see:
* Panel goes through boot sequence
* Equipment may appear in dashPanel (circuits, pumps, etc.)
* All devices come online
Step 3: Test Core Features
Important: Perform these operations on the physical IntelliCenter panel, not through the app. The app may have limited functionality while nodejs-poolController is connected.
Perform each operation that applies to your system. Go slowly - wait a few seconds between operations to make the captures cleaner.
3.1 Circuit Operations (Use Panel)
* [ ] Press a circuit button to turn it ON (any circuit - pool, spa, light, etc.)
* [ ] Wait 5 seconds
* [ ] Press the same circuit button to turn it OFF
* [ ] Repeat for 2-3 different circuit types if you have them
3.2 Feature Operations (Use Panel - if you have features configured)
* [ ] Turn ON a feature
* [ ] Wait 5 seconds
* [ ] Turn OFF the feature
3.3 Light Operations (Use Panel - if you have lights)
* [ ] Turn ON a light circuit
* [ ] Change the light theme/color (if applicable)
* Navigate to the light circuit settings
* Select a different color/theme
* [ ] Turn OFF the light
3.4 Light Group Operations (Use Panel - if configured)
* [ ] Turn ON a light group
* [ ] Try a light group command (sync/set/swim) if available
* Navigate to light group options
* Select the command
* [ ] Turn OFF the light group
3.5 Pump Operations (if you have variable speed pumps)
* [ ] Note the current pump speed (visible on panel)
* [ ] Turn on a circuit that affects pump speed
* [ ] Observe the speed change on the panel
* [ ] Turn off the circuit
3.6 Heater Operations (Use Panel)
* [ ] Note current heat mode on panel (Off/Heater/Solar/etc.)
* [ ] Navigate to heat settings
* [ ] Change the heat mode
* [ ] Wait 5 seconds
* [ ] Change it back to original mode
3.7 Temperature Setpoints (Use Panel)
* [ ] Navigate to temperature settings
* [ ] Change pool heat setpoint (increase by 1°)
* [ ] Wait 5 seconds
* [ ] Change it back
* [ ] If you have a spa: Change spa heat setpoint
* [ ] If you have cooling: Try changing cool setpoint
3.8 Chlorinator Operations (Use Panel - if installed)
* [ ] Navigate to chlorinator settings on panel
* [ ] Note current chlorinator setpoint
* [ ] Change the pool setpoint
* [ ] Wait 5 seconds
* [ ] Try the "Super Chlorinate" feature if available (NEW in v3!)
* Look for a "Super Chlorinate" button or option
* Enable it, wait a few seconds, then disable it
3.9 IntelliChem Operations (Use Panel - if installed)
* [ ] Navigate to IntelliChem settings on panel
* [ ] View current pH/ORP setpoints
* [ ] Change pH setpoint (if comfortable doing so - this affects pool chemistry!)
* [ ] Wait 5 seconds
* [ ] Change it back
3.10 Schedule Operations (Use Panel - optional, only if comfortable)
* [ ] Navigate to Schedules menu
* [ ] View your existing schedules
* [ ] If you're comfortable: Create a simple test schedule
* Set it for a time in the future
* Pick a circuit
* Set start/end times
* [ ] Save it
* [ ] View it in the schedules list
* [ ] Delete the test schedule
3.11 Body Switching (Use Panel - if you have pool AND spa)
* [ ] Press the "Pool/Spa" or "Mode" button to switch from Pool to Spa (or vice versa)
* [ ] Wait 10 seconds for valves to actuate
* [ ] Switch back
Step 4: Optional - New v3 Features
Only test these if you have the hardware. Use the physical panel for all operations.
4.1 Covers (if you have automated covers)
* [ ] Navigate to cover controls on panel
* [ ] Open cover
* [ ] Wait 5 seconds
* [ ] Close cover
4.2 Remotes (if you use spa-side remotes)
* [ ] Try pressing buttons on your remote (iS4, iS10, QuickTouch, SpaCommand)
* [ ] Note if any "special" functions work differently than before
* [ ] Make a note of any buttons that control unusual features
Step 5: Stop Capture
1. Return to dashPanel → Settings → Logging tab
2. Click "Stop Capture" or the capture will stop automatically
3. The capture file is automatically saved in your nodejs-poolController directory
Step 6: Provide Information
Upload the Packet capture file (automatically downloaded after step 5)
Additional Information
If you don't have a v1.064 packet capture, please list the following. Otherwise, if you have the specific model/part number for the board that would be very helpful.
2. Hardware configuration - List what you have installed:
Example:
- Controller: i10PS
- Bodies: Pool and Spa (shared)
- Circuits: 8 circuits (list types: lights, pumps, etc.)
- Pumps: 1 x IntelliFlo VS
- Heater: Gas heater
- Chlorinator: IntelliChlor
- IntelliChem: No
- Covers: No
—
Reply to this email directly, view it on GitHub <#1090 (reply in thread)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AHSGXKWLWUJIQ33AXOPYJZD36S3OVAVCNFSM6AAAAAB6FYYPYGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKMBXHEZDINQ> .
You are receiving this because you commented. <https://github.com/notifications/beacon/AHSGXKW4RQO5I5CDVU5AEND36S3OVA5CNFSM6AAAAAB6FYYPYGWGG33NNVSW45C7OR4XAZNRIRUXGY3VONZWS33OINXW23LFNZ2KUY3PNVWWK3TUL5UWJTQA4YLU4.gif> Message ID: ***@***.*** ***@***.***> >
|
Beta Was this translation helpful? Give feedback.
-
|
I have run the requested packet captures. I first rolled back the firmware to V1.064 and restarted everything. While running the packet capture, I had trouble with the njsPC hanging and not completing the configuration reload. I am submitting two captures of which the second is the most likely to be complete. They are named V1.064_replay(1).zip and V1.064_replay(2).zip. I then switched to V3.004 and reset everything. V3.004_replay(1).zip contains the capture of the restart and configuration reload. V3.004_replay(2).zip contains the capture while activating/deactivating the various features. I have attached a PDF which lists the order in which I activated/deactivated the various features. The first section lists entries made using the outdoor control panel. The second section lists a few commands which were repeated using the Intellicenter Wireless Remote Control. Hardware Configuration:
Let me know if there is anything else I can provide. I hope you enjoy Thanksgiving and aren't bothered with a bunch of support requests! Commands Captured toV3.004_replay(2).pdf |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for addressing this issue so quickly!
I did a “git pull” to update. When I start the PoolController manually it runs and communicates with the IntelliCenter controller but the Dashboard doesn’t update. When I try to click on the “hamburger” icon to open the system menu it does not respond.
I had trouble updating node.js to the current version so it is possible that I have a corrupted copy of it. This evening I will try building a new system from scratch and see if that helps.
In the meantime, I have redirected the messages generated by PoolController during a startup/.shutdown sequence to a file and have attached that for your reference.
From: tagyoureit ***@***.***>
Sent: Monday, December 1, 2025 1:06 AM
To: tagyoureit/nodejs-poolController ***@***.***>
Cc: jwtaylor310 ***@***.***>; Comment ***@***.***>
Subject: Re: [tagyoureit/nodejs-poolController] IntelliCenter FW 3.004 Compatible? (Discussion #1090)
I just pushed an update that will recognize the v3.004 firmware. There still may be some/many issues that need to be resolved after that but at least it won't think it's an Intellitouch. Can you retest and send a new packet capture if things are off? Thx.
—
Reply to this email directly, view it on GitHub <#1090 (reply in thread)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AHSGXKWDD2QE2VAPPYFX2SL37PLC7AVCNFSM6AAAAAB6FYYPYGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKMJSGA3DSMQ> .
You are receiving this because you commented. <https://github.com/notifications/beacon/AHSGXKXEYOP4AJANLZCLEXL37PLC7A5CNFSM6AAAAAB6FYYPYGWGG33NNVSW45C7OR4XAZNRIRUXGY3VONZWS33OINXW23LFNZ2KUY3PNVWWK3TUL5UWJTQA424TI.gif> Message ID: ***@***.*** ***@***.***> >
***@***.*** start:cached
node dist/app.js
Init state for Pool Controller
[12/2/2025, 11:13:00 AM] [32minfo[39m: The current git branch output is master
[12/2/2025, 11:13:00 AM] [32minfo[39m: The current git commit output is 67a8104
[12/2/2025, 11:13:00 AM] [32minfo[39m: Starting up SSDP server
[12/2/2025, 11:13:00 AM] [32minfo[39m: Server is now listening on 0.0.0.0:4200 - 192.168.80.85:4200
[12/2/2025, 11:13:00 AM] [32minfo[39m: Net connect (socat) 0 connected to: 172.16.31.241:8899
[12/2/2025, 11:13:00 AM] [32minfo[39m: Net connect (socat) Connection 0 connected
[12/2/2025, 11:13:00 AM] [32minfo[39m: Net connect (socat) 0 ready and communicating: 172.16.31.241:8899
[12/2/2025, 11:13:00 AM] [32minfo[39m: Checking njsPC versions...
[12/2/2025, 11:13:00 AM] [32minfo[39m: Starting Pool System intellicenter
[12/2/2025, 11:13:01 AM] [32minfo[39m: Auto-backup initialized Last Backup: 2025-11-27T07:17:48.950-0500 Next Backup: 2025-12-27T07:17:48.950-0500
[12/2/2025, 11:13:01 AM] [32minfo[39m: {"port":0,"id":1,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,90,253,174,3,198,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,0,0],[7,175]],"ts": "2025-12-02T11:13:01.907-0500"}
[12/2/2025, 11:13:03 AM] [32minfo[39m: Found Controller Board IntelliCenter i5P, awaiting installed modules.
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:13:03 AM] [32minfo[39m: {"port":0,"id":2,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,98,24,229,0,0,0,0,2,3,2],[4,33]],"ts": "2025-12-02T11:13:03.878-0500"}
INTELLICENTER MODULES DETECTED, REQUESTING STATUS!
[12/2/2025, 11:13:07 AM] [32minfo[39m: Initializing Nixie Controller
Checking IntelliCenter configuration...
[12/2/2025, 11:13:07 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 4, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:07 AM] [32minfo[39m: {"port":0,"id":3,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,122,253,174,3,200,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,4,0],[7,213]],"ts": "2025-12-02T11:13:07.026-0500"}
[12/2/2025, 11:13:07 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:07.064-0500"}
[12/2/2025, 11:13:07 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 5
[12/2/2025, 11:13:07 AM] [32minfo[39m: Nixie Controller Initialized
[12/2/2025, 11:13:07 AM] [32minfo[39m: {"port":0,"id":5,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,18,8,152,31,15,0,0,0,0,0,0],[2,26]],"ts": "2025-12-02T11:13:07.083-0500"}
[12/2/2025, 11:13:07 AM] [32minfo[39m: {"port":0,"id":6,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,98,24,229,0,0,0,0,6,3,2],[4,38]],"ts": "2025-12-02T11:13:07.876-0500"}
[12/2/2025, 11:13:08 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:08.081-0500"}
[12/2/2025, 11:13:08 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 4
[12/2/2025, 11:13:09 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:09.089-0500"}
[12/2/2025, 11:13:09 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 3
[12/2/2025, 11:13:09 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 8, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:09 AM] [32minfo[39m: {"port":0,"id":7,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,154,253,174,3,202,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,8,0],[7,251]],"ts": "2025-12-02T11:13:09.889-0500"}
[12/2/2025, 11:13:10 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:10.094-0500"}
[12/2/2025, 11:13:10 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 2
[12/2/2025, 11:13:10 AM] [32minfo[39m: New socket client connected XPi8ZPDtWclrLPyuAAAB -- 192.168.80.55
[12/2/2025, 11:13:10 AM] [32minfo[39m: [11:13:10 AM] 192.168.80.55 GET /state/all?null {}
[12/2/2025, 11:13:11 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:11.140-0500"}
[12/2/2025, 11:13:11 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 1
[12/2/2025, 11:13:11 AM] [32minfo[39m: {"port":0,"id":8,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,98,24,229,0,0,0,0,10,3,2],[4,42]],"ts": "2025-12-02T11:13:11.874-0500"}
[12/2/2025, 11:13:12 AM] [32minfo[39m: {"port":0,"id":4,"valid":true,"dir":"out","proto":"broadcast","pkt":[[],[255,0,255], [165,1,15,33,228,1], [0],[1,187]],"ts":"2025-12-02T11:13:12.179-0500"}
[12/2/2025, 11:13:12 AM] [36mverbose[39m: Wrote packet [Port 0 id: 4] [255,0,255,165,1,15,33,228,1,0,1,187].Retries remaining: 0
[12/2/2025, 11:13:12 AM] [32minfo[39m: {"port":0,"id":9,"valid":true,"dir":"in","proto":"chlorinator","pkt":[[],[],[16,2,0,18],[58,128],[222,16,3]],"ts": "2025-12-02T11:13:12.869-0500"}
[12/2/2025, 11:13:13 AM] [33mwarn[39m: Message aborted after 6 attempt(s): 165,1,15,33,228,1,0,1,187
[12/2/2025, 11:13:13 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 12, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:13 AM] [32minfo[39m: {"port":0,"id":10,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,186,253,174,3,204,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,12,0],[8,33]],"ts": "2025-12-02T11:13:13.887-0500"}
[12/2/2025, 11:13:15 AM] [32minfo[39m: {"port":0,"id":11,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,98,24,229,0,0,0,0,14,3,2],[4,46]],"ts": "2025-12-02T11:13:15.872-0500"}
[12/2/2025, 11:13:17 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 16, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:17 AM] [32minfo[39m: {"port":0,"id":12,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,218,253,174,3,206,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,16,0],[8,71]],"ts": "2025-12-02T11:13:17.886-0500"}
[12/2/2025, 11:13:20 AM] [32minfo[39m: {"port":0,"id":13,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:13:20.052-0500"}
[12/2/2025, 11:13:20 AM] [32minfo[39m: {"port":0,"id":14,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:13:20.054-0500"}
[12/2/2025, 11:13:20 AM] [32minfo[39m: {"port":0,"id":15,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,229,0,0,0,0,18,3,2],[4,49]],"ts": "2025-12-02T11:13:20.058-0500"}
[12/2/2025, 11:13:21 AM] [32minfo[39m: Last auto-backup 2025-11-27T07:17:48.950-0500 Next auto - backup 2025-12-27T07:17:48.950-0500
[12/2/2025, 11:13:21 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 20, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:21 AM] [32minfo[39m: {"port":0,"id":16,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[60,250,253,174,3,208,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,20,0],[8,109]],"ts": "2025-12-02T11:13:21.886-0500"}
[12/2/2025, 11:13:22 AM] [32minfo[39m: {"port":0,"id":17,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,26,8,152,28,15,0,0,0,0,0,0],[2,31]],"ts": "2025-12-02T11:13:22.104-0500"}
[12/2/2025, 11:13:23 AM] [32minfo[39m: {"port":0,"id":18,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,230,0,0,0,0,22,3,2],[4,54]],"ts": "2025-12-02T11:13:23.884-0500"}
[12/2/2025, 11:13:25 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 24, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:25 AM] [32minfo[39m: {"port":0,"id":19,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,26,253,174,3,210,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,24,0],[7,148]],"ts": "2025-12-02T11:13:25.886-0500"}
[12/2/2025, 11:13:27 AM] [32minfo[39m: {"port":0,"id":20,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,230,0,0,0,0,26,3,2],[4,58]],"ts": "2025-12-02T11:13:27.877-0500"}
[12/2/2025, 11:13:29 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 28, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:29 AM] [32minfo[39m: {"port":0,"id":21,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,58,253,174,3,212,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,28,0],[7,186]],"ts": "2025-12-02T11:13:29.887-0500"}
[12/2/2025, 11:13:31 AM] [32minfo[39m: {"port":0,"id":22,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,229,0,0,0,0,30,3,2],[4,60]],"ts": "2025-12-02T11:13:31.872-0500"}
[12/2/2025, 11:13:33 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 32, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:33 AM] [32minfo[39m: {"port":0,"id":23,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,90,253,174,3,214,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,32,0],[7,224]],"ts": "2025-12-02T11:13:33.885-0500"}
[12/2/2025, 11:13:35 AM] [32minfo[39m: {"port":0,"id":24,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,230,0,0,0,0,34,3,2],[4,65]],"ts": "2025-12-02T11:13:35.877-0500"}
[12/2/2025, 11:13:37 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 36, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:37 AM] [32minfo[39m: {"port":0,"id":25,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,122,253,174,3,216,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,36,0],[8,6]],"ts": "2025-12-02T11:13:37.886-0500"}
[12/2/2025, 11:13:38 AM] [32minfo[39m: {"port":0,"id":26,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,17,8,152,30,15,0,0,0,0,0,0],[2,24]],"ts": "2025-12-02T11:13:38.104-0500"}
[12/2/2025, 11:13:39 AM] [32minfo[39m: [11:13:39 AM] 192.168.80.55 GET /state/all?null {}
[12/2/2025, 11:13:39 AM] [32minfo[39m: New socket client connected y82BUk6Qm8YdPyL7AAAD -- 192.168.80.55
[12/2/2025, 11:13:39 AM] [32minfo[39m: [11:13:39 AM] 192.168.80.55 GET /state/all?null {}
[12/2/2025, 11:13:39 AM] [32minfo[39m: {"port":0,"id":27,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,229,0,0,0,0,38,3,2],[4,68]],"ts": "2025-12-02T11:13:39.885-0500"}
[12/2/2025, 11:13:41 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 40, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:41 AM] [32minfo[39m: {"port":0,"id":28,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,154,253,174,3,218,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,40,0],[8,44]],"ts": "2025-12-02T11:13:41.891-0500"}
[12/2/2025, 11:13:43 AM] [32minfo[39m: {"port":0,"id":29,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,229,0,0,0,0,42,3,2],[4,73]],"ts": "2025-12-02T11:13:43.872-0500"}
[12/2/2025, 11:13:45 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 44, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:45 AM] [32minfo[39m: {"port":0,"id":30,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,186,253,174,3,220,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,44,0],[8,82]],"ts": "2025-12-02T11:13:45.886-0500"}
[12/2/2025, 11:13:47 AM] [32minfo[39m: {"port":0,"id":31,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,228,0,0,0,0,46,3,2],[4,76]],"ts": "2025-12-02T11:13:47.872-0500"}
[12/2/2025, 11:13:50 AM] [32minfo[39m: {"port":0,"id":32,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:13:50.049-0500"}
[12/2/2025, 11:13:50 AM] [32minfo[39m: {"port":0,"id":33,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:13:50.053-0500"}
[12/2/2025, 11:13:50 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 48, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:50 AM] [32minfo[39m: {"port":0,"id":34,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,218,253,174,3,222,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,48,0],[8,120]],"ts": "2025-12-02T11:13:50.056-0500"}
[12/2/2025, 11:13:51 AM] [32minfo[39m: {"port":0,"id":35,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,228,0,0,0,0,50,3,2],[4,79]],"ts": "2025-12-02T11:13:51.870-0500"}
[12/2/2025, 11:13:53 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 52, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:53 AM] [32minfo[39m: {"port":0,"id":36,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[61,250,253,174,3,224,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,52,0],[8,158]],"ts": "2025-12-02T11:13:53.888-0500"}
[12/2/2025, 11:13:54 AM] [32minfo[39m: {"port":0,"id":37,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,18,8,152,32,15,0,0,0,0,0,0],[2,27]],"ts": "2025-12-02T11:13:54.104-0500"}
[12/2/2025, 11:13:55 AM] [32minfo[39m: {"port":0,"id":38,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,228,0,0,0,0,54,3,2],[4,83]],"ts": "2025-12-02T11:13:55.877-0500"}
[12/2/2025, 11:13:57 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 13, 56, 0] (HH:MM:SS:?))
[12/2/2025, 11:13:57 AM] [32minfo[39m: {"port":0,"id":39,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,26,253,174,3,226,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,13,56,0],[7,197]],"ts": "2025-12-02T11:13:57.884-0500"}
[12/2/2025, 11:13:59 AM] [32minfo[39m: {"port":0,"id":40,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,13,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,229,0,0,0,0,58,3,2],[4,89]],"ts": "2025-12-02T11:13:59.874-0500"}
[12/2/2025, 11:14:01 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 0, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:01 AM] [32minfo[39m: {"port":0,"id":41,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,58,253,174,3,228,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,0,0],[7,176]],"ts": "2025-12-02T11:14:01.903-0500"}
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:14:03 AM] [32minfo[39m: {"port":0,"id":42,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,97,24,229,0,0,0,0,2,3,2],[4,34]],"ts": "2025-12-02T11:14:03.872-0500"}
[12/2/2025, 11:14:07 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 4, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:07 AM] [32minfo[39m: {"port":0,"id":43,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,90,253,174,3,230,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,4,0],[7,214]],"ts": "2025-12-02T11:14:07.030-0500"}
[12/2/2025, 11:14:07 AM] [32minfo[39m: {"port":0,"id":44,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,97,24,229,0,0,0,0,6,3,2],[4,37]],"ts": "2025-12-02T11:14:07.871-0500"}
[12/2/2025, 11:14:09 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 8, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:09 AM] [32minfo[39m: {"port":0,"id":45,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,122,253,174,3,232,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,8,0],[7,252]],"ts": "2025-12-02T11:14:09.884-0500"}
[12/2/2025, 11:14:10 AM] [32minfo[39m: {"port":0,"id":46,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,30,8,152,31,15,0,0,0,0,0,0],[2,38]],"ts": "2025-12-02T11:14:10.103-0500"}
[12/2/2025, 11:14:11 AM] [32minfo[39m: {"port":0,"id":47,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,10,3,2],[4,40]],"ts": "2025-12-02T11:14:11.875-0500"}
[12/2/2025, 11:14:12 AM] [32minfo[39m: {"port":0,"id":48,"valid":true,"dir":"in","proto":"chlorinator","pkt":[[],[],[16,2,0,18],[58,128],[222,16,3]],"ts": "2025-12-02T11:14:12.883-0500"}
[12/2/2025, 11:14:13 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 12, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:13 AM] [32minfo[39m: {"port":0,"id":49,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,154,253,174,3,234,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,12,0],[8,34]],"ts": "2025-12-02T11:14:13.885-0500"}
[12/2/2025, 11:14:15 AM] [32minfo[39m: {"port":0,"id":50,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,230,0,0,0,0,14,3,2],[4,45]],"ts": "2025-12-02T11:14:15.872-0500"}
[12/2/2025, 11:14:17 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 16, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:17 AM] [32minfo[39m: {"port":0,"id":51,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,186,253,174,3,236,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,16,0],[8,72]],"ts": "2025-12-02T11:14:17.886-0500"}
[12/2/2025, 11:14:20 AM] [32minfo[39m: {"port":0,"id":52,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:14:20.051-0500"}
[12/2/2025, 11:14:20 AM] [32minfo[39m: {"port":0,"id":53,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:14:20.052-0500"}
[12/2/2025, 11:14:20 AM] [32minfo[39m: {"port":0,"id":54,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,96,24,228,0,0,0,0,18,3,2],[4,48]],"ts": "2025-12-02T11:14:20.054-0500"}
[12/2/2025, 11:14:21 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 20, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:21 AM] [32minfo[39m: {"port":0,"id":55,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,218,253,174,3,238,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,20,0],[8,110]],"ts": "2025-12-02T11:14:21.883-0500"}
[12/2/2025, 11:14:23 AM] [32minfo[39m: {"port":0,"id":56,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,22,3,2],[4,52]],"ts": "2025-12-02T11:14:23.873-0500"}
[12/2/2025, 11:14:25 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 24, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:25 AM] [32minfo[39m: {"port":0,"id":57,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[62,250,253,174,3,240,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,24,0],[8,148]],"ts": "2025-12-02T11:14:25.885-0500"}
[12/2/2025, 11:14:26 AM] [32minfo[39m: {"port":0,"id":58,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,23,8,152,32,15,0,0,0,0,0,0],[2,32]],"ts": "2025-12-02T11:14:26.103-0500"}
[12/2/2025, 11:14:27 AM] [32minfo[39m: {"port":0,"id":59,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,26,3,2],[4,56]],"ts": "2025-12-02T11:14:27.872-0500"}
[12/2/2025, 11:14:29 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 28, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:29 AM] [32minfo[39m: {"port":0,"id":60,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,26,253,174,3,242,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,28,0],[7,187]],"ts": "2025-12-02T11:14:29.886-0500"}
[12/2/2025, 11:14:31 AM] [32minfo[39m: {"port":0,"id":61,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,30,3,2],[4,60]],"ts": "2025-12-02T11:14:31.876-0500"}
[12/2/2025, 11:14:32 AM] [32minfo[39m: [11:14:32 AM] 192.168.80.55 GET /state/appVersion?null {}
[12/2/2025, 11:14:32 AM] [32minfo[39m: [11:14:32 AM] 192.168.80.55 GET /app/config/log {}
[12/2/2025, 11:14:32 AM] [32minfo[39m: [11:14:32 AM] 192.168.80.55 GET /config/all?null {}
[12/2/2025, 11:14:32 AM] [32minfo[39m: [11:14:32 AM] 192.168.80.55 GET /app/config/options/backup?null {}
[12/2/2025, 11:14:35 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 32, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:35 AM] [32minfo[39m: {"port":0,"id":62,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,58,253,174,3,244,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,32,0],[7,225]],"ts": "2025-12-02T11:14:35.106-0500"}
[12/2/2025, 11:14:35 AM] [32minfo[39m: {"port":0,"id":63,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,34,3,2],[4,64]],"ts": "2025-12-02T11:14:35.874-0500"}
[12/2/2025, 11:14:37 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 36, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:37 AM] [32minfo[39m: {"port":0,"id":64,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,90,253,174,3,246,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,36,0],[8,7]],"ts": "2025-12-02T11:14:37.885-0500"}
[12/2/2025, 11:14:39 AM] [32minfo[39m: {"port":0,"id":65,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,230,0,0,0,0,38,3,2],[4,69]],"ts": "2025-12-02T11:14:39.878-0500"}
[12/2/2025, 11:14:41 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 40, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:41 AM] [32minfo[39m: {"port":0,"id":66,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,122,253,174,3,248,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,40,0],[8,45]],"ts": "2025-12-02T11:14:41.889-0500"}
[12/2/2025, 11:14:42 AM] [32minfo[39m: {"port":0,"id":67,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,12,8,152,31,15,0,0,0,0,0,0],[2,20]],"ts": "2025-12-02T11:14:42.106-0500"}
[12/2/2025, 11:14:43 AM] [32minfo[39m: {"port":0,"id":68,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,42,3,2],[4,72]],"ts": "2025-12-02T11:14:43.871-0500"}
[12/2/2025, 11:14:45 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 44, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:45 AM] [32minfo[39m: {"port":0,"id":69,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,154,253,174,3,250,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,44,0],[8,83]],"ts": "2025-12-02T11:14:45.888-0500"}
[12/2/2025, 11:14:47 AM] [32minfo[39m: {"port":0,"id":70,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,46,3,2],[4,76]],"ts": "2025-12-02T11:14:47.877-0500"}
[12/2/2025, 11:14:50 AM] [32minfo[39m: {"port":0,"id":71,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:14:50.261-0500"}
[12/2/2025, 11:14:50 AM] [32minfo[39m: {"port":0,"id":72,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:14:50.263-0500"}
[12/2/2025, 11:14:50 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 48, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:50 AM] [32minfo[39m: {"port":0,"id":73,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,186,253,174,3,252,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,48,0],[8,121]],"ts": "2025-12-02T11:14:50.265-0500"}
[12/2/2025, 11:14:51 AM] [32minfo[39m: {"port":0,"id":74,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,230,0,0,0,0,50,3,2],[4,81]],"ts": "2025-12-02T11:14:51.872-0500"}
[12/2/2025, 11:14:53 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 52, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:53 AM] [32minfo[39m: {"port":0,"id":75,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,218,253,174,3,254,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,52,0],[8,159]],"ts": "2025-12-02T11:14:53.897-0500"}
[12/2/2025, 11:14:55 AM] [32minfo[39m: {"port":0,"id":76,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,54,3,2],[4,84]],"ts": "2025-12-02T11:14:55.873-0500"}
[12/2/2025, 11:14:57 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 14, 56, 0] (HH:MM:SS:?))
[12/2/2025, 11:14:57 AM] [32minfo[39m: {"port":0,"id":77,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[63,250,253,174,4,0,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,14,56,0],[7,198]],"ts": "2025-12-02T11:14:57.886-0500"}
[12/2/2025, 11:14:58 AM] [32minfo[39m: {"port":0,"id":78,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,21,8,152,30,15,0,0,0,0,0,0],[2,28]],"ts": "2025-12-02T11:14:58.102-0500"}
[12/2/2025, 11:14:59 AM] [32minfo[39m: {"port":0,"id":79,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,14,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,58,3,2],[4,88]],"ts": "2025-12-02T11:14:59.873-0500"}
[12/2/2025, 11:15:01 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 0, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:01 AM] [32minfo[39m: {"port":0,"id":80,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,26,253,174,4,2,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,0,0],[6,178]],"ts": "2025-12-02T11:15:01.904-0500"}
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:15:03 AM] [32minfo[39m: {"port":0,"id":81,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,230,0,0,0,0,2,3,2],[4,34]],"ts": "2025-12-02T11:15:03.871-0500"}
[12/2/2025, 11:15:08 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 4, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:08 AM] [32minfo[39m: {"port":0,"id":82,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,58,253,174,4,4,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,4,0],[6,216]],"ts": "2025-12-02T11:15:08.081-0500"}
[12/2/2025, 11:15:08 AM] [32minfo[39m: {"port":0,"id":83,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,6,3,2],[4,37]],"ts": "2025-12-02T11:15:08.084-0500"}
[12/2/2025, 11:15:09 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 8, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:09 AM] [32minfo[39m: {"port":0,"id":84,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,90,253,174,4,6,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,8,0],[6,254]],"ts": "2025-12-02T11:15:09.883-0500"}
[12/2/2025, 11:15:11 AM] [32minfo[39m: {"port":0,"id":85,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,96,24,229,0,0,0,0,10,3,2],[4,42]],"ts": "2025-12-02T11:15:11.871-0500"}
[12/2/2025, 11:15:12 AM] [32minfo[39m: {"port":0,"id":86,"valid":true,"dir":"in","proto":"chlorinator","pkt":[[],[],[16,2,0,18],[58,128],[222,16,3]],"ts": "2025-12-02T11:15:12.869-0500"}
[12/2/2025, 11:15:13 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 12, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:13 AM] [32minfo[39m: {"port":0,"id":87,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,122,253,174,4,8,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,12,0],[7,36]],"ts": "2025-12-02T11:15:13.884-0500"}
[12/2/2025, 11:15:14 AM] [32minfo[39m: {"port":0,"id":88,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,29,8,152,28,15,0,0,0,0,0,0],[2,34]],"ts": "2025-12-02T11:15:14.102-0500"}
[12/2/2025, 11:15:15 AM] [32minfo[39m: {"port":0,"id":89,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,96,24,229,0,0,0,0,14,3,2],[4,45]],"ts": "2025-12-02T11:15:15.871-0500"}
[12/2/2025, 11:15:17 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 16, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:17 AM] [32minfo[39m: {"port":0,"id":90,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,154,253,174,4,10,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,16,0],[7,74]],"ts": "2025-12-02T11:15:17.884-0500"}
[12/2/2025, 11:15:19 AM] [32minfo[39m: {"port":0,"id":91,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:15:19.955-0500"}
[12/2/2025, 11:15:19 AM] [32minfo[39m: {"port":0,"id":92,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:15:19.956-0500"}
[12/2/2025, 11:15:19 AM] [32minfo[39m: {"port":0,"id":93,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,18,3,2],[4,48]],"ts": "2025-12-02T11:15:19.958-0500"}
[12/2/2025, 11:15:21 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 20, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:21 AM] [32minfo[39m: {"port":0,"id":94,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,186,253,174,4,12,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,20,0],[7,112]],"ts": "2025-12-02T11:15:21.884-0500"}
[12/2/2025, 11:15:23 AM] [32minfo[39m: {"port":0,"id":95,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,230,0,0,0,0,22,3,2],[4,53]],"ts": "2025-12-02T11:15:23.875-0500"}
[12/2/2025, 11:15:25 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 24, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:25 AM] [32minfo[39m: {"port":0,"id":96,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,218,253,174,4,14,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,24,0],[7,150]],"ts": "2025-12-02T11:15:25.883-0500"}
[12/2/2025, 11:15:27 AM] [32minfo[39m: {"port":0,"id":97,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,26,3,2],[4,56]],"ts": "2025-12-02T11:15:27.871-0500"}
[12/2/2025, 11:15:29 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 28, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:29 AM] [32minfo[39m: {"port":0,"id":98,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[64,250,253,174,4,16,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,28,0],[7,188]],"ts": "2025-12-02T11:15:29.885-0500"}
[12/2/2025, 11:15:30 AM] [32minfo[39m: {"port":0,"id":99,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,25,8,152,30,15,0,0,0,0,0,0],[2,32]],"ts": "2025-12-02T11:15:30.102-0500"}
[12/2/2025, 11:15:31 AM] [32minfo[39m: {"port":0,"id":100,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,95,24,229,0,0,0,0,30,3,2],[4,61]],"ts": "2025-12-02T11:15:31.871-0500"}
[12/2/2025, 11:15:33 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 32, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:33 AM] [32minfo[39m: {"port":0,"id":101,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,26,253,174,4,18,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,32,0],[6,227]],"ts": "2025-12-02T11:15:33.885-0500"}
[12/2/2025, 11:15:35 AM] [32minfo[39m: {"port":0,"id":102,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,34,3,2],[4,64]],"ts": "2025-12-02T11:15:35.874-0500"}
[12/2/2025, 11:15:37 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 36, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:37 AM] [32minfo[39m: {"port":0,"id":103,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,58,253,174,4,20,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,36,0],[7,9]],"ts": "2025-12-02T11:15:37.886-0500"}
[12/2/2025, 11:15:39 AM] [32minfo[39m: {"port":0,"id":104,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,38,3,2],[4,68]],"ts": "2025-12-02T11:15:39.873-0500"}
[12/2/2025, 11:15:41 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 40, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:41 AM] [32minfo[39m: {"port":0,"id":105,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,90,253,174,4,22,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,40,0],[7,47]],"ts": "2025-12-02T11:15:41.885-0500"}
[12/2/2025, 11:15:42 AM] [32minfo[39m: {"port":0,"id":106,"valid":true,"dir":"in","proto":"chlorinator","pkt":[[],[],[16,2,0,18],[58,128],[222,16,3]],"ts": "2025-12-02T11:15:42.868-0500"}
[12/2/2025, 11:15:43 AM] [32minfo[39m: {"port":0,"id":107,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,95,24,229,0,0,0,0,42,3,2],[4,73]],"ts": "2025-12-02T11:15:43.872-0500"}
[12/2/2025, 11:15:45 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 44, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:45 AM] [32minfo[39m: {"port":0,"id":108,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,122,253,174,4,24,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,44,0],[7,85]],"ts": "2025-12-02T11:15:45.886-0500"}
[12/2/2025, 11:15:46 AM] [32minfo[39m: {"port":0,"id":109,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,27,8,152,32,15,0,0,0,0,0,0],[2,36]],"ts": "2025-12-02T11:15:46.102-0500"}
[12/2/2025, 11:15:47 AM] [32minfo[39m: {"port":0,"id":110,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,46,3,2],[4,76]],"ts": "2025-12-02T11:15:47.871-0500"}
[12/2/2025, 11:15:50 AM] [32minfo[39m: {"port":0,"id":111,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:15:50.293-0500"}
[12/2/2025, 11:15:50 AM] [32minfo[39m: {"port":0,"id":112,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:15:50.295-0500"}
[12/2/2025, 11:15:50 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 48, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:50 AM] [32minfo[39m: {"port":0,"id":113,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,154,253,174,4,26,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,48,0],[7,123]],"ts": "2025-12-02T11:15:50.297-0500"}
[12/2/2025, 11:15:51 AM] [32minfo[39m: {"port":0,"id":114,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,50,3,2],[4,80]],"ts": "2025-12-02T11:15:51.872-0500"}
[12/2/2025, 11:15:53 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 52, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:53 AM] [32minfo[39m: {"port":0,"id":115,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,186,253,174,4,28,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,52,0],[7,161]],"ts": "2025-12-02T11:15:53.886-0500"}
[12/2/2025, 11:15:55 AM] [32minfo[39m: {"port":0,"id":116,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,228,0,0,0,0,54,3,2],[4,83]],"ts": "2025-12-02T11:15:55.873-0500"}
[12/2/2025, 11:15:57 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 15, 56, 0] (HH:MM:SS:?))
[12/2/2025, 11:15:57 AM] [32minfo[39m: {"port":0,"id":117,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,218,253,174,4,30,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,15,56,0],[7,199]],"ts": "2025-12-02T11:15:57.893-0500"}
[12/2/2025, 11:15:59 AM] [32minfo[39m: {"port":0,"id":118,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,15,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,58,3,2],[4,88]],"ts": "2025-12-02T11:15:59.871-0500"}
[12/2/2025, 11:16:01 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 0, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:01 AM] [32minfo[39m: {"port":0,"id":119,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[65,250,253,174,4,32,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,0,0],[7,178]],"ts": "2025-12-02T11:16:01.901-0500"}
[12/2/2025, 11:16:02 AM] [32minfo[39m: {"port":0,"id":120,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,23,8,152,31,15,0,0,0,0,0,0],[2,31]],"ts": "2025-12-02T11:16:02.123-0500"}
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:16:03 AM] [32minfo[39m: {"port":0,"id":121,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,2,3,2],[4,33]],"ts": "2025-12-02T11:16:03.871-0500"}
[12/2/2025, 11:16:05 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 4, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:05 AM] [32minfo[39m: {"port":0,"id":122,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,26,253,174,4,34,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,4,0],[6,217]],"ts": "2025-12-02T11:16:05.992-0500"}
[12/2/2025, 11:16:07 AM] [32minfo[39m: {"port":0,"id":123,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,6,3,2],[4,37]],"ts": "2025-12-02T11:16:07.870-0500"}
[12/2/2025, 11:16:09 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 8, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:09 AM] [32minfo[39m: {"port":0,"id":124,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,58,253,174,4,36,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,8,0],[6,255]],"ts": "2025-12-02T11:16:09.886-0500"}
[12/2/2025, 11:16:11 AM] [32minfo[39m: {"port":0,"id":125,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,229,0,0,0,0,10,3,2],[4,41]],"ts": "2025-12-02T11:16:11.871-0500"}
[12/2/2025, 11:16:13 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 12, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:13 AM] [32minfo[39m: {"port":0,"id":126,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,90,253,174,4,38,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,12,0],[7,37]],"ts": "2025-12-02T11:16:13.882-0500"}
[12/2/2025, 11:16:15 AM] [32minfo[39m: {"port":0,"id":127,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,95,24,228,0,0,0,0,14,3,2],[4,44]],"ts": "2025-12-02T11:16:15.871-0500"}
[12/2/2025, 11:16:17 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 16, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:17 AM] [32minfo[39m: {"port":0,"id":128,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,122,253,174,4,40,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,16,0],[7,75]],"ts": "2025-12-02T11:16:17.885-0500"}
[12/2/2025, 11:16:18 AM] [32minfo[39m: {"port":0,"id":129,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,22,8,152,30,15,0,0,0,0,0,0],[2,29]],"ts": "2025-12-02T11:16:18.101-0500"}
[12/2/2025, 11:16:19 AM] [32minfo[39m: {"port":0,"id":130,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:16:19.954-0500"}
[12/2/2025, 11:16:19 AM] [32minfo[39m: {"port":0,"id":131,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:16:19.955-0500"}
[12/2/2025, 11:16:19 AM] [32minfo[39m: {"port":0,"id":132,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,95,24,229,0,0,0,0,18,3,2],[4,50]],"ts": "2025-12-02T11:16:19.957-0500"}
[12/2/2025, 11:16:21 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 20, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:21 AM] [32minfo[39m: {"port":0,"id":133,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,154,253,174,4,42,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,20,0],[7,113]],"ts": "2025-12-02T11:16:21.882-0500"}
[12/2/2025, 11:16:23 AM] [32minfo[39m: {"port":0,"id":134,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,176,78,94,24,228,0,0,0,0,22,3,2],[4,52]],"ts": "2025-12-02T11:16:23.871-0500"}
[12/2/2025, 11:16:25 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 24, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:25 AM] [32minfo[39m: {"port":0,"id":135,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,186,253,174,4,44,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,24,0],[7,151]],"ts": "2025-12-02T11:16:25.882-0500"}
[12/2/2025, 11:16:27 AM] [32minfo[39m: {"port":0,"id":136,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,94,24,229,0,0,0,0,26,3,2],[4,56]],"ts": "2025-12-02T11:16:27.871-0500"}
[12/2/2025, 11:16:29 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 28, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:29 AM] [32minfo[39m: {"port":0,"id":137,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,218,253,174,4,46,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,28,0],[7,189]],"ts": "2025-12-02T11:16:29.885-0500"}
[12/2/2025, 11:16:31 AM] [32minfo[39m: {"port":0,"id":138,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,78,94,24,229,0,0,0,0,30,3,2],[4,60]],"ts": "2025-12-02T11:16:31.872-0500"}
[12/2/2025, 11:16:33 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 32, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:33 AM] [32minfo[39m: {"port":0,"id":139,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[66,250,253,174,4,48,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,32,0],[7,227]],"ts": "2025-12-02T11:16:33.884-0500"}
[12/2/2025, 11:16:34 AM] [32minfo[39m: {"port":0,"id":140,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,27,8,152,31,15,0,0,0,0,0,0],[2,35]],"ts": "2025-12-02T11:16:34.102-0500"}
[12/2/2025, 11:16:35 AM] [32minfo[39m: {"port":0,"id":141,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,230,0,0,0,0,34,3,2],[4,64]],"ts": "2025-12-02T11:16:35.876-0500"}
[12/2/2025, 11:16:37 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 36, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:37 AM] [32minfo[39m: {"port":0,"id":142,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,26,253,174,4,50,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,36,0],[7,10]],"ts": "2025-12-02T11:16:37.884-0500"}
[12/2/2025, 11:16:39 AM] [32minfo[39m: {"port":0,"id":143,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,230,0,0,0,0,38,3,2],[4,68]],"ts": "2025-12-02T11:16:39.878-0500"}
[12/2/2025, 11:16:41 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 40, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:41 AM] [32minfo[39m: {"port":0,"id":144,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,58,253,174,4,52,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,40,0],[7,48]],"ts": "2025-12-02T11:16:41.884-0500"}
[12/2/2025, 11:16:42 AM] [32minfo[39m: {"port":0,"id":145,"valid":true,"dir":"in","proto":"chlorinator","pkt":[[],[],[16,2,0,18],[58,128],[222,16,3]],"ts": "2025-12-02T11:16:42.867-0500"}
[12/2/2025, 11:16:43 AM] [32minfo[39m: {"port":0,"id":146,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,0,0,0,0,42,3,2],[4,71]],"ts": "2025-12-02T11:16:43.870-0500"}
[12/2/2025, 11:16:45 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 44, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:45 AM] [32minfo[39m: {"port":0,"id":147,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,90,253,174,4,54,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,44,0],[7,86]],"ts": "2025-12-02T11:16:45.883-0500"}
[12/2/2025, 11:16:47 AM] [32minfo[39m: {"port":0,"id":148,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,0,0,0,0,46,3,2],[4,75]],"ts": "2025-12-02T11:16:47.871-0500"}
[12/2/2025, 11:16:50 AM] [32minfo[39m: {"port":0,"id":149,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,112,16,114,10],[144,0,0,0,0,0,0,0,0,0],[2,49]],"ts": "2025-12-02T11:16:50.067-0500"}
[12/2/2025, 11:16:50 AM] [32minfo[39m: {"port":0,"id":150,"valid":true,"dir":"in","proto":"heater","pkt":[[],[255,0,255],[165,0,16,112,115,10],[160,1,0,3,0,0,0,0,0,0],[2,70]],"ts": "2025-12-02T11:16:50.069-0500"}
[12/2/2025, 11:16:50 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 48, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:50 AM] [32minfo[39m: {"port":0,"id":151,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,122,253,174,4,56,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,48,0],[7,124]],"ts": "2025-12-02T11:16:50.071-0500"}
[12/2/2025, 11:16:50 AM] [32minfo[39m: {"port":0,"id":152,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,10,8,152,27,15,0,0,0,0,0,0],[2,14]],"ts": "2025-12-02T11:16:50.140-0500"}
[12/2/2025, 11:16:51 AM] [32minfo[39m: {"port":0,"id":153,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,0,0,0,0,50,3,2],[4,79]],"ts": "2025-12-02T11:16:51.871-0500"}
[12/2/2025, 11:16:53 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 52, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:53 AM] [32minfo[39m: {"port":0,"id":154,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,154,253,174,4,58,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,52,0],[7,162]],"ts": "2025-12-02T11:16:53.883-0500"}
[12/2/2025, 11:16:55 AM] [32minfo[39m: {"port":0,"id":155,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,0,0,0,0,54,3,2],[4,83]],"ts": "2025-12-02T11:16:55.871-0500"}
[12/2/2025, 11:16:57 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 16, 56, 0] (HH:MM:SS:?))
[12/2/2025, 11:16:57 AM] [32minfo[39m: {"port":0,"id":156,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,186,253,174,4,60,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,16,56,0],[7,200]],"ts": "2025-12-02T11:16:57.884-0500"}
[12/2/2025, 11:16:59 AM] [32minfo[39m: {"port":0,"id":157,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,16,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,174,77,94,24,229,0,0,0,0,58,3,2],[4,86]],"ts": "2025-12-02T11:16:59.873-0500"}
[12/2/2025, 11:17:01 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 17, 0, 0] (HH:MM:SS:?))
[12/2/2025, 11:17:01 AM] [32minfo[39m: {"port":0,"id":158,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,218,253,174,4,62,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,17,0,0],[7,179]],"ts": "2025-12-02T11:17:01.899-0500"}
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [33mwarn[39m: dt:Tue Dec 02 2025 11:13:01 GMT-0500 (Eastern Standard Time) lat:undefined lon:undefined Not enough information to calculate Heliotrope. See #245
[12/2/2025, 11:17:03 AM] [32minfo[39m: {"port":0,"id":159,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,17,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,0,0,0,0,2,3,2],[4,32]],"ts": "2025-12-02T11:17:03.871-0500"}
[12/2/2025, 11:17:05 AM] [34mdebug[39m: IntelliCenter v3+ extra bytes [44-47]: [11, 17, 4, 0] (HH:MM:SS:?))
[12/2/2025, 11:17:05 AM] [32minfo[39m: {"port":0,"id":160,"valid":true,"dir":"in","proto":"broadcast","pkt":[[],[255,0,255],[165,1,15,16,204,48],[67,250,253,174,4,64,2,12,25,0,0,0,0,80,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,80,253,3,4,11,17,4,0],[7,217]],"ts": "2025-12-02T11:17:05.989-0500"}
[12/2/2025, 11:17:07 AM] [32minfo[39m: {"port":0,"id":161,"valid":true,"dir":"in","proto":"pump","pkt":[[],[255,0,255],[165,0,16,96,7,15],[10,1,2,2,30,8,152,30,15,0,0,0,0,0,0],[2,37]],"ts": "2025-12-02T11:17:07.525-0500"}
[12/2/2025, 11:17:07 AM] [32minfo[39m: {"port":0,"id":162,"valid":true,"dir":"in","proto":"broadcast","pkt":[[255,255,255,255,255,255,255],[255,0,255],[165,1,15,16,2,29],[11,17,4,0,0,0,0,0,0,32,0,0,0,0,79,79,0,175,77,94,24,229,
|
Beta Was this translation helpful? Give feedback.
-
|
I did a full clean install of the OS and njsPC and the dashPanel is now communicating with the poolController. As requested, I started a packet capture, then power cycled the outdoor control panel and allowed the capture to continue for about 5 minutes. That capture is attached.
The dashPanel shows “IntelliCenter i5P” at the top-left side of the main screen. However, in Settings…System it reports two Master Panels, an i5P Personality Card and an i10PS Personality Card. That appears to be correct with the i5P being the main circuit card and the i10PS being the daughter card that plugs into the side of the main card.
From: tagyoureit ***@***.***>
Sent: Tuesday, December 2, 2025 2:32 PM
To: tagyoureit/nodejs-poolController ***@***.***>
Cc: jwtaylor310 ***@***.***>; Comment ***@***.***>
Subject: Re: [tagyoureit/nodejs-poolController] IntelliCenter FW 3.004 Compatible? (Discussion #1090)
Good. This is progress.
Anytime you change node versions make sure to delete the ./node_modules directory and re-run npm i. But it looks like your install is working fine. You would get lots of other errors if there was a problem with node.
What we are not seeing in here are the configuration packets. njsPC is requesting them, but we are not receiving them. Something is different on the control panel side.
Now that we have correctly identified the firmware, I also noticed it detected this as an i5P. Pull the latest so that we capture that.
Next steps:
* We need a full configuration reload. This wasn't in either of your last v3 packet captures. Start a new packet capture in njsPC, leave it running, and do a hard reset on Intellicenter (cycle the power to the control panel). For whatever reason, the reset from the menu last time didn't do what I had hoped. But we would have needed to do this anyway.
* Wait 5 minutes before stopping the packet capture.
* Upload the packet capture
—
Reply to this email directly, view it on GitHub <#1090 (reply in thread)> , or unsubscribe <https://github.com/notifications/unsubscribe-auth/AHSGXKRMT7K4W4YZ5CB4IPL37XSL7AVCNFSM6AAAAAB6FYYPYGVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTKMJTHEZDQMI> .
You are receiving this because you commented. <https://github.com/notifications/beacon/AHSGXKXKGOFDUQ7LHQGVGWD37XSL7A5CNFSM6AAAAAB6FYYPYGWGG33NNVSW45C7OR4XAZNRIRUXGY3VONZWS33OINXW23LFNZ2KUY3PNVWWK3TUL5UWJTQA44A5C.gif> Message ID: ***@***.*** ***@***.***> >
|
Beta Was this translation helpful? Give feedback.
-
|
Sure. Here it is.... |
Beta Was this translation helpful? Give feedback.
-
|
I have done captures for the "Circuit & Feature Changes" section with details below. I did the first capture doing the changes through the outdoor control panel. I then reset and did the second capture doing the changes with the wireless remote. I figure that change requests entered at the outdoor control panel may be processed locally and not be propagated to the RS485 buss and therefore not be visible to njsPC. The wireless connects via RS485 so its change requests should be visible. Please let me know which approach I should use for the rest of the configuration tests. For each capture I did the following:
|
Beta Was this translation helpful? Give feedback.
-
|
I don't have any other wired control panels. However, the wireless remote (Pentair 522036) communicates to a transceiver board that is connected to the RS485 buss. It has no other way of connecting to the OCP, so I think its packets must go through the RS485 connection. If there is a problem with missing packets it would more likely be on the link between njsPC and the OCP. My current setup has njsPC running on a PC on my home LAN which connects via a mesh WiFi system to an Elfin EW11 adapter at the OCP. The Elfin is wired directly to the OCP's RS485 buss. I don't see any reason why the Elfin would block any packets, but I will see if I can figure out a way of hardwiring the PC running njsPC directly to the RS485 buss. |
Beta Was this translation helpful? Give feedback.
-
|
On my system the RS485 is also split on the chlorinator surge arrestor board. Tomorrow I will review the connections and make certain the wireless remote transceiver is connected at the same point as the Elfin. I initially read your previous comment in email and didn't see the diagram of the remote with the reset button in the cradle. I just did the "Factory Reset" menu item on the remote (twice) followed by a "reboot this panel" . The packet capture for that is attached. I don't have time to look at the contents right now, but will do a quick reset using the button on the cradle before leaving. |
Beta Was this translation helpful? Give feedback.
-
|
Here's the capture resulting from pressing the Wireless Remote's cradle "reset" button. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
Features section: AUX CIrcuits: Turning on/off an individual AUX circuit using dashPanel works as expected. However, making multiple status changes in a short time causes only the last change to take effect. In the following capture, I first turned on Aux 4. That caused an unexpected configuration reload. I then turned on Aux 5, Aux 7 and Aux 9 in quick succession. Only Aux 9 changed state: I then started a new capture and used the Wireless to turn on Aux 5, Aux 7 and Aux 9 in quick succession. That caused an unexpected configuration reload. However, after the reload, dP correctly showed all three Aux features enable. The unexpected configuration reloads appear to be associated with having logging active. When I do the same thing without logging there are no reloads. Turning on/off multiple features in quick succession using the Wireless works without a problem. With dP it looks like I have to wait for the status change to be displayed before I can enter then next request -- otherwise only the most recent request takes effect. ==================== Feature Circuits: I can't get a handle on exactly what is going on with the Feature Circuits. Sometimes all of them show "Off" no matter what the actual state of the circuit is. Other times some of them display the correct status but others always show "Off". In every case it appears that if the actual circuit is off and dP is reporting it as off, a request to turn the circuit on using dP will work. However, it is then impossible to turn the circuit back off through dP, presumably because dP believes it is already off. Sometimes there appears to be an interaction between different Feature Circuits. I started the following capture and the system immediately did a configuration reload. After the reload, Test_Feature was correctly display as on and all other circuits were correctly displayed as off. I then used dashPanel to turn on "Air Blower222" and the circuit turned on as expected but dP continued to show it as off. I then used dP to turn on "TestF2". That caused the actual circuit for TestF2 to turn on but the unrelated actual circuit for Air Blower222 turned off. At this point the actual circuits for Test_Feature and TestF2 were on but dP showed only Test_Feature on. For the following capture I used the Wireless to turn Air Blower222 on. dashPanel continued to show the circuit off. I then turned it off using the Wireless. Next I turned it on using dashPanel. The actual circuit turned on but the dashPanel display remained off.. Finally, I attempted to turn the circuit off using dP. The circuit remained on. |
Beta Was this translation helpful? Give feedback.
-
|
Pumps section: This section correctly shows the one pump in my system (VSF) and shows valid rpm, gpm and watts information. Harrah! |
Beta Was this translation helpful? Give feedback.
-
|
Lights section: My system has IntelliBrite lights (which are neither particularly intelligent nor bright). dashPanel successfully turns on/off the lights and correctly shows on/off status changes requested by the Wireless Remote. However, both dashPanel and the Wireless Remote have problems with color selection. Selecting a color in dashPanel causes a "Message aborted" error and occasionally hangs while displaying a "Sequencing Theme/Color Operation ... Please Wait" window. However, the Wireless Remote has a similar problem when it tries to change colors. Both the Wireless remote and the OP continuously display a series of progress dots at the top of the screen. I have found no way to clear this issue other then resetting the OP. So, this looks like a Pentair firmware issue and not a problem with njsPC. |
Beta Was this translation helpful? Give feedback.
-
|
Pull again. The code was detecting the i10ps but didn't set the flag for shared body to true early. Check everything else as I put fixes in for all of them. |
Beta Was this translation helpful? Give feedback.
-
|
That was quick! Unfortunately, the bodies section is still acting up. As soon as I started a capture, the system started a configuration reload which went quite slowly. That process should be at the start of the capture files. Then I tried turning on/off the Pool using dashPanel without a problem. But when I next tried turning on the Spa with dP it showed "on" for a moment and then reverted to off. I then turned the Spa on using the Remote. Then turned the Spa off successfully with dashPanel. Here's the capture file: |
Beta Was this translation helpful? Give feedback.
-
|
The heating part of Bodies is working better. Changes to Set Point and heating source made with dashPanel are successful. However, dashPanel does not reflect changes to those values made with the Remote - at least not immediately. The Spa Set Point and heating source do the same thing. Here's a capture with dashPanel changing the Pool Set Point from 85 to 87 and the heat source from Solar Only to Off. Both of these changes were reflected in dP and on the Remote. Then I used the Remote to change the heat source to Solar Only and the Set Point back to 85. This time dP did show the change in heat source but didn't show the SetPoint change. (The capture starts with another unsolicited configuration reload): |
Beta Was this translation helpful? Give feedback.
-
|
Schedules section looks good! I have tried changing start and end times and days-of-week using the Remote and dashPanel shows the changes correctly and quickly. (I haven't tried changing the schedule using dP -- I'll try that after everything in the Home screen is working.) |
Beta Was this translation helpful? Give feedback.
-
|
The Features section is working better. Aux Circuits: ============== Feature Circuits: Still a problem. I don't see any changes from the previous version. |
Beta Was this translation helpful? Give feedback.
-
|
The features and temps have fixes in place. Not sure if you did "capture configuration reload" last time, but can you do that for this next one? There are brand new action messages (184) that are sent for body changes. I put in some code to try and emulate that but part of it is a guess right now. Go through again and see where we are. The "fails in njsPC -> works in wireless" pattern has been very helpful. |
Beta Was this translation helpful? Give feedback.
-
|
Currently the system does a spontaneous config reload whenever I start logging a "Capture Replay", even before I make any status changes. Here is a logging session with "Capture Configuration Reload" enabled. It should contain the configuration reload that started spontaneously when I started the logging, followed by one done in response to a manual "System ... Reload Config". Next I turned the Spa on and then off using rhe Remote. I then tried turning the Spa on using dashPanel which failed. I then turned the Spa on using the Remote and finally successfully turned the Spa off using dashPanel before ending the capture. In summary, dashPanel can turn off the Spa but can't turn it on. The Feature Circuits section continues to be confusing. I just started a new logging session (with "Capture Configuration Reload" enabled) and have waited for the configuration reload to complete. All four of the Feature Circuits are currently off but dashPanel shows the status of "Air Blower222" to be "on" (the rest correctly display as "off"). I tried turning Air Blower222 off using dashPanel and dP showed it go off and a short while later reverted to "on". Next I turned on all four features using dashPanel and only "Air Blower 222" and "Back Light" actually turned on, but dP only shows "Air Blower222" as being on. (Back Light was the last entry so it may have preempted the others). Next I turned the Pool on using dP and that caused Back Light to actually turn off. Finally I turned the Pool off using dP and that worked correctly with no further changes to the status of any of the Feature Circuits. I then ended the capture: |
Beta Was this translation helpful? Give feedback.
-
|
Made a bunch more changes. There seem to be some bugs around features in v3 that existed as well in v1 but in different places. And made some more changes for the circuits, too. |
Beta Was this translation helpful? Give feedback.
-
|
Getting better! I only have a few minutes this morning, but first look indicates: Spa turn on/off from dashPanel now works. Phantom heat sources still appear for both Pool and Spa. Set Point changes made in dP work correctly. However, when Set Points are changed on the Remote dP shows invalid settings (example: change Pool Set Point from 85 to 83 on Remote, dP shows 0, change Spa 95 to 93 on Remote, dP shows 100). Feature Circuits can now be turned on/off from dP without a problem or any apparent interactions between different circuits. However, changes made from Remote are not reflected on dP. However, subsequent changes made on dP cause all circuits to be set to what dP things they should be. Example, starting from all feature circuits off, use Remote to turn on Test_Feature and Back Light. Circuits turn on but dP continues to show all feature circuits off. Then turn on TestF2 using dP and that circuit turns on (and is displayed on in dP), but Test_Feature and Back Light turn off. So it looks like each time dP is used to turn a feature circuit on/of, dP sends a command(s) which causes all feature circuits to be set to the state that dP is currently displaying. I'll do further testing and create capture files this evening. |
Beta Was this translation helpful? Give feedback.
-
|
After the pull poolController fails to start:
Init state for Pool Controller I rebooted the Pi and that didn't help.... |
Beta Was this translation helpful? Give feedback.
-
|
Please ignore previous message about poolController failing to start. I had rebooted the Pi and pm2 started the programs automatically in background. Not realizing that, I tried to start them manually and got the "address already in use" message. used pm2 to stop the programs and restarted them manually without a problem. As requested, I created 10 features and toggled each one on and off using the wireless. Features 1 through 4 worked as expected. dashPanel did not show "on" when I toggled Features 5 through 10 on and off. The capture is here: I also tried toggling features 5 through 10 on from dashPanel. Those all worked. There continue to be issues with the bodies section: ================ 1 dashPanel Pool On OK ==================== There are issues with Setpoint changes not being synchronized between dashPanel and the Wireless. Also, the "phantom" heat sources in dashPanel have now been populated with descriptions "Solar Preferred" and "UltraTemp Pref". However, that is problematic because neither the Wireless nor the OP list those as available options -- probably a bug in the Pentair firmware. In some cases the Wireless/OP don't track when switching to/from the "Preferred" sources in dp.
The following capture is for: dp Pool changed from 85 to 86 OK |
Beta Was this translation helpful? Give feedback.
-
|
First, Merry Christmas and a continued thank you for all the work you have been putting in on this! Unfortunately, the Grinch has struck and the latest updates don't appear to have worked. displayPanel heat modes and setpoints still do not reflect changes made with the wireless. In Replay 73: Wireless: Pool Off to Solar - dP does not update dP Pool Off to Solar- OK Wireless: Spa Off to Solar - dP does not update dp Spa Off to Solar - OK However, as before the dP does correctly update the heating status and icon when the heater type is changed. I noticed the following in the njsPC console display: [12/24/2025, 10:47:00 AM] warn: Registration rejected by OCP via Action 217 (status=4) - duplicate registration attempt? That suggests that maybe dP isn't updating because its registration attempts are being rejected???? ================= The Feature settings also continue to be a problem. In Replay 76 starting with all features off: dP F1 on - dP displays F5 on, wireless shows F1 on |
Beta Was this translation helpful? Give feedback.








Uh oh!
There was an error while loading. Please reload this page.
-
Just curious if anyone has tested PoolController with the latest Pentair FW?
Beta Was this translation helpful? Give feedback.
All reactions