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: 76
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 0
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: 4058
- Registrován: úte dub 23, 2013 10:21 am
- Reputace: 663
- 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: 47
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 2
- 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: 47
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 2
- 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: 76
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 0
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: 47
- Registrován: pát bře 18, 2011 1:01 pm
- Reputace: 2
- 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: 76
- Registrován: stř dub 17, 2013 1:21 pm
- Reputace: 0
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": []
}
]
-
- 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
- 1960 Zobrazení
-
Poslední příspěvek od honzaL
-
-
- 0 Odpovědi
- 1515 Zobrazení
-
Poslední příspěvek od PavelVe
-
- 11 Odpovědi
- 938 Zobrazení
-
Poslední příspěvek od Diablo1st
-
- 5 Odpovědi
- 806 Zobrazení
-
Poslední příspěvek od ElektroEzs
-
- 35 Odpovědi
- 3439 Zobrazení
-
Poslední příspěvek od Antrac1t
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot], SiteExplorer [Bot] a 0 hostů