[Erfahrungsbericht] [V4.8 IP4] FYTA Pflanzensensoren mit HTTP-Client

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
MoseP
Beiträge: 28
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 39 Mal
Danksagung erhalten: 26 Mal

[V4.8 IP4] FYTA Pflanzensensoren mit HTTP-Client

#1

Beitrag von MoseP »

Hallo zusammen

Ich habe die Feiertage genutzt, um meine FYTA-Pflanzensensoren auf den Timberwolf zu bringen. Grundsätzlich gibt es dazu die Varianten IFTTT und FYTA Public API. Da im IFTTT nur Warnungen verschickt werden, aber keine Statusdaten verfügbar sind, habe ich mich für die HTTP-Integration entschieden. Perplexity hat mir bei der Ersteinrichtung und dem repetitiven Anlegen der einzelnen Sensordaten geholfen.

Einrichtung des HTTP-Client
  1. HTTP-Client-Subsystem "FYTA" anlegen.
  2. Im Ressourcen-Manager "Neuen HTTP-API Server hinzufügen"
  3. Autorisierung "Bearer Token", Hostadresse "https://web.fyta.de" Port 443
  4. Als Wert den Token eintragen, den man auf der FYTA-Seite web.fyta.de unter "API Token" generieren kann.
  5. Validierung Server-Zertifikat aktivieren
Ich habe zwei Varianten im Einsatz:
Bild
A) Gesamtliste der Pflanzen und ihrer Zustände über /api/user-plant
  1. Ressource hinzufügen: Ressource "/api/user-plant", Request-Methode GET, Auslöser-Intervall 30 Minuten, Response Content-Type "application/json"
    Bild
  2. Hiermit entsteht die Gesamtliste aller Pflanzen, die man mittels "Empfangene und gesendete Rohaten anzeigen" anschauen kann.
    Die Werte jeder einzelnen Pflanze lassen sich mit "Auswertung HTTP-Antwort hinzufügen" als Ressource erstellen.
  3. Die Identifikation der Pflanze erfolgt entweder über die Reihenfolge im json (Selektor: .plants[0] und fortlaufend [1], [2], ...) oder über die eindeutige ID (Selektor: .plants[id=12345]). Ich empfehle die Pflanzen-ID (Achtung: "id" aus der Gesamtliste, nicht "plant_id"), da diese auch beim Austausch von Sensoren erhalten bleibt.
  4. Nun können die erwünschten Werte für jede Pflanze einzeln erstellt werden. Leider ist die API-Dokumentation unvollständig, es gibt noch einige weitere Datenfelder, z. B. "isBadge" zeigt, ob es eine Meldung für die Pflanze in der App gibt (und "noOfbadge" die Anzahl der Meldungen), umgekehrt zeigt "isDoingGreat", dass alles ok ist. Im Gegensatz zur Dokumentation zeigt bei mir .plant.status immer "2", egal ob die Pflanze Warnungen hat oder nicht. Die Felder "notification" geben leider nicht an, ob es einen Hinweis gibt, sondern konfiguriert, ob der Sensor entsprechende Hinweise ausgeben soll oder nicht.
B) Detaildaten zu jeder einzelnen Pflanze
Ich wollte eine Detailseite erstellen, auf der ich alle Daten zu einer Pflanze anzeigen lassen, kann, z. B. auch die letzte Düngung oder ob die Batterie des Sensors bald leer ist. Dafür wollte ich nicht jedes eizelne Element für jede Pflanze erstellen, sondern habe es mit einem dynamischen Aufruf erstellt, der in der VISU als Detailseite mit Auswahlmöglichkeit der Pflanze realisiert ist.
  1. Ressource hinzufügen: Ressource "/api/user-plant/<id>", Request-Methode GET, kein Auslöser-Intervall (Auslösung erfolgt über den Aufruf des Objekts), Response Content-Type "application/json"
    Bild
  2. Ein "Objekt zur HTTP Abfrage hinzufügen" mit der Information: Lokation "URI", Format "Ganzzahl (INT)", Selektor "id", Auslöser "Wertänderung löst Abfrage mit Übergabe NUR des aktuellen Objektwerts DIESER Transaktion aus"
  3. Passende Datenfelder entsprechend Codierung im json anlegen, z. B.
    • .plant.nickname
    • .plant.fertilisation.last_fertilised_at
    • .plant.measurements.nutrients.status
  4. Diese Felder können dann der Detailübersicht in der VISU zugeordnet werden (siehe Beispiel unten).
Umsetzung in der VISU
In der VISU habe ich ein Info-Schaltfläche erstellt, die in der Detailansicht alle entsprechenden Datenfelder enthält. Zur Auswahl habe ich bei "Basiskonfiguration - Wertaussendung" die verschiedenen Pflanzen-IDs ("id" in JSON) mit ihrem Namen hinterlegt. So erhalte ich eine Seite mit allen Pflanzen zur Auswahl, durch die ich durchtippen kann:
Bild

Die Anzeigewerte habe ich entsprechend Dokumentation übersetzt, z. B. für den Düngerwert:
Bild

Auf der VISU-Seite selbst habe ich auch noch für jede Pflanze ein eigenes Symbol mit den beiden Werten "Wasser" und "Dünger" (aus der Gesamtliste A) als zwei Werte auf der Kachel erstellt, damit ich auf einen Blick sehen kann, ob es allen Pflanzen gut geht.

Als zukünftige Verbesserung wäre es schön, wenn ich einen Array aus den Pflanzen-IDs (Gesamtliste) erstellen könnte und diesen dynamisch in der VISU anzeigen lassen kann. Derzeit sind alle Pflanzen "hard-coded" in der VISU als Werte hinterlegt. Im Idealfall könnte ich auch die Symbole nur einmal erstellen und mit "ID+1" von einem zum nächsten Symbol die Pflanzen der Reihe nach abfragen, ohne dass der Wert überschrieben wird (wie in der dynamischen Abfrage B oben).

Viel Spass beim Nachbauen!
André
TWS 3500M ID:947, VPN offen, Reboot erlaubt

StefanW
Elaborated Networks
Elaborated Networks
Beiträge: 11117
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 5469 Mal
Danksagung erhalten: 9548 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Hi André,

eine phantastische Lösung, ganz toll!

Info zu den FYTA Pflanzensensoren hier: https://fyta.de/pages/fyta-system

Danke schön für die Beschreibung

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

ms20de
Elaborated Networks
Elaborated Networks
Beiträge: 1387
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 432 Mal
Danksagung erhalten: 906 Mal

#3

Beitrag von ms20de »

Hallo André,

kreative Idee mit den dynamischen Durchschalten zwischen den Pflanzen auf der Detailseite.
Danke für die Beschreibung.

Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache

SchateMuhl
Beiträge: 542
Registriert: Mi Nov 23, 2022 9:31 pm
Wohnort: Werther bei Nordhausen
Hat sich bedankt: 148 Mal
Danksagung erhalten: 199 Mal
Kontaktdaten:

#4

Beitrag von SchateMuhl »

Hallo André

Cool was du da gebaut hast, ich habe auch einige Fyta Sensoren und logge die Daten schon über den TWS, aber deine VISU werde ich mal nachbauen.
Danke für das teilen. :clap:
Grüße
Andreas

TWS 3500M ID:992 /XL ID:1198 , VPN offen, Reboot nach Absprache
- KNX mit TWS, 1Home, ENO Gateway, ETS
- PV Anlagen AC gekoppelt mit Fronius IG 40/60 und Symo 10KW
- 96kWh LiFePo mit 3 x MultiPlus 48/8000 und DC PV Anlagen über MPPT

Ersteller
MoseP
Beiträge: 28
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 39 Mal
Danksagung erhalten: 26 Mal

#5

Beitrag von MoseP »

Hallo zusammen
Ich habe das HTTP-API-Serverprofil für FYTA exportiert, damit sollte das Anlegen schneller gehen.
TWS HTTP-API Export - FYTA Cloud API v1.json
Mittels "Neue HTTP-API aus Profildatei anlegen" lässt sich der Client automatisch anlegen. Der Bearer-Token muss manuell eingetragen werden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TWS 3500M ID:947, VPN offen, Reboot erlaubt
Benutzeravatar

starwarsfan
Beiträge: 1425
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 902 Mal
Danksagung erhalten: 1235 Mal

#6

Beitrag von starwarsfan »

Hallo miteinander

OT-Frage: Hat noch jemand das Problem, dass sich immer mal wieder einer der Sensoren aufhängt? In der App steht dann "veraltete Daten" und das lässt sich nur durch kurzes entfernen der Batterie aus dem Sensor lösen. Nervig...
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)

SchateMuhl
Beiträge: 542
Registriert: Mi Nov 23, 2022 9:31 pm
Wohnort: Werther bei Nordhausen
Hat sich bedankt: 148 Mal
Danksagung erhalten: 199 Mal
Kontaktdaten:

#7

Beitrag von SchateMuhl »

Hi Yves
@starwarsfan

Hatte ich bisher noch nicht, allerdings habe ich auch erst 6 Sensoren.
Grüße
Andreas

TWS 3500M ID:992 /XL ID:1198 , VPN offen, Reboot nach Absprache
- KNX mit TWS, 1Home, ENO Gateway, ETS
- PV Anlagen AC gekoppelt mit Fronius IG 40/60 und Symo 10KW
- 96kWh LiFePo mit 3 x MultiPlus 48/8000 und DC PV Anlagen über MPPT

Ersteller
MoseP
Beiträge: 28
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 39 Mal
Danksagung erhalten: 26 Mal

#8

Beitrag von MoseP »

Neue Version: Ich habe die Autorisierung aus dem Serverprofil herausgenommen und dynamisch als Header bei der Abfrage eingetragen, ausserdem einen Refresh-Vorgang ergänzt. Deshalb hier zwei Serverprofile.
FYTA Cloud Authorization.json
FYTA Cloud API v2.0-public.json
Die Fehlermeldung beim Import könnt Ihr ignorieren, ich habe nur meine vielen individuell benannten Pflanzen rausgelöscht und nur zwei Beispiele dringelassen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MoseP am Fr Feb 27, 2026 12:53 am, insgesamt 1-mal geändert.
TWS 3500M ID:947, VPN offen, Reboot erlaubt

Ersteller
MoseP
Beiträge: 28
Registriert: Di Mär 07, 2023 8:15 am
Hat sich bedankt: 39 Mal
Danksagung erhalten: 26 Mal

#9

Beitrag von MoseP »

starwarsfan hat geschrieben: So Feb 08, 2026 10:43 am In der App steht dann "veraltete Daten" und das lässt sich nur durch kurzes entfernen der Batterie aus dem Sensor lösen. Nervig...
Das Problem hatte ich noch nie. Wenn die Daten mal veraltet sind, dann maximal für einen Tag, oder weil die Batterie tatsächlich zu schwach ist (da habe ich je nach Batteriehersteller unterschiedliche Erfahrungen). Hast Du einen oder mehrere Hubs?
Was passiert, wenn Du in der App bei den Pflanzen den "Live Modus" aktivierst, oder in der Sensorverwaltung "Sensor finden" auswählst?
TWS 3500M ID:947, VPN offen, Reboot erlaubt
Benutzeravatar

starwarsfan
Beiträge: 1425
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 902 Mal
Danksagung erhalten: 1235 Mal

#10

Beitrag von starwarsfan »

Hi
MoseP hat geschrieben: Fr Feb 27, 2026 12:49 am Das Problem hatte ich noch nie. Wenn die Daten mal veraltet sind, dann maximal für einen Tag, oder weil die Batterie tatsächlich zu schwach ist (da habe ich je nach Batteriehersteller unterschiedliche Erfahrungen). Hast Du einen oder mehrere Hubs?
Batterien habe ich jetzt noch nicht getauscht, da ich diesen Typ nicht in meinem Fundus habe. Aber da die Sensoren neu sind, sollte das eher nicht daran liegen. Ich habe drei Minis und zwei Spheres, alles via einem Hub hier im Wohnzimmer mit einer maximalen Entfernung von ca. 4m zum Hub.

MoseP hat geschrieben: Fr Feb 27, 2026 12:49 am Was passiert, wenn Du in der App bei den Pflanzen den "Live Modus" aktivierst, oder in der Sensorverwaltung "Sensor finden" auswählst?
Kann ich nicht sagen, müsste ich beim nächsten Mal ausprobieren.

Mittlerweile habe ich schon diversen Mailverkehr mit dem Support und irgendwas haben sie auch neu ausgerollt sowie kalibriert. Der Extremfall sah dabei so aus, dass nach dem Giessen die Feuchtigkeit auf 100% ging, was bei einem 50cm-Topf und 2L Giesswasser schlichtweg unmöglich ist. Da habe ich den Sensor entfernt, gesäubert und wieder in den Boden gesteckt. Ab diesem Zeitpunkt sieht das jetzt plausibel aus und ich hatte bisher auch keine Ausfälle mehr.

Jetzt warte ich noch, dass die Schwächen in der Mobile-App beseitigt werden. Vielleicht fasst dann auch meine "bessere Hälfte" wieder etwas Vertrauen in das was dort so angezeigt wird...
Kind regards,
Yves

TWS 2500 ID:159 / TWS 3500 ID:618 / TWS 3500 ID:1653 + PBM ID:401 / ProxMox / 1-Wire / iButtons / Edomi (LXC / Docker) / evcc / ControlPro
(TW-VPN jeweils offen, Reboot nach Rücksprache)
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“