Private Build / v0 · Konzept Concept

ta·lo·riq

talo — finnisch für »Haus«talo — Finnish for »house«

Eine private Smart-Home-Steuerung.A private smart-home controller.

Lokal, modular — im Geist von Edomi, neu gedacht.Local, modular — in the spirit of Edomi, rethought.

Kein Produkt, kein Release. Existiert vorerst nur hier.No product, no release. For now it just exists here.

Quellcode· privat (noch)· private (for now) Was ist Taloriq?What is Taloriq?
Was ist Taloriq?What is Taloriq?

Eine Haussteuerung, die läuft wie die Heizung selbst.

Taloriq ist eine Smart-Home-Steuerung mit KNX-Fokus: eine Logik-Engine, die Sensoren, Aktoren und Protokolle verknüpft, plus eine frei gestaltbare Visualisierung für Wandtablet, Handy und Desktop. Sie läuft komplett lokal auf einem kleinen Linux-Server — keine Cloud, kein Abo, keine Hersteller-Abhängigkeit.

Das Projekt entsteht als Nachfolger für Edomi, dessen Entwicklung 2021 endete. Was Edomi auszeichnete: Sie lief jahrelang ohne einen einzigen Absturz. Genau dieser Anspruch — nicht die Feature-Liste — ist der Kern von Taloriq.

Home control that runs like the heating itself.

Taloriq is a smart-home controller with a KNX focus: a logic engine that links sensors, actuators and protocols, plus a freely designed visualization for wall tablet, phone and desktop. It runs entirely locally on a small Linux server — no cloud, no subscription, no vendor lock-in.

It's being built as a successor to Edomi, whose development ended in 2021. What set Edomi apart: it ran for years without a single crash. That standard — not the feature list — is the heart of Taloriq.

Warum noch eine?Why another one?

Weil ein Haus kein Spielzeug ist.

Eine Haussteuerung muss monatelang unbeaufsichtigt laufen. Die grossen Plattformen binden heute fast alles an — aber Stabilität, eine wirklich frei gestaltbare Visualisierung und ein System, das ein einzelner Mensch noch vollständig verstehen kann, bleiben oft auf der Strecke.

Taloriq übernimmt Edomis erprobte Stabilitätsmuster und übersetzt sie auf einen modernen, bewusst langweiligen Stack: node.js, SQLite, Vanilla JavaScript. »Boring tech« ist hier ein Kompliment — jede Komponente ist etabliert, verstehbar und in zehn Jahren noch da.

Because a house isn't a toy.

Home control has to run unattended for months. The big platforms connect almost anything today — but stability, a truly free-form visualization, and a system a single person can still fully understand often fall by the wayside.

Taloriq takes Edomi's proven stability patterns and translates them onto a modern, deliberately boring stack: node.js, SQLite, vanilla JavaScript. Here, »boring tech« is a compliment — every part is established, understandable, and still around in ten years.

Das GrundprinzipThe core principle

Ein ruhiger Kern, alles Riskante draussen.

Die wichtigste Architektur-Entscheidung in einem Satz: Alles, was mit der Aussenwelt spricht oder fremden Code ausführt, läuft in einem eigenen Prozess — der Kern führt niemals Fremdcode aus.

A calm core, everything risky outside.

The most important architectural decision in one sentence: anything that talks to the outside world or runs foreign code lives in its own process — the core never runs foreign code.

KNX-Adapter MQTT / Matter / REST Plugin-Host Core das Gehirn the brain Logik-Engine Logic Engine Zustand State Datenpunkte datapoints Web / Visu / Admin History-Writer → VictoriaMetrics Notifier E-Mail, Warnungen e-mail, alerts Jeder Adapter ein eigener Prozess — ein Fehler bleibt drin. Each adapter its own process — a fault stays contained.

Warum der Aufwand? Weil dort die Fehler passieren. Ein KNX-Bus, der wegbricht, ein instabiles Plugin, ein hängender Kamera-Stream — davon stirbt höchstens der betroffene Adapter. Der Kern läuft weiter, startet das gestorbene Teil neu und meldet den Vorfall. Und stirbt der Kern selbst: Neustarten heilt immer. Der Laufzeitzustand wird bei jedem Start deterministisch neu aufgebaut — einen »korrupten Zustand, den kein Neustart heilt« kann es konstruktionsbedingt nicht geben.

Why the effort? Because that's where failures happen. A KNX bus that drops out, an unstable plugin, a stalled camera stream — at most the affected adapter dies. The core keeps running, restarts the failed part and reports the incident. And if the core itself dies: restarting always heals. The runtime state is rebuilt deterministically on every start — a »corrupt state that no restart can heal« cannot exist by design.

Die gemeinsame SpracheThe shared language

Datenpunkte mit Qualität: ehrlich statt gefährlich.

Der Kern kennt kein einziges Protokoll — nur Datenpunkte. Und jeder trägt neben seinem Wert eine Qualität: good, stale (Quelle tot, letzter Wert bekannt) oder unknown.

Das ist der Unterschied zwischen einem ehrlichen und einem gefährlichen System. Fällt im Februar ein Temperatursensor aus, zeigen die meisten Systeme kommentarlos die letzte Messung — und die Heizung läuft tagelang auf einem veralteten Wert weiter. In Taloriq wird der Wert stale markiert, die abhängige Logik schweigt statt zu raten, und der Ausfall ist bis aufs Wandtablet sichtbar. Der Leitsatz: unbekannt ist besser als still falsch.

Datapoints with quality: honest, not dangerous.

The core knows no protocol at all — only datapoints. And each carries, alongside its value, a quality: good, stale (source dead, last value known) or unknown.

That's the difference between an honest and a dangerous system. When a temperature sensor fails in February, most systems silently show the last reading — and the heating runs for days on a stale value. In Taloriq the value is marked stale, the dependent logic stays silent instead of guessing, and the failure is visible right down to the wall tablet. The principle: unknown beats silently wrong.

Was Taloriq anders machtWhat makes it different

Fünf Entscheidungen, die den Alltag prägen.

  • Ein Backup = ein Archiv. Konfiguration, Werte, Historie, sogar der komplette Programmbaum — alles in einer Datei. Restore: einspielen, starten, fertig.
  • Kein »Aktivierungs-Tanz«. Änderungen wirken sofort — dafür ein durchgängiges Undo: jede Änderung, auch ein kompletter Import, ist mit einem Klick rückgängig.
  • Safe-Mode statt SSH. Macht eine Änderung das System startunfähig, kommt es abgesichert hoch: Web-Oberfläche läuft, Ursache steht am Bildschirm, repariert wird im Browser.
  • Es überwacht sich selbst. Adapter-Gesundheit, Speicher, Plattenplatz sind gewöhnliche Datenpunkte; ein Health-Report und Warnungen kommen aktiv per Mail.
  • Security by Default. HTTPS, echte Anmeldung, sichere Voreinstellungen — von der ersten Zeile an, auch wenn das System »nur im LAN« läuft.

Five decisions that shape daily use.

  • One backup = one archive. Config, values, history, even the full running program tree — all in one file. Restore: import, start, done.
  • No »activation dance«. Changes take effect immediately — backed by end-to-end undo: any change, even a full import, reverts with one click.
  • Safe mode instead of SSH. If a change makes the system unbootable, it comes up safely: web UI running, cause on screen, repaired in the browser.
  • It monitors itself. Adapter health, memory, disk are ordinary datapoints; a health report and warnings arrive actively by mail.
  • Security by default. HTTPS, real login, safe defaults — from the very first line, even when the system runs »only on the LAN«.
Blick nach vornLooking ahead

Offen für mehr — ohne Umbau.

  • Matter als Adapter, sobald der Kern steht — der herstellerübergreifende Standard gewinnt an Gewicht.
  • Sprache, lokal. Das Haus per Sprache bedienen und befragen — dank LLMs ohne auswendig gelernte Kommandos, dank der Architektur ohne Umbau: ein Voice-Interface ist einfach ein weiterer Adapter.
  • KI mit Leitplanken. Eine KI darf Konfiguration vorschlagen — ausgeführt wird erst nach derselben Validierung wie bei Handbedienung und nach menschlicher Bestätigung. Committen tut immer der Mensch.

Open for more — without rework.

  • Matter as an adapter, once the core is in place — the cross-vendor standard keeps gaining weight.
  • Voice, local. Operate and query the house by voice — thanks to LLMs without memorized commands, thanks to the architecture without rework: a voice interface is just another adapter.
  • AI with guardrails. An AI may propose configuration — it's only applied after the same validation as manual operation and after human confirmation. The human always commits.
Status

Konzept-Phase — es gibt noch keinen Code.

Das ist Absicht: Der Kern soll konzeptionell so solide sein, dass er nach dem Bau nicht mehr angefasst werden muss. Die Architektur ist entschieden und dokumentiert; aktuell laufen die letzten Schärfungen vor den ersten technischen Validierungs-Prototypen (»Spikes«).

Concept phase — there is no code yet.

That's deliberate: the core should be conceptually solid enough that it needn't be touched again after it's built. The architecture is decided and documented; right now the final sharpening is underway before the first technical validation prototypes (»spikes«).

Backendnode.js LTS · Multi-Prozess · SQLite
FrontendHTML/CSS/Vanilla JS · Web Components — bewusst ohne FrameworkHTML/CSS/vanilla JS · Web Components — deliberately framework-free
ZeitreihenTime seriesVictoriaMetrics (optional — Steuern geht auch ohne)VictoriaMetrics (optional — control works without it)
PlattformPlatformDebian + node.js LTS auf einem kleinen Linux-ServerDebian + node.js LTS on a small Linux server
Erste IntegrationFirst integrationKNX (mitgeliefert, abschaltbar); danach MQTT, Matter, REST …KNX (bundled, removable); then MQTT, Matter, REST …