Commit Graph

1412 Commits

Author SHA1 Message Date
HomeSpan 10789efe7e
Update Tutorials.md 2022-06-20 16:44:50 -05:00
HomeSpan 281d5708ab
Update RMT.md 2022-06-11 16:58:20 -05:00
HomeSpan 4f3df5d276
Update PWM.md 2022-06-11 16:55:46 -05:00
HomeSpan 53a9705d63
Update README.md 2022-06-11 16:53:41 -05:00
Gregg bb4b0e3dea Updates for ESP32-S3 Compatability
Added Feather.h mappings; and
Changed RMT clock logic in RFControl to check for presence of RMT_SYS_CON_REG instead of simply looking for CONFIG_IDF_TARGET_ESP32C3;

** NOTE:  Can ignore warnings about RMT_CH4...CH7+RX_LIM_REG redefine errors.  This has been reported to Espressif IDF Github, been acknowledged as a bug, and will be fixed in a future release of the IDF.  Since HomeSpan does NOT use the RMT peripheral for RECEIVING, these warning messages have no effect.
2022-06-11 07:56:42 -05:00
HomeSpan 5b5836d778
Update FAQ.md 2022-05-30 06:44:26 -05:00
HomeSpan 7d9dbd04b8
Update Reference.md 2022-05-29 21:29:53 -05:00
HomeSpan ae45bdbd1d
Update FAQ.md 2022-05-29 21:25:54 -05:00
HomeSpan 087faee38a
Update FAQ.md 2022-05-29 17:56:35 -05:00
HomeSpan 92514115c7
Update FAQ.md 2022-05-29 17:45:28 -05:00
HomeSpan af5839e5a9
Update Reference.md 2022-05-29 10:32:57 -05:00
Gregg c5ba453a95 Converted Span to class; added homeSpan.getLogLevel() and homeSpan.addWebLog(fmt,...)
These functions are needed to provide public access to API now that Span is a class instead of a struct
2022-05-29 10:27:34 -05:00
Gregg 2b25acf2e1 Converted SpanUserCommand to class from struct
Also cleaned up some code by moving a few HAPClient routines into Span polling function.
2022-05-29 06:42:38 -05:00
Gregg 86a0c1cf75 Changed SpanCharacteristic and SpanButton from struct to class
Also moved SpanButton checking into Span instead of awkward reference to HAPClient function
2022-05-28 14:48:49 -05:00
Gregg bb1d0050e2 Changed SpanAccessory and SpanService to class from struct
Split members into private/protected/public
2022-05-28 11:24:11 -05:00
HomeSpan 6cfbe3c209
Update CLI.md 2022-05-27 18:41:09 -05:00
HomeSpan 86a119be8f
Update Tutorials.md 2022-05-27 18:26:28 -05:00
Gregg 2520eed6d8 Added detailed comments to 20-AdvancedTechniques
To do:  Add Tutorial to HomeSpan Documentation
To do:  test sketch on S2 and C3 devices
To do:  add homeSpan.autoPoll() to Unit Test as well
2022-05-23 21:26:57 -05:00
HomeSpan e245822428
Update README.md 2022-05-22 16:37:14 -05:00
HomeSpan 69789ec66c
Update Reference.md 2022-05-22 16:33:14 -05:00
Gregg 68b4a9f1cb Merge branch 'dev' of https://github.com/HomeSpan/HomeSpan into dev 2022-05-22 13:13:38 -05:00
Gregg f75596f3cd Changed deleteAccessory from int to boolean
Returns true on success, otherwise false
2022-05-22 13:13:34 -05:00
HomeSpan ae2a5f0a67
Update Reference.md 2022-05-22 11:46:06 -05:00
HomeSpan 1b1123d480
Update Reference.md 2022-05-22 11:21:40 -05:00
Gregg 6018f37b60 Added optional stackSize argument to homeSpan.autoPoll()
If not specified, default is CONFIG_ARDUINO_LOOP_STACK_SIZE which is typically defined in the Arduino-ESP32 library as 8192.
2022-05-22 11:00:40 -05:00
HomeSpan 6d409e9b89 updated version check
requires version 2.X of the Arduino-ESP32 board manager
2022-05-22 08:57:23 -05:00
Gregg f9b8e2165a Added homeSpan.autoPoll() to 20-AdvancedTechniques
Deleted Arduino loop() function entirely since it no longer needed.
2022-05-21 18:24:35 -05:00
Gregg 4d6f502708 Create 20-AdvancedTechniques.ino 2022-05-21 18:19:23 -05:00
Gregg 72ddee9061 Add weakly-define Arduino loop() function (defined as NO OP)
Allows you to compile a sketch without defining the Arduino loop() function.  Useful in cases where homeSpan.autoPoll() is used instead.
2022-05-21 17:26:27 -05:00
Gregg 1f89673fb7 Updated 20-DynamicBridge to use std::array<>
This allows the use of std::find(), std::remove, and iterator methods.  Code is more intuitive.
2022-05-21 17:05:23 -05:00
Gregg 7835665e60 Update 20-DynamicBridge.ino 2022-05-21 12:11:53 -05:00
Gregg 00ea4c6dd8 Changes homeSpan.getAccessory(aid) to homeSpan.deleteAccessory()
The only reason to have used getAccessory(aid) is to delete it, so the delete command is now invoked automatically.  Function returns 0 on success (matching aid found) or -1 on fail (aid not found)
2022-05-21 12:08:03 -05:00
Gregg 52a977d2f1 Revert "sort Accessories by AID to ensure same order all the time during dynamic changes"
This reverts commit 2e98b163b2.
2022-05-19 10:18:00 -05:00
HomeSpan 2e98b163b2 sort Accessories by AID to ensure same order all the time during dynamic changes 2022-05-18 16:31:15 -05:00
Gregg f471e7377b Update 20-DynamicBridge.ino 2022-05-14 11:21:59 -05:00
Gregg 615d373850 Added Example 20 - Dynamic Bridge. Also created homeSpan.getAccessory(aid) 2022-05-14 10:00:30 -05:00
Gregg d326ae1abf Added logic to delete PushButtons when Service is deleted
This completes all code for the ~SpanService() destructor.

To do: create tutorial example demonstrating a Dynamic Bridge
2022-05-09 21:27:18 -05:00
Gregg dc11c59a00 Deleted 'C' CLI command - replaced with homeSpan.updateDatabase()
Method homeSpan.updateDatabase(boolean updateMDNS) recomputes database hash and compares with previous hash.  If changed, config number is updated and saved in NVS along with new hash.  If updateMDNS is true, a new "c#" MDNS record is also broadcast with the new config number.  This triggers HomeKit to call for a database refresh.  Method returns true if config number has changed, or false if it has not.
2022-05-09 21:03:23 -05:00
Gregg 058d6b0c96 Completed destructors for SpanAccessory, SpanService, and SpanCharacteristics
Tested to ensure any combination can be deleted.

To do: must add logic to destruct any PushButtons that were added to a Service
2022-05-08 15:27:50 -05:00
Gregg 05f1204b4f Continuing destructor code... 2022-05-08 11:56:26 -05:00
Gregg 554cefd3ce Initial work on adding destructors to Accessories, Services, and Characteristics
Will allow for dynamic changes to database without rebooting.
2022-05-08 07:02:19 -05:00
Gregg bddfb4658a Added 'm' CLI command to print free 8-bit heap memory 2022-05-06 22:19:37 -05:00
Gregg 7546350775 Added "C" CLI command and updated/fixed config number logic
The "C" command computes a hash of the current database config and updates the config number if needed.  If config number has changed, the MDNS "c#" record is updated and the new config number is rebroadcast.  This triggers HomeKit to immediately request an update of the HAP database so that the changes can be shortly reflected in the Home App without the need to close any Client connections or reboot the device.

The config number logic has also been updated/fixed.  Previously it would create a hash from the full HAP database, which includes the value of each characteristic.  Thus, initial value changes of Characteristics, as a result of stored values in NVS, would cause an update to the config number upon reboot.
 This is not problematic, but also not intended, as a change in value is not really a change in the database config.  The new logic computes a hash of the database that EXCLUDES all Characteristic values.
2022-05-06 17:04:15 -05:00
Gregg 628c29c6b6 Updating logic that determined HAP Configuration Number (MDNS=c#) 2022-05-06 16:13:25 -05:00
Gregg f48cea8afb Completed refactoring of 'i' CLI command
All error checking and database validation is now done dynamically every time the 'i' command is run.
2022-05-01 17:03:07 -05:00
Gregg 18414d8856 Continuing refactor of 'i' CLI command 2022-05-01 12:47:08 -05:00
Gregg 7b30f971e2 Continued refactoring of 'i' CLI command 2022-05-01 09:24:45 -05:00
Gregg 9f71c67f14 Updated logic for required/optional Characteristics
Logic now embedded in 'i' CLI command.
2022-04-30 22:20:42 -05:00
Gregg 0e6f7d27f9 Continuing with 'i' refactoring
Next up: Re-do optional/required Characteristics logic
2022-04-30 18:18:15 -05:00
Gregg 5f463b013e Continuing to refactor 'i' CLI command 2022-04-30 16:29:31 -05:00