You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Highlights
Typed commands. Register callbacks with the value type you pick in the HydroNode app: onBool, onInt32, onUInt32, onInt64, onUInt64, onString. Hex like 0x20124 works for the integer types.
Declines with a reason. A command without a matching callback, with another type or with a value that does not fit is declined (NO_HANDLER, TYPE_MISMATCH, INVALID_VALUE) instead of confirmed, and never runs. The apps show why.
Fewer dependencies. HMAC-SHA256 and Base64 now use the mbedTLS built into the ESP32 core. Crypto and base64_arduino are no longer needed.
ArduinoJson 7 without deprecation warnings; responses up to 8 KB (the backend's maximum of 8 commands).
Input checks before sending.ERR_INVALID_TYPE (-4) for types like temperature, ERR_INVALID_VALUE (-5) for NaN or infinity. No TLS handshake is spent on them.
Default host hydronode.tech.hydronode.texhfexlabs.de stays reachable, devices in the field keep working.
Compatibility
Sketches from 1.2.0 compile unchanged: on() and bindCallback still work.
Requires the current HydroNode backend (already live).
Docs
Rate limit is one value per sensor and type every 10 s; different types can be sent right after each other.
400 and 503 documented, free usage with up to 20 sensors, pump run-time clamp in ActuatorControl.
Verified
All examples compile for ESP32, ESP32-C3 and ESP32-S3 without warnings from the library.
The unchanged library code ran on the host against a local HydroNode backend: signed uploads, per-type rate limit, and typed commands confirmed or declined exactly as expected.
TLS 1.2 chain against hydronode.tech verified with the bundled root CAs.