Skip to content

Latest commit

Β 

History

248 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏑 IoThome

A standalone ecosystem integrating IoTextra, IoTbase and IoTsmart series modules with Tasmota. It enables automation logic for smart home IoT applications, such as smart farming, without requiring external controllers or servers.


⚑ Key Principle

The binary is selected by SoM. The Template is selected by the board.

  • Flash the Tasmota binary that matches your SoM (System-on-Module) β€” see the SoM β†’ binary table in Setup.md
  • Apply the Tasmota Template that matches your carrier board (IoTbase, IoTsmart) β€” see /Tasmota_Templates

This separation means you can swap the SoM without changing the Template, and vice versa.


🌱 Make Things Happy Platform Philosophy

Modern prototyping tools make it easy to build a demo but extremely hard to transition that prototype into a stable, maintainable product. Teams often redesign hardware from the ground up after using Raspberry Pi, Arduino, or similar prototyping boards β€” a costly and time-consuming process that burdens long-term support.

The Make Things Happy platform eliminates this gap by standardizing I/O hardware through the IoTextra module family and providing two clear integration paths:

  • IoTbase for full-featured, serial-ready solutions using SoMs
  • IoTsmart for compact wireless MCU nodes

All modules are Open Hardware, well-documented, and usable independently.

To unify these hardware options for smart home users, we created IoThome.


πŸ”Ž What Is IoThome?

IoThome is a software layer that sits on top of Tasmota and the IoTextra hardware family. It provides ready-to-use Berry drivers, Templates, and automation logic so you can go from hardware assembly to a running smart home node without writing firmware from scratch.

Layer Role
IoTextra modules Standardized I/O hardware (analog inputs, digital I/O, etc.)
Tasmota Open-source ESP32 firmware handling connectivity, OTA, and much more
IoThome Berry Drivers & Application Scripts Application-level logic running on-device inside Tasmota
IoThome Templates Pre-configured GPIO mappings for each supported carrier board

No external server, hub, or cloud dependency is required. Every node runs autonomously and locally.


πŸ› οΈ Supported Hardware

Carrier Boards (Templates are organized by board)

Board Form Factor Compatible SoMs
IoTsmart ESP32-S3 Fixed SoM ESP32-S3 (integrated)
IoTsmart XIAO XIAO slot XIAO ESP32-S3, XIAO ESP32-C6, XIAO ESP32-C3, and other XIAO-compatible SoMs
IoTbase PICO PICO Waveshare ESP32-S3 PICO and other PICO-compatible SoMs
IoTbase NANO Nano Arduino Nano ESP32, Waveshare ESP32-S3 Nano, and other Nano-compatible SoMs
IoTbase Feather Feather Adafruit Feather ESP32-S3, Adafruit Feather ESP32-C6, and other Feather-compatible SoMs

⚠️ IoTsmart ESP32-S3 requires a Tiny Adaptor Board with Cable for flashing.

Carrier Board Software Compatibility

Carrier Board IoTflow (Node-RED) IoThome (Tasmota)
IoTbase PICO + Waveshare ESP32-S3-Pico πŸ”Ά Coming Soon πŸ”Ά Coming Soon
IoTbase PICO + Waveshare ESP32-C6-Pico πŸ”Ά Coming Soon πŸ”Ά Coming Soon
IoTbase PICO + RP2040 Open β€”
IoTbase PICO + RP2350 Open β€”
IoTbase NANO + Waveshare ESP32-S3-NANO Open Open
IoTbase Feather + Adafruit ESP32-C6 Feather πŸ”Ά Coming Soon πŸ”Ά Coming Soon
IoTbase Feather + FeatherS3[D] ESP32-S3 πŸ”² Planned πŸ”² Planned
IoTsmart RP2040 Open β€”
IoTsmart RP2350A Open β€”
IoTsmart ESP32-S3 Open Open
IoTsmart XIAO + XIAO RP2350 πŸ”Ά Coming Soon β€”
IoTsmart XIAO + XIAO ESP32-S3 πŸ”Ά Coming Soon πŸ”Ά Coming Soon
IoTsmart XIAO + XIAO ESP32-C5 πŸ”² Planned πŸ”² Planned
IoTsmart XIAO + XIAO ESP32-C6 πŸ”² Planned πŸ”² Planned

Legend:

  • Open β€” available, click to open
  • β€” β€” not applicable
  • πŸ”Ά β€” Coming Soon
  • πŸ”² β€” Planned

Supported IoTextra Modules

Digital I/O

  • IoTextra Input
  • IoTextra Relay2
  • IoTextra SSR Small
  • IoTextra MOSFET2
  • IoTextra Octal
  • IoTextra Octal2

Analog / Combo

  • IoTextra Analog
  • IoTextra Analog 3
  • IoTextra Combo

Template Coverage

IoTextra Tasmota Compatibility

IoTextra Module IoTsmart ESP32-S3 IoTsmart XIAO + XIAO ESP32-S3 IoTbase PICO + Waveshare ESP32-S3-Pico IoTbase NANO + Waveshare ESP32-S3-NANO IoTbase Feather + Adafruit ESP32-C6 Feather
Input Template πŸ”Ά πŸ”Ά Template πŸ”Ά
Relay πŸ”² πŸ”² πŸ”² πŸ”² πŸ”²
Relay2 Template πŸ”Ά πŸ”Ά Template Template
SSR Small Template πŸ”Ά πŸ”Ά Template πŸ”Ά
MOSFET2 Template πŸ”Ά πŸ”Ά Template πŸ”Ά
Quadro Template πŸ”² πŸ”² πŸ”² πŸ”²
Octal Template πŸ”Ά πŸ”Ά Template Template
Octal2 Template πŸ”Ά πŸ”Ά Template Template
Octal3 Template πŸ”² πŸ”² Template πŸ”²
Analog Template πŸ”Ά πŸ”Ά Template Template
Analog2 πŸ”² πŸ”² πŸ”² πŸ”² πŸ”²
Analog3 Template πŸ”Ά πŸ”Ά Template Template
Combo Template πŸ”Ά πŸ”Ά Template Template
Combo2 πŸ”² πŸ”² πŸ”² πŸ”² πŸ”²

Legend:

  • Template β€” available, click to open
  • πŸ”Ά β€” Coming Soon
  • πŸ”² β€” Planned

Full template files: /Tasmota_Templates


πŸš€ Home Automation Workflow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  1. HARDWARE                                                    β”‚
β”‚     Carrier board + SoM + IoTextra I/O module(s)                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  2. FLASH                                                       β”‚
β”‚     Flash Tasmota factory binary from official Tasmota releases β”‚
β”‚     Binary is selected by SoM β€” see SoM table in Setup.md       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  3. CONFIGURE                                                   β”‚
β”‚     Apply IoTextra GPIO Template from /Tasmota_Templates        β”‚
β”‚     Template is selected by carrier board                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  4. DEPLOY DRIVERS                                              β”‚
β”‚     Upload Berry drivers from /Berry_Drivers via File System    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  5. AUTOMATE                                                    β”‚
β”‚     Upload application scripts from /Application_Scripts        β”‚
β”‚     Add berry driver load() calls to autoexec.be                β”‚
β”‚     Node runs autonomously β€” no external server required        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“₯ Installation & Quick Start

See full setup instructions in:

πŸ“„ Setup.md


πŸ“Ή Demo Videos

▢️ IoThome Smart Farm Demo


πŸ“ Repository Structure

IoThome/
β”‚
β”œβ”€β”€ Application_Scripts/     # Ready-to-use Berry automation scripts
β”‚                            # Drop-in logic for common use cases
β”‚
β”œβ”€β”€ Berry_Drivers/           # Low-level Berry drivers for IoTextra hardware
β”‚   β”œβ”€β”€ ADS1115Data.be       # ADS1115 analog ADC driver (voltage & current)
β”‚   β”œβ”€β”€ TCA9534.be           # TCA9534/TCA9534A digital I/O expander driver
β”‚   β”œβ”€β”€ ADS7828.be           # ADS7828 analog ADC driver (IoTextra Analog 3)
β”‚   └── ISO1211.be           # ISO1211 digital I/O driver (IoTextra Quadro)
β”‚
β”œβ”€β”€ Documentation/           # Setup guides and parameter references
β”‚
β”œβ”€β”€ Media/                   # Images and video links
β”‚
β”œβ”€β”€ Tasmota_Templates/       # GPIO Templates organized by carrier board
β”‚   β”œβ”€β”€ IoTsmart_ESP32-S3/
β”‚   β”œβ”€β”€ IoTsmart_XIAO/
β”‚   β”œβ”€β”€ IoTbase_PICO/
β”‚   β”œβ”€β”€ IoTbase_NANO/
β”‚   └── IoTbase_Feather/
β”‚
β”œβ”€β”€ LICENSE
└── README.md

Tasmota binary files are not stored in this repository. Download them from the official Tasmota releases using the SoM β†’ binary table in Setup.md.


πŸ“œ Licensing

All IoThome code, documentation, and media are licensed under the MIT License β€” see LICENSE.

Hardware licenses do not apply; this is a software-only repository.

About

IoThome is a standalone Tasmota ecosystem integrating IoTextra series I/O modules for smart home users

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages