-
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
ksIotFrameworkLib is a composition-oriented Internet of Things framework for Arduino ESP32/ESP8266 that provides a simple and extendable architecture, handles device setup (WiFi setup, MQTT and application-specific configuration), network connectivity, MQTT telemetry protocol, and more...
Use the sidebar to explore the framework documentation.
ksIotFrameworkLib is a modern Arduino library for ESP32 and ESP8266, built to support scalable and maintainable IoT applications. It eliminates the need to reinvent connectivity, configuration, and device management layers for every project.
- πΆ WiFi provisioning via an automatic Access Point setup on first boot - making onboarding smooth and user-friendly
- π Robust MQTT connectivity with built-in reconnect logic - enabling effortless telemetry and remote control
- π§© Composition-oriented architecture - encouraging clean separation of concerns and reuse of modular components
- π Device Portal - A built-in HTTP/websocket portal for device setup, monitoring, OTA firmware updates, and terminal access
- β‘ OTA updates - Over-the-air firmware updates through the web interface
- π Status monitoring - Built-in device status reporting and health monitoring
- ποΈ Web terminal - Interactive terminal for real-time logs and custom commands
- π Power management - Modem sleep support for reduced power consumption
- Smart home solutions - sensors, controllers, monitoring, and alarming
- Telemetry systems - sending sensor data and device statuses
- Remote control applications - switching devices, executing commands
- IoT gateways - connecting and managing multiple IoT devices
- Home Assistant integration - MQTT-based smart home automation
Devices running on ksIotFrameworkLib have been tested in production for months without interruption, demonstrating the framework's stability and reliability. One example use case includes remote control of a heating boiler fully integrated with Home Assistant via MQTT.
- π Getting Started - Installation and your first project
- ποΈ Architecture Overview - Understanding the framework structure
- π§© Core Concepts - Applications, Components, and App Rotator
- π¦ Components Reference - All built-in components documented
- βοΈ Configuration - Managing device configuration
- π Device Portal - Web interface and OTA updates
- π¬ Advanced Topics - Custom RTTI, events, power saving
- π‘ Examples - Practical implementation examples
- π Doxygen Documentation - Full API reference
- π» GitHub Repository - Source code and issues
- π¦ PlatformIO Registry - Library registry
Build your application from reusable components. The framework provides:
- Base component class with lifecycle management
- Automatic component initialization and cleanup
- Component discovery and dependency injection
- Custom RTTI for type-safe component casting
Run multiple applications on one device with automatic failover:
- Main application for device logic
- Configuration assistant for setup
- Seamless switching on errors or user action
The framework includes ready-to-use components for:
-
ksWifiConnector- WiFi connection management -
ksMqttConnector- MQTT client with auto-reconnect -
ksWifiConfigurator- WiFi provisioning via captive portal -
ksMqttConfigProvider- MQTT configuration management -
ksDevicePortal- Web interface for device management -
ksDevStatMqttReporter- Device status via MQTT -
ksLed- Simplified LED control -
ksResetButton- Hardware reset button handling -
ksConfigProvider- Configuration storage and retrieval
Publish-subscribe event mechanism for loose coupling between components.
- ESP32 - Recommended for new projects
- ESP8266 - Supported (SDK 305 or later)
- Arduino Framework - ESP32 Arduino Core 3.0+ or ESP8266 Core 3.0+
- PlatformIO - Highly recommended (auto-manages dependencies)
-
C++20 - Required (uses
gnu++2astandard)
- PubSubClient - MQTT client library -arduinoWebSockets - WebSocket support
Note: PlatformIO automatically fetches all dependencies.
One real-world implementation using this framework:
An all-in-one, custom-built Zigbee gateway designed to integrate with Home Assistant via ZHA. The project blends connectivity, audio alerts, and environmental sensing into a single ESP32-powered device running on ksIotFrameworkLib.
Contributions are welcome! Please see the CONTRIBUTING.md in the main repository for guidelines.
This project is licensed under the MIT - Non-AI License - see the LICENSE file for details.
βΉοΈ About the Non-AI License: This license grants you the same generous permissions as the standard MIT License (allowing you to use, copy, modify, distribute, and sell the software for your projects), but with one specific restriction: the source code and documentation may not be used to train Artificial Intelligence (AI) or Machine Learning (ML) models. This helps protect the project's intellectual property from unauthorized scraping and usage by AI generators.
π€ This wiki is automatically generated and may contain errors.
Please report any issues here:
π https://github.com/cziter15/ksIotFrameworkLib/issues