{ "name": "Blitzerwarnung und Schutz", "nodes": [ { "parameters": {}, "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [ -160, -176 ], "id": "6ed99cae-d105-4787-ba5c-fe111a541cdf", "name": "When clicking ‘Execute workflow’" }, { "parameters": { "topics": "'homeassistant_gewitterwarnung'", "options": {} }, "type": "n8n-nodes-base.mqttTrigger", "typeVersion": 1, "position": [ -160, 80 ], "id": "a2bb5594-53c5-4189-a77a-11e032bd3e7a", "name": "MQTT Trigger", "credentials": { "mqtt": { "id": "iTGdMrvNdq6GfJ45", "name": "MQTT account" } } }, { "parameters": { "resource": "state", "entityId": "sensor.blitzortung_lightning_counter" }, "type": "n8n-nodes-base.homeAssistant", "typeVersion": 1, "position": [ 64, -208 ], "id": "79ee914a-87b3-41bf-9fa5-c50ada371f90", "name": "blitzer_anzahl", "credentials": { "homeAssistantApi": { "id": "CASmA2MyiLWSS3RF", "name": "Home Assistant account" } } }, { "parameters": { "resource": "state", "entityId": "sensor.blitzortung_lightning_azimuth" }, "type": "n8n-nodes-base.homeAssistant", "typeVersion": 1, "position": [ 64, -64 ], "id": "e254ca49-8922-47af-8322-1c935e3c1e77", "name": "blitzer_azimuth", "credentials": { "homeAssistantApi": { "id": "CASmA2MyiLWSS3RF", "name": "Home Assistant account" } } }, { "parameters": { "resource": "state", "entityId": "sensor.blitzortung_lightning_distance" }, "type": "n8n-nodes-base.homeAssistant", "typeVersion": 1, "position": [ 64, 112 ], "id": "d1a2291f-432a-4833-ae9f-28de123e8c96", "name": "blitzer_entfernung", "credentials": { "homeAssistantApi": { "id": "CASmA2MyiLWSS3RF", "name": "Home Assistant account" } } }, { "parameters": { "mode": "combine", "combineBy": "combineByPosition", "numberInputs": 3, "options": {} }, "type": "n8n-nodes-base.merge", "typeVersion": 3.2, "position": [ 288, -80 ], "id": "4df93ca3-451f-42ff-bedc-dc73d802548f", "name": "Merge" }, { "parameters": { "assignments": { "assignments": [ { "id": "2fd1ea66-e485-44a1-849c-c4c74dc1129d", "name": "Blitzer Distanz (km)", "value": "={{ $json.state !== 'unknown' ? $json.state : 0 }}", "type": "number" }, { "id": "d9f17a92-510c-4d6f-86ba-a0948f794663", "name": "Blitzer Azimuth (°)", "value": "={{ isNaN(Number($('blitzer_azimuth').item.json.state)) ? 0 : Number($('blitzer_azimuth').item.json.state) }}", "type": "number" }, { "id": "e90d9109-4e8e-4a92-82d0-25e67159d291", "name": "Blitzer Anzahl", "value": "={{ isNaN(Number($('blitzer_anzahl').item.json.state)) ? 0 : Number($('blitzer_anzahl').item.json.state) }}", "type": "number" }, { "id": "a82a7794-91ad-412e-9f50-69e39fa060fe", "name": "Letzte Trendänderung", "value": "={{ $json.last_reported }}", "type": "string" } ] }, "options": {} }, "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [ 464, -64 ], "id": "117089b5-9866-4f9f-92d7-d7e2e5ebe7a4", "name": "Edit Fields" }, { "parameters": { "operation": "query", "query": "=from(bucket: \"home_assistant\")\n |> range(start: -3h)\n |> filter(fn: (r) => r[\"friendly_name\"] == \"Blitzortung Lightning azimuth\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> filter(fn: (r) => r[\"_measurement\"] == \"°\")\n |> filter(fn: (r) => r[\"domain\"] == \"sensor\")\n |> filter(fn: (r) => r[\"entity_id\"] == \"blitzortung_lightning_azimuth\")\n |> aggregateWindow(every: 10m, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "options": {} }, "type": "n8n-nodes-influxdb.influxDb", "typeVersion": 1, "position": [ 912, 96 ], "id": "24773f97-eaa3-4152-8d8b-426c63a82c6f", "name": "InfluxDB_azimuth", "credentials": { "influxDb": { "id": "mOdqZZz9pI98IduE", "name": "InfluxDB Node" } } }, { "parameters": { "operation": "query", "query": "=from(bucket: \"home_assistant\")\n |> range(start: -3h)\n |> filter(fn: (r) => r[\"friendly_name\"] == \"Blitzortung Lightning counter\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> filter(fn: (r) => r[\"_measurement\"] == \"↯\")\n |> filter(fn: (r) => r[\"domain\"] == \"sensor\")\n |> filter(fn: (r) => r[\"entity_id\"] == \"blitzortung_lightning_counter\")\n |> aggregateWindow(every: 10m, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "options": {} }, "type": "n8n-nodes-influxdb.influxDb", "typeVersion": 1, "position": [ 912, -224 ], "id": "862bb9c3-78a8-4ee2-a82e-da24d77fb903", "name": "InfluxDB_anzahl", "credentials": { "influxDb": { "id": "mOdqZZz9pI98IduE", "name": "InfluxDB Node" } } }, { "parameters": { "operation": "query", "query": "=from(bucket: \"home_assistant\")\n |> range(start: -3h)\n |> filter(fn: (r) => r[\"friendly_name\"] == \"Blitzortung Lightning distance\")\n |> filter(fn: (r) => r[\"_field\"] == \"value\")\n |> filter(fn: (r) => r[\"_measurement\"] == \"km\")\n |> filter(fn: (r) => r[\"domain\"] == \"sensor\")\n |> filter(fn: (r) => r[\"entity_id\"] == \"blitzortung_lightning_distance\")\n |> aggregateWindow(every: 10m, fn: mean, createEmpty: false)\n |> yield(name: \"mean\")", "options": {} }, "type": "n8n-nodes-influxdb.influxDb", "typeVersion": 1, "position": [ 912, -64 ], "id": "c073dbd8-9dad-4904-a420-a953f282652e", "name": "InfluxDB_distance", "credentials": { "influxDb": { "id": "mOdqZZz9pI98IduE", "name": "InfluxDB Node" } } }, { "parameters": { "jsCode": "const daten = items.map(item => item.json);\ndaten.sort((a, b) => new Date(a._time) - new Date(b._time));\n\nconst erster = daten[0];\nconst letzter = daten[daten.length - 1];\n\nconst minuten = (new Date(letzter._time) - new Date(erster._time)) / 60000;\nconst differenz = letzter._value - erster._value;\nconst trend = differenz / minuten;\n\nreturn [\n {\n json: {\n blitzanzahl_start: erster._value,\n blitzanzahl_ende: letzter._value,\n trend_anzahl_pro_minute: parseFloat(trend.toFixed(4)),\n minuten: Math.round(minuten),\n von: erster._time,\n bis: letzter._time\n }\n }\n];" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1120, -224 ], "id": "3b6f740d-654c-434b-af17-99e1cdcd8aae", "name": "Code_anzahl", "onError": "continueRegularOutput" }, { "parameters": { "jsCode": "const daten = items.map(item => item.json);\n\n// Sortieren nach Zeit (ältester zuerst)\ndaten.sort((a, b) => new Date(a._time) - new Date(b._time));\n\nconst erster = daten[0];\nconst letzter = daten[daten.length - 1];\n\n// Zeitdifferenz in Minuten\nconst minuten = (new Date(letzter._time) - new Date(erster._time)) / 60000;\n\n// Differenz pro Minute\nconst differenz = letzter._value - erster._value;\nconst trend = differenz / minuten;\n\nreturn [\n {\n json: {\n startwert: erster._value,\n endwert: letzter._value,\n trend_pro_minute: parseFloat(trend.toFixed(4)),\n minuten: Math.round(minuten),\n von: erster._time,\n bis: letzter._time\n }\n }\n];" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1120, -64 ], "id": "341e3137-3926-4f94-ab84-38477f489c95", "name": "Code_distance", "onError": "continueRegularOutput" }, { "parameters": { "jsCode": "const daten = items.map(item => item.json);\ndaten.sort((a, b) => new Date(a._time) - new Date(b._time));\n\nconst erster = daten[0];\nconst letzter = daten[daten.length - 1];\n\nconst minuten = (new Date(letzter._time) - new Date(erster._time)) / 60000;\nconst differenz = letzter._value - erster._value;\nconst trend = differenz / minuten;\n\nreturn [\n {\n json: {\n azimuth_start: erster._value,\n azimuth_ende: letzter._value,\n trend_azimuth_pro_minute: parseFloat(trend.toFixed(4)),\n minuten: Math.round(minuten),\n von: erster._time,\n bis: letzter._time\n }\n }\n];" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1120, 96 ], "id": "2600ee10-0b21-4f30-b15a-f83b90b37e4c", "name": "Code_azimuth", "onError": "continueRegularOutput" }, { "parameters": { "numberInputs": 3 }, "type": "n8n-nodes-base.merge", "typeVersion": 3.2, "position": [ 1328, -80 ], "id": "bcf93e4e-c7c2-4109-85cc-f0687509240d", "name": "Merge1", "onError": "continueRegularOutput" }, { "parameters": { "jsCode": "const [anzahl, distanz, azimuth] = items.map(item => item.json);\n\n// Schwellenwerte\nconst kritischerTrend = -0.1;\nconst starkerAbzug = 0.1;\nconst aktivitaetGrenze = 0.05;\n\n// Analyse\nlet bewertung = 'neutral';\nlet stufe = 'keine Maßnahmen nötig';\nlet bemerkung = [];\n\nif (distanz.trend_pro_minute < kritischerTrend) {\n bewertung = 'Gefahr nimmt zu';\n stufe = '⚠️ Schutzmaßnahmen vorbereiten';\n bemerkung.push('Distanz nimmt deutlich ab');\n}\n\nif (distanz.trend_pro_minute > starkerAbzug && anzahl.trend_anzahl_pro_minute === 0) {\n bewertung = 'Entwarnung';\n stufe = '✅ Keine Gefahr';\n bemerkung.push('Gewitter zieht deutlich ab');\n}\n\nif (anzahl.trend_anzahl_pro_minute > aktivitaetGrenze) {\n bewertung = 'Gewitteraktivität steigt';\n stufe = '⚠️ Beobachtung empfohlen';\n bemerkung.push('Blitzanzahl nimmt zu');\n}\n\nif (Math.abs(azimuth.trend_azimuth_pro_minute) > 2) {\n bemerkung.push('Richtung ändert sich deutlich');\n}\n\n// Ergebnis zurückgeben\nreturn [\n {\n json: {\n bewertung,\n stufe,\n details: {\n distanz_km_pro_min: distanz.trend_pro_minute,\n azimuth_deg_pro_min: azimuth.trend_azimuth_pro_minute,\n blitzanzahl_pro_min: anzahl.trend_anzahl_pro_minute,\n distanz_km_ende: distanz.endwert,\n blitzanzahl_ende: anzahl.blitzanzahl_ende\n },\n bemerkung: bemerkung.join('; ')\n }\n }\n];" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1520, -64 ], "id": "a9cbc4e9-8ed1-4b2e-9fc3-cfc92d76385c", "name": "Code_zusammenfassung", "onError": "continueRegularOutput" }, { "parameters": { "promptType": "define", "text": "=Gewittertrend:\nBewertung: {{ $json.bewertung }}\nStufe: {{ $json.stufe }}\nDistanz pro Minute: {{ $json.details.distanz_km_pro_min }}\nAzimuth pro Minute: {{ $json.details.azimuth_deg_pro_min }}\nBlitzeranazhl pro Minute: {{ $json.details.blitzanzahl_pro_min }}\nBemerkung: {{ $json.bemerkung }}\n\nAktuelle Lage des Gewitters:\nEntfernung (km):\n{{ $('Edit Fields').first().json[\"Blitzer Distanz (km)\"] }}\nAzimuth (°):\n{{ $('Edit Fields').first().json['Blitzer Azimuth (°)'] }}\nAnzahl Blitzer:\n{{ $('Edit Fields').first().json['Blitzer Anzahl'] }}\nLetzte Trendänderung:\n{{ $('Edit Fields').first().json['Letzte Trendänderung'] }}", "options": { "systemMessage": "=#Rolle\nDu bist ein intelligenter Wetterwarn-Agent, der Gewitter und die daraus resultierenden Gefahren analysiert. \n\n#Ziel\nDein Ziel ist, Menschen und das Haus (Smart-Home) vor gefährlichen Gewittern zu schützen, vor den Gewittern zu warnen und Empfehlungen auszusprechen.\n\n#Regeln\nDu erhältst Daten in folgender Struktur:\n- distanz_km_pro_min (z. B. -0.3): Geschwindigkeit der Gewitternäherung\n- azimuth_deg_pro_min (z. B. -1.5): Richtungsänderung des Gewitters\n- blitzanzahl_pro_min (z. B. 0.8): Änderung der Blitzanzahl\n\nAnalysiere diese Trends und bewerte, ob Maßnahmen notwendig sind. Gib ein JSON zurück mit folgenden Feldern:\n\n---\n#Antwortstil und Ausgabeformat\n**Felder im JSON:**\n\n- `bewertung`: Kurztext wie „Gewitteraktivität steigt“ oder „Gewitter zieht ab“\n- `stufe`: Eine von drei Stufen \n - 🟥 „Gefahr nimmt zu“ \n - 🟨 „Beobachtung empfohlen“ \n - ✅ „Keine Gefahr“ \n- `massnahmen`: Eine Liste mit Handlungsempfehlungen (in Alltagssprache, max. 3 Vorschläge)\n- `bemerkung`: Begründung für die Bewertung\n- `details`: Enthält die gelieferten Werte (Distanz, Azimuth, Blitzanzahl)\n\n---\n\n**Beispielausgabe:**\n\n```json\n{\n \"bewertung\": \"Gewitteraktivität steigt deutlich\",\n \"stufe\": \"🟥 Gefahr nimmt zu\",\n \"massnahmen\": [\n \"Sofort Schutz in einem Gebäude suchen\",\n \"Elektronische Geräte vom Netz trennen\",\n \"Auf Outdoor-Aktivitäten verzichten\"\n ],\n \"bemerkung\": \"Die Distanz nimmt stark ab und die Blitzanzahl steigt rapide\",\n \"details\": {\n \"distanz_km_ende\": 12.2\n \"distanz_km_pro_min\": -0.45,\n \"azimuth_deg_pro_min\": -0.8,\n \"blitzanzahl_pro_min\": 1.1\n }\n}\n\n''Abschließende Hinweise\nHier ist das aktuelle Datum/Uhrzeit: {{ $now }}" } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2, "position": [ 1744, -64 ], "id": "2084cb4b-0b54-4228-bae2-d9970d358a01", "name": "AI Agent" }, { "parameters": { "model": "gpt-oss:20b", "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatOllama", "typeVersion": 1, "position": [ 1760, 128 ], "id": "00772b12-96a1-46fe-82ab-3685c4346979", "name": "Ollama Chat Model", "credentials": { "ollamaApi": { "id": "cSpvUQabv4bffpzC", "name": "Ollama account" } } }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 2 }, "conditions": [ { "id": "026965d8-ba14-4501-aa34-e0dba625db4f", "leftValue": "={{ $('Code_distance').first().json.endwert }}", "rightValue": 15, "operator": { "type": "number", "operation": "lt" } } ], "combinator": "and" }, "options": {} }, "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [ 2096, -64 ], "id": "cebfb3d1-89dc-47b2-9cad-f10b44087310", "name": "If", "onError": "continueRegularOutput" }, { "parameters": { "resource": "Chatting", "operation": "Send Text", "session": "=default", "chatId": "=@c.us", "reply_to": "18819@c.us", "text": "=Hi Blitzerwarnung! {{ $json.output }}", "requestOptions": {} }, "type": "n8n-nodes-waha.WAHA", "typeVersion": 202411, "position": [ 2544, 48 ], "id": "27028d9f-d0ce-41a4-a27a-213db967950d", "name": "Send a text message", "credentials": { "wahaApi": { "id": "rUnKrUCOHZhlg7TJ", "name": "WAHA account" } } }, { "parameters": { "resource": "Chatting", "operation": "Send Text", "session": "=default", "chatId": "=19@c.us", "reply_to": "=915118818819@c.us", "text": "=ACHTUNG GEWITTER: die Distanz beträgte nur noch {{ $('Code_zusammenfassung').first().json.details.distanz_km_ende }} km pro Minute gibt es {{ $('Code_zusammenfassung').first().json.details.blitzanzahl_pro_min }} Blitzer. Bitte treffe Vorsichtsmaßnahmen wie im geschützen Bereich aufhalten und wichtige Geräte vom Netz nehmen!!", "requestOptions": {} }, "type": "n8n-nodes-waha.WAHA", "typeVersion": 202411, "position": [ 2336, -160 ], "id": "dc868cff-1fef-4f54-ab01-464cb7c1ad2c", "name": "Send a text message1", "credentials": { "wahaApi": { "id": "rUnKrUCOHZhlg7TJ", "name": "WAHA account" } } }, { "parameters": { "amount": 2, "unit": "minutes" }, "type": "n8n-nodes-base.wait", "typeVersion": 1.1, "position": [ 2544, 352 ], "id": "600dd70e-d6d6-4580-8ad1-021ae1f10098", "name": "Wait", "webhookId": "6ce67b5b-dd15-4c0f-a364-f32fb2cb15cd" }, { "parameters": { "content": "## Workflow Gewitterwarnung\n**Der Workflow warnt vor aufkommenden Gewittern und analysiert den Trend bis das Gewitter vorbei ist** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)", "width": 688, "color": 3 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -192, -592 ], "id": "5d8d9b9f-fe69-4996-a6e9-7df7e1829ab3", "name": "Sticky Note" }, { "parameters": { "content": "## Trigger, Gewittersensoren aus Homeassistant \n**Die Gewittermeldungen werden aus Homeassistant und des dort installierten Gewitter Add-ons entnommen** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)", "height": 656, "width": 800, "color": 4 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -192, -384 ], "id": "07edd9c7-63e4-441e-ba27-abd5d7ff015e", "name": "Sticky Note1" }, { "parameters": { "content": "## Analyse des Trend \n**Die Homeassistant Daten werden in der inflixDB gespeichert, und durch den Workflow wieder abgerufen. Hierdurch kann die Veränderung und damit der Trend erfasst und ausgewertet werden, ausgewertet wird:\n- Anzahl der Blitze\n- Entfernung und Veränderung der Entfernung\n- Azimuth und Azimuth Veränderung des Gewitter** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)", "height": 656, "width": 1024, "color": 6 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 656, -384 ], "id": "f9a48cea-0cc0-4a51-91e0-5e2734493214", "name": "Sticky Note2" }, { "parameters": { "content": "## KI-Analyse der Daten und Empfehlung\n**Der KI-Agent (Verwendung einer Basic LLM-Chain wäre ausreichend) werdet die Sensor und die Datenbankdaten aus und gibt eine Empfehlung, je nach Empfehlung (Entfernung des Gewitters) wird der Workflow laufend neu durchlaufen oder beendet, der Nutzer wird per whats app benachrichtigt.\nEs besteht die Möglichkeit hier auch weitere Maßnahmen zu implementieren, so können zum Beispiel Geräte abgeschaltet und/oder vom Netz genommen werden, um sie so vor Überspannung zu schützen, ich schalte zum Beispiel meine Wallbox aus.** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)", "height": 656, "width": 1024 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 1712, -384 ], "id": "0fbf0149-e5d6-47ef-a927-e532d786c2b8", "name": "Sticky Note3" }, { "parameters": { "resource": "service", "operation": "call", "domain": "script", "service": "wallbox_aus" }, "type": "n8n-nodes-base.homeAssistant", "typeVersion": 1, "position": [ 2544, -160 ], "id": "604ad774-82c8-4200-8a76-1c2bef46b8f5", "name": "wallbox_aus", "credentials": { "homeAssistantApi": { "id": "CASmA2MyiLWSS3RF", "name": "Home Assistant account" } } } ], "pinData": {}, "connections": { "MQTT Trigger": { "main": [ [ { "node": "blitzer_azimuth", "type": "main", "index": 0 }, { "node": "blitzer_anzahl", "type": "main", "index": 0 }, { "node": "blitzer_entfernung", "type": "main", "index": 0 } ] ] }, "blitzer_azimuth": { "main": [ [ { "node": "Merge", "type": "main", "index": 1 } ] ] }, "blitzer_anzahl": { "main": [ [ { "node": "Merge", "type": "main", "index": 0 } ] ] }, "When clicking ‘Execute workflow’": { "main": [ [ { "node": "blitzer_azimuth", "type": "main", "index": 0 }, { "node": "blitzer_anzahl", "type": "main", "index": 0 }, { "node": "blitzer_entfernung", "type": "main", "index": 0 } ] ] }, "blitzer_entfernung": { "main": [ [ { "node": "Merge", "type": "main", "index": 2 } ] ] }, "Merge": { "main": [ [ { "node": "Edit Fields", "type": "main", "index": 0 } ] ] }, "Edit Fields": { "main": [ [ { "node": "InfluxDB_anzahl", "type": "main", "index": 0 }, { "node": "InfluxDB_distance", "type": "main", "index": 0 }, { "node": "InfluxDB_azimuth", "type": "main", "index": 0 } ] ] }, "InfluxDB_anzahl": { "main": [ [ { "node": "Code_anzahl", "type": "main", "index": 0 } ] ] }, "InfluxDB_distance": { "main": [ [ { "node": "Code_distance", "type": "main", "index": 0 } ] ] }, "InfluxDB_azimuth": { "main": [ [ { "node": "Code_azimuth", "type": "main", "index": 0 } ] ] }, "Code_azimuth": { "main": [ [ { "node": "Merge1", "type": "main", "index": 2 } ] ] }, "Code_distance": { "main": [ [ { "node": "Merge1", "type": "main", "index": 1 } ] ] }, "Code_anzahl": { "main": [ [ { "node": "Merge1", "type": "main", "index": 0 } ] ] }, "Merge1": { "main": [ [ { "node": "Code_zusammenfassung", "type": "main", "index": 0 } ] ] }, "Code_zusammenfassung": { "main": [ [ { "node": "AI Agent", "type": "main", "index": 0 } ] ] }, "Ollama Chat Model": { "ai_languageModel": [ [ { "node": "AI Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "AI Agent": { "main": [ [ { "node": "If", "type": "main", "index": 0 } ] ] }, "If": { "main": [ [ { "node": "Send a text message1", "type": "main", "index": 0 } ], [ { "node": "Send a text message", "type": "main", "index": 0 } ] ] }, "Send a text message1": { "main": [ [ { "node": "wallbox_aus", "type": "main", "index": 0 } ] ] }, "Wait": { "main": [ [ { "node": "blitzer_anzahl", "type": "main", "index": 0 }, { "node": "blitzer_azimuth", "type": "main", "index": 0 }, { "node": "blitzer_entfernung", "type": "main", "index": 0 } ] ] }, "wallbox_aus": { "main": [ [ { "node": "Wait", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": { "executionOrder": "v1", "timezone": "Europe/Berlin", "callerPolicy": "workflowsFromSameOwner" }, "versionId": "968eda88-292f-498e-b42a-b501ce333510", "meta": { "templateCredsSetupCompleted": true, "instanceId": "6946cc975d9f4262be37097670ed7d701ec6e91be1d76b57203e1d14dc0d53f8" }, "id": "CGEazhPW0f3yaQyj", "tags": [] }