Thanks for your interest in contributing to Tasmota for Homey!
- Fork the repository
- Clone your fork and run
npm install - Create a feature branch from
main - Make your changes
- Run
npm run build && npm run lint && npm testto verify - Submit a pull request
- Create a new driver folder under
drivers/ - Extend
TasmotaDriverBase(driver) andTasmotaDeviceBase(device) - Add discovery filtering via a method on
TasmotaDiscoveryPayload - Add a
driver.compose.jsonwith capabilities and settings - Write tests following the existing mock pattern in
test/ - Update
CLAUDE.mdwith the new driver details
See the existing drivers for reference — tasmota_switch is the simplest example.
- TypeScript with ES module imports (
.jsextension required) - ESLint config extends
athom/homey-app - Use
setCapabilityValueIfChanged()for telemetry updates - Use
registerMultipleCapabilityListener()for coupled capabilities - Use Homey timers (
this.homey.setTimeout), never native timers
All tests use vitest with a mock-based pattern — no real hardware needed. Each test file creates a MockDevice that replicates the production logic for isolated testing.
npm test # Run all tests
npm test -- --watch # Watch modePlease include your Tasmota firmware version, device model, and relevant app logs from homey app run.