@htag/node-red-contrib-hypertegrity-parksandgardens 0.3.2

Hypertegrity NodeRED Node for Parks and Gardens (GreenspaceRecord).

npm install @htag/node-red-contrib-hypertegrity-parksandgardens

Hypertegrity Node-RED Parks and Gardens Nodes

A collection of Node-RED nodes for fitting the smart data model Parks and Gardens.


📝 Introduction

This package provides nodes for integrating parks and gardens sensor data into your Node-RED flows.


Included Nodes

Node Description
eh-bodenfeuchte Fetches soil moisture sensor data from the Netilion API and outputs GreenspaceRecord entities

Configuration by message

The node accepts an optional msg.config object on its input. Its properties use the same names as the node settings in the editor (sensors, authMethod, baseUrl, apiKey, apiSecret, username, password) and override them for this message only. Sensor lists in msg.payload or msg.sensors keep working as before. Invalid values raise an error that can be handled with a Catch node.

msg.config = { sensors: [{ instrumentationId: "123456", sensorName: "Beet A", moistureKey: "soil_moisture" }] };

Security notes

The editor helper endpoints require the eh-bodenfeuchte.read permission when adminAuth is enabled and use POST requests, so credentials typed in the dialog never appear in URLs. Stored credentials are only used for nodes of this type and only sent to the origin of the API base URL the node is deployed with (default https://api.netilion.endress.com); editor lookups only use the public Netilion API or that deployed address. A message that points msg.config.baseUrl to another origin uses only its own credentials (msg.config.apiKey is required). At runtime, redirects are only followed within the origin of the API base URL, so the API key, user credentials and tokens never reach another host.

Notes on upgrading to 0.3.2

  • dateObserved uses the measurement time of the moisture value, otherwise of the VWC value, otherwise of the temperature (earlier versions used the retrieval time when no moisture value was mapped).
  • In Basic Auth mode the Netilion user name and password are required; the node warns at startup if they are missing.
  • Coordinates are parsed strictly: a decimal comma ("49,44") is accepted; values with additional text ("7.7abc") or outside ±90° latitude / ±180° longitude produce no location (earlier versions truncated or passed them on, e.g. "49,44" became 49).
  • Only numbers are taken over as measurements (numbers delivered as text stay unchanged). A Netilion value delivered as null, without value or as non-numeric text (e.g. "n/a", "") creates no attribute, no longer determines dateObserved and is reported with a warning once per sensor and attribute (until the next deploy).
  • A response with HTTP 200 but without a values list (HTML page, broken or truncated JSON) is reported as an error for this sensor instead of an empty record; the editor reports such responses (also an instrumentation list that is broken or has no instrumentations array) as an upstream error (HTTP 502); an empty list stays valid.
  • Redirects of the Netilion API are only followed within the same origin; a redirect to another host fails with an error for this sensor.
  • Closing or redeploying the node also aborts a running OAuth token request; queued messages no longer change the status or log warnings after close.
  • In OAuth mode the Netilion user name and password are required as well; the node warns at startup (status "not configured") if they are missing.
  • msg.instrumentationId of a configured sensor uses the value mapping, coordinates and name of that sensor (msg.sensorName only replaces the name). A single sensor object in msg.payload (with instrumentationId) keeps its own value mapping and coordinates like a list entry. Earlier versions produced a record without measurements in both cases.
  • A list in msg.payload counts as a sensor list as soon as one entry is a sensor; invalid entries are skipped with a warning (earlier versions only checked the first entry and otherwise used msg.sensors or the configured sensors).
  • Only numeric instrumentation IDs are queried; any other ID (e.g. "..", "abc") is reported as an error for this sensor without a request.
  • Values spread over several pages (pagination.next) are read completely, at most 10 pages (with a warning once per sensor beyond that); this also applies to the "Values" button in the editor.
  • After an authentication error (failed OAuth token request, HTTP 401 in Basic Auth mode) the remaining sensors of the same message get the same error without a further request or login (earlier versions logged in again for every sensor, which could lock the account).
  • OAuth tokens are cached per set of credentials including a hash of the password, so msg.config with another password never uses a cached token. A cached token rejected with HTTP 401 is discarded; the node logs in again once per message and repeats the request.
  • Editor: a failed OAuth token request is reported as upstream error (HTTP 502) with the HTTP status of Netilion (earlier HTTP 500 without status); entries of the value list that are no objects (e.g. null) are skipped instead of causing an error.
  • New setting API base URL (default: the public Netilion API) for a proxy or a test mock; msg.config.baseUrl changes it for one message (another origin than the configured one uses only the credentials of the message and requires msg.config.apiKey).

Installation

Install via the Node-RED Palette Manager or using npm:

npm install @htag/node-red-contrib-hypertegrity-parksandgardens

🌍 About the Project / Über das Projekt

📍 Über dieses Projekt / About this Project

DE: Dieses Open Source Projekt ist im Rahmen der Förderung Modellprojekte Smart Cities entstanden und wurde durch die Initiative des Projekts Südwestcluster ermöglicht.

EN: This open source project was created as part of the Smart City Pilot Projects (Modellprojekte Smart Cities) funding and was made possible by the initiative of the Südwestcluster project.

💡 Hintergrund / Background

DE: Die Entwicklung wurde durch öffentliche Gelder im Kontext der Förderung Modellprojekte Smart Cities unterstützt. Dadurch können wir diese Lösung der gesamten Community als Open Source zur Verfügung stellen.

EN: The development was supported by public funds in the context of the Smart City Pilot Projects (Modellprojekte Smart Cities) funding. This allows us to make this solution available to the entire community as open source.

🌐 Open Source Philosophie / Open Source Philosophy

DE: Wir unterstützen aktiv die OSS-Community und fördern kollaborative Entwicklung. Durch die Veröffentlichung als Open Source profitieren alle Beteiligten:

  • Community: Freier Zugang zu moderner Smart City Technologie
  • Transparenz: Nachvollziehbare und überprüfbare Lösungen
  • Innovation: Gemeinsame Weiterentwicklung durch verschiedene Akteure
  • Nachhaltigkeit: Langfristige Verfügbarkeit und Wartbarkeit

EN: We actively support the OSS community and promote collaborative development. Releasing it as open source benefits everyone involved:

  • Community: Free access to modern Smart City technology
  • Transparency: Traceable and verifiable solutions
  • Innovation: Collaborative development by various actors
  • Sustainability: Long-term availability and maintainability

🙏 Danksagung / Acknowledgements

DE: Ein besonderer Dank gilt der Förderung Modellprojekte Smart Cities für die finanzielle Unterstützung sowie dem Projekt Südwestcluster für die Initiative und Koordination:

  • Eifelkreis Bitburg-Prüm
  • Stadt Kaiserslautern
  • Landkreis Kusel
  • Stadt und Verbandsgemeinde Linz am Rhein
  • Landkreis Mayen-Koblenz
  • Landkreis St. Wendel

EN: Special thanks goes to the Smart City Pilot Projects (Modellprojekte Smart Cities) funding for financial support and the Südwestcluster project for the initiative and coordination:

  • Eifelkreis Bitburg-Prüm
  • City of Kaiserslautern
  • District of Kusel
  • City and Collective Municipality of Linz am Rhein
  • District of Mayen-Koblenz
  • District of St. Wendel

📜 License & Contact / Lizenz & Kontakt

© 2026 HYPERTEGRITY AG. Alle Rechte vorbehalten. / All rights reserved.

⚖️ License Compatibility / Lizenz-Kompatibilität

DE: Details zur Lizenzierung und zu den Nutzungsrechten finden Sie in der beigefügten LICENSE Datei.

EN: Details on licensing and usage rights can be found in the attached LICENSE file.

📧 Contact / Kontakt: [email protected] 🌐 Website: www.hypertegrity.de

Node Info

Version: 0.3.2
Updated 1 week, 1 day ago
License: EUPL-1.2
Rating: not yet rated

Categories

Actions

Rate:

Downloads

0 in the last week

Nodes

  • eh-bodenfeuchte

Keywords

  • node-red
  • endress+hauser
  • netilion
  • soil moisture
  • bodenfeuchte
  • greenspacerecord
  • ngsi
  • parksandgardens
  • hypertegrity