workflow/Heizung/Wärmepumpe_ Tagesverbrauch.json gelöscht
This commit is contained in:
@@ -1,576 +0,0 @@
|
||||
{
|
||||
"name": "Wärmepumpe: Tagesverbrauch",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// INPUT: items = [{ json: { data: \"<div id='centerf'>...</div>\" } }]\n// OUTPUT: items = [{ json: { Adresse, Bezeichnung, Wert, Einheit, Waehrung, Raw, Key } }, ...]\n\n// kleine Helfer\nfunction slug(s) {\n return String(s)\n .normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n .replace(/ä/g,'ae').replace(/ö/g,'oe').replace(/ü/g,'ue')\n .replace(/Ä/g,'Ae').replace(/Ö/g,'Oe').replace(/Ü/g,'Ue')\n .replace(/ß/g,'ss')\n .replace(/[^A-Za-z0-9]+/g,'_')\n .replace(/^_+|_+$/g,'')\n .toLowerCase();\n}\n\nfunction parseNumUnit(raw) {\n if (!raw) return { value: null, unit: null, currency: null };\n let t = raw.replace(/ /g, ' ').trim();\n\n // Währung vorne oder hinten (€, $, £)\n let currency = null;\n const curLead = t.match(/^[€$£]/);\n const curTrail = t.match(/[€$£]$/);\n if (curLead) { currency = curLead[0]; t = t.slice(1).trim(); }\n else if (curTrail) { currency = curTrail[0]; t = t.slice(0, -1).trim(); }\n\n // Zahl (Komma oder Punkt)\n const numMatch = t.match(/-?\\d+(?:[.,]\\d+)?/);\n const value = numMatch ? parseFloat(numMatch[0].replace(',', '.')) : null;\n const unit = numMatch ? (t.replace(numMatch[0], '').trim() || null) : null;\n\n return { value, unit, currency };\n}\n\n// 1) HTML einsammeln (idR nur ein Item)\nconst html = items.map(i => i.json?.data ?? i.json?.body ?? i.json?.html ?? '').join('\\n');\n\n// 2) VALUE-Blöcke parsen\nconst re = /<div class=\"VALUE\">\\s*<div class=\"VALUE_LINK L2\"\\s+adresse=\"([^\"]+)\">([^<]+)<\\/div>\\s*<div class=\"VALUE_B\">([^<]+)<\\/div>\\s*<\\/div>/g;\n\nconst rows = [];\nfor (const m of html.matchAll(re)) {\n const adresse = m[1].trim();\n const label = m[2].trim();\n const raw = m[3].trim();\n\n const { value, unit, currency } = parseNumUnit(raw);\n const key = slug(label);\n\n rows.push({\n Adresse: adresse,\n Bezeichnung: label,\n Wert: (value !== null ? value : raw), // Zahl bevorzugt, sonst Rohstring\n Einheit: unit || '',\n Waehrung: currency || '',\n Raw: raw,\n Key: key\n });\n}\n\n// 3) Als **einzelne Items** zurückgeben (ein Item pro Wert/Zeile)\nreturn rows.map(r => ({ json: r }));\n"
|
||||
},
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [
|
||||
224,
|
||||
0
|
||||
],
|
||||
"id": "05b8699b-62c3-4f52-9829-03ebba00f470",
|
||||
"name": "Code in JavaScript"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// INPUT: 19 Items vom Parser (Adresse, Bezeichnung, Wert, Einheit, Waehrung, Key)\n// OUTPUT: 1 Item mit vielen Feldern: leistung, tageszaehlerstand, ...\n\nconst out = {};\nconst units = {}; // falls du Einheiten brauchst\n\nfor (const it of items) {\n const j = it.json;\n // Zahl bevorzugt, sonst Rohstring\n out[j.Key] = (j.Wert ?? j.Raw ?? null);\n if (j.Einheit) units[j.Key] = j.Einheit;\n if (j.Waehrung) units[j.Key] = (units[j.Key] ? units[j.Key] + ' ' : '') + j.Waehrung;\n}\n\n// Ein einziges Item zurückgeben\nreturn [{ json: { ...out, _units: units } }];\n"
|
||||
},
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [
|
||||
448,
|
||||
0
|
||||
],
|
||||
"id": "61d9d196-8224-4363-b46c-2186979f9d4e",
|
||||
"name": "Code in JavaScript1"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"rule": {
|
||||
"interval": [
|
||||
{
|
||||
"field": "minutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"type": "n8n-nodes-base.scheduleTrigger",
|
||||
"typeVersion": 1.2,
|
||||
"position": [
|
||||
-224,
|
||||
96
|
||||
],
|
||||
"id": "8c6654b8-560d-4126-96d4-372d2567e8e0",
|
||||
"name": "Schedule Trigger"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "http://192.168.2.68:8093/v1/state/0_userdata.0.haus.heizung.waermepumpe.heat_pump_daily_consumption",
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"value": "={{ $('Code in JavaScript1').item.json.tageszahlerstand }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4.2,
|
||||
"position": [
|
||||
896,
|
||||
0
|
||||
],
|
||||
"id": "ab729e47-cce9-4cf0-a5b3-56c8e5c1def3",
|
||||
"name": "update Tageszählerstand iobroker"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "http://192.168.2.186/INCLUDE/devpagex.cgi?pagex2=01055c07&_=1759570693948",
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpBasicAuth",
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "admin",
|
||||
"value": "admin"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4.2,
|
||||
"position": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"id": "59028407-fb4b-4ee0-a539-3505cf2fffd3",
|
||||
"name": "get Tageszählerstand WP",
|
||||
"credentials": {
|
||||
"httpBasicAuth": {
|
||||
"id": "iJkXePPAceSyENTx",
|
||||
"name": "CMI CAN Bus local"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "http://192.168.2.186/INCLUDE/devpagex.cgi?pagex2=01145c07&_=1759576852400",
|
||||
"authentication": "genericCredentialType",
|
||||
"genericAuthType": "httpBasicAuth",
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "admin",
|
||||
"value": "admin"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4.2,
|
||||
"position": [
|
||||
0,
|
||||
192
|
||||
],
|
||||
"id": "545bac82-ea34-461d-955e-9ceebe4dc82a",
|
||||
"name": "get Tageszählerstand PV WP",
|
||||
"credentials": {
|
||||
"httpBasicAuth": {
|
||||
"id": "iJkXePPAceSyENTx",
|
||||
"name": "CMI CAN Bus local"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// INPUT: items = [{ json: { data: \"<div id='centerf'>...</div>\" } }]\n// OUTPUT: items = [{ json: { Adresse, Bezeichnung, Wert, Einheit, Waehrung, Raw, Key } }, ...]\n\n// kleine Helfer\nfunction slug(s) {\n return String(s)\n .normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')\n .replace(/ä/g,'ae').replace(/ö/g,'oe').replace(/ü/g,'ue')\n .replace(/Ä/g,'Ae').replace(/Ö/g,'Oe').replace(/Ü/g,'Ue')\n .replace(/ß/g,'ss')\n .replace(/[^A-Za-z0-9]+/g,'_')\n .replace(/^_+|_+$/g,'')\n .toLowerCase();\n}\n\nfunction parseNumUnit(raw) {\n if (!raw) return { value: null, unit: null, currency: null };\n let t = raw.replace(/ /g, ' ').trim();\n\n // Währung vorne oder hinten (€, $, £)\n let currency = null;\n const curLead = t.match(/^[€$£]/);\n const curTrail = t.match(/[€$£]$/);\n if (curLead) { currency = curLead[0]; t = t.slice(1).trim(); }\n else if (curTrail) { currency = curTrail[0]; t = t.slice(0, -1).trim(); }\n\n // Zahl (Komma oder Punkt)\n const numMatch = t.match(/-?\\d+(?:[.,]\\d+)?/);\n const value = numMatch ? parseFloat(numMatch[0].replace(',', '.')) : null;\n const unit = numMatch ? (t.replace(numMatch[0], '').trim() || null) : null;\n\n return { value, unit, currency };\n}\n\n// 1) HTML einsammeln (idR nur ein Item)\nconst html = items.map(i => i.json?.data ?? i.json?.body ?? i.json?.html ?? '').join('\\n');\n\n// 2) VALUE-Blöcke parsen\nconst re = /<div class=\"VALUE\">\\s*<div class=\"VALUE_LINK L2\"\\s+adresse=\"([^\"]+)\">([^<]+)<\\/div>\\s*<div class=\"VALUE_B\">([^<]+)<\\/div>\\s*<\\/div>/g;\n\nconst rows = [];\nfor (const m of html.matchAll(re)) {\n const adresse = m[1].trim();\n const label = m[2].trim();\n const raw = m[3].trim();\n\n const { value, unit, currency } = parseNumUnit(raw);\n const key = slug(label);\n\n rows.push({\n Adresse: adresse,\n Bezeichnung: label,\n Wert: (value !== null ? value : raw), // Zahl bevorzugt, sonst Rohstring\n Einheit: unit || '',\n Waehrung: currency || '',\n Raw: raw,\n Key: key\n });\n}\n\n// 3) Als **einzelne Items** zurückgeben (ein Item pro Wert/Zeile)\nreturn rows.map(r => ({ json: r }));\n"
|
||||
},
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [
|
||||
224,
|
||||
192
|
||||
],
|
||||
"id": "8f08ee8b-d3eb-4d7e-baa7-6fad114e40b0",
|
||||
"name": "Code in JavaScript2"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// INPUT: 19 Items vom Parser (Adresse, Bezeichnung, Wert, Einheit, Waehrung, Key)\n// OUTPUT: 1 Item mit vielen Feldern: leistung, tageszaehlerstand, ...\n\nconst out = {};\nconst units = {}; // falls du Einheiten brauchst\n\nfor (const it of items) {\n const j = it.json;\n // Zahl bevorzugt, sonst Rohstring\n out[j.Key] = (j.Wert ?? j.Raw ?? null);\n if (j.Einheit) units[j.Key] = j.Einheit;\n if (j.Waehrung) units[j.Key] = (units[j.Key] ? units[j.Key] + ' ' : '') + j.Waehrung;\n}\n\n// Ein einziges Item zurückgeben\nreturn [{ json: { ...out, _units: units } }];\n"
|
||||
},
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [
|
||||
448,
|
||||
192
|
||||
],
|
||||
"id": "d1a4e45e-854b-4359-8da0-3e85f0c41dc4",
|
||||
"name": "Code in JavaScript3"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "upsert",
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"value": "Waermepumpe",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Waermepumpe"
|
||||
},
|
||||
"dataMode": "defineBelow",
|
||||
"columnToMatchOn": "Datum",
|
||||
"valueToMatchOn": "={{ $now.toFormat('yyyy-MM-dd')}}",
|
||||
"valuesToSend": {
|
||||
"values": [
|
||||
{
|
||||
"column": "Tagesverbrauch",
|
||||
"value": "={{ $json.tageszahlerstand }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"typeVersion": 2.5,
|
||||
"position": [
|
||||
672,
|
||||
0
|
||||
],
|
||||
"id": "797700c3-040b-4a27-b621-68e806b65730",
|
||||
"name": "update Tagesverbrauch mysql",
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "GvOnFzLTFlbKtgUM",
|
||||
"name": "MySQL account - homelab"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "upsert",
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"value": "Waermepumpe",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Waermepumpe"
|
||||
},
|
||||
"dataMode": "defineBelow",
|
||||
"columnToMatchOn": "Datum",
|
||||
"valueToMatchOn": "={{ $now.toFormat('yyyy-MM-dd')}}",
|
||||
"valuesToSend": {
|
||||
"values": [
|
||||
{
|
||||
"column": "Anteil PV",
|
||||
"value": "={{ $json.tageszahlerstand }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"typeVersion": 2.5,
|
||||
"position": [
|
||||
672,
|
||||
192
|
||||
],
|
||||
"id": "7546d115-42c1-4cf9-ae9c-9030a86f9a7c",
|
||||
"name": "update Tagesverbrauch PV mysql",
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "GvOnFzLTFlbKtgUM",
|
||||
"name": "MySQL account - homelab"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "select",
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"value": "Waermepumpe",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Waermepumpe"
|
||||
},
|
||||
"where": {
|
||||
"values": [
|
||||
{
|
||||
"column": "Datum",
|
||||
"value": "={{ $now.toFormat('yyyy-MM-dd')}}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"typeVersion": 2.5,
|
||||
"position": [
|
||||
1344,
|
||||
96
|
||||
],
|
||||
"id": "6c0fce95-29f5-4c9a-bd06-6ce474207b01",
|
||||
"name": "Select rows from a table",
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "GvOnFzLTFlbKtgUM",
|
||||
"name": "MySQL account - homelab"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "update",
|
||||
"table": {
|
||||
"__rl": true,
|
||||
"value": "Waermepumpe",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Waermepumpe"
|
||||
},
|
||||
"dataMode": "defineBelow",
|
||||
"columnToMatchOn": "Datum",
|
||||
"valueToMatchOn": "={{ $now.toFormat('yyyy-MM-dd')}}",
|
||||
"valuesToSend": {
|
||||
"values": [
|
||||
{
|
||||
"column": "Anteil Netzbezug",
|
||||
"value": "={{ $json['Anteil Netzbezug'] }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.mySql",
|
||||
"typeVersion": 2.5,
|
||||
"position": [
|
||||
1792,
|
||||
96
|
||||
],
|
||||
"id": "b0e2962f-490d-4f17-be1c-0f8bbe80d510",
|
||||
"name": "Update rows in a table",
|
||||
"credentials": {
|
||||
"mySql": {
|
||||
"id": "GvOnFzLTFlbKtgUM",
|
||||
"name": "MySQL account - homelab"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"mode": "chooseBranch",
|
||||
"useDataOfInput": 2
|
||||
},
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"typeVersion": 3.2,
|
||||
"position": [
|
||||
1120,
|
||||
96
|
||||
],
|
||||
"id": "e3aedba7-b520-40c7-b0ac-80c231bafbd8",
|
||||
"name": "Merge"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// Verarbeite alle eingehenden Items\nreturn $input.all().map(item => {\n const tagesverbrauch = Number(item.json[\"Tagesverbrauch\"]) || 0;\n const anteilPV = Number(item.json[\"Anteil PV\"]) || 0;\n\n // Berechnung\n const anteilNetzbezug = tagesverbrauch - anteilPV;\n\n // Neues Feld hinzufügen\n item.json[\"Anteil Netzbezug\"] = anteilNetzbezug;\n\n return item;\n});\n"
|
||||
},
|
||||
"type": "n8n-nodes-base.code",
|
||||
"typeVersion": 2,
|
||||
"position": [
|
||||
1568,
|
||||
96
|
||||
],
|
||||
"id": "b709fffd-4cf1-46ae-839e-fb72a4902b0b",
|
||||
"name": "calculate Netzbezug"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "http://192.168.2.68:8093/v1/state/0_userdata.0.haus.heizung.waermepumpe.heat_pump_daily_consumption_pv",
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"value": "={{ $('Code in JavaScript3').item.json.tageszahlerstand }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4.2,
|
||||
"position": [
|
||||
896,
|
||||
192
|
||||
],
|
||||
"id": "a0db8fee-4d48-49b0-a329-80c90783e530",
|
||||
"name": "update Tagesverbrauch PV"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "http://192.168.2.68:8093/v1/state/0_userdata.0.haus.heizung.waermepumpe.heat_pump_daily_consumption_power",
|
||||
"sendQuery": true,
|
||||
"queryParameters": {
|
||||
"parameters": [
|
||||
{
|
||||
"name": "value",
|
||||
"value": "={{ $('calculate Netzbezug').item.json['Anteil Netzbezug'] }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.httpRequest",
|
||||
"typeVersion": 4.2,
|
||||
"position": [
|
||||
2016,
|
||||
96
|
||||
],
|
||||
"id": "6dcc484c-e75a-46b2-9049-87a4e48d2d1d",
|
||||
"name": "update Netzbezug"
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"Code in JavaScript": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Code in JavaScript1",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Code in JavaScript1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "update Tagesverbrauch mysql",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Schedule Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "get Tageszählerstand WP",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "get Tageszählerstand PV WP",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"get Tageszählerstand WP": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Code in JavaScript",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"get Tageszählerstand PV WP": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Code in JavaScript2",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Code in JavaScript2": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Code in JavaScript3",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Code in JavaScript3": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "update Tagesverbrauch PV mysql",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"update Tagesverbrauch mysql": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "update Tageszählerstand iobroker",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Select rows from a table": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "calculate Netzbezug",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Update rows in a table": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "update Netzbezug",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"update Tageszählerstand iobroker": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"update Tagesverbrauch PV mysql": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "update Tagesverbrauch PV",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Merge": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Select rows from a table",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"calculate Netzbezug": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Update rows in a table",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"update Tagesverbrauch PV": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Merge",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"active": true,
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "8b467f30-717c-41e3-9051-236e31116740",
|
||||
"meta": {
|
||||
"templateCredsSetupCompleted": true,
|
||||
"instanceId": "3cc6c4256e2bbdec1b3708c49dc3889c7266357f3e239651c157c2de760e6c65"
|
||||
},
|
||||
"id": "bKlJd68Ba0ZWBnNS",
|
||||
"tags": [
|
||||
{
|
||||
"updatedAt": "2025-12-20T20:03:34.739Z",
|
||||
"createdAt": "2025-12-20T20:03:34.739Z",
|
||||
"id": "i5rtQijMRj2sx5Zj",
|
||||
"name": "Heizung"
|
||||
},
|
||||
{
|
||||
"updatedAt": "2025-12-20T19:56:59.512Z",
|
||||
"createdAt": "2025-12-20T19:56:59.512Z",
|
||||
"id": "9G8OthZJpXo6BPbV",
|
||||
"name": "Smart Home"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user