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 ...
Leo
Příspěvky: 75
Registrován: stř dub 17, 2013 1:21 pm
Reputace: 0

Re: NodeRed programování

Nový příspěvek od Leo »

Dotaz. Když mam nějaké data, které chci, aby se zachovaly, když restartuji raspberry.
Jak se to řeší? Dík.
rva
Příspěvky: 4053
Registrován: úte dub 23, 2013 10:21 am
Reputace: 661
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í

Nový příspěvek od rva »

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
alextccz
Příspěvky: 91
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í

Nový příspěvek od alextccz »

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
dako
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í

Nový příspěvek od dako »

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

Kód: Vybrat vše

 global.set("SwPosSet",msg.payload);
v jiném nodu function, kde chci s touto hodnotou pracovat pak jen na začátku kódu předám

Kód: Vybrat vše

 switchPosSet = global.get('SwPosSet');
 .
 .
 .
 if (swichPosSet == 3)
 {
 ..........
 }
 
příp. můžu s hodnotou rovnou pracovat

Kód: Vybrat vše

 .
 if (global.get('SwPosSet') == 3)
 {
 ..........
 }
 
dako
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í

Nový příspěvek od dako »

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:

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;
 }
 
tak nějak to pak vypadá ve flow:
function-status.png
function-status.png (5.77 KiB) Zobrazeno 134 x
Leo
Příspěvky: 75
Registrován: stř dub 17, 2013 1:21 pm
Reputace: 0

Re: NodeRed programování

Nový příspěvek od Leo »

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.
Přílohy
neni.png
alextccz
Příspěvky: 91
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í

Nový příspěvek od alextccz »

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": []
    }
]
dako
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í

Nový příspěvek od dako »

A co tak použít node "write file"?
Snímek obrazovky z 2025-01-13 22-02-09.png
Snímek obrazovky z 2025-01-13 22-02-09.png (2.72 KiB) Zobrazeno 41 x

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek

Kdo je online

Uživatelé prohlížející si toto fórum: Claudebot [Bot] a 1 host