HomeSpan
889a326e02
Address conflict between SpanButton and certain Adafruit Boards
...
Change enum from BUTTON and TOGGLE to HS_BUTTON and HS_TOGGLE to avoid conflict with #define BUTTON in certain Adafruit boards
2023-04-20 21:56:55 -04:00
Gregg
c287564aed
Update HomeSpan.cpp
2023-04-03 17:15:51 -05:00
Gregg
2ba75c13ea
Add CLI commands 'p' and 'P' to clone device pairing data
2023-04-03 08:28:51 -05:00
Gregg
ecd97e6e71
Added option to set Priority and CPU in autoPoll()
...
Also added vTaskDelay(5) in pollTask to make sure competing tasks can operate (for example, if priority was set to greater than 2, touch sensor did not operate). Adding vTaskDelay(5) solved this problem.
2023-03-25 10:58:03 -05:00
Gregg
09063fb7dc
Extended functionality of setValidValues() to allow INT, UINT8, UINT16, and UINT32 Characteristics
2023-02-25 15:07:02 -06:00
Gregg
22bd16e936
Added ability to set OTA password from within sketch
...
Adds second form of homeSpan.enableOTA(const char *pwd, boolean safeLoad=true)
2023-02-11 07:49:16 -06:00
Gregg
88897ee085
Updated copyright dates on source code
2023-02-04 11:41:57 -06:00
Gregg
e2678f5661
Added position() method to SpanToggle()
...
Created PushButton::OPEN and PushButton::CLOSED enums.
This completes all SpanToggle() functionality. Will add a SpanToggle() to UnitTest.
2023-02-03 23:09:08 -06:00
Gregg
c3d0c98e04
Created SpanToggle()
...
Derived from SpanButton()
2023-01-31 22:55:43 -06:00
Gregg
03ba061b9b
Added logic to hide AP SSID from broadcasting when WIFI_AP_STA used for SpanPoint
...
This does NOT effect the HomeSpan Access Point from being broadcast as usual when launched.
2023-01-28 18:05:59 -06:00
Gregg
eb53e7f6e7
Moved SpanPoint initialization message to main Info 'i' output
...
Created SpanPoint table within 'i' output
2023-01-25 22:22:49 -06:00
Gregg
7eca1e776b
Add option to SpanPoint to use softAP MAC Address instead of STA
...
Needed to support ESP-NOW on ESP-8266 chips, which seem to only work if connecting into softAP MAC Address once HomeSpan is connected to WiFi network (prior to connection ESP-8266 will properly connect to normal STA address as well as softAP address).
2023-01-22 18:05:59 -06:00
Gregg
72b4ece64d
Added DATA format
...
Includes 3 new methods: getData(), getNewData(), and setData()
2023-01-01 11:33:50 -06:00
Gregg
eecce34848
Added NVS storage for last channel used in SpanPoint
...
Applicable only for remote devices (i.e. not a Hub device). Last channel stored is used as initial channel upon reboot, provided that this channel is allowed by the channel mask (if not, the first allowed channel is selected instead).
2022-12-27 09:55:30 -06:00
Gregg
7939624bf7
Added Service::TelevisionSpeaker
...
Also updated Television Example. Volume buttons on remote now function as expected, though there does not seems to be a mute button
2022-12-23 16:51:55 -06:00
Gregg
484f1c4f2e
Cleaned up compiler warnings
...
* Changed ~SpanService to virtual function to ensure any user-defined destructor is also called
* Found/corrected bug in error message related to defining a Characteristic without any Service
* Added warning/error ID numbers to warning/error messages
* Other misc changes to clean up compiler warnings
2022-12-02 17:49:54 -06:00
Gregg
f775a63b7a
Completed and tested all statusCallback and statusString logic
2022-10-30 08:49:53 -05:00
Gregg
05cbc03f12
Added homeSpan.statusString(HS_STATUS statusMessage)
...
Can be used in statusCallback to convert HS_STATUS to char string
2022-10-29 18:36:30 -05:00
HomeSpan
645c169a5e
created STATUS_UPDATE macro
...
Combines statusLED updates with statusCallback updates
2022-10-29 11:34:48 -05:00
Gregg
d55dad1529
Added more events to statusCallback()
2022-10-29 07:37:34 -05:00
HomeSpan
bb1b599797
Completed homeSpan.setStatusCallback()
...
To Do: create documentation
2022-10-24 21:48:37 -04:00
HomeSpan
7ff91ccf02
Changed hsEventCallback to statusCallback
2022-10-24 19:03:15 -04:00
HomeSpan
4e23c5e357
Updating hsEventCallback with more events
2022-10-24 06:46:04 -04:00
HomeSpan
5b38c6a04a
Started homeSpan.setEventCallback()
2022-10-23 21:26:41 -04:00
Gregg
74bbde2492
Changed SpanPoint::send(void *data) to SpanPoint::send(const void *data)
2022-10-16 16:53:11 -05:00
Gregg
2d411bab82
Updated SpanPoint so that WiFi_AP_STA is only used if receiveSize>0
...
Next up: explore power-reducing modes and sleep modes for remote sensors to extend battery life.
2022-10-03 22:04:51 -05:00
Gregg
ab21a0c96c
Created Other Examples - RemoteSensors
...
Created MainDevice and RemoteDevice sketches
2022-10-02 10:14:09 -05:00
Gregg
23afdb3711
Completed all SpanPoint code
...
Allows for bi-directional transmission between main HomeSpan device and one or more remote devices.
To Do: Create and test with Temperature Sensor Example
2022-10-01 15:33:11 -05:00
Gregg
b7317c3b5f
Added SpanPoint::send() functionality
...
Works as expected.
Next Up: Modify send() logic so that channels are NOT scanned if device is a main HomeSpan hub.
2022-09-30 22:20:32 -05:00
Gregg
c819426dec
Moving HomePoint.h back into HomeSpan.h
...
Added SpanPoint::setAsHub(), which is called after homeSpan.begin() to set device as Hub so SpanPoint knows not to change WiFi channel.
Also added check to make sure there are no SpanPoint objects instantiated before a call to homeSpan.begin() (if it is called at all).
2022-09-30 17:27:57 -05:00
Gregg
72294bde8b
Move all SpanPoint code into separate HomePoint.cpp and HomePoint.h files
...
This enables SpanPoint to operate as a standalone library with no reliance on anything in HomeSpan.
To Do: migrate all HomePeer code into SpanPoint. This will yield a universal standalone HomePoint library that can be used for BOTH the receiver and the sender (which automatically means two-way communication is always possible)
2022-09-28 21:16:29 -05:00
Gregg
58683586bc
Added SpanPoint::get()
...
This completes SpanPoint. Next: rename HomePeer to be HomePoint.
2022-09-26 22:00:32 -05:00
Gregg
4f983051ce
Created SpanPoint
...
Verified ESP-NOW is communicating correctly with HomeSpan. Verified encryption works. Next step - create linkages between incoming data and Services; create queue structure to transfer data.
2022-09-25 13:53:54 -05:00
Gregg
22cfa130b4
Created HomePeer
...
This is a self-contained library that is used for remote devices set up as HomeSpan Peers via ESP-NOW.
2022-09-24 16:49:32 -05:00
Gregg
4a4a5f8a6b
Started development of ESP-NOW
...
Also, added WiFi.begin("none") to make sure all WiFi data is erased when requested.
2022-09-05 18:42:37 -05:00
Gregg
355a2dfd4d
Updated rest of code to reflect latest version of statusLED
...
Removed all checks to see if statusLED is defined, since it will now ALWAYS be defined, even if the statusDevice is set to NULL.
2022-09-02 18:47:15 -05:00
Gregg
f2e1f5bc70
Updated Blinker Class to allow for NULL Blinkable Device
...
If NULL, all functions are ignored and getPin() returns -1
2022-09-02 18:15:53 -05:00
Gregg
fc76db092d
started development of Blinkable Interface to allow generic LED to be used with Blinker
2022-08-27 17:33:08 -05:00
Gregg
3b2c36f179
Changed PushButton::pressType_t to triggerType_t and refreshed triggerType_t constants
...
Pre-selects are no defined in both PushButton and SpanButton as: TRIGGER_ON_LOW, TRIGGER_ON_HIGH, and TRIGGER_ON_TOUCH
2022-08-15 21:21:21 -05:00
Gregg
16b71af6f7
Added button type to SpanButton HomeSpan Info
2022-08-14 18:14:41 -05:00
Gregg
e8d40150ed
Incorporated logic to auto-calibrate touch sensors
...
Works with ESP32, ESP32-S2, and ESP32-S3 (ESP32-C3 does not support Touch Sensors).
2022-08-14 18:03:59 -05:00
Gregg
ee55f268bd
Finalized new SpanButton and PushButton functionality
...
Streamlined interface for both functions. To Do: Update SpanButton documentation
2022-08-13 07:52:32 -05:00
Gregg
9191b8664e
Adding generic SpanButton function
2022-08-12 23:15:02 -05:00
Gregg
7841081fda
Added option to set SpanButton type
...
Types include: GROUNDED, POWERED, and TOUCH.
Also added configureTouch() to customize parameters used for touch sensors.
2022-08-12 21:56:45 -05:00
Gregg
57d791178c
starting update of ControlPin logic to make it more generic
2022-08-10 06:20:50 -05:00
Gregg
689ea86991
Updating ProgrammableHub2 Example
2022-07-28 17:13:04 -05:00
Gregg
c891548ffa
Updated webLog logic to print system messages as well as user messaages
...
User messages only printer is logLevel>0. Also, user messages are prefixed in CLI with the word "WEBLOG: "
2022-07-23 08:19:25 -05:00
Gregg
989b315fc0
Updated WiFi disconnect/re-connect logic
...
Only initialize MDNS, WebLog, and OTA when first connecting to WiFi. Do not re-initialize upon re-connections after a disconnect.
Also, add number of disconnects, and reset_reason() to WebLog
2022-07-11 21:23:20 -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