Had some time to troubleshoot my setup, and it turns out that my problem has nothing to do with mysensors....
As usual it was a user error.
I have put both of the mosfets on the same cooler and the middle pins (drain) got in contact throught the screw that held the mostfet to the cooler.
Separated the coolers and voila everything works
Yeah!
towme
@towme
Best posts made by towme
-
RE: Multiple sensors on one arduino, serial gateway, home assistant
-
RE: [SOLVED] Just wires, no radio, no rfl24
@tbowmo
Ok guys, thanks for the response.
As I understand your response, then I do not need the stuff from github on my pi.
Just connect the arduino, load the sketch, and configure HA.
Everything works like magic?tom
-
RE: [SOLVED] Just wires, no radio, no rfl24
@mfalkvidd
Sorry didn't mean to be sarcastic!
I meant magic as that I have been spending two weeks now to try to set up my frist motion sensor, with trying different options with configure command, so for me it is magic for now.
But it seems like I have been over thinking things a little.But now that you mention documentation....
All the docs I have found searching for "no radio", "no nrf24", has the nrf24 in the shopping list. Their sensors maybe wired, but their arduino, nodemcu, etc. communicates over the radio with the controller, and the only one I found to be almost usable is the power metering forum post (and some other post mentioning/linking the power metering post) but thats too complicated for a newbie like me.but for me it seems that 98% of people is using radio happily with mysensors.
Latest posts made by towme
-
RE: Dimmer sketches - array and multiple PWM led pins
This is what I use for multiple sensors on one board. It is connected to a Home Assistant instance and seems to work for me.
(I am not using any radios, the uno is connected via usb to my rpi running HA, so the radio thingies are missing from the sketch)
#define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> #include <DHT.h> #define SN "LivingRoom" #define SV "2.0" //Only pins 2 and 3 can be used as motion sensors, because these generate interrupts const int HCSR501S = 2; int HCSR501_PINS[HCSR501S] = {2, 3}; int HCSR501_CHILD_IDS[HCSR501S] = {2, 3}; //DHTs const int DHTS = 5; int DHT_PINS[DHTS] = {4, 7, 8, 12, 13}; int DHT_TEMP_CHILD_IDS[DHTS] = {4, 5, 6, 7, 8}; int DHT_HUM_CHILD_IDS[DHTS] = {14, 15, 16, 17, 18}; //LED - Mosfet const int LEDS = 5; int LED_PINS[LEDS] = {5, 6, 9, 10, 11}; int LED_CHILD_IDS[LEDS] = {31, 32, 33, 34, 35}; #define FADE_DELAY 40 // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim) int WaitTime = 20; static int16_t currentLevel[LEDS] = {0, 0, 0, 0, 0}; int requestedLevel[LEDS]; bool metric = true; // Must be >1000ms for DHT22 and >2000ms for DHT11 //static const uint64_t UPDATE_INTERVAL = 60000; static const uint64_t UPDATE_INTERVAL = 6000; static bool first_message_sent = false; MyMessage moveMsg0(HCSR501_CHILD_IDS[0], V_TRIPPED); MyMessage moveMsg1(HCSR501_CHILD_IDS[1], V_TRIPPED); // MyMessage dimmerMsg0(LED_CHILD_IDS[0], V_DIMMER); MyMessage lightMsg0(LED_CHILD_IDS[0], V_LIGHT); MyMessage dimmerMsg1(LED_CHILD_IDS[1], V_DIMMER); MyMessage lightMsg1(LED_CHILD_IDS[1], V_LIGHT); MyMessage dimmerMsg2(LED_CHILD_IDS[2], V_DIMMER); MyMessage lightMsg2(LED_CHILD_IDS[2], V_LIGHT); MyMessage dimmerMsg3(LED_CHILD_IDS[3], V_DIMMER); MyMessage lightMsg3(LED_CHILD_IDS[3], V_LIGHT); MyMessage dimmerMsg4(LED_CHILD_IDS[4], V_DIMMER); MyMessage lightMsg4(LED_CHILD_IDS[4], V_LIGHT); // MyMessage tempMsg0(DHT_TEMP_CHILD_IDS[0], V_TEMP); MyMessage humMsg0(DHT_HUM_CHILD_IDS[0], V_HUM); MyMessage tempMsg1(DHT_TEMP_CHILD_IDS[1], V_TEMP); MyMessage humMsg1(DHT_HUM_CHILD_IDS[1], V_HUM); MyMessage tempMsg2(DHT_TEMP_CHILD_IDS[2], V_TEMP); MyMessage humMsg2(DHT_HUM_CHILD_IDS[2], V_HUM); MyMessage tempMsg3(DHT_TEMP_CHILD_IDS[3], V_TEMP); MyMessage humMsg3(DHT_HUM_CHILD_IDS[3], V_HUM); MyMessage tempMsg4(DHT_TEMP_CHILD_IDS[4], V_TEMP); MyMessage humMsg4(DHT_HUM_CHILD_IDS[4], V_HUM); // DHT dht1; DHT dht2; DHT dht3; DHT dht4; DHT dht5; void before() { for (int i = 0; i < HCSR501S; i++) { pinMode(HCSR501_PINS[i], INPUT); } for (int q = 0; q < LEDS; q++) { pinMode(LED_PINS[q], OUTPUT); } } void setup() { dht1.setup(DHT_PINS[0]); dht2.setup(DHT_PINS[1]); dht3.setup(DHT_PINS[2]); dht4.setup(DHT_PINS[3]); dht5.setup(DHT_PINS[4]); for (int q = 0; q < LEDS; q++) { request(LED_CHILD_IDS[q], V_DIMMER); } } void presentation() { sendSketchInfo(SN, SV); for (int i = 0; i < HCSR501S; i++) { present(HCSR501_CHILD_IDS[i], S_MOTION); wait(WaitTime); } for (int q = 0; q < DHTS; q++) { present(DHT_TEMP_CHILD_IDS[q], S_TEMP); wait(WaitTime); present(DHT_HUM_CHILD_IDS[q], S_HUM); wait(WaitTime); } for (int w = 0; w < LEDS; w++) { present(LED_CHILD_IDS[w], S_DIMMER); wait(WaitTime); } } void loop() { dht1.readSensor(true); dht2.readSensor(true); dht3.readSensor(true); dht4.readSensor(true); dht5.readSensor(true); // float temperature[DHTS]; float humidity[DHTS]; temperature[0] = dht1.getTemperature(); humidity[0] = dht1.getHumidity(); temperature[1] = dht2.getTemperature(); humidity[1] = dht2.getHumidity(); temperature[2] = dht3.getTemperature(); humidity[2] = dht3.getHumidity(); temperature[3] = dht4.getTemperature(); humidity[3] = dht4.getHumidity(); temperature[4] = dht5.getTemperature(); humidity[4] = dht5.getHumidity(); // send(tempMsg0.set(temperature[0], 1)); send(humMsg0.set(humidity[0], 1)); send(tempMsg1.set(temperature[1], 1)); send(humMsg1.set(humidity[1], 1)); send(tempMsg2.set(temperature[2], 1)); send(humMsg2.set(humidity[2], 1)); send(tempMsg3.set(temperature[3], 1)); send(humMsg3.set(humidity[3], 1)); send(tempMsg4.set(temperature[4], 1)); send(humMsg4.set(humidity[4], 1)); int tripped[HCSR501S]; for (int i = 0; i < HCSR501S; i++) { tripped[i] = digitalRead(HCSR501_PINS[i]) == HIGH; send(moveMsg0.set(tripped[0] ? 1 : 0)); send(moveMsg1.set(tripped[1] ? 1 : 0)); } if ( first_message_sent == false ) { send(lightMsg0.set(currentLevel[0] > 0)); send(dimmerMsg0.set(currentLevel[0])); send(lightMsg1.set(currentLevel[1] > 0)); send(dimmerMsg1.set(currentLevel[1])); send(lightMsg2.set(currentLevel[2] > 0)); send(dimmerMsg2.set(currentLevel[2])); send(lightMsg3.set(currentLevel[3] > 0)); send(dimmerMsg3.set(currentLevel[3])); send(lightMsg4.set(currentLevel[4] > 0)); send(dimmerMsg4.set(currentLevel[4])); first_message_sent = true; } wait(UPDATE_INTERVAL); } void receive(const MyMessage &message) { int whichPIN = -1; int whichID = -1; int whichITEM = -1; if (message.type == V_LIGHT || message.type == V_DIMMER) { for (int w = 0; w < LEDS; w++) { if (message.sensor == LED_CHILD_IDS[w]) { whichPIN = LED_PINS[w]; whichID = LED_CHILD_IDS[w]; whichITEM = w; break; } } if (whichITEM > -1) { requestedLevel[whichITEM] = atoi( message.data ); // Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on] requestedLevel[whichITEM] *= ( message.type == V_LIGHT ? 0 : 1 ); requestedLevel[whichITEM] = requestedLevel[whichITEM] > 100 ? 100 : requestedLevel[whichITEM]; requestedLevel[whichITEM] = requestedLevel[whichITEM] < 0 ? 0 : requestedLevel[whichITEM]; int delta = ( requestedLevel[whichITEM] - currentLevel[whichITEM] ) < 0 ? -1 : 1; while ( currentLevel[whichITEM] != requestedLevel[whichITEM] ) { currentLevel[whichITEM] += delta; analogWrite( whichPIN, (int)(currentLevel[whichITEM] / 100. * 255) ); delay( FADE_DELAY ); } if (whichITEM == 0){ send(lightMsg0.set(currentLevel[whichITEM] > 0)); send(dimmerMsg0.set(currentLevel[whichITEM])); } if (whichITEM == 1){ send(lightMsg1.set(currentLevel[whichITEM] > 0)); send(dimmerMsg1.set(currentLevel[whichITEM])); } if (whichITEM == 2){ send(lightMsg2.set(currentLevel[whichITEM] > 0)); send(dimmerMsg2.set(currentLevel[whichITEM])); } if (whichITEM == 3){ send(lightMsg3.set(currentLevel[whichITEM] > 0)); send(dimmerMsg3.set(currentLevel[whichITEM])); } if (whichITEM == 4){ send(lightMsg4.set(currentLevel[whichITEM] > 0)); send(dimmerMsg4.set(currentLevel[whichITEM])); } } } }``` Maybe this helps... cheers tom
-
RE: gateway serial and dimmer example
Maybe it is not a problem of the code (because that looks ok), but with the wiring, or too little power to the led stripe.
How long is your LED stripe?
Also a mistake I have made, when I set up mine, was that every mosfet you use in your setup needs to be attached to a separate cooler / heat sink, because the back of the mosfet is a middle pin also.
Another thing is I see in your code that you present your dimmer as child id 1, then you should use 1 and not 0 in your debug messages.
Plug your arduino to your computer and open Serial monitor in the arduino ide while testing your setup.(Also do not confuse analog and digital pins on the arduino, both can be number 3 )
cheers
tom -
RE: Multiple sensors on one arduino, serial gateway, home assistant
Had some time to troubleshoot my setup, and it turns out that my problem has nothing to do with mysensors....
As usual it was a user error.
I have put both of the mosfets on the same cooler and the middle pins (drain) got in contact throught the screw that held the mostfet to the cooler.
Separated the coolers and voila everything works
Yeah! -
RE: Multiple sensors on one arduino, serial gateway, home assistant
Yeah, but don't really know howto solve that.
The arduino is plugged in to the usb port of the rpi, I have no radio whatsoever. So I remove all the serialprint lines from sketches, because they cause error messages in HA. (which seems logical because debug messages are not sensor messages)
Forgot to mention the things I have already tried.
I have started off with this sketch: https://www.mysensors.org/build/dimmer
(It works fine with one led. either of the leds)Then I modified the above sketch with adding LedPin to the fadelevel function. That resulted in some strange working because I could switch the leds on and off, but the dimming worked on only one led.
Then I thought I use the switch/case option, but that results the same problem that I am in now.
Then I have duplicated everything. Made a fadelevel2 function, with requestedlevel2, tolevel2, and so on. Same result again.
I am starting to think that there is a strange limitation in the arduino that I am not aware of. Like the motion sensors can only be hooked up to pins 2 and 3, so maybe the 9 and 10 pins are not that kind of pwm like the others. (I know it sounds dumb )
I will try to separate the leds "far" from each other, so use pin 9 for one and 5 fo the other.
(This is an arduino uno btw.) -
Multiple sensors on one arduino, serial gateway, home assistant
Hi guys,
I thought that I can extend my rpi's gpio ports with an arduino, so I plugged an arduino to one of the usb ports on the pi, and connected 2 HCSR501s, 5 DHT11s and 2 mosfets for led dimming. Because this is my first mysensors project, I have copy pasted some sketches together to control all of the sensors. Almost everything seems to be working fine, except the led dimming.
It compiles and I can upload it to the arduino, all sensors are recognized by home assistant, but when I try to dim (or switch on) one led stripe the other does the same thing. So if I set 10% brightness on one light, the other turns on as well at 10%.
This is the fourth or fifth version of the skecth I have now, but all seem to do the same, so maybe this is a problem with the HA mysensors integration...
So the question is: Can anyone see the problem with my sketch?thanks
tom#define MY_GATEWAY_SERIAL #include <SPI.h> #include <MySensors.h> #include <DHT.h> #define SN "LivingRoom" #define SV "1.3" //Only pins 2 and 3 can be used as motion sensors, because these generate interrupts #define PIN_HCSR501_1 2 #define PIN_HCSR501_2 3 #define CHILD_ID_HCSR501_1 2 #define CHILD_ID_HCSR501_2 3 //DHTs #define PIN_DHT_1 4 #define PIN_DHT_2 5 #define PIN_DHT_3 6 #define PIN_DHT_4 7 #define PIN_DHT_5 8 #define CHILD_ID_DHT_TEMP_1 4 #define CHILD_ID_DHT_TEMP_2 5 #define CHILD_ID_DHT_TEMP_3 6 #define CHILD_ID_DHT_TEMP_4 7 #define CHILD_ID_DHT_TEMP_5 8 #define CHILD_ID_DHT_HUM_1 14 #define CHILD_ID_DHT_HUM_2 15 #define CHILD_ID_DHT_HUM_3 16 #define CHILD_ID_DHT_HUM_4 17 #define CHILD_ID_DHT_HUM_5 18 #define PIN_LED_1 9 #define PIN_LED_2 10 #define CHILD_ID_LED_1 9 #define CHILD_ID_LED_2 10 #define FADE_DELAY 20 // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim) int WaitTime = 50; static int16_t currentLevel = 0; static int16_t currentLevel2 = 0; int requestedLevel; int requestedLevel2; bool metric = true; // Must be >1000ms for DHT22 and >2000ms for DHT11 static const uint64_t UPDATE_INTERVAL = 60000; static bool first_message_sent = false; MyMessage dimmerMsg1(CHILD_ID_LED_1, V_DIMMER); MyMessage lightMsg1(CHILD_ID_LED_1, V_LIGHT); MyMessage dimmerMsg2(CHILD_ID_LED_2, V_DIMMER); MyMessage lightMsg2(CHILD_ID_LED_2, V_LIGHT); MyMessage tempMsg1(CHILD_ID_DHT_TEMP_1, V_TEMP); //Dishwasher MyMessage tempMsg2(CHILD_ID_DHT_TEMP_2, V_TEMP); //LR door MyMessage tempMsg3(CHILD_ID_DHT_TEMP_3, V_TEMP); //Oven MyMessage tempMsg4(CHILD_ID_DHT_TEMP_4, V_TEMP); //Room2 MyMessage tempMsg5(CHILD_ID_DHT_TEMP_5, V_TEMP); //LR window MyMessage humMsg1(CHILD_ID_DHT_HUM_1, V_HUM); MyMessage humMsg2(CHILD_ID_DHT_HUM_2, V_HUM); MyMessage humMsg3(CHILD_ID_DHT_HUM_3, V_HUM); MyMessage humMsg4(CHILD_ID_DHT_HUM_4, V_HUM); MyMessage humMsg5(CHILD_ID_DHT_HUM_5, V_HUM); MyMessage moveMsg1(CHILD_ID_HCSR501_1, V_TRIPPED); //Kitchen movement MyMessage moveMsg2(CHILD_ID_HCSR501_2, V_TRIPPED); //LR movement //MyMessage moveMsg1a(CHILD_ID_HCSR501_1, V_ARMED); //MyMessage moveMsg2a(CHILD_ID_HCSR501_2, V_ARMED); DHT dht1; DHT dht2; DHT dht3; DHT dht4; DHT dht5; void before() { pinMode(PIN_HCSR501_1, INPUT); pinMode(PIN_HCSR501_2, INPUT); pinMode(PIN_LED_1, OUTPUT); pinMode(PIN_LED_2, OUTPUT); } void setup() { dht1.setup(PIN_DHT_1); dht2.setup(PIN_DHT_2); dht3.setup(PIN_DHT_3); dht4.setup(PIN_DHT_4); dht5.setup(PIN_DHT_5); request(CHILD_ID_LED_1, V_DIMMER); request(CHILD_ID_LED_2, V_DIMMER); } void presentation() { sendSketchInfo(SN, SV); present(CHILD_ID_HCSR501_1, S_MOTION); wait(WaitTime); present(CHILD_ID_HCSR501_2, S_MOTION); wait(WaitTime); present(CHILD_ID_DHT_TEMP_1, S_TEMP); wait(WaitTime); present(CHILD_ID_DHT_TEMP_2, S_TEMP); wait(WaitTime); present(CHILD_ID_DHT_TEMP_3, S_TEMP); wait(WaitTime); present(CHILD_ID_DHT_TEMP_4, S_TEMP); wait(WaitTime); present(CHILD_ID_DHT_TEMP_5, S_TEMP); wait(WaitTime); present(CHILD_ID_DHT_HUM_1, S_HUM); wait(WaitTime); present(CHILD_ID_DHT_HUM_2, S_HUM); wait(WaitTime); present(CHILD_ID_DHT_HUM_3, S_HUM); wait(WaitTime); present(CHILD_ID_DHT_HUM_4, S_HUM); wait(WaitTime); present(CHILD_ID_DHT_HUM_5, S_HUM); wait(WaitTime); present(CHILD_ID_LED_1, S_DIMMER); wait(WaitTime); present(CHILD_ID_LED_2, S_DIMMER); wait(WaitTime); } void loop() { dht1.readSensor(true); dht2.readSensor(true); dht3.readSensor(true); dht4.readSensor(true); dht5.readSensor(true); // float temperature1 = dht1.getTemperature(); float humidity1 = dht1.getHumidity(); float temperature2 = dht2.getTemperature(); float humidity2 = dht2.getHumidity(); float temperature3 = dht3.getTemperature(); float humidity3 = dht3.getHumidity(); float temperature4 = dht4.getTemperature(); float humidity4 = dht4.getHumidity(); float temperature5 = dht5.getTemperature(); float humidity5 = dht5.getHumidity(); // send(tempMsg1.set(temperature1, 1)); send(humMsg1.set(humidity1, 1)); send(tempMsg2.set(temperature2, 1)); send(humMsg2.set(humidity2, 1)); send(tempMsg3.set(temperature3, 1)); send(humMsg3.set(humidity3, 1)); send(tempMsg4.set(temperature4, 1)); send(humMsg4.set(humidity4, 1)); send(tempMsg5.set(temperature5, 1)); send(humMsg5.set(humidity5, 1)); int tripped1 = digitalRead(PIN_HCSR501_1) == HIGH; int tripped2 = digitalRead(PIN_HCSR501_2) == HIGH; send(moveMsg1.set(tripped1? 1 : 0)); //send(moveMsg1a.set(1)); send(moveMsg2.set(tripped2? 1 : 0)); //send(moveMsg2a.set(1)); if ( first_message_sent == false ) { send(lightMsg1.set(currentLevel > 0)); send(dimmerMsg1.set(currentLevel)); send(lightMsg2.set(currentLevel2 > 0)); send(dimmerMsg2.set(currentLevel2)); first_message_sent = true; } wait(UPDATE_INTERVAL); } void receive(const MyMessage &message) { if (message.type == V_LIGHT || message.type == V_DIMMER) { if ((message.sensor == CHILD_ID_LED_1) || (message.sensor == 0)) { requestedLevel = atoi( message.data ); // Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on] requestedLevel *= ( message.type == V_LIGHT ? 0 : 1 ); requestedLevel = requestedLevel > 100 ? 100 : requestedLevel; requestedLevel = requestedLevel < 0 ? 0 : requestedLevel; int delta = ( requestedLevel - currentLevel ) < 0 ? -1 : 1; while ( currentLevel != requestedLevel ) { currentLevel += delta; analogWrite( PIN_LED_1, (int)(currentLevel / 100. * 255) ); delay( FADE_DELAY ); } send(lightMsg1.set(currentLevel > 0)); send( dimmerMsg1.set(currentLevel) ); } if ((message.sensor == CHILD_ID_LED_2) || (message.sensor == 0)) { requestedLevel2 = atoi( message.data ); // Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on] requestedLevel2 *= ( message.type == V_LIGHT ? 0 : 1 ); requestedLevel2 = requestedLevel2 > 100 ? 100 : requestedLevel2; requestedLevel2 = requestedLevel2 < 0 ? 0 : requestedLevel2; int delta2 = ( requestedLevel2 - currentLevel2 ) < 0 ? -1 : 1; while ( currentLevel2 != requestedLevel2 ) { currentLevel2 += delta2; analogWrite( PIN_LED_2, (int)(currentLevel2 / 100. * 255) ); delay( FADE_DELAY ); } send(lightMsg2.set(currentLevel2 > 0)); send( dimmerMsg2.set(currentLevel2) ); } } }
-
RE: [SOLVED] Just wires, no radio, no rfl24
@mfalkvidd
Sorry didn't mean to be sarcastic!
I meant magic as that I have been spending two weeks now to try to set up my frist motion sensor, with trying different options with configure command, so for me it is magic for now.
But it seems like I have been over thinking things a little.But now that you mention documentation....
All the docs I have found searching for "no radio", "no nrf24", has the nrf24 in the shopping list. Their sensors maybe wired, but their arduino, nodemcu, etc. communicates over the radio with the controller, and the only one I found to be almost usable is the power metering forum post (and some other post mentioning/linking the power metering post) but thats too complicated for a newbie like me.but for me it seems that 98% of people is using radio happily with mysensors.
-
RE: [SOLVED] Just wires, no radio, no rfl24
@tbowmo
Ok guys, thanks for the response.
As I understand your response, then I do not need the stuff from github on my pi.
Just connect the arduino, load the sketch, and configure HA.
Everything works like magic?tom
-
[SOLVED] Just wires, no radio, no rfl24
I have just started off with mysensors, with the goal of extending my pi's gpio ports with some ports on the arduino uno I had lying around.
So I thought that I can plug in my arduino to the pi (running HA btw) and I can connect roughly + 10 sensors to my home automation.
But I can't seem to get things right in my mind. I don't really understand the concept of gateway, node, transport, etc.My wished setup is 1 arduino uno, 1 pi2, connected via usb, and I wish to connect my motion, humidity and dimmer fets to the arduino directly.
I don't want to use any radio in my configuration because of various reasons.
I have found the serial gateway install mode, and thought that it would be for me, but unfortunately I am stuck at the ./configure level.The --my-transport variable has the options none, nrf24, rs485, rfm95. From this I assume that nrf24, rfm95 are radios so they are not my options rs485 is "LAN cabling" which could be an option but it loses some pins on the arduino and it is surely not using the usb cable to communicate, so the only option is "none".
I have chosen none, because if I do not chose anything then the make command fails with the "nrf24 not available on this platform" error.I have also found the forum thread discussing a connection using just wires and measuring power usage, but I find that too complicated for a start. (but tried to adapt the ino file to my needs, which uploads fine to the arduino)
Right now I have a HC-SR501 connected to the digital pin 8 on the arduino and wish to set up a sensor in HA which shows 1 or 0 depending on the state of the HC-SR501.
I do not need help with the HA setup.
I think that if I run ./bin/mysgw -d in a putty window I should see something going on when I "dance" in front of the motion sensor, but there is nothing happening. So I am thinking that transport "none" is not a good option, but then what?Before you ask, I don't see the:
mysgw: !TSM:INIT:TSP FAIL
message in the putty window, so I suppose I should be good.
but I don't see the
mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE
messages as well, which bothers me a little, but it can be because of the none transport, or?
In my mind: node=HC-SR501, gateway=arduino uno, transport=serial, or
node=arduino uno, gateway=pi, transport=serial and the SR501 is a child.So now I am a bit confused as what is the gateway, the node, and transport in my case?
Is my setup possible?
thanks
tom