NodeRed programování
Home Assistant, Arduino, SDS, Raspberry, Linux, vzdálený dohled, automatizace, měření, opensource, closedsource, hotová řešení, DIY, stavebnice, komponenty, software, postupy, návody, schémata, rady, zkušenosti ...
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Dotaz. Když mam nějaké data, které chci, aby se zachovaly, když restartuji raspberry.
Jak se to řeší? Dík.
Jak se to řeší? Dík.
-
- Příspěvky: 4121
- Registrován: úte dub 23, 2013 10:21 am
- Reputace: 683
- Lokalita: Kousek od Lysé nad Labem
- Systémové napětí: 48V
- Výkon panelů [Wp]: 46000
- Kapacita baterie [kWh]: 40
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Kousek od Lysé nad Labem
Re: NodeRed programování
Třeba vytvořením nové entity template? https://www.home-assistant.io/integrations/template/
_______________________________________________________________________
43 kWp, LiFePO4 62 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
43 kWp, LiFePO4 62 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
-
- Příspěvky: 92
- Registrován: úte led 16, 2018 2:28 pm
- Reputace: 8
- Lokalita: okr. Tachov
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: okr.Tachov
Re: NodeRed programování
Lze ukládat přes context do paměti, po zapnutí do souboru na SDkartu
https://nodered.org/docs/user-guide/context
nebo přímo do souboru
https://nodered.org/docs/user-guide/context
nebo přímo do souboru
-
- Příspěvky: 54
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 3
- Lokalita: Ostrava!!!
- Systémové napětí: 48V
- Bydliště: Ostrava!!!
Re: NodeRed programování
Jestli mohu poradit, jako uživatel Nodered, tak než používat hodnoty (msg.payload) označkované topicem (msg.topic),
je lepší používat global hodnoty, tj. proměnné global.proměna. např. v nodu function ji lze definovat jako global.set("variable",x) kde variable je název proměnné a x je hodnota.
Global hodnotu pak lze přečíst napříč všech flow pomocí global.get("variable"),
je to rozhodně pohodlnější, jak předat libovolnému function flow více výpočtových nebo podmínkových hodnot než předávat nodu "stream" s hodnotou msg.payload a k tomu msg.topic
např.
předání hodnoty do function node na vstupu (z msg.payload) a přiřazení do globalní hodnoty SwPosSet
v jiném nodu function, kde chci s touto hodnotou pracovat pak jen na začátku kódu předám
příp. můžu s hodnotou rovnou pracovat
je lepší používat global hodnoty, tj. proměnné global.proměna. např. v nodu function ji lze definovat jako global.set("variable",x) kde variable je název proměnné a x je hodnota.
Global hodnotu pak lze přečíst napříč všech flow pomocí global.get("variable"),
je to rozhodně pohodlnější, jak předat libovolnému function flow více výpočtových nebo podmínkových hodnot než předávat nodu "stream" s hodnotou msg.payload a k tomu msg.topic
např.
předání hodnoty do function node na vstupu (z msg.payload) a přiřazení do globalní hodnoty SwPosSet
Kód: Vybrat vše
global.set("SwPosSet",msg.payload);
Kód: Vybrat vše
switchPosSet = global.get('SwPosSet');
.
.
.
if (swichPosSet == 3)
{
..........
}
Kód: Vybrat vše
.
if (global.get('SwPosSet') == 3)
{
..........
}
-
- Příspěvky: 54
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 3
- Lokalita: Ostrava!!!
- Systémové napětí: 48V
- Bydliště: Ostrava!!!
Re: NodeRed programování
A ještě další tip,
pro lepší debug-ování jednotlivých function nodu je dobré přidat node.status než je vrácena hodnota msg.payload
příklad:
tak nějak to pak vypadá ve flow:
pro lepší debug-ování jednotlivých function nodu je dobré přidat node.status než je vrácena hodnota msg.payload
příklad:
Kód: Vybrat vše
if (global.get('SwPosSet') == 3)
{
msg.payload = global.get('ChargeCurrentSet') + 1;
node.status({fill:"blue", shape:"dot", text: msg.payload});
return msg;
}
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
alextccz - Děkuji, ten context je to co potřebují, ale nedaří se.
Očučel jsem na YouTube všechny videa a stejně někde dělám chybu.
/home/leo/.node-red/settings.js
Bylo tam za komentované.
contextStorage: {
default: {
module:"localfilesystem"
},
},
A reboot.
Když otevřu uzel Change, tak tam nemam toto.
Očučel jsem na YouTube všechny videa a stejně někde dělám chybu.
/home/leo/.node-red/settings.js
Bylo tam za komentované.
contextStorage: {
default: {
module:"localfilesystem"
},
},
A reboot.
Když otevřu uzel Change, tak tam nemam toto.
-
- Příspěvky: 92
- Registrován: úte led 16, 2018 2:28 pm
- Reputace: 8
- Lokalita: okr. Tachov
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: okr.Tachov
Re: NodeRed programování
Tohle na výběr taky nemám. Předpokládám že je tam volba zda uložit do paměti nebo do souboru. Pravděpodobně by to mohlo souviset s těmito nastaveními https://nodered.org/docs/api/context/ ale funguje to i bez toho. V mém případě se automaticky založí se adresář Context v umístění /data/home/nodered/.node-red/context
Kód: Vybrat vše
[
{
"id": "fba6b9c6470fed69",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "pokus",
"payload": "",
"payloadType": "date",
"x": 120,
"y": 5120,
"wires": [
[
"673e81397e1d60c6"
]
]
},
{
"id": "2ace8c5447420afe",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 18",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 500,
"y": 5120,
"wires": []
},
{
"id": "001231f9c0b9db2f",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "pokus",
"payloadType": "flow",
"x": 100,
"y": 5180,
"wires": [
[
"6c4bf27e016c42ab"
]
]
},
{
"id": "673e81397e1d60c6",
"type": "change",
"z": "a5c2686a419678c5",
"name": "",
"rules": [
{
"t": "set",
"p": "pokus",
"pt": "flow",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 300,
"y": 5120,
"wires": [
[
"2ace8c5447420afe"
]
]
},
{
"id": "6c4bf27e016c42ab",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 19",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 360,
"y": 5180,
"wires": []
}
]
-
- Příspěvky: 54
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 3
- Lokalita: Ostrava!!!
- Systémové napětí: 48V
- Bydliště: Ostrava!!!
Re: NodeRed programování
A co tak použít node "write file"?
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Zdravím. Dotaz. Když použiju uzel write file a nastavím si připojit k souboru, ukládají se mi data do řádku.
Není nějaký uzel read file, co by uměl přečíst jen jeden řádek?
Třeba když je v souboru 100 řadku a já potřebují jen 20 řadek.
Není nějaký uzel read file, co by uměl přečíst jen jeden řádek?
Třeba když je v souboru 100 řadku a já potřebují jen 20 řadek.
-
- Příspěvky: 92
- Registrován: úte led 16, 2018 2:28 pm
- Reputace: 8
- Lokalita: okr. Tachov
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: okr.Tachov
Re: NodeRed programování
Něco takového? Používám ukládání do souboru nebo contextu jen pro jednoduché hodnoty jako stavy přepínačů nebo stavů spotřeby. Aby to přežilo případný restart.
Kód: Vybrat vše
[
{
"id": "e565d8319ad8d229",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "Teplota 1",
"payload": "10",
"payloadType": "num",
"x": 130,
"y": 5100,
"wires": [
[
"d79d3382892f3fba"
]
]
},
{
"id": "28bf010c2a887ec8",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "Teplota 2",
"payload": "20",
"payloadType": "num",
"x": 130,
"y": 5140,
"wires": [
[
"d79d3382892f3fba"
]
]
},
{
"id": "edd0a10caf3d16e1",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "Teplota 3",
"payload": "60",
"payloadType": "num",
"x": 130,
"y": 5180,
"wires": [
[
"d79d3382892f3fba"
]
]
},
{
"id": "7dc98b2669a322e3",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 18",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 520,
"y": 5120,
"wires": []
},
{
"id": "d79d3382892f3fba",
"type": "join",
"z": "a5c2686a419678c5",
"name": "",
"mode": "custom",
"build": "object",
"property": "payload",
"propertyType": "msg",
"key": "topic",
"joiner": "\\n",
"joinerType": "str",
"accumulate": true,
"timeout": "",
"count": "3",
"reduceRight": false,
"reduceExp": "",
"reduceInit": "",
"reduceInitType": "",
"reduceFixup": "",
"x": 330,
"y": 5140,
"wires": [
[
"7dc98b2669a322e3",
"326757e570a8fded"
]
]
},
{
"id": "326757e570a8fded",
"type": "file",
"z": "a5c2686a419678c5",
"name": "",
"filename": "/data/home/nodered/Switch/pokus.json",
"filenameType": "str",
"appendNewline": true,
"createDir": true,
"overwriteFile": "true",
"encoding": "none",
"x": 610,
"y": 5160,
"wires": [
[]
]
},
{
"id": "f6314f71fbc81bca",
"type": "file in",
"z": "a5c2686a419678c5",
"name": "",
"filename": "/data/home/nodered/Switch/pokus.json",
"filenameType": "str",
"format": "utf8",
"chunk": false,
"sendError": false,
"encoding": "none",
"allProps": false,
"x": 370,
"y": 5240,
"wires": [
[
"1c7e673fb7bb624e"
]
]
},
{
"id": "e89bd45ba310d17f",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 19",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1040,
"y": 5240,
"wires": []
},
{
"id": "788240d37b286439",
"type": "inject",
"z": "a5c2686a419678c5",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 120,
"y": 5240,
"wires": [
[
"f6314f71fbc81bca"
]
]
},
{
"id": "1c7e673fb7bb624e",
"type": "json",
"z": "a5c2686a419678c5",
"name": "",
"property": "payload",
"action": "",
"pretty": false,
"x": 610,
"y": 5240,
"wires": [
[
"bcfc3df17f00e8e7",
"7c71ae9ede7dc301",
"91bbd618a18f7021"
]
]
},
{
"id": "bcfc3df17f00e8e7",
"type": "change",
"z": "a5c2686a419678c5",
"name": "",
"rules": [
{
"t": "move",
"p": "payload[\"Teplota 1\"]",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 830,
"y": 5240,
"wires": [
[
"e89bd45ba310d17f"
]
]
},
{
"id": "7c71ae9ede7dc301",
"type": "change",
"z": "a5c2686a419678c5",
"name": "",
"rules": [
{
"t": "move",
"p": "payload[\"Teplota 2\"]",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 830,
"y": 5280,
"wires": [
[
"469e43bb83092529"
]
]
},
{
"id": "91bbd618a18f7021",
"type": "change",
"z": "a5c2686a419678c5",
"name": "",
"rules": [
{
"t": "move",
"p": "payload[\"Teplota 3\"]",
"pt": "msg",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 830,
"y": 5320,
"wires": [
[
"fff4271e29bccd52"
]
]
},
{
"id": "469e43bb83092529",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 20",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1040,
"y": 5280,
"wires": []
},
{
"id": "fff4271e29bccd52",
"type": "debug",
"z": "a5c2686a419678c5",
"name": "debug 21",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 1040,
"y": 5320,
"wires": []
}
]
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Kluci dotaz. Má někdo node-red na HA?
Do nedávna jsem měl na raspios-bookworm.
O víkendu jsem si nainstaloval HA a zkouším.
Uzel write file nechce zapisovat do systémových souboru.
Jsem hledal a prý v HA, Node-RED běží v kontejneru a má omezený přístup k souborům.
Někde se to prý musí povolit.
Nevi někdo jak na to? Děkuji.
Do nedávna jsem měl na raspios-bookworm.
O víkendu jsem si nainstaloval HA a zkouším.
Uzel write file nechce zapisovat do systémových souboru.
Jsem hledal a prý v HA, Node-RED běží v kontejneru a má omezený přístup k souborům.
Někde se to prý musí povolit.
Nevi někdo jak na to? Děkuji.
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Hojte tu všici.
Tak jsem zjistil, že HA neni to co jsem chtěl a jsme zptky na linuxu na raspi.
By byl by dotaz.
Pohořel jsem u databoardu1 - template, u check boxu.
Jak vyřešit, aby mi na výstupu vypisoval stav, když check přepinam?
Děkuji
<div>
<input type="checkbox" name="checkbox" value="bar1">Bar 1</input><br>
<input type="checkbox" name="checkbox" value="bar2">Bar 2</input><br>
<input type="checkbox" name="checkbox" value="bar3">Bar 3</input><br>
<input type="checkbox" name="checkbox" value="bar4">Bar 4</input><br>
</div>
Tak jsem zjistil, že HA neni to co jsem chtěl a jsme zptky na linuxu na raspi.
By byl by dotaz.
Pohořel jsem u databoardu1 - template, u check boxu.
Jak vyřešit, aby mi na výstupu vypisoval stav, když check přepinam?
Děkuji
<div>
<input type="checkbox" name="checkbox" value="bar1">Bar 1</input><br>
<input type="checkbox" name="checkbox" value="bar2">Bar 2</input><br>
<input type="checkbox" name="checkbox" value="bar3">Bar 3</input><br>
<input type="checkbox" name="checkbox" value="bar4">Bar 4</input><br>
</div>
-
- Příspěvky: 410
- Registrován: ned čer 26, 2022 3:33 pm
- Reputace: 73
- Lokalita: Znojemsko
- Systémové napětí: 48V
- Výkon panelů [Wp]: 5500
- Kapacita baterie [kWh]: 11
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: NodeRed programování
vloz sem aktualni flow co mas
string1 - 5.5kwp 3S4P - 460wp | 3x Multiplus ii 3000VA 1F systém | Lifepo4 230AH 48V + Seplos BMS
-
- Příspěvky: 1175
- Registrován: pon dub 24, 2023 8:47 am
- Reputace: 132
- Lokalita: Lašská brána Beskyd
- Systémové napětí: 48V
- Výkon panelů [Wp]: 6kWp
- Kapacita baterie [kWh]: 18kWh
Re: NodeRed programování
Co takhle použít node-red-node-ui-list ?
SkyFVE 6 kWp (ve výstavbě) na výzkumné "chytré" chatě. 4x MPPT Epever XTRA4415N 4x40A, 1x AC Charger WATE 42V/10A, Li-Ion 3x 12s 156Ah (18 kWh/44V), SkyPowerBox LF 4810 1kVA, Victron Atlas 48/1600, APC SmartUPS 5kVA + PLC Siemens Logo! + Dell Optiplex 3040 Micro (Proxmox: HA, Node-RED, InfluxDB, Grafana, Mqtt, Zigbee2Mqtt, Samba, Tailscale)
-
- Příspěvky: 1175
- Registrován: pon dub 24, 2023 8:47 am
- Reputace: 132
- Lokalita: Lašská brána Beskyd
- Systémové napětí: 48V
- Výkon panelů [Wp]: 6kWp
- Kapacita baterie [kWh]: 18kWh
Re: NodeRed programování
https://flows.nodered.org/node/node-red-node-ui-list
Kód: Vybrat vše
[
{
"id": "c2966228d27863a5",
"type": "ui_list",
"z": "c68cce97b5f96270",
"group": "7e4c65d6.0419cc",
"name": "Checkboxes",
"order": 3,
"width": "4",
"height": "7",
"lineType": "one",
"actionType": "check",
"allowHTML": false,
"outputs": 1,
"topic": "",
"x": 310,
"y": 260,
"wires": [
[
"398c9cbcac0aebaf"
]
]
},
{
"id": "b4a3240a33dcf4b6",
"type": "inject",
"z": "c68cce97b5f96270",
"name": "Bars",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "[{\"title\":\"bar1\",\"isChecked\":true},{\"title\":\"bar2\"},{\"title\":\"bar3\"},{\"title\":\"bar4\"}]",
"payloadType": "json",
"x": 110,
"y": 260,
"wires": [
[
"c2966228d27863a5"
]
]
},
{
"id": "398c9cbcac0aebaf",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 510,
"y": 260,
"wires": []
},
{
"id": "7e4c65d6.0419cc",
"type": "ui_group",
"name": "Checkboxes",
"tab": "2f52ec48.3a82cc",
"order": 1,
"disp": true,
"width": "12",
"collapse": false,
"className": ""
},
{
"id": "2f52ec48.3a82cc",
"type": "ui_tab",
"name": "List",
"icon": "dashboard"
}
]
SkyFVE 6 kWp (ve výstavbě) na výzkumné "chytré" chatě. 4x MPPT Epever XTRA4415N 4x40A, 1x AC Charger WATE 42V/10A, Li-Ion 3x 12s 156Ah (18 kWh/44V), SkyPowerBox LF 4810 1kVA, Victron Atlas 48/1600, APC SmartUPS 5kVA + PLC Siemens Logo! + Dell Optiplex 3040 Micro (Proxmox: HA, Node-RED, InfluxDB, Grafana, Mqtt, Zigbee2Mqtt, Samba, Tailscale)
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Ono to pry je nějak nefunkční přes klasický JS.
Tady by mělo byt řešení, ale toto je už mimo mé dosavadní znalosti.
Pomuže někdo?
https://discourse.nodered.org/t/how-to- ... es/62202/4
Děkuji.
skybor - děkují moc, ještě neznam, určitě vyzkoušim.
Koupil jsem si toto rele
https://aliexpress.com/item/1005006312144193.html
Snažim udělat podobný dashboard, jako je v Zigbee2MQTT.
https://ibb.co/RkKJ1cMr
A muj vytvor.
https://ibb.co/rNf6wVW
Vztup mam plně funkční. Rele mužu přepinat čimkoliv a check tlačitka v node se podle toho překlapěji.
Ted řešik ten nefunkční vystup
Tady by mělo byt řešení, ale toto je už mimo mé dosavadní znalosti.
Pomuže někdo?
https://discourse.nodered.org/t/how-to- ... es/62202/4
Děkuji.
skybor - děkují moc, ještě neznam, určitě vyzkoušim.
Koupil jsem si toto rele
https://aliexpress.com/item/1005006312144193.html
Snažim udělat podobný dashboard, jako je v Zigbee2MQTT.
https://ibb.co/RkKJ1cMr
A muj vytvor.
https://ibb.co/rNf6wVW
Vztup mam plně funkční. Rele mužu přepinat čimkoliv a check tlačitka v node se podle toho překlapěji.
Ted řešik ten nefunkční vystup
-
- Příspěvky: 1175
- Registrován: pon dub 24, 2023 8:47 am
- Reputace: 132
- Lokalita: Lašská brána Beskyd
- Systémové napětí: 48V
- Výkon panelů [Wp]: 6kWp
- Kapacita baterie [kWh]: 18kWh
Re: NodeRed programování
Pokud se ti check tlačítka překlápěji, tak už to jen napoj na ty vstupy rele.
Kód: Vybrat vše
[
{
"id": "c2966228d27863a5",
"type": "ui_list",
"z": "c68cce97b5f96270",
"group": "7e4c65d6.0419cc",
"name": "Checkboxes",
"order": 1,
"width": 4,
"height": 4,
"lineType": "one",
"actionType": "check",
"allowHTML": false,
"outputs": 1,
"topic": "",
"x": 310,
"y": 260,
"wires": [
[
"398c9cbcac0aebaf",
"81fc48e0585f0d1e"
]
]
},
{
"id": "b4a3240a33dcf4b6",
"type": "inject",
"z": "c68cce97b5f96270",
"name": "Bars",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": true,
"onceDelay": 0.1,
"topic": "",
"payload": "[{\"title\":\"bar1\"},{\"title\":\"bar2\"},{\"title\":\"bar3\"},{\"title\":\"bar4\"}]",
"payloadType": "json",
"x": 110,
"y": 260,
"wires": [
[
"c2966228d27863a5"
]
]
},
{
"id": "398c9cbcac0aebaf",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 510,
"y": 260,
"wires": []
},
{
"id": "81fc48e0585f0d1e",
"type": "switch",
"z": "c68cce97b5f96270",
"name": "",
"property": "payload.title",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "bar1",
"vt": "str"
},
{
"t": "eq",
"v": "bar2",
"vt": "str"
},
{
"t": "eq",
"v": "bar3",
"vt": "str"
},
{
"t": "eq",
"v": "bar4",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 4,
"x": 510,
"y": 380,
"wires": [
[
"ed03eb2f2ee31f08"
],
[
"faf668c371c28f98"
],
[
"8d9e6f903935596f"
],
[
"328d64c59f7eec1c"
]
]
},
{
"id": "e1ab77410ba28080",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 2,
"group": "7e4c65d6.0419cc",
"width": 8,
"height": 1,
"label": "rele1",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "rele1",
"x": 970,
"y": 320,
"wires": []
},
{
"id": "f76a38eee81bdbea",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 3,
"group": "7e4c65d6.0419cc",
"width": 8,
"height": 1,
"label": "rele2",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "rele2",
"x": 970,
"y": 360,
"wires": []
},
{
"id": "b8471c878ac45353",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 4,
"group": "7e4c65d6.0419cc",
"width": 8,
"height": 1,
"label": "rele3",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "rele3",
"x": 970,
"y": 400,
"wires": []
},
{
"id": "94698f6c3b7fad08",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 5,
"group": "7e4c65d6.0419cc",
"width": 8,
"height": 1,
"label": "rele4",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "rele4",
"x": 970,
"y": 440,
"wires": []
},
{
"id": "ed03eb2f2ee31f08",
"type": "function",
"z": "c68cce97b5f96270",
"name": "isChecked",
"func": "msg.payload = msg.payload.isChecked;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 320,
"wires": [
[
"e1ab77410ba28080"
]
]
},
{
"id": "faf668c371c28f98",
"type": "function",
"z": "c68cce97b5f96270",
"name": "isChecked",
"func": "msg.payload = msg.payload.isChecked;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 360,
"wires": [
[
"f76a38eee81bdbea"
]
]
},
{
"id": "8d9e6f903935596f",
"type": "function",
"z": "c68cce97b5f96270",
"name": "isChecked",
"func": "msg.payload = msg.payload.isChecked;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 400,
"wires": [
[
"b8471c878ac45353"
]
]
},
{
"id": "328d64c59f7eec1c",
"type": "function",
"z": "c68cce97b5f96270",
"name": "isChecked",
"func": "msg.payload = msg.payload.isChecked;\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 810,
"y": 440,
"wires": [
[
"94698f6c3b7fad08"
]
]
},
{
"id": "7e4c65d6.0419cc",
"type": "ui_group",
"name": "Checkboxes",
"tab": "2f52ec48.3a82cc",
"order": 1,
"disp": true,
"width": "12",
"collapse": false,
"className": ""
},
{
"id": "2f52ec48.3a82cc",
"type": "ui_tab",
"name": "List",
"icon": "dashboard"
}
]
SkyFVE 6 kWp (ve výstavbě) na výzkumné "chytré" chatě. 4x MPPT Epever XTRA4415N 4x40A, 1x AC Charger WATE 42V/10A, Li-Ion 3x 12s 156Ah (18 kWh/44V), SkyPowerBox LF 4810 1kVA, Victron Atlas 48/1600, APC SmartUPS 5kVA + PLC Siemens Logo! + Dell Optiplex 3040 Micro (Proxmox: HA, Node-RED, InfluxDB, Grafana, Mqtt, Zigbee2Mqtt, Samba, Tailscale)
-
- Příspěvky: 81
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 1
Re: NodeRed programování
Kdyby to neměli dojebane, tak by mělo stačit toto, ne?
Kód: Vybrat vše
<div>
<input type="checkbox" id="bar1" value="bar1" onclick="sendState('bar1', this.checked)">Bar 1</input><br>
<input type="checkbox" id="bar2" value="bar2" onclick="sendState('bar2', this.checked)">Bar 2</input><br>
</div>
<script>
function sendState(name, state) {
var msg = { payload: name + ' ' + (state ? 'on' : 'off') };
send(msg);
}
</script>
-
- Příspěvky: 410
- Registrován: ned čer 26, 2022 3:33 pm
- Reputace: 73
- Lokalita: Znojemsko
- Systémové napětí: 48V
- Výkon panelů [Wp]: 5500
- Kapacita baterie [kWh]: 11
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: NodeRed programování
pouzij to co postnul skybor - multicheckbox, nedelej zbytecne template, kor kdyz resis pouze ON/OFF. Druha alternativa je multistate switch
string1 - 5.5kwp 3S4P - 460wp | 3x Multiplus ii 3000VA 1F systém | Lifepo4 230AH 48V + Seplos BMS
-
- Příspěvky: 1175
- Registrován: pon dub 24, 2023 8:47 am
- Reputace: 132
- Lokalita: Lašská brána Beskyd
- Systémové napětí: 48V
- Výkon panelů [Wp]: 6kWp
- Kapacita baterie [kWh]: 18kWh
Re: NodeRed programování
Podle mne Tamplates zbytečně znepřehledňují Flows. Já se jim snažím vyhnout kdekoli to jde.
A když se dívám na ten tvůj původní "vzor", tak tam ani nejsou checkboxy ale switche. Takže by snad šly požít i v NR obyč switche.
A když se dívám na ten tvůj původní "vzor", tak tam ani nejsou checkboxy ale switche. Takže by snad šly požít i v NR obyč switche.
Kód: Vybrat vše
[
{
"id": "927434028e9989cd",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 6,
"group": "7e4c65d6.0419cc",
"width": 4,
"height": 1,
"label": "State L1 (L1)",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "led1",
"x": 510,
"y": 560,
"wires": []
},
{
"id": "c0cb85aa486e6ca8",
"type": "ui_switch",
"z": "c68cce97b5f96270",
"name": "switch1",
"label": "",
"tooltip": "",
"group": "7e4c65d6.0419cc",
"order": 8,
"width": 2,
"height": 1,
"passthru": true,
"decouple": "false",
"topic": "topic",
"topicType": "msg",
"style": "",
"onvalue": "true",
"onvalueType": "bool",
"onicon": "",
"oncolor": "",
"offvalue": "false",
"offvalueType": "bool",
"officon": "",
"offcolor": "",
"animate": false,
"className": "",
"x": 320,
"y": 560,
"wires": [
[
"927434028e9989cd",
"102de06c02f7681e"
]
]
},
{
"id": "8391c46463083ee9",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "rele1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 730,
"y": 600,
"wires": []
},
{
"id": "102de06c02f7681e",
"type": "function",
"z": "c68cce97b5f96270",
"name": "sendState rele1",
"func": "msg.topic = \"bar1\";\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 540,
"y": 600,
"wires": [
[
"8391c46463083ee9"
]
]
},
{
"id": "b13878e1c4a7bf42",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 9,
"group": "7e4c65d6.0419cc",
"width": 4,
"height": 1,
"label": "State L2 (L2)",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "led2",
"x": 510,
"y": 640,
"wires": []
},
{
"id": "0c6334d58f21b615",
"type": "ui_switch",
"z": "c68cce97b5f96270",
"name": "switch2",
"label": "",
"tooltip": "",
"group": "7e4c65d6.0419cc",
"order": 11,
"width": 2,
"height": 1,
"passthru": true,
"decouple": "false",
"topic": "topic",
"topicType": "msg",
"style": "",
"onvalue": "true",
"onvalueType": "bool",
"onicon": "",
"oncolor": "",
"offvalue": "false",
"offvalueType": "bool",
"officon": "",
"offcolor": "",
"animate": false,
"className": "",
"x": 320,
"y": 640,
"wires": [
[
"b13878e1c4a7bf42",
"03340dd44e656d2e"
]
]
},
{
"id": "f01d2f690b9bc9c5",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "rele2",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 730,
"y": 680,
"wires": []
},
{
"id": "03340dd44e656d2e",
"type": "function",
"z": "c68cce97b5f96270",
"name": "sendState rele2",
"func": "msg.topic = \"bar2\";\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 540,
"y": 680,
"wires": [
[
"f01d2f690b9bc9c5"
]
]
},
{
"id": "66e9ac1894be70c3",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 12,
"group": "7e4c65d6.0419cc",
"width": 4,
"height": 1,
"label": "State L3 (L3)",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "led3",
"x": 510,
"y": 720,
"wires": []
},
{
"id": "ab2b46d38dcc11b7",
"type": "ui_switch",
"z": "c68cce97b5f96270",
"name": "switch3",
"label": "",
"tooltip": "",
"group": "7e4c65d6.0419cc",
"order": 14,
"width": 2,
"height": 1,
"passthru": true,
"decouple": "false",
"topic": "topic",
"topicType": "msg",
"style": "",
"onvalue": "true",
"onvalueType": "bool",
"onicon": "",
"oncolor": "",
"offvalue": "false",
"offvalueType": "bool",
"officon": "",
"offcolor": "",
"animate": false,
"className": "",
"x": 320,
"y": 720,
"wires": [
[
"66e9ac1894be70c3",
"feeb578b095a1e40"
]
]
},
{
"id": "68a4c9f1eb8e8f50",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "rele3",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 730,
"y": 760,
"wires": []
},
{
"id": "feeb578b095a1e40",
"type": "function",
"z": "c68cce97b5f96270",
"name": "sendState rele3",
"func": "msg.topic = \"bar3\";\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 540,
"y": 760,
"wires": [
[
"68a4c9f1eb8e8f50"
]
]
},
{
"id": "a2769da617338d34",
"type": "ui_led",
"z": "c68cce97b5f96270",
"order": 15,
"group": "7e4c65d6.0419cc",
"width": 4,
"height": 1,
"label": "State L4 (L4)",
"labelPlacement": "left",
"labelAlignment": "left",
"colorForValue": [
{
"color": "#c0c0c0",
"value": "false",
"valueType": "bool"
},
{
"color": "#ffff00",
"value": "true",
"valueType": "bool"
}
],
"allowColorForValueInMessage": false,
"shape": "circle",
"showGlow": true,
"name": "led4",
"x": 510,
"y": 800,
"wires": []
},
{
"id": "dbbe0ec9bbeb425c",
"type": "ui_switch",
"z": "c68cce97b5f96270",
"name": "switch4",
"label": "",
"tooltip": "",
"group": "7e4c65d6.0419cc",
"order": 17,
"width": 2,
"height": 1,
"passthru": true,
"decouple": "false",
"topic": "topic",
"topicType": "msg",
"style": "",
"onvalue": "true",
"onvalueType": "bool",
"onicon": "",
"oncolor": "",
"offvalue": "false",
"offvalueType": "bool",
"officon": "",
"offcolor": "",
"animate": false,
"className": "",
"x": 320,
"y": 800,
"wires": [
[
"a2769da617338d34",
"ef4feff4790fda32"
]
]
},
{
"id": "4ab66410a7516f18",
"type": "debug",
"z": "c68cce97b5f96270",
"name": "rele4",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 730,
"y": 840,
"wires": []
},
{
"id": "ef4feff4790fda32",
"type": "function",
"z": "c68cce97b5f96270",
"name": "sendState rele4",
"func": "msg.topic = \"bar4\";\nreturn msg;",
"outputs": 1,
"timeout": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 540,
"y": 840,
"wires": [
[
"4ab66410a7516f18"
]
]
},
{
"id": "7e4c65d6.0419cc",
"type": "ui_group",
"name": "Checkboxes",
"tab": "2f52ec48.3a82cc",
"order": 1,
"disp": true,
"width": "12",
"collapse": false,
"className": ""
},
{
"id": "2f52ec48.3a82cc",
"type": "ui_tab",
"name": "List",
"icon": "dashboard"
}
]
SkyFVE 6 kWp (ve výstavbě) na výzkumné "chytré" chatě. 4x MPPT Epever XTRA4415N 4x40A, 1x AC Charger WATE 42V/10A, Li-Ion 3x 12s 156Ah (18 kWh/44V), SkyPowerBox LF 4810 1kVA, Victron Atlas 48/1600, APC SmartUPS 5kVA + PLC Siemens Logo! + Dell Optiplex 3040 Micro (Proxmox: HA, Node-RED, InfluxDB, Grafana, Mqtt, Zigbee2Mqtt, Samba, Tailscale)
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Kurs programování aplikací v Hradci Králové
od honzaL » » v Semináře a přednášky
Kurs programování aplikací v Hradci Králové
- 1 Odpovědi
- 2008 Zobrazení
-
Poslední příspěvek od honzaL
-
-
- 0 Odpovědi
- 1546 Zobrazení
-
Poslední příspěvek od PavelVe
-
- 11 Odpovědi
- 994 Zobrazení
-
Poslední příspěvek od Diablo1st
-
- 5 Odpovědi
- 833 Zobrazení
-
Poslední příspěvek od ElektroEzs
-
- 35 Odpovědi
- 3584 Zobrazení
-
Poslední příspěvek od Antrac1t
Kdo je online
Uživatelé prohlížející si toto fórum: CC [Bot] a 2 hosti