Home - plantalytix/fridgegrow2.0 GitHub Wiki

  1. Was ist Plantalytix und Fridge Grow 2.0?
  2. Für was ist das github-Repository fridgegrow2.0 von Plantalytix?
  3. Was beinhaltet das Repository?
  4. Welche Möglichkeiten ergeben sich durch eine eigene Steuerung des Fridge Grow 2.0?
  5. Was ist für den Betrieb im “direct mode” technisch notwendig?

Details zur Umsetzung:

  1. Schritt-für-Schritt Installationsanleitung
  2. Kurzanleitung der Steuerung

Was sind Plantalytix und Fridge Grow 2.0?

Plantalytix bietet smarte Grow-Lösungen für deinen Home Grow. Fridge Grow 2.0 ist die vollautomatische Growbox von Plantalytix. Auf folgenden Seiten findest du mehr Infos und den Shop, wo du das Growbox-Komplettset bestellen kannst.

Für was ist das github-Repository fridgegrow2.0 von Plantalytix?

Das Repository bietet erfahrenen und technisch versierten AnwenderInnen der Growbox “Fridge Grow 2.0” die Möglichkeit, eigene Steuerungen abseits der vollautomatischen Klimaprogramme zu erstellen. In diesem Repository wird exemplarisch gezeigt, wie die Sensorwerte (Temperatur, relative Feuchtigkeit etc.) der Growbox ausgelesen werden können, Steuerparameter (Heizung, Entfeuchtung etc.) gesetzt werden können und somit der direct mode verwendet werden kann.

Für den regulären Gebrauch der Growbox ist dieses Repository nicht geeignet. Dafür wird die Verwendung der vollautomatischen Klimaprogramme von “Fridge Grow 2.0” empfohlen.

Plantalytix bietet für dieses Repository und den Betrieb der Growbox im direct mode KEINEN SUPPORT.

Was beinhaltet das Repository?

Das Repository beinhaltet die notwendigen Konfigurationsdateien für eine externe Steuerung im direct mode der Growbox “Fridge Grow 2.0”. Die nötige Anleitung dazu findest du hier in diesem Wiki weiter unten. Es handelt sich um ein Minimalbeispiel, von dem ausgehend eigene Steuerungen programmiert werden können. Die Steuerung wird mit Docker-Containern von folgenden Softwareanwendungen realisiert:

  • Eclipse Mosquitto (ein MQTT-Broker)
  • InfluxDB (ein Datenbankmanagementsystem)
  • Node-RED (ein grafisches Programmierwerkzeug)
  • Grafana (eine Anwendung zur grafischen Darstellung von Daten)

Durch den Einsatz von Docker-Containern ist der Betrieb in jedem modernen Betriebssystem möglich (Linux, Windows, Mac, Raspberry Pi OS, etc.).

Welche Möglichkeiten ergeben sich durch eine individuelle Steuerung im direct mode des Fridge Grow 2.0?

Individuelle Steuerungen ermöglichen es, Fridge Grow 2.0 für Anwendungen abseits der voreingestellten und automatischen Klimaprogamme zu nutzen. Einige Anwendungsbeispiele von Fridge Grow 2.0:

  • Thermocycler

  • Klimakammer

  • Kontrollierte Atmosphäre

  • Kontrollierte Entfeuchtung

  • Molekularküche

  • Pasten- und Salbenherstellung

  • Kontrollierte Abkühlung

  • Kontrollierte Erwärmung

  • und vieles mehr - die Kreativität experimentierfreudiger AnwenderInnen wird noch viele Anwendungen hervorbringen!

Was ist für den Betrieb im direct mode technisch notwendig?

  • Das Growbox Komplettset “Fridge Grow 2.0” von Plantalytix (hier zu bestellen).
  • Einen Steuerungscomputer, der während des Betriebs immer laufen muss (PC, Server, Mini-PC oder Ähnliches). Die genauen Anforderungen sind unten zu finden.
  • Ein gemeinsames WLAN, mit dem die Growbox und der Computer verbunden sind.
  • Für die Installation eine schnelle Internetverbindung des Computers und ca. 550 MB Datenvolumen.

Schritt-für-Schritt Installationsanleitung

Diese Anleitung ist gültig für einen Steuerungscomputer, der mit Ubuntu oder einer anderen Linux-Distribution (z.B. Raspberry Pi OS) läuft. Für andere Betriebssysteme müssen die Schritte entsprechend angepasst werden. In Links auf externe Anleitungen dort bitte immer die Anleitung für das entsprechende Betriebssystem verwenden.
Die Inbetriebnahme und die Bedienung des Moduls der Growbox sind ausführlich in der Originalbetriebsanleitung von Fridge Grow 2.0 beschrieben. Es wird einige Male auf diese Betriebsanleitung verwiesen. Downloade sie bitte und mache dich damit vertraut. Finden kannst du sie im Infohub von Plantalytix unter "Download" oder im direkten Link hier.

Die einzelnen Installationsschritte:

  1. Die Umgebung aufsetzen
  2. Installation von Docker
  3. Herunterladen des Respositorys
  4. Starten der Docker-Container
  5. Einstellen des Moduls (Einschubs) der Growbox
  6. Überprüfen, ob die Verbindung zwischen dem Modul und dem MQTT-Broker aktiv ist
  7. InfluxDB einstellen
  8. Node-RED einrichten und Flow starten
  9. Überprüfen, ob Daten in influxdb ankommen und gespeichert werden
  10. Grafana einrichten und Daten darstellen
  11. Eigene Steuerung programmieren

1. Die Umgebung aufsetzen

Folgendes muss für eine eigene Steuerung im direct mode vorhanden sein. Nur wenn die folgenden vier Punkte erfüllt sind, ist der Betrieb möglich!

  1. Einen Steuerungscomputer, der während des Betriebs immer laufen muss (PC, Server, Mini-PC oder Ähnliches).
  2. Ein Betriebssystem, welches up-to-date ist. Am besten eignet sich ein linux-basierendes Betriebssystem wie Ubuntu oder Raspberry Pi OS.
  3. Ein gemeinsames WLAN, mit dem die Growbox und der Computer verbunden sind. Das Verbinden der Growbox mit dem WLAN ist in der Originalbetriebsanleitung von Fridge Grow 2.0 unter dem Kapitel "Verbindung mit dem Heimnetzwerk" zu finden (in der Originalbetriebsanleitung wird das WLAN als "Heimnetzwerk" bezeichnet).
  4. Eine fixe IP für den Steuerungscomputer.
  5. Am Steuerungscomputer ein Speicherplatz, wo die Daten der Docker-Container (inklusive Messdaten) liegen werden. Auf diesem Platz wird der unten genannte Ordner fridgegrow2.0-main entpackt werden. Dieser Ordner muss auch für nicht-root (nicht-Admin) Benutzer volle Zugriffsrechte erlauben. Für die Installation werden ca. 70 MB Speicherplatz benötigt. Mit der Zeit wird der Platzbedarf Aufgrund der Messdaten anwachsen.

2. Installation von Docker

  1. Auf dieser Seite findest du die Links zu den Installationsanleitungen für die Docker Engine (für Linux-basierte Systeme wie z.B. Ubuntu und Raspberry Pi OS) und Docker Desktop (für macOS und Windows). Folge dem Link für das Betriebssystem deines Computers und installiere Docker wie dort beschrieben. Beachte die dort beschriebenen Systemvoraussetzungen.
  2. Vergewissere dich, dass Docker erfolgreich installiert wurde, z.B. mit dem hello-world Docker Image. Die Anleitung dazu ist üblicherweise in der Docker-Installationsanleitung am Schluss zu finden.
  3. Nach der Installation musst du Einstellungen machen, damit Docker und die nötigen Container verlässlich laufen. Dies hat mit User-Rechten in den Betriebssystemen zu tun. Für Linux-basierte Betriebssysteme ist der Schritt "Manage Docker as a non-root user" notwendig. Für andere Systeme ist dieser Schritt in der jeweiligen Installationsanleitung zu finden.

3. Herunterladen des Respositorys

  1. Lade folgende zip-Datei auf deinen Computer: https://github.com/plantalytix/fridgegrow2.0/archive/refs/heads/main.zip
  2. Entpacke den darin enthaltenen Ordner fridgegrow2.0-main an den oben ausgewählten Speicherplatz, wo auch nicht-root Benutzer volle Zugriffsrechte haben. In Linux bietet sich das eigene Home-Verzeichnis (~/) an.
  3. Vergewissere dich nochmals, dass nicht-root Benutzer volle Zugriffsrechte auf den gespeicherten Ordner und alle sub-Ordner und darin enthaltene Dateien haben.

4. Starten der Docker-Container

  1. Navigiere in den oben entpackten Ordner und dort in den Unterordner plantalytix. Darin findest du die Datei compose.yaml. Diese Datei muss mit Docker gestartet werden. In Linux funktioniert das so:
    • Öffne ein Terminal und navigiere in den Ordner, in dem die Datei compose.yaml liegt.
    • Führe folgenden Befehl aus: docker compose up -d
  2. Beim ersten Ausführen von Docker werden die nötigen Dateien heruntergeladen (ca. 550 MB). Danach werden die Docker Services geladen. Diese sind die Container
    • plantalytix-mosquitto
    • plantalytix-influxdb
    • plantalytix-nodered
    • plantalytix-grafana

sowie das Docker-Netzwerk

  • plantalytix_default

Im Terminal sieht dies nach erfolgreichem Starten typischerweise so aus und kann danach geschlossen werden:

  1. Falls ein Service nicht erfolgreich startet, dann muss dies behoben werden, bevor die weiteren Installationsschritte ausgeführt werden. Dazu bitte das Internet zu Docker befragen. Auch der Befehl docker compose logs -f ist für die Fehlersuche hilfreich. Dieser Befehl zeigt alle Log-Einträge der Services an.

5. Einstellen des Moduls (Einschub) der Growbox und aktivieren des direct mode

  1. Sammle Erfahrung mit den voreingestellten Klimaprogammen.
  2. Das Modul bzw. das Growbox-Komplettset muss installiert sein und über das Portal in Betrieb sein. Folge dazu den Kapiteln "Aufstellung und Montage" und "Inbetriebnahme" der Originalbetriebsanleitung. Der Betrieb im "Normalmodus" über das Portal ist notwendig, damit die Firmware auf dem aktuellen Stand ist. Außerdem kann dann jederzeit vom direct mode wieder auf den "Normalbetrieb" und die voreingestellten Klimaprogramme gewechselt werden.
  3. Aktivieren des direct mode:
    1. Gehe im Menü am Display des Moduls in den Menüpunkt WiFi Connection. Wie du im Menü am Display navigierst, findest du in der Originalbestriebsanleitung unter "Einstellungen direkt über das Display vornehmen".
    2. Gehe in das Untermenü custom connection.
    3. Navigiere zum Menüpunkt MQTT Server. Gib dort die IP des Steuerungscomputers ein.

  1. Wenn du nur ein Modul betreibst, dann musst du nur die IP-Adresse des Steuerungscomputers eingeben. Lass die restlichen Einstellungen so, wie sie voreingestellt sind (MQTT User, MQTT Port, MQTT Password, MQTT Identifier, .
  2. Navigiere zum Menüpunkt connect. Drücke den Drehknopf neben dem Display. Es erscheint die Meldung connected. Drücke den Drehknopf erneut. Das Modul startet nun neu und befindet sich im direct mode.

  • Um aus dem direct mode wieder in den Normalbetrieb zu wechseln:
    1. Gehe im Menü am Display des Moduls in den Menüpunkt WiFi Connection.
    2. Gehe in das Untermenü custom connection.
    3. Navigiere zum Menüpunkt disconnect. Drücke den Drehknopf neben dem Display. Das Modul wechselt nun in den Normalbetrieb.

6. Überprüfen, ob die Verbindung zwischen dem Modul und dem MQTT-Broker aktiv ist

Dieser Schritt ist nicht zwingend notwendig, wird aber stark empfohlen. Ohne der funktionierenden Verbindung via MQTT zwischen dem Modul und dem MQTT-Broker funktionieren die weitern Schritte nicht.
Mit dem Programm MQTT-Explorer kann die Verbindung einfach getestet werden. Dazu das Programm am Steuerungscomputer downloaden, installieren und öffnen. Dort folgende Werte einstellen:

Feld Wert
Name frei wählbar, z.B. plantalytix-mqtt-test
Validate certificate aktivieren
Encryption (tls) deaktivieren
Protocol mqtt://
Host localhost
Port 1883
Username leer lassen
Password leer lassen

Dann auf CONNECT klicken.
Nun sollten alle 10 Sekunden die aktuellen Werte, die über MQTT vom Modul übertragen werden, im MQTT-Broker als neue Nachrichten aufscheinen. Neue Nachrichten sind erkennbar, indem das Topic kurz aufblinkt. Hier ein Beispiel:

7. InfluxDB einstellen

  1. In einem Browser am Steuerungcomputer zur Adresse http://localhost:8086 gehen.
  2. Dann öffnet sich der Login-Screen von InfluxDB. Dort mit folgenden Zugangsdaten einloggen:
    • user: my_influxdb_admin
    • password: my_influxdb_password

  1. Nach erfolgreichem Login kann das Browserfenster geschlossen werden.

8. Node-RED einrichten und Flow starten

  1. In Node-RED müssen noch notwendige Packages installiert werden. Öffne dazu ein Terminal und gib folgendes ein:
    • docker exec -it plantalytix-nodered /bin/bash
    • cd /data
    • npm install node-red-contrib-hysteresis node-red-contrib-influxdb node-red-node-pidcontrol (etwaige "notices" können ignoriert werden)
    • exit
    • docker stop plantalytix-nodered
    • docker start plantalytix-nodered
    • Das sieht danach so aus:

  • Du kannst das Terminal schließen.
  1. In einem Browser am Steuerungcomputer zur Adresse http://localhost:1880 gehen.
  2. Das Willkommensfenster in Node-RED kannst du schließen.
  3. Es können folgende Fehlermeldungen aufscheinen:
    • Credentials could not be decrypted. The flow credential file is encrypted, but the project's encryption key is missing or invalid. The flow credential file will be reset on the next deployment. Any existing flow credentials will be cleared.
    • HttpError: unauthorized access

  • Das Fenster mit diesen Fehlermeldungen kannst du mit Close schließen.
  1. Ein Token im influxdb-node-server muss noch richtig gesetzt werden. Dazu

    1. Im Flow auf einen influxdb-out-node doppelklicken.

    1. Auf das Bleistift-Symbol klicken.

    1. Unter "Token" folgendes eingeben: my_token

    1. Auf "Update" klicken

    1. Auf "Done" klicken

  2. Achtung, wenn der Flow im nächsten Schritt gestartet wird, sind standardmäßig folgende Werte gesetzt. Diese Werte sind als Global Environment Variables unter den Settings in Node-RED gesetzt und hier zu finden:

Name der Variable voreingestellter Wert Beschreibung Wertebereich / Einheit
FAN_EXTERNAL_SETPOINT 1 Sollwert des externen Lüfters (Drehlüfter) 0 - 1 (entspricht 0 - 100%)
TEMPERATURE_SETPOINT 19 Sollwert der Temperatur °C
LIGHT_RANGETEMPERATURE_LOW 20 Untere Temperaturschranke, oberhalb der die Beleuchtung gedimmt wird °C
LIGHT_RANGETEMPERATURE_HIGH 21 Obere Temperaturschranke, oberhalb der die Beleuchtung auf 0 gedimmt wird °C
LIGHT_SETPOINT 0.5 Sollwert der Beleuchtung 0 - 1 (entspricht 0 - 100%)
HUMIDITY_SETPOINT 50 Sollwert der relativen Feuchte 10??? - 90??? (in % rf)
HUMIDITY_THRESHOLD_LOW 45 Untere Feuchtigkeitsschranke für die Regelung der Entfeuchtung % rf
HUMIDITY_THRESHOLD_HIGH 55 Obere Feuchtigkeitsschranke für die Regelung der Entfeuchtung % rf
CO2_SETPOINT 6000 Sollwert des CO2-Gehalts ppm (parts per million)
CO2_INJECT_DELAY 120000 Pause zwischen Ventilöffnungen der CO2-Zufuhr ms (Millisekunden)
CO2_INJECT_DURATION 500 Zeitspanne, in der das Ventil der CO2-Zufuhr offen bleibt ms (Millisekunden)
LIGHT_SUNRISE 08:00 Uhrzeit (UTC) zu der die Beleuchtung eingeschaltet wird Uhrzeit in UTC
LIGHT_SUNSET 22:00 Uhrzeit (UTC) zu der die Beleuchtuns ausgeschaltet wird Uhrzeit in UTC
  1. Den Flow mit deploy starten. Es kann kurz die Meldung aufscheinen "unused nodes". Diese verschwindet nach einiger Zeit von alleine.

  1. In der Flow-Ansicht kommen nun alle zehn Sekunden die aktuellen Werte des Moduls an. Dies kann in den debug-Messages überprüft werden. In der Liste scheint alle zehn Sekunden eine neue Nachricht auf.

9. Überprüfen, ob Daten in influxdb ankommen und gespeichert werden

  1. In influxdb einloggen, wie oben beschrieben.
  2. Links auf Data Explorer klicken (Screenshot?). Der Data Explorer öffnet sich. Dort nun Daten darstellen lassen, z.B. so:
    1. my_bucket auswählen im Reiter FROM
    2. sensors auswählen im ersten Filter-Reiter
    3. temperature auswählen im zweiten Filter-Reiter
    4. °C auswählen im dritten Filter-Reiter
    5. Past 1h als Zeitraum auswählen
    6. Eventuell muss auf SUBMIT geklickt werden
  3. Der Graph der Temepratur ist nun sichtbar.

10. Grafana einrichten und Daten darstellen

  1. In einem Browser am Steuerungcomputer zur Adresse http://localhost:3000 gehen.
  2. Dann öffnet sich der Login-Screen von Grafana. Dort mit folgenden Zugangsdaten einloggen:
    • user: my_grafana_admin
    • password: my_grafana_password

  1. Einrichten der Datenquelle (data source):

    1. Im Grafana-Menü auf Connections -> Data sources klicken
    2. Dort auf Add data source klicken

    1. Aus der Liste Time series databases: InfluxDB auswählen

    1. Dort in den influxdb-Settings folgendes eingeben:
Feld Wert
Name frei wählbar, z.B. influxdb
Query language Flux
HTTP: URL http://plantalytix-influxdb:8086
HTTP: Allowed cookies leer lassen
HTTP: Timeout leer lassen
Auth Basic Auth aktivieren, den Rest deaktiviert lassen
Basic Auth Details: User my_influxdb_admin
Basic Auth Details: Password my_token
Custom HTTP Headers leer lassen
InfluxDB Details: Organization my_org
InfluxDB Details: Token my_token
InfluxDB Details: Default Bucket my_bucket
InfluxDB Details: Min time interval 1s
InfluxDB Details: Max series Voreinstellung lassen (1000)
  1. Auf Save & test klicken

  1. Es kommt die grüne Bestätigungsmeldung datasource is working. 3 bucketes found

  1. Dashboard importieren

    1. Im Grafana-Menü auf Dashboards klicken
    2. Rechts auf den blauen Button New klicken
    3. Import auswählen

    1. Auf Upload dashboard JSON file klicken

    1. Die Datei plantalytix dashboard.json auswählen. Sie liegt im oben entpackten Ordner im Unterordner plantalytix -> grafana -> dashboards
    2. In den Options unter influxdb auswählen: influxdb default

    1. Auf Import klicken.

    1. Das Dashboard ist nun unter Dashboards verfügbar und zeigt die Umweltdaten deiner Growbox an:

11. Eigene Steuerung programmieren

Nun läuft die Beispielsteuerung in Node-RED. Mache dich mit dem Flow und den Nodes vertraut. Vor allem die Funktionalität der Global Environment Variables und function - Nodes müssen gut verstanden werden.

Lese auch die technische Anleitung unten genau sowie die Konfigurations-Dokumentation und MQTT-Dokumentation.

Viel Spaß mit deiner individuellen Steuerung! Deine Projekte kannst du gerne mit uns unter #plantalytix ??? teilen!


Kurzanleitung der Steuerung

Alle unsere Geräte können mit ihrer internen Regelung verwendet werden, das Gerät arbeitet dann wie im normalen Betrieb, die Konfiguration erfolgt aber über den lokalen MQTT Server.

Alternativ kann jedes Gerät in einen Direktsteuermodus versetzt werden. Die interne Regelung ist dann inaktiv, sämtliche Ausgänge des Geräts werden direkt über MQTT gesteuert. Mit der Direktregelung können alternative Anwendungen realisiert werden.

In Beiden fällen stehen alle vom Gerät erfassten Messwerte, sowie der aktuelle Zustand alles Ausgänge als MQTT Endpoint zu Verfügung.

Interne Regelung

Die Konfiguration des Gerätes erfolgt als JSON-String über MQTT an den Endpoint /devices/<device-id>/configuration

Die möglichen Einstellungen sind er Konfigurations Dokumentation zu entnehmen, genauere Erklährungen der einzelnen Parameter finden sich im Benutzerhandbuch.

Direktsteuerung via MQTT

Die interne Regelung des Gerätes kann deaktiviert werden um sämtliche Ausgänge direkt via MQTT zu steuern. Dazu muss der Parameter "mqttcontrol" im JSON der Konfiguration auf den wert true gesetzt werden. Alle anderen Einstellungen werden in diesem Modus ignoriert, die Steuerung der Ausgänge erfolgt dann über MQTT Endpoints.

Es genügt in diesem Fall ein JSON Objekt mit dem Inhalt { "mqttcontrol": true } an den Endpoint zu schicken.

Aus Sicherheitsgründen muss dies mindestens alle 60 Sekunden erfolgen. Nach 60 Sekungen ohne MQTT Nachricht mit diesem Modus setzt sich das Gerät automatisch auf die zuletzt verwendeten Einstellungen zurück.

Die MQTT Endpoints der jeweiligen Geräte sind in der MQTT Dokumentation zu finden.

⚠️ **GitHub.com Fallback** ⚠️