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?