Repository navigation
Releases: Felliglanz/ioBroker.data-solectrus
Release list
v0.5.0 - Admin 8 required
β οΈ Breaking: ioBroker Admin >= 8.0.0 is now required
Admin 7 is no longer supported. The 0.4.1 release tried a runtime fallback (load @iobroker/gui-components first, fall back to @iobroker/adapter-react-v5) - that turned out to be insufficient. Admin 8 gates custom components by how they were built, not by which library they happen to load at runtime, and rejected the old hand-rolled Module Federation container outright with "was built for GUI API generation 1".
π οΈ What changed
- The "Configured values" master/detail editor was rebuilt from scratch as a proper GUI API generation 2 component: a new
src-admin/workspace (Vite +@module-federation/vite, React 19) replaces the legacy hand-rolled Module Federation container admin/jsonConfig.jsonnow declares"guiApi": 2on the custom entry, andio-package.jsondeclaresglobalDependencies: [{ "admin": ">=8.0.0" }]- The actual editor logic (formula builder, live preview, state-machine mode, master/detail list, ...) was ported over largely unchanged - same behavior, new build pipeline
β‘ Why no @iobroker/gui-components / MUI?
The editor doesn't use any of it. Declaring it as a Module Federation shared singleton anyway (the "obvious" default) pulled in its full dependency graph - 10,000+ MUI icon modules - and blew up local build times from a few seconds to 18+ minutes. Only react/react-dom are shared with Admin, so builds stay in the single-digit seconds.
One small consequence: the "pick an existing state" button next to state-ID fields (backed by adapter-react-v5's DialogSelectID) is now always disabled. It already degraded gracefully before this release, so nothing crashes - just type the state ID manually.
π Technical Details
New:
src-admin/- Vite + Module Federation admin UI workspacetasks.ts- build script (npm run build), scoped to only ever touchadmin/custom/so it never wipes the hand-maintainedadmin/i18n/,admin/jsonConfig.jsonor adapter icon
Changed:
admin/custom/customComponents.js+admin/custom/assets/*+admin/custom/mf-manifest.json: rebuilt generation-2 outputadmin/jsonConfig.json: added"guiApi": 2io-package.json: addedglobalDependencies
Full Changelog: v0.4.1...v0.5.0
v0.4.1
π οΈ Admin 8 Compatibility Fix
Sorgt dafΓΌr, dass der Adapter beim Upgrade auf ioBroker Admin 8.x weiterhin funktioniert, ohne die UnterstΓΌtzung fΓΌr Admin 7.x zu verlieren.
π§ Fix
- Custom UI: Admin 7 & Admin 8 Support β Die Custom-UI-Komponente (
admin/custom/customComponents.js) versucht jetzt zuerst@iobroker/gui-components(Admin 8+, React 19 / MUI 9) zu laden- Ist das Paket nicht verfΓΌgbar (Admin 7.x), fΓ€llt sie automatisch auf
@iobroker/adapter-react-v5(React 18 / MUI 6) zurΓΌck - Kein manuelles Eingreifen beim Admin-Upgrade nΓΆtig β der Adapter erkennt die verfΓΌgbare UI-Bibliothek selbst
- Ist das Paket nicht verfΓΌgbar (Admin 7.x), fΓ€llt sie automatisch auf
π Impact
- Adapter bleibt beim Umstieg auf Admin 8 vollstΓ€ndig nutzbar
- Bestehende Installationen auf Admin 7 sind unverΓ€ndert funktionsfΓ€hig
- Kein Breaking Change
π Technical Details
GeΓ€nderte Datei:
admin/custom/customComponents.js: Fallback-Ladelogik fΓΌr Shared Module (gui-componentsβadapter-react-v5)
Full Changelog: v0.4.0...v0.4.1
v0.4.0
π Major Performance Improvements
Massive speed improvement: Tick execution time reduced from 100-150ms to ~1ms β a ~100x improvement!
β‘ Optimizations
- Non-blocking I/O: Replaced all
setStateAsynccalls for diagnostics with non-blockingsetStateto free up time budget for calculations - Moved timing diagnostics: Comprehensive timing diagnostics (~40 setState calls) now execute after the evaluation loop and no longer consume eval time budget
- Parallel I/O operations: itemManager now uses
Promise.all()instead of sequential loops for significantly faster adapter initialization - Clean shutdown: Added
isUnloadingguards for stable adapter shutdown
π Impact
- No more "Tick time budget exceeded" warnings
- Much faster response times
- More available time for complex formulas and many items
- More stable operation under load
π Credits
These performance optimizations are based on excellent work by @patricknitsch in his ioBroker.solectrus-influxdb adapter.
π Technical Details
Changed files:
lib/services/tickRunner.js: Non-blocking setState, moved diagnosticslib/services/itemManager.js: Parallelized I/O with Promise.all()
Full Changelog: v0.3.8...v0.4.0
v0.3.8
0.3.8 - 2026-02-16
Fixed
- Formula Builder: Live UI update - Formula is now immediately displayed in the textarea after applying changes from the builder
- Previously the formula was saved correctly but not visible in the UI until page reload
- Maintains cursor-fix compatibility with the draft system
Full Changelog: v0.3.7...v0.3.8
v0.3.7
Fix: Minimum Poll Interval Set to 5 Seconds
Problem
Users could configure the poll interval as low as 1 second. With 5+ items, the time budget (80% of interval = 800ms) could be exceeded, causing later items in the evaluation queue to be skipped. These skipped items would remain at null and never receive calculated values.
Root Cause
- Poll interval: 1 second β Time budget: 800ms
- With ~150-200ms per item evaluation, 5 items already exceeded the budget
- Skipped items triggered the
evalSkippedcounter but never wrote output values
Solution
Changed minimum pollIntervalSeconds from 1 to 5 seconds in admin/jsonConfig.json.
Impact
- Prevents time budget exhaustion for typical configurations
- 5 second interval provides 4 second budget (sufficient for 20+ items at ~100ms each)
- Users can no longer accidentally misconfigure the adapter into a non-functional state
v0.3.6
Release 0.3.6 (2026-02-10)
Fixed: Cursor-Jumping in Admin UI
Beim Bearbeiten von Textfeldern im Master/Detail-Editor sprang der Cursor nach Eingaben hΓ€ufig ans Ende. Dieses Verhalten ist jetzt behoben.
Γnderung
- Eingaben werden beim Tippen zunΓ€chst lokal gepuffert (Draft-State).
- Persistiert wird erst beim Verlassen des Feldes (
onBlur/ commit-on-blur).
Warum das funktioniert
- Verhindert unnΓΆtige Admin-Updates/Re-Renders pro Tastendruck, die zuvor den Caret zurΓΌcksetzen konnten.
Hinweis
- Die UI zeigt nun eine
UI_VERSIONan (hilfreich zur Kontrolle bei Browser-/Proxy-Cache).
Full Changelog: v0.3.4...v0.3.6
v0.3.4
v0.3.4 - String Handling Fix for State Machine
Fixed
- State Machine now properly handles string inputs: Non-numeric strings (e.g.,
"Idle","Charging","Discharging") are now preserved as strings instead of being converted to numbers - This fixes string comparisons in rule conditions like
status == 'Idle' - Numeric strings (e.g.,
"123") are still converted to numbers as before - Enables proper mapping of system status codes to human-readable text
Technical Details
- Modified
lib/stateMachine.jsto preserve string values in input processing - String type detection added before automatic number conversion
- Backward compatible - numeric inputs continue to work as expected
Full Changelog: v0.3.3...v0.3.4
v0.3.3
Release v0.3.3 - State Machine Mode π
This release introduces State Machine Mode, a powerful new way to generate rule-based states alongside the existing Formula and Source modes.
π What's New
State Machine Items
- Create string or boolean output states based on conditional rules
- Rules are evaluated top-to-bottom (first match wins)
- Full formula support in conditions (all operators, functions, and state helpers)
- Perfect for translating system states, status codes, or creating complex logic flows
Quick-Start Examples
- π Battery Levels - Convert SOC to status labels (Empty/Low/Full/Normal)
- β‘ Surplus Categories - Generate PV surplus states
- π Time of Day - Create time-based states (Morning/Afternoon/Evening/Night)
- One-click insertion for immediate use
Enhanced UX
- Inline help and tooltips for rule conditions
- Hidden clamp/negative options (not applicable for string/boolean outputs)
- Better visual guidance similar to Formula Builder
π‘ Use Cases
- Translate technical status codes to human-readable messages
- Create battery level indicators from raw SOC values
- Generate time-based automation triggers
- Convert external system states (e.g., "RemoteShutdown" β "System offline!")
- Combine multiple conditions for complex state logic
π§ Example
Rule-based Battery Status:
Full Changelog: v0.3.2...v0.3.3
v0.3.2
π What's New in 0.3.2
This release significantly improves the Formula Builder user experience with comprehensive assistance features - making it easier than ever to create formulas, especially for users without JavaScript knowledge!
β¨ Enhanced Formula Builder
π‘ Interactive Tooltips
- All operators (+, -, *, /, %, &&, ||, ==, !=, etc.) now have descriptive tooltips
- All functions (IF, min, max, clamp) include usage examples
- Simply hover over any operator or function to see how it works
π Ready-to-Use Examples
New Examples section with 6 common formula patterns:
- PV Sum (
pv1 + pv2 + pv3) - PV Surplus (
pv - houseConsumption) - Percentage calculation (
(value / total) * 100) - Positive-only values (
max(0, value)) - Conditional logic (
IF(battery > 80, surplus, 0)) - Clamp value to 0-1 (
clamp(value / 100, 0, 1))
Click any example to insert it directly into your formula!
π¨ Live Syntax Highlighting
Beautiful color-coded formula editor:
- π’ Variables (your inputs) in green
- π΅ Functions/keywords in blue
- π Numbers in orange
- π‘ Strings in light green
- π΅ Operators in cyan
π€ Smart Autocomplete
Intelligent suggestions while typing:
- Shows all available input variables
- Shows all available functions
- Keyboard navigation: ββ to navigate, Enter/Tab to insert, Esc to close
- Mouse support: Click to insert
All features work seamlessly in both German and English!
π Fixes
- Fixed missing translation for Master/Detail editor hint text
π Documentation
- Significantly improved README with better structure
- GitHub Custom URL installation now featured as recommended method
- Comprehensive Formula Builder documentation added
π₯ Installation
Recommended: GitHub Custom URL
- Open ioBroker Admin β Adapters
- Click the GitHub symbol (Octocat) β Custom
- Enter:
https://github.com/Felliglanz/ioBroker.data-solectrus - Click Install
Alternative: NPM
cd /opt/iobroker
npm install iobroker.data-solectrus
**Full Changelog**: https://github.com/Felliglanz/ioBroker.data-solectrus/compare/v0.3.1...v0.3.2Folder Grouping in Item Editor
Improved Item Editor Organization
- Automatic folder grouping: Items are now grouped by their
groupfield - Collapsible folders for better organization
- Visual status indicators:
- Green badge shows active items count
- Gray badge shows inactive items count
- Hover tooltips with detailed information
- Simplified placeholder: Target ID from
pv.pvGesamttopvGesamt
What's Changed
- Develop by @Felliglanz in #8
Full Changelog: v0.3.0...v0.3.1