ioBroker.siku
Tests:
Overview
This adapter integrates SIKU RV V2 residential ventilation devices and compatible units from the Oxxify smart series into ioBroker. This wording explicitly includes devices marketed as Oxxify.smart 30, Oxxify.smart 50 and Oxxify.smart 50 K.
The current repository state targets a feature-complete public beta for local-network operation and the official ioBroker latest intake.
Features
- UDP communication based on the documented manufacturer protocol
- Multi-device support in one adapter instance
- Broadcast discovery in the local network
- JSON config based admin page for multiple devices
- Separate RTC time check every 24 hours by default
- Restart-persistent RTC scheduling based on the last check-attempt timestamp
- Time synchronization only when the configured drift threshold is exceeded
- State-based control for the main operating parameters
- Full weekly schedule mapping via ioBroker states with packet-size-safe reads every 15 minutes
- Localized enum labels for fan speed, fan mode and timer mode
- Readable local timestamp companion states for poll and discovery timestamps
- Per-device passwords encrypted at their nested config path and protected from normal config reads
- One adapter instance per ioBroker host to avoid UDP port conflicts
Supported core functions
- Discovery of master devices via broadcast (
0x007C,0x00B9) - Management of multiple devices by stable device IDs
- Polling of status, sensor and diagnostic values
- Writing of central parameters via states, for example:
- power
- fan speed
- manual fan speed
- fan mode
- timer mode
- humidity setpoint
- sensor enable flags
- One-shot write-only reset commands with a subsequent read-back instead of unsafe retries
- Weekly schedule structure such as:
schedule.monday.p1.speedschedule.monday.p1.endHourschedule.monday.p1.endMinute- ... up to
schedule.sunday.p4.*
- Diagnostic values such as:
- filter countdown
- operating hours
- alarm level
- filter replacement indication
- last discovery / last poll / last time check
Device references
The adapter is built for the SIKU RV V2 family such as SIKU RV 50 W Pro WiFi V2, compatible units from the Oxxify smart series and related devices in the same protocol family.
Current compatibility wording and search terms explicitly cover Oxxify.smart 30, Oxxify.smart 50, Oxxify.smart 50 K, Oxxify smart, Oxxify smart 30, Oxxify smart 50, Oxxify smart 50 K and compatible app-controlled decentralized heat-recovery ventilation units.
- Manufacturer product page: SIKU RV 50 W Pro WiFi V2
- Manufacturer overview: SIKU products
- Compatible series overview: Oxxify decentralized ventilation
- Compatible product examples: Oxxify.smart 30 and Oxxify.smart 50
- Official mobile app description: SIKU RV WIFI on the App Store
Development
Useful scripts:
| Script | Purpose |
|---|---|
npm run build |
Compile the TypeScript sources |
npm run check |
Run type checking without building |
npm run lint |
Run ESLint |
npm run test |
Run unit and package tests |
npm run coverage |
Enforce and report TypeScript test coverage |
npm run dev-server |
Start a local ioBroker development environment |
npm run release |
Create an official release/tag via release-tooling |
The adapter was generated with the official ioBroker tooling and is developed in TypeScript.
CI / CD
- Normal pull requests run a lean Ubuntu smoke test after linting, type-checking and unit coverage.
- Dependabot pull requests run the complete supported OS/Node.js matrix before auto-merge.
mainruns the release-relevant Linux/macOS/Windows matrix required for ioBroker repository intake.- A separate scheduled/manual Windows regression workflow remains available for additional checks because the ioBroker controller bootstrap is significantly slower there.
- Runtime changes can receive an automatic patch version after a successful
mainrun; docs, tests, workflows and development-only dependency updates do not create empty releases. - Tagged releases are published to npm directly from GitHub Actions via Trusted Publishing.
- GitHub Releases are created automatically with generated release notes by the standard ioBroker deploy action.
Publication readiness
A short release and repository checklist is available in RELEASING.md.
Beta notes
- Discovery, polling, time checks and schedule reads have already been validated against multiple real devices.
- Live write tests have intentionally been kept conservative.
- Network/service functions such as Wi-Fi reconfiguration, password changes or factory reset are intentionally not exposed as normal writable states.
Advanced messagebox API
The adapter exposes these sendTo commands for scripts and integrations:
discover: run UDP broadcast discovery and merge discovered devices into the adapter config.syncTimeAll: run a manual RTC check/sync for all configured devices.syncTimeDevice: run a manual RTC check/sync for one configured device bydeviceId.readDevice: read selected raw protocol parameters from one explicitly supplied IPv4/device-ID target for diagnostics.
The diagnostic readDevice response serializes packet metadata and returned parameter values as hex strings. Device passwords are never returned; the response only includes passwordLength.
Changelog
0.2.0 (2026-07-10)
- Correct nested encryption and migration of per-device passwords from earlier beta versions.
- Harden UDP response correlation and write-only reset handling to prevent stale or repeated commands.
- Restrict fan-speed writes to protocol-defined values and expose localized enum labels.
- Persist the 24-hour RTC schedule across restarts and keep clock reads outside normal polling.
- Split weekly schedule reads into protocol-size-safe chunks and refresh them every 15 minutes.
- Extract the object factory and operation scheduler, expand tests and enforce coverage in CI.
- Modernize ioBroker dependencies, release actions and automatic patch-release classification.
0.1.8 (2026-06-09)
- Cleaned up unused Admin translations found during the adapter checklist review.
- Documented the advanced messagebox commands for script/integration use.
- Added a code-side upper bound for the RTC time sync drift threshold.
0.1.7 (2026-06-09)
- Converted runtime logs and ioBroker object labels to English for repository review compliance.
- Added Node.js-safe upper bounds for configurable polling and RTC check intervals while keeping automatic RTC checks at a 24-hour minimum.
0.1.6 (2026-06-05)
- Aligned the ioBroker object hierarchy and writable state roles with the Object-Structure-Checker.
0.1.5 (2026-05-31)
- Addressed the latest ioBroker repository checker findings for
latestintake. - Added Windows to the release-relevant adapter test matrix and updated CI/CD documentation.
- Updated admin translations, js-controller minimum version and ioBroker type definitions.
- Hardened UDP timeout handling and added timeout cleanup test coverage.
Older changelog entries are available in CHANGELOG_OLD.md.
License
MIT License
Copyright (c) 2026 Christian Maaß christian@maass.it
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
