Skip to content

Releases: Felliglanz/ioBroker.data-solectrus

v0.5.0 - Admin 8 required

Choose a tag to compare

@Felliglanz Felliglanz released this 04 Sep 14:09

⚠️ 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.json now declares "guiApi": 2 on the custom entry, and io-package.json declares globalDependencies: [{ "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 workspace
  • tasks.ts - build script (npm run build), scoped to only ever touch admin/custom/ so it never wipes the hand-maintained admin/i18n/, admin/jsonConfig.json or adapter icon

Changed:

  • admin/custom/customComponents.js + admin/custom/assets/* + admin/custom/mf-manifest.json: rebuilt generation-2 output
  • admin/jsonConfig.json: added "guiApi": 2
  • io-package.json: added globalDependencies

Full Changelog: v0.4.1...v0.5.0

v0.4.1

Choose a tag to compare

@Felliglanz Felliglanz released this 04 Sep 11:37

πŸ› οΈ 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

πŸ“Š 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

Choose a tag to compare

@Felliglanz Felliglanz released this 16 Mar 20:12

πŸš€ 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 setStateAsync calls for diagnostics with non-blocking setState to 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 isUnloading guards 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 diagnostics
  • lib/services/itemManager.js: Parallelized I/O with Promise.all()

Full Changelog: v0.3.8...v0.4.0

v0.3.8

Choose a tag to compare

@Felliglanz Felliglanz released this 16 Feb 09:16

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

Choose a tag to compare

@Felliglanz Felliglanz released this 11 Feb 13:59

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 evalSkipped counter 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

Choose a tag to compare

@Felliglanz Felliglanz released this 10 Feb 14:25

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_VERSION an (hilfreich zur Kontrolle bei Browser-/Proxy-Cache).

Full Changelog: v0.3.4...v0.3.6

v0.3.4

Choose a tag to compare

@Felliglanz Felliglanz released this 09 Feb 20:40

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.js to 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

Choose a tag to compare

@Felliglanz Felliglanz released this 08 Feb 10:44

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

Choose a tag to compare

@Felliglanz Felliglanz released this 07 Feb 23:04

πŸš€ 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

  1. Open ioBroker Admin β†’ Adapters
  2. Click the GitHub symbol (Octocat) β†’ Custom
  3. Enter: https://github.com/Felliglanz/ioBroker.data-solectrus
  4. 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.2

Folder Grouping in Item Editor

Choose a tag to compare

@Felliglanz Felliglanz released this 04 Feb 16:29
0746916

Improved Item Editor Organization

  • Automatic folder grouping: Items are now grouped by their group field
  • 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.pvGesamt to pvGesamt

What's Changed

Full Changelog: v0.3.0...v0.3.1