This flow was submitted before accounts existed, so nobody owns it yet. If you submitted it, open the edit link you were given — it still works — and you can attach the flow to an account from there. There is no deadline, and attaching it retires the link for good.
Gezeiten der Nordsee
Abfrage der Gezeiten / Tide über die API des BSH.
| System | Node-RED |
|---|---|
| Firmware | AWTRIX 3 |
| Topic | Miscellaneous |
| Built by | JoeHess |
| File | eJpdO8LMOy8N.json · 3.4 KB |
| Icons | — |
| Published | 16 Jun 2025 · updated 16 Jun 2025 |
| Downloads | 21 |
Das Bundesamt für Seeschifffahrt und Hydrographie (BSH) stellt eine API zur Verfügung, mit der sich die nächsten Gezeiten abfragen lassen.
Im Flow wurde der Standort Büsum übernommen. Sollte ein anderer Standort gewünscht sein, muss die API entsprechend angepasst werden. Siehe hierzu: https://wasserstand-nordsee.bsh.de/data/map.json. Dort muss die „bshnr” ausgetauscht werden.
Mittels der Icons werden Hoch- und Niedrigwasser angezeigt.
Alle 10 Minuten wird abgefragt und an Awtrix gesendet.
Natürlich müsst ihr noch eure richtige Awtrix-IP setzen.
Es werden die ICONS 19480 sowie 19481 verwendet.
eJpdO8LMOy8N.json
[
{
"id": "953ddfa3daa2b330",
"type": "http request",
"z": "8e38f7e60c11d07a",
"name": "",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "https://wasserstand-nordsee.bsh.de/data/DE__505P.json",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [],
"x": 310,
"y": 380,
"wires": [
[
"7980e6a3bc5b7045"
]
]
},
{
"id": "c35e4a64440425d9",
"type": "inject",
"z": "8e38f7e60c11d07a",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "600",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 90,
"y": 380,
"wires": [
[
"953ddfa3daa2b330"
]
]
},
{
"id": "7980e6a3bc5b7045",
"type": "function",
"z": "8e38f7e60c11d07a",
"name": "function 2",
"func": "let tideData = msg.payload.hwnw_forecast.data;\n\n// Funktion zur Umwandlung in lokale Zeit (Europe/Berlin)\nfunction getLocalTime(utcString) {\n let isoString = utcString.replace(' ', 'T');\n if (!isoString.endsWith('Z') && !isoString.includes('+')) {\n isoString += 'Z';\n }\n let date = new Date(isoString);\n // Nur Uhrzeit, im deutschen Format\n return date.toLocaleTimeString(\"de-DE\", { timeZone: \"Europe/Berlin\", hour: '2-digit', minute: '2-digit' });\n}\n\n// Array für die beiden Payloads\nlet payloads = [];\n\nfor (let i = 0; i < 2; i++) {\n let event = tideData[i];\n let icon = event.event === \"HW\" ? 19481 : 19480;\n let text = getLocalTime(event.timestamp);\n\n payloads.push({\n \"icon\": icon,\n \"text\": text,\n \"lifetime\": 305\n });\n}\n\n// Wenn du beide nacheinander senden willst, kannst du sie als array ausgeben oder einzeln weiterverarbeiten\n// Hier als array:\nmsg.payload = payloads;\nreturn msg;\n",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 540,
"y": 380,
"wires": [
[
"7eaa8bbb418a0b21"
]
]
},
{
"id": "7eaa8bbb418a0b21",
"type": "http request",
"z": "8e38f7e60c11d07a",
"name": "AwtrixUlanzi/tide",
"method": "POST",
"ret": "txt",
"paytoqs": "ignore",
"url": "http://192.168.178.78/api/custom?name=tide",
"tls": "",
"persist": false,
"proxy": "",
"insecureHTTPParser": false,
"authType": "",
"senderr": false,
"headers": [
{
"keyType": "Content-Type",
"keyValue": "",
"valueType": "other",
"valueValue": "application/json"
}
],
"x": 760,
"y": 380,
"wires": [
[]
],
"icon": "font-awesome/fa-align-left"
}
]
More flows for Node-RED or Miscellaneous
Something wrong with this flow? Report it.