💬 Building a Raspberry Pi Gateway
-
I use pimatic which does not have a native compatibility to ethernet or mqtt. Thats why my question came up on how to configure it to do this...
Building a Raspberry Pi Gateway:
If you are running a controller on the Raspberry Pi that doesn't support communication with the gateway through ethernet, you can use a virtual serial port:
./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway -
I use pimatic which does not have a native compatibility to ethernet or mqtt. Thats why my question came up on how to configure it to do this...
Building a Raspberry Pi Gateway:
If you are running a controller on the Raspberry Pi that doesn't support communication with the gateway through ethernet, you can use a virtual serial port:
./configure --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorsGateway@Anduril you might be able to use nodered or socat to convert the tcp connection to a serial port.
https://linux.die.net/man/1/socat
https://nodered.org/ -
I using RPi2 and NRF24 for this. I followed the instructions, to clone the repo, and then added config
./configure --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-transport=nrf24make
when i run with sudo ./bin/mysgw -d, it is failing to connect to MQTT. Can you please help?
mysgw: Starting gateway...
mysgw: Protocol version - 2.1.0
mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.0
mysgw: TSF:LRT:OK
mysgw: TSM:INIT
mysgw: TSF:WUR:MS=0
mysgw: TSM:INIT:TSP OK
mysgw: TSM:INIT:GW MODE
mysgw: TSM:READY:ID=0,PAR=0,DIS=0
mysgw: MCO:REG:NOT NEEDED
mysgw: MCO:BGN:STP
mysgw: MCO:BGN:INIT OK,TSP=1
mysgw: Attempting MQTT connection...
mysgw: connect: Connection refused
mysgw: failed to connect
mysgw: Attempting MQTT connection...
mysgw: connect: Connection refused
mysgw: failed to connect
mysgw: Attempting MQTT connection...
mysgw: connect: Connection refused
mysgw: failed to connect
mysgw: Attempting MQTT connection...
mysgw: connect: Connection refused
mysgw: failed to connect@lakshmc Make sure you don't have the daemon running already
If not, I'm getting the same problem on the 2.1.1 that was just released. 2.1.0 was working "fine"(besides my suspecting a bug that doesn't let any inclusion happen, hence I tried the new version). Time to go back to the serial gateway right into the vera.
-
@lakshmc Make sure you don't have the daemon running already
If not, I'm getting the same problem on the 2.1.1 that was just released. 2.1.0 was working "fine"(besides my suspecting a bug that doesn't let any inclusion happen, hence I tried the new version). Time to go back to the serial gateway right into the vera.
@pete1450 @lakshmc
Make sure you are not using an old version of mosquitto (or any other broker you're using):$ mosquitto -h mosquitto version 1.4.10 (build date 2016-09-20 11:02:07-0600)It's working fine with the 2.1.1 release:
[alarm@pi3 mysgw]$ sudo ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.1 mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: MCO:BGN:STP mysgw: MCO:BGN:INIT OK,TSP=1 mysgw: Attempting MQTT connection... mysgw: connected to 127.0.0.1 mysgw: MQTT connected mysgw: Sending message on topic: mysensors-out/0/255/0/0/18 mysgw: TSF:MSG:READ,2-2-0,s=1,c=1,t=17,pt=7,l=5,sg=0:108.12 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=1,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:108.12 mysgw: Sending message on topic: mysensors-out/2/1/1/0/17 mysgw: TSF:MSG:READ,2-2-0,s=2,c=1,t=17,pt=7,l=5,sg=0:48.31 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=2,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:48.31 mysgw: Sending message on topic: mysensors-out/2/2/1/0/17 mysgw: TSF:MSG:READ,2-2-0,s=3,c=1,t=17,pt=7,l=5,sg=0:362.86 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=3,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:362.86 mysgw: Sending message on topic: mysensors-out/2/3/1/0/17 -
@pete1450 @lakshmc
Make sure you are not using an old version of mosquitto (or any other broker you're using):$ mosquitto -h mosquitto version 1.4.10 (build date 2016-09-20 11:02:07-0600)It's working fine with the 2.1.1 release:
[alarm@pi3 mysgw]$ sudo ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.1.1 mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: MCO:BGN:STP mysgw: MCO:BGN:INIT OK,TSP=1 mysgw: Attempting MQTT connection... mysgw: connected to 127.0.0.1 mysgw: MQTT connected mysgw: Sending message on topic: mysensors-out/0/255/0/0/18 mysgw: TSF:MSG:READ,2-2-0,s=1,c=1,t=17,pt=7,l=5,sg=0:108.12 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=1,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:108.12 mysgw: Sending message on topic: mysensors-out/2/1/1/0/17 mysgw: TSF:MSG:READ,2-2-0,s=2,c=1,t=17,pt=7,l=5,sg=0:48.31 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=2,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:48.31 mysgw: Sending message on topic: mysensors-out/2/2/1/0/17 mysgw: TSF:MSG:READ,2-2-0,s=3,c=1,t=17,pt=7,l=5,sg=0:362.86 mysgw: TSF:MSG:ACK REQ mysgw: TSF:MSG:SEND,0-0-2-2,s=3,c=1,t=17,pt=7,l=5,sg=0,ft=0,st=OK:362.86 mysgw: Sending message on topic: mysensors-out/2/3/1/0/17@marceloaqno I should have specified, I'm getting the connection errors with the ethernet gateway.
-
@marceloaqno I should have specified, I'm getting the connection errors with the ethernet gateway.
@pete1450 Could you send the debug log with the connection errors?
-
@marceloaqno After installing broker and gateway fresh, seems to be working. Thanks for your help.
-
@pete1450 Could you send the debug log with the connection errors?
@marceloaqno
Ran as root and made sure I didn't have mysgw already running:rm -r MySensors/ git clone https://github.com/mysensors/MySensors.git --branch master cd MySensors/ ./configure --my-controller-ip-address=192.168.1.136 --my-port=5003 --my-rf24-irq-pin=15 makeroot@raspberrypi:~/downloads/MySensors# ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG--Q,VER=2.1.1 mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: connect: Connection refused mysgw: failed to connect mysgw: Eth: connect -
every few days mysgw randomly dies :(
Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:READ,5-5-0,s=255,c=3,t=21,pt=1,l=1,sg=0:0 Jan 19 06:40:01 pi mysgw[17960]: Sending message on topic: mysensors/out/1/5/255/3/0/21 Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:READ,0-5-255,s=255,c=3,t=20,pt=0,l=0,sg=0: Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:BC Jan 19 06:40:01 pi systemd[1]: mysgw.service: main process exited, code=killed, status=11/SEGV Jan 19 06:40:01 pi systemd[1]: Unit mysgw.service entered failed state. -
@marceloaqno
Ran as root and made sure I didn't have mysgw already running:rm -r MySensors/ git clone https://github.com/mysensors/MySensors.git --branch master cd MySensors/ ./configure --my-controller-ip-address=192.168.1.136 --my-port=5003 --my-rf24-irq-pin=15 makeroot@raspberrypi:~/downloads/MySensors# ./bin/mysgw -d mysgw: Starting gateway... mysgw: Protocol version - 2.1.1 mysgw: MCO:BGN:INIT GW,CP=RNNG--Q,VER=2.1.1 mysgw: TSF:LRT:OK mysgw: TSM:INIT mysgw: TSF:WUR:MS=0 mysgw: TSM:INIT:TSP OK mysgw: TSM:INIT:GW MODE mysgw: TSM:READY:ID=0,PAR=0,DIS=0 mysgw: MCO:REG:NOT NEEDED mysgw: connect: Connection refused mysgw: failed to connect mysgw: Eth: connect@pete1450 If you use the --my-controller-ip-address= option, the gateway will act as a client and attempt to conect to the supplied ip and port. If you want the gateway to open port 5003, omit this option.
-
@marceloaqno what is the correct configure option to make this gatway connect to an ethernet gateway and let a serial-only-controller connect to it. I suppose to use the pty option, but didn't got this working. As said above, socat and nodered are no option.
-
@pete1450 If you use the --my-controller-ip-address= option, the gateway will act as a client and attempt to conect to the supplied ip and port. If you want the gateway to open port 5003, omit this option.
@marceloaqno Well that fixed the connection issue. Now I'm just back to square one where pressing start doesn't do anything. Why do I not need to specify my controllers ip? That is the ip for my veralite. Whats the use case for that option.
-
every few days mysgw randomly dies :(
Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:READ,5-5-0,s=255,c=3,t=21,pt=1,l=1,sg=0:0 Jan 19 06:40:01 pi mysgw[17960]: Sending message on topic: mysensors/out/1/5/255/3/0/21 Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:READ,0-5-255,s=255,c=3,t=20,pt=0,l=0,sg=0: Jan 19 06:40:01 pi mysgw[17960]: TSF:MSG:BC Jan 19 06:40:01 pi systemd[1]: mysgw.service: main process exited, code=killed, status=11/SEGV Jan 19 06:40:01 pi systemd[1]: Unit mysgw.service entered failed state.@b0rmann Could you provide the following information?
- Your RPi model and which linux distribution you are using.
- gcc version
- The version and options you used to build the gateway (./configure --option)
- The number of nodes on your network that sends messages to the gateway.
- The broker you are using for MQTT and its version
-
@marceloaqno what is the correct configure option to make this gatway connect to an ethernet gateway and let a serial-only-controller connect to it. I suppose to use the pty option, but didn't got this working. As said above, socat and nodered are no option.
@Anduril Sorry, the gateway does not support what you're trying to do.
-
@marceloaqno Well that fixed the connection issue. Now I'm just back to square one where pressing start doesn't do anything. Why do I not need to specify my controllers ip? That is the ip for my veralite. Whats the use case for that option.
@pete1450
I can't help you with this, I've never used the Vera controller. You need to search in the Vera settings where you set this option. If Vera supports being a server and opening a port for the gateway to connect, then you use the --my-controller-ip-address option. -
Does anyone know if the Raspberry implementation have a UserPassword option for ./configure MQTT
-
Does anyone know if the Raspberry implementation have a UserPassword option for ./configure MQTT
@Michael-Curtis Nevermind, I fixed it.... you ned to add :
--my-mqtt-password=<PASS> MQTT password --my-mqtt-client-id=<ID> MQTT client id.Under "cat"
And for the actual options under "opt do"
--my-mqtt-user=*) CPPFLAGS="-DMY_MQTT_USER=\\\"${optarg}\\\" $CPPFLAGS" ;; --my-mqtt-password=*) CPPFLAGS="-DMY_MQTT_PASSWORD=\\\"${optarg}\\\" $CPPFLAGS" ;;then just add those option flags to the ./configure and run make
-
what means "5VReg -> 3.3V" in raspberry? can connect directly to 3.3V or if requied connecto to 5V with regulator to obtain 3.3v?