Mijn vraag
ik heb een knop en 3 relays. Ik probeer in node red een function node te maken (in java script) die:
-on button press, checked of een of meerdere van de relays aan staan, zo ja, zet alle relays uit.
-on button press, als alle relays uit staan, zet alle relays aan.
Relevante software en hardware die ik gebruik
Node red
raspberry pi zero w
3.3v 4x relay board
simpele push button (moet er nog een weerstand op aan sluiten)
Wat ik al gevonden of geprobeerd heb
Chat gpt geprobeerd, maar die code geeft telkens "Invalid input: NaN"
iemand een idee hoe ik dit werkend kan krijgen?
ik heb een knop en 3 relays. Ik probeer in node red een function node te maken (in java script) die:
-on button press, checked of een of meerdere van de relays aan staan, zo ja, zet alle relays uit.
-on button press, als alle relays uit staan, zet alle relays aan.
Relevante software en hardware die ik gebruik
Node red
raspberry pi zero w
3.3v 4x relay board
simpele push button (moet er nog een weerstand op aan sluiten)
Wat ik al gevonden of geprobeerd heb
Chat gpt geprobeerd, maar die code geeft telkens "Invalid input: NaN"
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| // Input: msg.payload (button state)
// Output: msg.payload (command to control relays)
var relay2State = flow.get("relay2") || 0;
var relay3State = flow.get("relay3") || 0;
var relay4State = flow.get("relay4") || 0;
// Convert relay states to numbers
relay2State = Number(relay2State);
relay3State = Number(relay3State);
relay4State = Number(relay4State);
// Check if any of the relays are on
if (relay2State || relay3State || relay4State) {
// Turn off all relays
relay2State = 0;
relay3State = 0;
relay4State = 0;
} else {
// Turn on all relays
relay2State = 1;
relay3State = 1;
relay4State = 1;
}
flow.set("relay2", relay2State);
flow.set("relay3", relay3State);
flow.set("relay4", relay4State);
// Prepare the output command
var command = {
relay2: relay2State,
relay3: relay3State,
relay4: relay4State
};
msg.payload = command;
return msg; |
iemand een idee hoe ik dit werkend kan krijgen?
/f/image/9b2s3cYaP7AXsr9JzMNwxuSC.png?f=fotoalbum_large)