Commit Graph

664 Commits

Author SHA1 Message Date
frankonski 48793eff12
Allow user-defined data when receiving weblogs from callback (#770)
* Adding userData to getweblogs callback.
Allows user-specific data to be available in the callback that returns weblog HTML data.

* Adding userData to getweblogs callback.
Allows user-specific data to be available in the callback that returns weblog HTML data.

Return HTTP response code and content type only when no weblog callback defined
2024-02-11 16:34:19 -06:00
Gregg 5011733449 Added option to specify NULL for 4th parameter of homeSpan.enableWebLog()
If 4th parameter (the statusURL) is NULL, web logging will NOT be enabled BUT time server will still acquire time if server address and time zone were specified as 2nd and 3rd parameters.

Note that not having web logging enabled only impacts ability to acquire weblog from HTTP request.  It has no effect on the actual logging of WEBLOG() messages and thus homeSpan.getWebLog() works as expected.
2024-02-11 13:43:28 -06:00
Gregg 7ccb4f0f49 Update StepperControl.h 2024-02-09 22:47:20 -06:00
Gregg c5a0f061ce Removed #include "extras/PwmPin.h" from all Tutorial Examples
Since PwmPin.h is already included in HomeSpan.h, there is no reason to separately include it in user sketches.
2024-02-08 07:39:03 -06:00
Gregg dbb0f6565f Added Stepper_UNIPOLAR and Stepper_UNL2003
ALSO:  Re-arranged include files so that StepperControl.h is now part of HomeSpan.h.   No need to include anything except for HomeSpan.h to use any of the Stepper Motor classes.  Must update documentation accordingly.

NOTE: Always including StepperControl.h DOES NOT increase size of compile if no stepper motors are instantiated.

To do:  Consider doing the same for Pixel, PWM, and RMT as well.
2024-02-07 22:44:22 -06:00
Gregg eaa9cbca40 Get Arduino-ESP32 Version from <esp_arduino_version.h> instead of <core_version.h>
This works fine for all versions after 2.0.3, but returns 2.0.0 for versions 2.0.2 and 2.0.1, as well as 2.0.0.  Not an issue since current version is 2.0.14.
2024-02-04 17:34:02 -06:00
Gregg a3846901e7 Revised Example 11 (Service Names) to use ConfiguredName Characteristic
Complete re-work of Example 11 - fully tested for iOS 17.2.1
2024-02-04 14:10:55 -06:00
Gregg ed7bfdaea9 updated some descriptions 2024-02-01 07:19:00 -06:00
Gregg 44e07dfd5f converted Service Group names to upper case 2024-02-01 07:06:11 -06:00
Gregg e421c40f4f Re-organized Services List into Service Groups 2024-02-01 06:58:10 -06:00
Gregg 1e65056136 Add configuredName() to all applicable Services and deprecated Name() 2024-01-31 22:12:59 -06:00
HomeSpan a8df9d9f2f Moved error/warning output to end of 'i' output 2024-01-30 19:29:04 -05:00
Gregg 73f2da86e9 Added ConfiguredName to Switch and Lightbulb 2024-01-26 17:26:12 -06:00
Gregg 65dd9da130 fixed typo in ServiceLabelNameSpace description 2024-01-24 21:43:10 -06:00
Gregg 5568cc1ddf removed bold font for Characteristic Constants in ServiceList.md 2024-01-24 18:44:44 -06:00
HomeSpan 3e9e7a1902
New Services and Characteristics List (#751)
* auto-generation of service list

* Update makeServiceList

* Update makeServiceList

* Update test.md

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* Update Span.h

* Update test.md

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* Create ServiceListHead.md

* Update ServiceListHead.md

* Update ServiceListHead.md

* Update test.md

* update

* update

* Update ServiceList.md

* update

* Update ServiceList.md

* update
2024-01-23 21:52:54 -06:00
Gregg 437771fabd Cleaned up some public/private permissioning inside PushButton and SpanButton
Ensure users can access constants like TRIGGER_ON_HIGH, TRIGGER_ON_LOW, etc. using any of these equivalent fully-qualified names:

* PushButton::TRIGGER_ON_HIGH
* SpanButton::TRIGGER_ON_HIGH
* SpanToggle::TRIGGER_ON_HIGH
2024-01-13 15:20:20 -06:00
Gregg 260be21462 Added optional triggerType to homeSpan.setControlPin()
Default is SpanButton::TRIGGER_ON_LOW.  Follows same options as SpanButton, including the ability to provide your own triggerType function of form:

boolean f(int pin)
2024-01-13 10:01:03 -06:00
Gregg 3c3e5c21ea Added homeSpan.getAutoPollTask() to return task handler of autoPoll
Returns NULL if autoPoll has not been used.

Also added low stack size for both main Arduino loop task and HomeSpan autoPoll task to 'm' command
2024-01-12 21:57:57 -06:00
Gregg 2d86ee4a25 Truncate all STRING-based Characteristics to 64 characters when adding to JSON
HAP default max length of STRING Characteristics is 64 characters
2024-01-12 21:21:42 -06:00
Gregg fe9e3d7942 Merge branch 'release-1.8.1-dev' of https://github.com/HomeSpan/HomeSpan into release-1.8.1-dev 2024-01-12 18:31:06 -06:00
HomeSpan e42cb4e1dd
Merge pull request #659 from frankonski/buffer_overwrite
Preventing possibility of buffer overwrite.
2024-01-12 19:30:45 -05:00
Gregg b5dcfbbd7d Modified range checks so that "NAN" gets picked up as error for FLOAT Characteristics 2024-01-11 21:57:42 -06:00
Gregg ba240ea4d7 updated putPrepareURL and deleted receiveEncrypted()
Must test with Door example, which uses putPrepare
2024-01-11 06:40:54 -06:00
Gregg d179f039d1 Moved all PSRAM definitions into separate PSRAM.h file
Now allows #include "HomeSpan.h" to be removed from TLV dependencies
2024-01-10 22:05:26 -06:00
Gregg bddffab7ad refactored tlvRespond() to use hapOut instead of sendEncrypted()
To do:

1) update putPrepareURL() to use hapOut instead of sendEncrypted()
2) remove sendEncrypted() since it is no longer needed
3) try moving MAllocator template into separate file (memory.h?) so it can be called from any other module
4) remove #include "HomeSpan.h" from TLV8
2024-01-10 21:53:37 -06:00
Gregg fa5455d6f9 moved tlv streaming into tlv class 2024-01-10 20:44:16 -06:00
Gregg 73f761adc9 started work on TLV streaming with << operator
Goal - eliminate sendEncrypted() completely by using hapOut in tlvRepond().
Next up: use function call instead of << operator so logic can be moved into TLV.h
2024-01-09 22:02:28 -06:00
Gregg 96e6f55c72 Update src.ino 2024-01-08 19:46:16 -06:00
Gregg ffc4ae0cb2 Update src.ino 2024-01-08 19:45:38 -06:00
Gregg 392eac38b9 Added homeSpan.getWebLog() 2024-01-08 18:19:38 -06:00
Gregg 39b7b54d48 Fixed CSS in weblog
Missing conversion from String to c_str() when using hapOut.
2024-01-07 10:22:21 -06:00
Gregg 0492b67b55 Changed hapOut delay back to 1ms - works fine
Identified issue with ESP32-S3 crashing when using PSRAM.  Problem was not the code, but that the sketch was using pins that are needed to run the Octal PSRAM that comes with the Espressif S3 DevKit.
2024-01-06 21:08:32 -06:00
Gregg bd474778e5 fix for PSRAM with new hapOut
Force hapOut to use internal memory only.

Tested on ESP32-S2 with/without PSRAM.  However, crashes on ESP32-S3 when using PSRAM (?!)
2024-01-06 16:55:17 -06:00
Gregg 12c6cf3fe1 Changed HapOut delay from 1ms to 50ms for WiFi transmits. Seems to be much more stable. 2024-01-01 17:35:02 -06:00
Gregg cc7ffb4c07 Moved prettyPrint into HapOut
This completes re-work of all JSON buffer memory management to use HAPOut.

Next up: Stress test with Max Accessories to see how many Accessories we can now handle.
2024-01-01 09:39:54 -06:00
Gregg bef151cdb1 Converted all remaining sprintfAttributes to printfAttributes
This removes last of large-sized JSON buffers - everything has now been converted to using hapOut.

Next up: Must add prettyPrint to hapOut to support 'd' command
2024-01-01 08:49:33 -06:00
Gregg 6c3df551eb Added back weblogCallback() functionality that uses hapOut 2023-12-31 17:05:22 -06:00
Gregg 00944c1f2f Converted sprintfNotify and eventNotify to use HapOut
Successfully tested with MultiTest script
2023-12-31 12:36:47 -06:00
Gregg 20fe4ab6fd Deleted sprintfAttributes for Span, SpanAccessory, and SpanService
These now use the new printfAttributes with HapOut
2023-12-31 11:24:15 -06:00
Gregg 1f13906a25 Added SHA-384 hash computation to HapOut
Hashing of entire database is now done piecemeal within HapOut, preventing the need to load the entire database into a large buffer just to obtain a unique hash.

Modified updateDatabase() to use HapOut.getHash()
2023-12-31 09:36:19 -06:00
Gregg f2cb880e4e Converted sprintfAttributes to printfAttributes and added encryption to HapOut
Success!
2023-12-30 23:07:09 -06:00
Gregg 83924a6bdf Added getSize() to HapOut and changed default behavior to NEVER output anything
Note: getSize() must be called before flush(), which resets byte counter
2023-12-30 17:52:28 -06:00
Gregg 18c74e6f17 Moved StreamBuf into HapOut as private nested class 2023-12-30 17:07:12 -06:00
Gregg 117c348708 Moved StreamBuf parameter calls into HapOut 2023-12-30 16:22:35 -06:00
Gregg fb5c9e1e29 Begin integration of hapStream into HAP.ccp 2023-12-30 11:37:56 -06:00
Gregg 7282c2a8c9 Moved Streamer from Utils.h into separate Streamer.cpp
But declared Streamer inside HomeSpan.h instead of separate Streamer.h since it  should only be used when HomeSpan.h is used.

Also, changed class structure so that it is "final" by removing virtual tags and making all protected variables private.
2023-12-30 07:48:11 -06:00
Gregg f3e98601b0 Initial test of StreamBuffer added to WebLog 2023-12-29 22:19:49 -06:00
Gregg ffe56e7261 Remove include HAP.h from SRP
SRP now only requires Utils (for TempBuffer).

Also, moved HS_ALLOC definitions into Utils so it can be re-used by others files
2023-12-28 18:11:39 -06:00
Gregg cd85cc1629 Completed refactoring of SRP6A and integration into all steps of Pair-Setup 2023-12-28 17:32:17 -06:00