Commit Graph

43 Commits

Author SHA1 Message Date
cd2354c34f Updated changelog and package.json for release v1.2.1 2019-03-26 20:56:30 -05:00
25188ddce9 To be safe, only pass the chunk of the buffer that's relevant 2019-03-26 19:16:23 -05:00
d70bc88f7c Actually fixed large message handling
We shouldn't be trying to read the message length out of the middle of a message when there are multiple segments.

Fixes https://github.com/parnic/node-screenlogic/issues/5 (for real this time, I hope...I don't have a way to test)
2019-03-26 07:10:18 -05:00
08c5457f2c Fixed handling of messages larger than 1024 bytes
Fixes https://github.com/parnic/node-screenlogic/issues/5
2019-03-25 20:02:58 -05:00
398a687cc6 Well that was obviously the wrong date 2019-02-23 10:23:05 -06:00
8727d53440 Revved for NPM 2019-02-22 18:58:10 -06:00
d3de4ec441 Updated readme
Moved changes to dedicated changelog
v1.2.0
2019-02-22 16:06:31 -06:00
605b8e4b4e VSCode launch config 2019-02-22 16:06:20 -06:00
a09df2569b Added support for remote + passworded access
This password encoder was decompiled from the Android app then manually cleaned up and ported to Javascript. It ain't pretty, but it works.

I don't know that this is all necessarily the most correct or idiomatic way to implement these features, but I wanted to make sure the functionality got committed to help out people wanting to use this for smart home appliances (#1).
2019-02-22 16:06:11 -06:00
ba734517c9 Enable linter 2018-04-28 23:06:48 -05:00
3c6b8ebcc7 Linter fixes 2018-04-28 23:06:11 -05:00
26083f75a7 Added very basic tests 2018-04-28 22:41:38 -05:00
aac316c5ed Fixed typo 2018-04-28 22:39:39 -05:00
03022f9220 Updated version for release v1.1.0 2018-04-23 23:44:43 -05:00
8329bb22d7 Added changelog 2018-04-23 23:44:28 -05:00
2d382dda65 Documented setCircuitState 2018-04-23 23:41:33 -05:00
1f83be8e10 Fixed error
On my RPi3 I'm seeing a failure to find units because send() is demanding a Buffer or String. Uint8Array works for me in every other environment I've tried, but something about the RPi wants this to be a buffer. Having it as a buffer also works in other environments, thankfully.
2018-04-23 23:21:01 -05:00
e1c775b8a8 Added ability to set circuit state
This allows for, for example, turning on a water feature or changing pool/spa active status.
2018-04-16 19:49:01 -05:00
562a9993aa Updated example
Close the finder when we've found a unit.
Request and handle each piece of data in sequence instead of requesting it all at once and then closing when the last expected message comes through. This is potentially slightly slower, but much clearer and 'safer'.
2018-04-02 17:09:06 -05:00
973f01ae37 Added keywords for easier searching 2018-04-02 17:08:13 -05:00
9e11d830d6 Minor improvements/clarifications 2018-04-02 17:08:00 -05:00
b8cf9a1801 Increased version for release v1.0.1 2018-03-31 16:27:11 -05:00
a25b0ff3b2 Added example of direct connection 2018-03-31 11:24:47 -05:00
7907430e95 Added ability to connect by address and port 2018-03-31 11:24:37 -05:00
a9d638b26d Documented UnitConnection properties v1.0.0 2018-03-31 10:51:52 -05:00
e4d7b7c0c5 Updated repository URL 2018-03-31 09:10:15 -05:00
2365acee05 Updated name 2018-03-31 09:06:30 -05:00
074ab58301 Fixed require example 2018-03-31 08:57:07 -05:00
9b64a6b82d Fixed bad sub-lists 2018-03-31 08:55:31 -05:00
104fe9f3b0 First pass at a readme 2018-03-31 08:50:32 -05:00
a383f8ca97 Ensure isValid is always set 2018-03-31 08:42:16 -05:00
2f29da16d8 Moved to more appropriate name 2018-03-31 08:41:58 -05:00
785ae71670 Adhere to NPM guidelines on semantic versioning 2018-03-30 20:36:38 -05:00
0bbae0446b Removed debug logging
Added verification of broadcast response message size
Added clearer handling of message types

I'm sure there's a better way to do debug logging, but I don't really feel like adding a dependency on another module just for that.
2018-03-30 20:35:24 -05:00
ce41d6b009 Added quick way to check if pool/spa are on
Added interpreters for 'ok' variable
2018-03-30 20:15:42 -05:00
8c02b4857d degC is now true/false instead of 0/1
Seek ahead instead of using padding variables
2018-03-30 20:14:08 -05:00
3262ac428b Added chem data
Added salt cell config
Added system version
Tweaked pool status to pre-adjust values

Chem data uses big endian encoding for most of its values (but not all) while everything else (so far) has used little endian. Chem data also encodes bits like whether there's a system error or not inside other pieces of data like salt levels. There are also bytes in the returned data that I don't know the significance of just yet.
Pool status was tweaked such that asking for pH is corrected down to its proper float representation (e.g. 7.60) instead of the integer representation that is sent by the system (760). Same for water balance/saturation. Salt now returns the proper value (scaled up by 50) instead of the value sent over by the system, which I guess is the maximum precision the system can provide.
2018-03-30 19:59:17 -05:00
b6ee816fb3 Added decoding of messages
Also moved things out to their own files and setup require()s to bring it all together.
2018-03-30 16:07:56 -05:00
af02f60791 Code cleanup
Much better organization and ease-of-use now that the proof of concept is established. Still an awful lot to do here, but I'm getting the hang of the whole node.js thing.
Also moved the actual test functionality out to a test script so the module itself doesn't execute anything.
2018-03-30 10:27:01 -05:00
c1234187ca NPM package file 2018-03-30 10:25:33 -05:00
7d4af8db5f Renamed to follow convention 2018-03-30 10:25:03 -05:00
0713d9acca Initial code commit
I have no idea what I'm doing in node.js, so this just proves that we can discover and communicate with a Pentair ScreenLogic server on the network. It's super ugly and needs a ton of work, but it's functional.
2018-03-28 23:52:46 -05:00
ae2b05b0e4 Initial commit 2018-03-28 23:49:01 -05:00