Dein Gerät läuft schon mit ESPHome und soll das auch weiter tun. Dann brauchst du keine neue Firmware, sondern eine Komponente mehr in deiner YAML. Sie schickt die Werte deiner vorhandenen Sensoren signiert an HydroNode und nimmt Befehle aus der App entgegen.
Voraussetzungen
Zugangsdaten in secrets.yaml
Lege die Daten neben deine Geräte-YAML in secrets.yaml. Diese Datei gehört nicht in Git.
wifi_ssid: "YOUR_WIFI_SSID"
wifi_password: "YOUR_WIFI_PASSWORD"
hydronode_sensor_id: "your-sensor-id"
hydronode_device_secret: "your-secret-key"Die Konfiguration
Drei Dinge kommen dazu: die externe Komponente, http_request und eine Zeitquelle, denn jede Signatur trägt einen Zeitstempel. Unter measurements ordnest du jedem ESPHome-Sensor über seine id einen HydroNode-Typ zu.
esphome:
name: greenhouse-climate
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
logger:
external_components:
- source:
type: git
url: https://github.com/TexhFexLabs/hydronode-esphome
ref: v0.4.0
components: [hydronode]
# Signatures carry a timestamp, so HTTP and time are both required
http_request:
id: hydronode_http
timeout: 10s
verify_ssl: true
time:
- platform: sntp
id: hydronode_time
timezone: UTC
i2c:
sda: GPIO6
scl: GPIO7
sensor:
- platform: bme280_i2c
address: 0x76
temperature:
id: air_temperature
name: Air Temperature
humidity:
id: air_humidity
name: Air Humidity
pressure:
id: air_pressure
name: Air Pressure
update_interval: 30s
hydronode:
id: hydronode_cloud
sensor_id: !secret hydronode_sensor_id
device_secret: !secret hydronode_device_secret
update_interval: 60s
measurements:
- source: air_temperature
type: TEMPERATURE
- source: air_humidity
type: HUMIDITY
- source: air_pressure
type: PRESSURE- Version festnageln
ref: v0.4.0sorgt dafür, dass sich dein Build nicht unter dir ändert.ref: mainnur zum Testen. - Typen wählenTypnamen sind Großbuchstaben, Ziffern und Unterstriche. Gängige:
TEMPERATURE,HUMIDITY,PRESSURE,CO2,PM25,SOIL_MOISTURE. Alle stehen in der Typenreferenz. - Intervall
update_intervalist mindestens 10 Sekunden. HydroNode nimmt pro Typ höchstens einen Wert alle 10 Sekunden. - FlashenWie gewohnt mit
esphome run greenhouse-climate.yamloder aus dem ESPHome-Dashboard.
Prüfen, ob es ankommt
Im ESPHome-Log siehst du nach jedem Upload eine Zeile mit HTTP 202. In HydroNode öffnest du die Sensorseite und drückst `. Die Console zeigt jede Anfrage mit Signaturprüfung und Uhrabweichung. Kommt nichts an, nennt der Filter Rejected den Grund.
TEMPERATUR erzeugt also eine neue Messgröße statt einer Fehlermeldung. Schau nach dem ersten Upload kurz in die Kanalliste der Sensorseite. Befehle aus der App
Mit einem commands-Block erklärst du, welche Befehle das Gerät versteht. Passt Name und Typ, wird der Befehl bestätigt und an on_command weitergegeben. Sonst lehnt die Komponente ihn ab, und die App zeigt den Grund: NO_HANDLER, TYPE_MISMATCH oder INVALID_VALUE.
switch:
- platform: gpio
id: fan_relay
name: Fan
pin: GPIO5
hydronode:
# credentials and measurements as above
commands:
- name: fan
type: BOOL
on_command:
- if:
condition:
lambda: 'return command == "fan" && value_json == "true";'
then:
- switch.turn_on: fan_relay
else:
- switch.turn_off: fan_relay In on_command stehen dir command, value_json und type zur Verfügung. Senden kannst du den Befehl auf der Sensorseite über Send command oder in der Console mit fan:bool true.
Was Fleet über ESPHome-Geräte weiß
Ab Version 0.4.0 meldet die Komponente bei jeder Anfrage Chip, Neustarts, Grund des letzten Resets und WLAN-Signal. Fleet listet das Gerät deshalb als ESPHome mit Zustand und Fehlerrate. Updates über die Luft macht ESPHome selbst, HydroNode schickt diesen Geräten keine Firmware.
Weiter geht's
- Der Device Builder kann dir dieselbe YAML auch erzeugen, mit Pins und Typen schon ausgefüllt.
- Deine Werte zurück nach Home Assistant holen: HydroNode in Home Assistant.
- Alle Optionen der Komponente stehen auf GitHub.



