Releases: ljgonzalez1/raspberry-pi-pico-w-doorbell
v1.0.1
Release Notes for v1.0.1
What's New in v1.0.1
Bug Fixes and Patches
-
Improved Network Management
- Reduced the minimum number of readings required to trigger the action from 3 to 1, improving responsiveness (
f81fd66
). - Implemented lower debounce time for more accurate signal detection (
c177753
). - Added retry mechanisms for providers to enhance reliability during network interruptions (
46f11bb
).
- Reduced the minimum number of readings required to trigger the action from 3 to 1, improving responsiveness (
-
Fixes for Notification Mechanisms
- Reverted the "Super-attempts" feature in
network_manager.py
to address unintended behavior and improve reliability (03e714d
). - Resolved issues with loop stalling by ensuring non-blocking operations (
d634445
). - Adjusted main coroutine and loop to enhance stability (
476d86a
,dd3c03c
).
- Reverted the "Super-attempts" feature in
-
Temporary Fix Removal
- Removed a temporary fix in the codebase to clean up unused or redundant logic (
ee108b1
).
- Removed a temporary fix in the codebase to clean up unused or redundant logic (
-
Enhanced Logging and Message Clarity
- Updated messages for better clarity during debugging and user interactions (
327d905
).
- Updated messages for better clarity during debugging and user interactions (
Notable Changes by Module
src/core
-
doorbell.py
- Lowered debounce time for better detection sensitivity.
-
network_manager.py
- Enhanced retry logic for connection attempts and removed "Super-attempts" logic.
src/notifications
notifier.py
- Introduced a retry mechanism for sending notifications with configurable delays and maximum attempts.
src/utils
logging.py
- Updated to reflect message changes and better handle debug outputs during retries.
Installation and Setup
-
Clone the Repository
Copy the updated files into your environment or directly onto the Raspberry Pi Pico’s filesystem. -
Update Configuration
- Verify and adjust settings in
src/config/settings.py
as needed for your environment. - Confirm retry mechanism parameters in
src/notifications/notifier.py
for your desired behavior.
- Verify and adjust settings in
-
Deploy and Run
- Upload the files to the device and execute
main.py
. - Ensure required dependencies are installed.
- Upload the files to the device and execute
Known Issues and Limitations
-
Network Reconnection Overhead
Network reconnections are still required for each notification, which might introduce delays if multiple providers are enabled. -
Provider Retry Behavior
Retry mechanisms might cause slight delays during network outages when attempting to send notifications.
Future Enhancements
-
Optimized Retry Mechanisms
Implement smarter retry logic to reduce delays and optimize network usage. -
Provider-Specific Improvements
Enhance individual provider configurations for more robust notification handling. -
Centralized Loop Management
Explore further optimizations to avoid halts or blocking issues in the main loop.
License
This project is licensed under the MIT License. See license
for full details.
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Release Notes for v1.0.0
What's New in v1.0.0
Major Updates
-
Complete Code Rewrite
This version introduces a major rewrite of the project, completely restructuring the codebase. All previous versions are incompatible with this new structure. -
Modular Architecture
The project now adheres to a modular architecture, enhancing maintainability, scalability, and clarity. Modules have been neatly categorized intocore
,config
,notifications
, andutils
. -
Enhanced Notification Providers
Added support for new notification providers including Twilio, Slack, Discord, and Pushover. This extends the system’s flexibility in integrating with various services. -
Improved Network Management
IntroducedWiFiManager
for robust Wi-Fi connection handling, with enhanced retry mechanisms and better error reporting. -
Updated License
The project now includes an explicit MIT license in thelicence.txt
file. -
Refined Logging System
TheLogger
class has been improved to provide more granular log levels, making debugging easier.
Notable Changes by Module
src/config
-
credentials.py
Now includes placeholders for Wi-Fi and notification provider credentials. -
settings.py
- Added
ENABLED_PROVIDERS
for dynamic notification configuration. - Maintains flexibility for hardware pin configurations (
DOORBELL_PIN
,LED_PIN
).
- Added
src/core
-
doorbell.py
- Implements a more efficient debounce mechanism for doorbell detection.
- Logs doorbell activity for debugging.
-
heart_led.py
- Provides real-time system status via an LED heartbeat indicator.
- Timing patterns have been fine-tuned for consistency.
-
network.py
- Introduces
WiFiManager
, supporting non-blocking connections and better error handling.
- Introduces
src/notifications
-
factory.py
- Simplifies the creation of notification providers based on the settings.
-
notifier.py
- Manages asynchronous notifications across multiple providers.
-
providers/
base.py
: Defines a standard interface for all notification providers.telegram_provider.py
: Refined Telegram notifications with better multi-chat handling.node_red_provider.py
: Ensures seamless integration with Node-RED via HTTP requests.- (New) Support for Twilio, Slack, Discord, and Pushover (partially implemented).
src/utils
logging.py
- Expanded log levels (
debug
,info
,warning
,error
) for precise logging control.
- Expanded log levels (
Installation and Setup
-
Clone the Repository
Copy the files into your environment or directly onto the Raspberry Pi Pico’s filesystem. -
Update Credentials
- Edit
src/config/credentials.py
with your Wi-Fi and provider-specific credentials. - Configure
src/config/settings.py
to enable the desired notification providers.
- Edit
-
Deploy and Run
- Upload the files to the device and execute
main.py
. - Ensure required dependencies like
uasyncio
are available.
- Upload the files to the device and execute
Known Issues and Limitations
-
Backward Compatibility
This version is not compatible with previous releases due to the complete rewrite. -
Network Reconnection Overhead
The current implementation may reconnect to the network for each notification if multiple providers are enabled. -
Provider Integration
Support for Twilio, Slack, Discord, and Pushover is partially implemented and may require additional configuration.
Future Enhancements
-
Unified Connection Management
Reduce redundancy in connection handling by centralizing network operations. -
Interrupt-Based Doorbell Detection
Explore hardware interrupts to improve the responsiveness and efficiency of doorbell monitoring. -
Complete Provider Integration
Finalize and thoroughly test support for Twilio, Slack, Discord, and Pushover providers.
License
This project is licensed under the MIT License. See license
for full details.
Full Changelog: v0.3.0...v1.0.0
v0.3.0
Release Notes for v0.3.0
What's New in v0.3.0
Major Updates
- New Asset Directory: Introduced an
assets
directory containing images and other resources, such aschat.png
, for enhanced project visualization. - License Update: Added
licence.txt
file to clearly define the licensing and usage terms for the project.
Code Structure and Organization
- Project Restructuring: Organized the project into a more structured format with a dedicated
src
folder containing all source files. - Updated
.gitignore
File: Enhanced the.gitignore
file for better version control, especially in diverse development environments.
Source Code Updates
credentials.py
: Updated to provide clear guidance on modifying WiFi and Telegram bot credentials.heart.py
: Continues to effectively simulate heartbeats using an onboard LED.logging.py
: Improved debug logging functionalities with conditional activation based on theSERIAL_LOGS
flag.main.py
: Refined the doorbell detection mechanism for better responsiveness.messages.py
: Optimized for efficient message handling and sending over WiFi.settings.py
: Updated settings to be more versatile and aligned with new functionalities.wifi.py
: Enhanced WiFi management for a more robust and stable network connection.
Known Issues and Future Enhancements
- Networking: Ongoing efforts to optimize network reconnection frequency and overall network efficiency.
- User Interface: Plans to develop a user-friendly interface for easier configuration and monitoring.
Installation and Setup
- Follow the updated instructions in
readme.md
for a streamlined setup process. Make sure to configuresettings.py
as per your network and Telegram bot details.
Documentation
- Comprehensive documentation updates across all modules for clarity and ease of use.
- Check out the
readme.md
for a complete guide on installation, configuration, and usage.
This release marks a significant milestone in the Raspberry Pi Pico Doorbell Extension project, introducing structural improvements, enhanced documentation, and optimized code for a better user experience.
Full Changelog: v0.2.2...v0.3.0
v0.2.2
Release Notes for v0.2.2
What's New in v0.2.2
Updates and Enhancements
- Enhanced Stability: Addressed minor stability issues for improved system reliability.
- Code Optimization: Made various code optimizations for better performance and efficiency.
- Documentation Improvements: Updated documentation across modules for better clarity and comprehensiveness.
Modules Updates
credentials.py
: Remains unchanged, with placeholder credentials for user customization.heart.py
: No significant changes, continues to simulate heartbeats using an onboard LED.logging.py
: Maintained functionalities for debug and memory information logging.main.py
: Improved the efficiency of the doorbell detection mechanism.messages.py
: Optimized message sending process for greater reliability.settings.py
: No major changes, settings consistent with project requirements.wifi.py
: Enhanced connection management for more stable WiFi interactions.
Known Issues and Limitations
- Networking Efficiency: Exploring solutions to optimize network reconnection frequency.
- Interrupts vs. Polling: Ongoing research to improve the doorbell detection method.
Installation and Setup
- Installation process remains the same as previous versions. Remember to update credentials and settings according to your needs.
Documentation
- Documentation has been updated to reflect the latest changes and provide clear guidance on module functionalities.
Future Plans
- Focused on optimizing network connectivity for enhanced efficiency.
- Continuing efforts to implement interrupt-based doorbell detection for improved performance.
This release aims to refine the Raspberry Pi Pico Doorbell Extension project with stability improvements and minor code optimizations. I value your feedback and suggestions for future enhancements.
v0.2.1
Release Notes for v0.2.1
What's New in v0.2.1
Minor Updates and Bug Fixes
- Stability Improvements: Addressed minor stability issues to enhance overall system reliability.
- Code Refinements: Made slight adjustments and optimizations to various modules for better performance and readability.
- Documentation Updates: Continued efforts to provide clear and comprehensive documentation across all modules.
Modules Updates
credentials.py
: No changes, credentials remain as placeholders for user customization.heart.py
: Minor adjustments to the LED heartbeat pattern for more consistent behavior.logging.py
: No significant changes, continues to provide debug and memory information logging.main.py
: Optimized polling mechanism for improved performance.messages.py
: Fine-tuned message sending functionalities for better reliability.settings.py
: No significant changes, settings remain consistent with the project's requirements.wifi.py
: Enhanced connection management and error handling.
Known Issues and Limitations
- Networking efficiency: The system reconnects to the network for each message sent, which might not be the most efficient method. Future updates will aim to optimize this.
- Interrupts vs. Polling: The current system uses polling for detecting the doorbell signal, which might not be as efficient as interrupts. Research and development are ongoing to improve this aspect.
Installation and Setup
- Installation and setup remain similar to the previous version. Ensure to update the credentials and settings as per your requirements.
Documentation
- Further refined and updated documentation across all modules for clarity and ease of understanding.
Future Plans
- Exploring more efficient network connectivity methods to reduce reconnections.
- Investigating the use of interrupts for doorbell detection to improve efficiency over polling.
This minor release aims to refine the Raspberry Pi Pico Doorbell Extension project with stability improvements and minor tweaks. I'm committed to continuous improvement and welcome any feedback or suggestions.
Full Changelog: v0.2.0...v0.2.1
0.2
Release Notes for v0.2
What's New in v0.2
Enhancements
- Refined Documentation: Added comprehensive and detailed docstrings for improved readability and understanding of the code.
- Improved Heartbeat Simulation: Enhanced the LED heartbeat pattern for better representation of the board's activity status.
- Robust Logging: Expanded the logging module to include memory information display.
- Simplified Main Script: Streamlined
main.py
for easier maintenance and readability.
Modules Updates
credentials.py
: Updated documentation to emphasize the importance of replacing placeholders with actual credentials.heart.py
: Enhanced heartbeat patterns for a clearer indication of the board's status.logging.py
: Added memory information logging function.main.py
: Optimized the main script logic for better performance.messages.py
: Ensured consistency in message sending functionalities across different platforms.settings.py
: No significant changes, but code comments were refined for better clarity.wifi.py
: Improved connection handling and error reporting.
Bug Fixes
- Addressed minor issues to enhance the stability and reliability of the system.
Installation and Setup
- Follow the same steps as in v0.1 but ensure to review updated documentation in each module for any new configurations or changes.
Documentation
- Each module now comes with detailed docstrings, explaining the purpose, functions, and usage clearly.
Future Plans
- Looking into implementing interrupts for more efficient doorbell detection.
- Exploring possibilities to optimize network connectivity and reduce the need for reconnections.
Miscellaneous
.gitignore
updated to keep the repository clean and focused.
This release marks an important step towards a more robust and user-friendly Raspberry Pi Pico Doorbell Extension. We encourage feedback and suggestions for further improvements.
Full Changelog: v0.1...v0.2.0
v0.1 First Release
Release Notes for v0.1 First Release
What's New
Everything
Features
- Heartbeat LED Indicator: An onboard LED on the Raspberry Pi Pico board simulates heartbeats to indicate the board's operational status.
- Doorbell Monitoring: The system detects when the doorbell button is pressed and triggers notifications.
- Notification Services: Integration with Telegram and Node-RED allows for sending alerts when the doorbell is pressed.
- Power-Efficient Networking: The system connects to the network only as necessary to send messages, enhancing privacy and reducing network presence.
Modules
credentials.py
: Stores WiFi and Telegram credentials.heart.py
: Manages the heartbeat LED indicator.logging.py
: Provides debug logging functionalities.main.py
: Main script that integrates all components.messages.py
: Handles the sending of messages over WiFi.settings.py
: Stores various configuration settings.wifi.py
: Manages WiFi connections.
Improvements
- Single-core polling is used for detecting button presses, ensuring simplicity in implementation.
- Network connections are established only when messages are sent to minimize online presence.
Installation and Setup
- Clone the repository and upload all files to the Raspberry Pi Pico.
- Update
credentials.py
with your WiFi and Telegram details. - Modify
settings.py
to match your configuration preferences.
Limitations
- Uses polling rather than interrupts for detecting doorbell presses, which might be less efficient.
- Reconnects to the network for each message sent, which may not be the most efficient networking approach.
Documentation
- Comprehensive documentation provided for each module, explaining functionalities and usage.
Future Enhancements
- Potential exploration of using interrupts for more efficient doorbell press detection.
- Improvement in network efficiency.
Miscellaneous
.gitignore
file added to keep the repository clean from system files and IDE-specific directories.
This release serves as the foundational version of the Raspberry Pi Pico Doorbell Extension project. Feedback and contributions are welcome to enhance its capabilities and efficiency.
Full Changelog: https://github.com/ljgonzalez1/raspberry-pi-pico-w-doorbell/commits/v0.1