Commit Graph

233 Commits

Author SHA1 Message Date
Gregg 381b25860a Moved default parameters for homeSpan.begin() to Settings.h 2020-09-27 22:52:03 -05:00
Gregg 2d8f36e735 Created HomeSpan::setApPassword() and setAPTimeout()
Moved default values into Settings.h
2020-09-27 22:31:11 -05:00
Gregg fa8c5934ea Eliminated ServiceType from Library and Example 11
Next up - update Examples 12+ to delete ServiceType
2020-09-27 15:56:48 -05:00
Gregg 814d751e71 Created SpanService::setPrimary() and setHidden()
These optional methods can be "chained" when instantiating a new SpanService to configure the Service as Primary or Hidden (or both).  This alleviates the need to ServiceType to be propogated through the Service constructor.

Next Up:  Eliminate ServiceType construct and update Examples to use setPrimary instead.
2020-09-27 14:51:31 -05:00
Gregg a40447b8f8 Created methods to set Control and Status Pins
Created separate init() methods for PushButton and Blinker.  Created HomeSpan:setControlPin and HomeSpan:setStatusPin that can be called from main setup() to modify the defaults.  All default settings being migrated to Settings.h
2020-09-27 13:41:02 -05:00
Gregg ac25b94b67 Fully implemented Generic PushButton
Generic PushButton now used for all device control functions.
2020-09-26 17:13:17 -05:00
Gregg b7de0cf710 Created Generic PushButton
Wll be used for control button.  Nothing to do with buttons that control Accessories, which are handled by SpanButton.
2020-09-26 16:23:44 -05:00
Gregg 49b1aa277d Create SRP6A:loadVerifyCode()
And updated other SRP routines to complete implementation of use of stored verification code instead of live setup code.

Next up: Add method to change setup code in serial interface and implement similar code after network configuration routines.
2020-09-21 07:10:23 -05:00
Gregg 446679abab Created SRP6A:createVerifyCode()
This generates an SRP verification code from a setupCode and randomly-generated salt.  Function creates the salt internally and returns both the resulting verification code and salt that was used.  These are stored in NVS permanently.

Next Step: create SRP6A:loadVerifycode()
2020-09-20 22:00:01 -05:00
Gregg 3da2b9a311 Change Config.cpp to Network.cpp
Move all configuration code into Network.cpp, eliminating any calls or connection to HAP.cpp.  Network.cpp is now standalone for HomeSpan.cpp to call directly to handle ALL apects of WiFI and Setup Code initialization.

Also move TempBuffer from HAP.h to Utils.h so it can be used by Network.h
2020-09-06 08:24:13 -05:00
Gregg efe33fcdb9 Created captiveAccessURL()
Developing captive AP routines inside HAP.cpp
2020-09-01 22:08:51 -05:00
Gregg cd5b3115f5 Further updates to Captive AP Mode 2020-09-01 08:34:59 -05:00
Gregg 705a0922e1 Started work on CaptiveAP
Added span::config(hostName) to provide CaptiveAP at start-up.
2020-08-30 22:07:16 -05:00
Gregg b42dd9dfba Implemented Reset Button
Allows for reset of HAP (press for 5 seconds, but less than 10) or Factory reset (press for 10 second).  Use  setResetPin to change from default of pint 21.
2020-08-23 08:14:31 -05:00
Gregg 2172ac1ce6 Implemented Blinker statusLED
Replaced manual blinking with automated Blinker statusLED
2020-08-22 21:52:25 -05:00
Gregg f056b6ae82 Completed SpanButton()
And finished code for Example 15 to verify SpanButton() works as expected.  To Do: add comments and notes to Example 15.
2020-08-20 21:39:13 -05:00
Gregg c997ca3462 Created Example 15
Initial implementation of SpanButton PushButton object and check() logic
2020-08-20 07:29:15 -05:00
Gregg 6c5a5835e6 Eliminated TimedResets from Library
This is no longer needed since PushButtons can be easily emulated from within a Service loop() as per Example 14.  Library is now fully up-to-date: TimedResets and SpanEvents have been fully removed.
2020-08-17 21:54:43 -05:00
Gregg 9cecc0a31a Updated Example 13
Completed new framework for using loop() methods and deleted all code related to new SpanEvent() and event() loops.  Re-worked Example 13 to utilize new framework and validated it functions as expected.
2020-08-16 21:46:58 -05:00
Gregg 1efeb2880b Created checkNotifications()
This will replace older checkEvents() after testing validates new and improved methodology.
2020-08-16 12:27:39 -05:00
Gregg 53f51cc11b Created new framework for Service loops()
Service loops() called for only those Services with over-ridden loop() methods.  TO DO: update event logic to follow new framework.  Vector should point to all CHARACTERISTICS that are updated to setVal()
2020-08-16 08:45:24 -05:00
Gregg 8c888ff92a Created putPrepare()
Used unordered_map to store PID and TTL data.  Next step is to now read PID in updateCharacteristics() when needed.
2020-08-13 22:17:58 -05:00
Gregg 56225b1018 updated Example 13
Moved "new SpanEvent" into DEV_Sensors.h and verified it works fine.
2020-08-11 21:55:49 -05:00
Gregg 8d6db796cb Reworking checkEvents()
creating code to allow for multiple characteristics to be updated within event() call.  To Do: define anogther sensor that supports multiple characteristics.  also need to check that "new SpanEvent" works as expected from within a defined service.
2020-08-10 21:59:30 -05:00
Gregg 2e3daef92a Created Example 13
Created checkEvents(), which is a simplified (better) version of checkTimedResets().  To do:  re-write checkTimedResets() to mimic checkEvents();
2020-08-09 22:15:58 -05:00
Gregg e7c2fc46f7 Renamed SpanPut to SpanBuf 2020-08-09 20:33:15 -05:00
Gregg 471d62f3c2 created standalone eventNotify function
putCharacteristics and checkNotifications now both call the same eventNotify routing.  This is being done to prepare for services that will stream notifications back to client (like a temperature sensor, or pushbutton).  TO DO:  rename checkNotifications to check TimedResets, and rename SpanPut to something more generic.
2020-08-09 09:25:10 -05:00
Gregg 1fd493aa31 Completed Example 11
Transtioned to all getter methods: getVal(), getNewVal(), updated(), using templates for all floats.

Finalized templates for getVal and getNewVal, including making <int>  default so it does not have to be set for most getVal() and getNewVal() calls.  Works for booleans as well.  TO DO:  Re-work and check ALL prior examples to ensure they use getVal, etc., and DON'T access value, newValue, isUpdated, directly.
2020-08-04 07:56:53 -05:00
Gregg 1347e4fd5c Added getVal and getNewVal
Updated Example 11 to use getVal and getNewVal, but kept distinction between integer and double Characteristics
2020-08-03 21:23:50 -05:00
Gregg 861a37c7a1 Converted AutoOff to TimedResets 2020-07-29 07:26:13 -05:00
Gregg 47e7f7b6b4 Converted StatusCode to Class
Converted "statusCode Enum" to "StatusCode Class Enum" and moved from HomeSpan.h to Settings.h
2020-07-24 21:54:09 -05:00
Gregg 8a905c4d35 SpanRange Updated
Updated SpanRange to register itself automatically to the most recent Characteristic.  This is more consistent with the overall framework and no longer requires user to access the range variable directly.
2020-07-19 06:25:09 -05:00
Gregg cccb61f946 Initial commit 2020-07-18 21:47:39 -05:00