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
Gregg
88f2373a71
Continued refactoring of 'i' CLI command
2022-04-30 11:04:57 -05:00
Gregg
212900f624
Initial re-factoring of "i" command
...
Instead of creating a static configLog for display upon start-up, an info log will be generated based on real-time data whenever the 'i' CLI command is requested. This provides for more streamlined error-checking as well.
2022-04-30 07:57:01 -05:00
Gregg
82035df0a7
Removed enabling of IPv6
...
Not having an IPv6 address is NOT the cause of the Arduino 2.0 OTA network port problem.
2022-04-29 18:16:43 -05:00
Gregg
6a8b3653da
Update FeatherPins.h
...
Mappings are now based on specific boards, not just the architecture (e.g. S2 vs. C3).
2022-04-27 21:11:44 -05:00
Gregg
4659e6f660
Enabled IPV6 Address Broadcast
...
Added to see if this addresses the mdns-discovery issue in Arduino IDE 2.0.0 interface.
2022-04-27 20:42:38 -05:00
Gregg
6dacbb0a8c
Update FeatherPins.h
...
Changed mapping for S2 to Espressif ESP32-S2 (instead of UM Featherboard)
2022-04-27 06:31:32 -05:00
Gregg
044fe22b1f
Made FirmwareRevision Characteristic PR+EV instead of just PR
...
Allows for updating FirmwareRevision, which HomeKit seems to poll every 60 seconds.
2022-04-26 21:45:29 -05:00