Zoals veel software engineers begon ook ik ooit met een cactus, omdat die "geen onderhoud nodig heeft". De ironie? Zelfs die heeft het niet overleefd. Tijd voor een oplossing die past bij mijn skillset: automatisering. In deze blog neem ik je mee in mijn project om mijn plantenverzorging te automatiseren. Denk: sensors, Home Assistant, zwaartekracht-druppelaars en een AI-chatfunctie die letterlijk "praat" met je planten.
Deel 1: Sensoren koppelen aan Home Assistant
De basis van elk zelfrespecterend plantenautomatiseringsproject begint met... meten. Ik maak gebruik van goedkope, maar verrassend accurate BLE-sensoren (de Xiaomi Mi Flora) om waarden uit te lezen zoals:
- Bodemvochtigheid
- Lichtintensiteit
- Temperatuur
- Bodemvoedingswaarde (EC)
Via een ESP32 met ESPHome koppel ik deze aan mijn Home Assistant setup:
sensor:
- platform: xiaomi_hhccjcy01
mac_address: 'A4:C1:38:XX:XX:XX'
temperature:
name: "Plant A Temperature"
moisture:
name: "Plant A Moisture"
illuminance:
name: "Plant A Light"
conductivity:
name: "Plant A EC"
Home Assistant aggregeert deze data en geeft het door aan mijn eigen app (gebouwd in Flutter) die ook notificaties kan sturen en acties uitvoert.
2: Actie op basis van data: water, voeding, licht
Sensorwaarden zijn leuk, maar planten worden er niet automatisch blij van. Dus:
- Water geven: Via een zelfgebouwde zwaartekrachtgedreven druppelaar (meer daarover zo)
- Lichtregeling: Sommige planten staan onder grow lights op een slimme stekker
- Voeding: Indien EC te laag is, volgt een herinnering om plantenvoeding toe te dienen (handmatig, voor nu)
Regels in Home Assistant zorgen voor de acties:
automation:
- alias: "Geef Plant A water als droog"
trigger:
platform: numeric_state
entity_id: sensor.plant_a_moisture
below: 20
action:
service: switch.turn_on
entity_id: switch.druppelaar_plant_a


Deel 3: "Praat met je plant" – AI als groene coach
Een leuke gimmick (en stiekem superhandig) is de integratie van een LLM (GPT via een API) die op basis van sensorwaarden feedback genereert als menselijke tekst. Bijvoorbeeld:
"Hoi! Ik sta nu al twee dagen op een donkere plek. Misschien kan ik iets meer licht krijgen? 💡"
Ik genereer dit door periodiek een prompt te sturen:
prompt = f"""
Je bent een vrolijke kamerplant. Hier zijn je actuele waarden:
Vocht: {moisture}%
Licht: {lux} lux
Temperatuur: {temp} °C
Geef een kort berichtje hoe je je voelt en wat je nodig hebt.
"""
De output verschijnt in de app én in een Telegram-bot.
Deel 4: Eigen sensor & zwaartekracht-druppelaar
Omdat de bestaande sensoren soms instabiel waren, ben ik begonnen met het bouwen van mijn eigen sensor op basis van een capacitive soil moisture sensor, gekoppeld aan een ESP32. De bijbehorende druppelaar is een fles met een solenoid die opent op basis van een signaal. Alles wordt gevoed door zwaartekracht:
- Geen pomp nodig
- Geen bewegende onderdelen
- Veilig en stil
Deel 5: Zelflerend systeem voor gepersonaliseerde verzorging
De data die binnenkomt wordt opgeslagen (PostgreSQL) en gevoed in een kleine feedback loop met eenvoudige regressiemodellen. Elke plant krijgt zo een persoonlijk profiel:
- Droogt snel uit? Dan krijgt hij iets vaker water.
- Staat op het zuiden? Meer licht tolerantie.
- Winterstand? Minder water, langere intervallen.
De resultaten worden geëvalueerd op basis van herstel na bewatering. Deze worden geanalyseerd en gebruikt om de irrigatiefrequentie aan te passen. In de toekomst wil ik hier een reinforcement learning model op loslaten (met een reward-functie gebaseerd op sensorstabiliteit)
Afronding
Wat begon als een excuus om met ESP32’s te spelen is uitgegroeid tot een project dat:
- Mijn planten laat overleven
- Mijn programmeerdrang voedt
- Mijn dochter laat geloven dat papa met planten kan praten
Heb je zelf ook een groene vinger met een passie voor code? Dan nodig ik je uit om je eigen 'PlantGPT' te bouwen. Groen is het nieuwe DevOps 😉🌱