Projekt

Open Source

SmartBeet wird vollständig Open Source. Noch ist das Repository privat, und die Lizenz ist nicht entschieden.

Auf dieser Seite

Was offen wird

Alles. Es gibt keinen Teil von SmartBeet, der geschlossen bleiben soll.

Teil Inhalt
Server Backend, Oberfläche, Datenbankschema, Compose-Dateien
Firmware für Hub und Module, mit allen Tests
Simulator samt Physik, Elektrik und Fehlerkatalog
Protokoll Topics, Nachrichten, Busprotokoll
Unterlagen Plan, Verhalten von Hub und Modulen, Entscheidungen mit Begründung, Liste des Ungeprüften

Aufbau des Repositories

Ein Monorepo mit pnpm.

Ordner Inhalt
packages/protocol der gemeinsame Vertrag: Topics, Nachrichten, Konfiguration, Modulkatalog, Layout, Regelgraph
apps/backend Geräteverwaltung, Messwerte, Regeln, Alarme, Mail, Push, Benutzer, Firmware
apps/frontend React-App mit Live-Modell der Anlage
apps/simulator ersetzt Hub und Module
firmware C++ mit PlatformIO, Kern ohne Hardware testbar
e2e End-to-End-Tests und Bildschirmfotos des Modells
infra Broker, nginx, mDNS, ntfy, Skripte für Sicherung und Rechte
docs Verhalten, Protokoll, Entscheidungen

Unterlagen im Repository

Datei Inhalt
PLAN.html Gesamtplan
docs/HUB-VERHALTEN.md was Hub und Module tun. Firmware und Simulator setzen genau das um.
docs/PROTOKOLL.md MQTT, CAN, Firmware-Updates
docs/ENTSCHEIDUNGEN.md Entscheidungen mit Begründung, nummeriert
docs/GLOSSAR.md Begriffe der Oberfläche und ihre Namen im Code
firmware/ENTSCHEIDUNGEN.md Entscheidungen der Firmware
firmware/UNGETESTET.md was nie auf echter Hardware lief, nach Risiko sortiert
CHANGELOG.md Änderungen je Version

Entscheidungen werden nicht stillschweigend getroffen. Jede bekommt eine Nummer, eine Begründung und die Nachteile, die sie mit sich bringt.

Arbeitsweise

  • Zwei Branches. Entwickelt wird auf dev. main bekommt Änderungen nur per Merge.
  • Rot heißt: nicht fertig. Formatierung, Lint, Typen und Tests laufen vor jedem Abschluss.
  • Verhalten an einer Stelle. Änderungen am Verhalten von Hub und Modulen kommen zuerst in das Dokument, dann in Firmware und Simulator, jeweils mit Tests.
  • Keine Secrets im Repository. Geheimnisse entstehen beim ersten Start in einem eigenen Volume.
  • Kein Dienst läuft als root.
  • Alles bleibt lokal. Keine Cloud-Dienste, Schriften und Skripte liefert der eigene Server.
  • Code auf Englisch, Texte auf Deutsch. Seit Version 0.3.0 sind Bezeichner, Kennungen, Topics, Routen, Kommentare und Logs englisch. Oberfläche, Mails und Unterlagen bleiben deutsch. Ein Glossar übersetzt verbindlich zwischen beiden.

Entwickeln

pnpm install
pnpm dev:up             # Anlage mit Simulator und Mail-Fänger
pnpm check              # Formatierung, Lint, Typen, Tests
pnpm e2e                # End-to-End mit Playwright
pnpm firmware:test      # Firmware-Tests im Container
pnpm firmware:build     # Firmware für ESP32-S3 und ESP32-C3

Mitmachen

Solange Lizenz und Veröffentlichung offen sind, gibt es noch keinen Weg für Beiträge. Wenn es so weit ist, hilft am meisten, was das Projekt selbst nicht kann:

  • Tests an echter Hardware. Die Liste des Ungeprüften nennt zu jedem Punkt, was beim ersten Test zu prüfen ist.
  • Sensortreiber an echten Sensoren prüfen, vor allem die als unsicher markierten.
  • Andere Anlagen: Gewächshaus, Terrarium, Anzuchtregal, offene Beete im Garten. Die Software kennt keine feste Anzahl, erprobt ist das nur im Simulator.
  • Andere Hardware: Pumpen, Antriebe und Heizungen, die schon da sind. SmartBeet macht keine Annahmen über die Hardware, das muss sich an vielen Anlagen zeigen.

Diese Website

Die Website ist ein eigenes Repository und gehört nicht zum offenen Teil. Ihr Quelltext ist nicht öffentlich. Sie ist statisch, lädt nichts von fremden Servern und setzt keine Cookies. Das steht unter Datenschutz.

    Durchsucht alle Seiten. Die Suche läuft im Browser, nichts wird übertragen.