💬 Building a Raspberry Pi Gateway
-
@marceloaqno What does your mosquitto.log show?
I did a fresh install of DietPi (stretch), Mosquitto and MySensors --branch master. I left out everything and pretty much did the configure command as you did. I get the same result, but mosuiqtto log shows:1521584708: New connection from 127.0.0.1 on port 1883. 1521584708: New client connected from 127.0.0.1 as mygateway1 (c1, k15, u'masi'). 1521584733: Socket error on client mygateway1, disconnecting. 1521584778: New connection from 127.0.0.1 on port 1883.So is this normal?
I have one sensors built that's not connecting (its log shows it just trying and trying..). I would like to user simple password and the LEDs, I will build one extra sensors just to help testing.@masmat This is my mosquitto.log
1521680648: mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) starting 1521680648: Config loaded from /etc/mosquitto/mosquitto.conf. 1521680648: Opening ipv4 listen socket on port 1883. 1521680648: Opening ipv6 listen socket on port 1883. 1521762617: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1521763549: New connection from 127.0.0.1 on port 1883. 1521763549: New client connected from 127.0.0.1 as mygateway1 (c1, k15, u'rpi').A socket error message:
1521764339: Socket error on client mygateway1, disconnecting.shows only if I stop/exit mysgw.
-
@masmat This is my mosquitto.log
1521680648: mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) starting 1521680648: Config loaded from /etc/mosquitto/mosquitto.conf. 1521680648: Opening ipv4 listen socket on port 1883. 1521680648: Opening ipv6 listen socket on port 1883. 1521762617: Saving in-memory database to /var/lib/mosquitto/mosquitto.db. 1521763549: New connection from 127.0.0.1 on port 1883. 1521763549: New client connected from 127.0.0.1 as mygateway1 (c1, k15, u'rpi').A socket error message:
1521764339: Socket error on client mygateway1, disconnecting.shows only if I stop/exit mysgw.
@marceloaqno OK, I will look into that once I have an extra sensor feeding my gw (the one I built is a little complex and could be buggy).
Another question: I configured mysgw without "simple password" to sort out problems.
Now to reconfigure mysgw I have to run the "./configure --blah --blahblah..." command and "make", but do I also have to do "make install"? And do I have to re-start & enable the service? Should I stop it first also? Anybody got a step-by-step for this? -
You could also make a simple node running mock mysensors sketch that can simulate a working sensor, if you need some data running through the gateway. When I recompile the gateway I usually stop the service, uninstall the mysgw service and do the make and make install. I don't really know if it is actually required but I like to keep things clean
-
You could also make a simple node running mock mysensors sketch that can simulate a working sensor, if you need some data running through the gateway. When I recompile the gateway I usually stop the service, uninstall the mysgw service and do the make and make install. I don't really know if it is actually required but I like to keep things clean
The two patches to fix ethernet stability have been merger into the development branch, and also some changes to the gateway logging. I updated the build instructions to reflect the changes.
-
You could also make a simple node running mock mysensors sketch that can simulate a working sensor, if you need some data running through the gateway. When I recompile the gateway I usually stop the service, uninstall the mysgw service and do the make and make install. I don't really know if it is actually required but I like to keep things clean
@gohan I made a sensor that sends DHT11 temp+hum. This is the output (some of it..) from mosquitto_sub to topic mysensors-out. So I appear to have a something working. OpenHab2 is not finding any items still...
pi@DietPi:~ $ mosquitto_sub -u XXXXXX -P YYYYYY -v -t 'mysensors-out/#' mysensors-out/99/1/1/0/0 14.0 mysensors-out/99/0/1/0/1 46.0 mysensors-out/99/1/1/0/0 15.0 mysensors-out/99/0/1/0/1 45.0 mysensors-out/99/1/1/0/0 15.0 mysensors-out/99/0/1/0/1 45.0 mysensors-out/99/0/1/0/1 44.0 mysensors-out/99/0/1/0/1 45.0 mysensors-out/99/0/1/0/1 44.0 mysensors-out/99/1/1/0/0 15.0 mysensors-out/99/0/1/0/1 45.0 mysensors-out/99/1/1/0/0 15.0 mysensors-out/99/0/1/0/1 44.0 mysensors-out/99/0/1/0/1 45.0 mysensors-out/99/0/1/0/1 44.0 mysensors-out/99/1/1/0/0 15.0 mysensors-out/99/0/1/0/1 44.0 mysensors-out/99/1/1/0/0 15.0Once I changed the config to include simple password, it's not showing anything anymore in mosquitto_sub
It would appear that something is missing from my setup or there's a bug in the configure-line. Can someone tell if there's a bug here somewhere:sudo ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-signing=password --my-signing-password=ZZZZZZ --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-user=XXXXXX --my-mqtt-password=YYYYYY --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18 -
@gohan I did, I will post it (but it appears to send normally). But the only things I changed was:
- Rpi configure added: --my-signing=password --my-signing-password=ZZZZZZ
- In the nodes code: #define MY_SIGNING_SIMPLE_PASSWD = "ZZZZZZ"
-
@masmat check that the version you are using (release or beta) match your use of the simple flags, as they differ at the moment.
@anticimex Both Arduino IDE is 2.2 and Rpi is compiled with 2.2 stable.
I'm seeing !TSF:MSG:SIGN FAIL in the serial monitor so something is not compatible... I will try making password >8 characters next (currently 6).I will also add those parameters to see if that makes a difference before reuploading arduino code
-
@anticimex Both Arduino IDE is 2.2 and Rpi is compiled with 2.2 stable.
I'm seeing !TSF:MSG:SIGN FAIL in the serial monitor so something is not compatible... I will try making password >8 characters next (currently 6).I will also add those parameters to see if that makes a difference before reuploading arduino code
-
@anticimex This is what's happening in the gw:
TSF:MSG:READ,36-192-15,s=69,c=0,t=81,pt=1,l=21,sg=0:221
!TSF:MSG:LEN,16!=28
TSF:MSG:READ,75-68-77,s=48,c=1,t=110,pt=1,l=25,sg=1:249
!TSF:MSG:LEN,16!=32The parser didn't really help much: more baffled than before....and I came away from the troubleshooting guide feeling really stupid :)
-
@anticimex This is what's happening in the gw:
TSF:MSG:READ,36-192-15,s=69,c=0,t=81,pt=1,l=21,sg=0:221
!TSF:MSG:LEN,16!=28
TSF:MSG:READ,75-68-77,s=48,c=1,t=110,pt=1,l=25,sg=1:249
!TSF:MSG:LEN,16!=32The parser didn't really help much: more baffled than before....and I came away from the troubleshooting guide feeling really stupid :)
-
@anticimex I think he didn't use all the parameters for the configure, right?
@gohan the simple flags should not need more args, but I don't use a rPi as gw so I honestly am not sure exactly the args to use. The beta documentation has clear instructions for rPi signing, but those are specifically for beta branch and probably don't map exactly to the release yet.
-
@anticimex I think he didn't use all the parameters for the configure, right?
@gohan The whole configure-line:
sudo ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-signing=software --my-signing-request-signatures --my-signing-weak_security --my-signing-debug --my-signing=password --my-signing-password=ZZZZZZ --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-user=XXXX --my-mqtt-password=YYYYY --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18If anyone can tell what's missing or if there's a typo?
-
@gohan The whole configure-line:
sudo ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-signing=software --my-signing-request-signatures --my-signing-weak_security --my-signing-debug --my-signing=password --my-signing-password=ZZZZZZ --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-user=XXXX --my-mqtt-password=YYYYY --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18If anyone can tell what's missing or if there's a typo?
-
@gohan The whole configure-line:
sudo ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-signing=software --my-signing-request-signatures --my-signing-weak_security --my-signing-debug --my-signing=password --my-signing-password=ZZZZZZ --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-mqtt-user=XXXX --my-mqtt-password=YYYYY --my-mqtt-publish-topic-prefix=mysensors-out --my-mqtt-subscribe-topic-prefix=mysensors-in --my-mqtt-client-id=mygateway1 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18If anyone can tell what's missing or if there's a typo?
@masmat you have redundant flags. The password option require no other signing flags. Only if you select software as signing backend you need other options (and none of the simple flags)
And remember that if you use software signing and not password signing, you need to personalize the GW and/or node.
-
@masmat you have redundant flags. The password option require no other signing flags. Only if you select software as signing backend you need other options (and none of the simple flags)
And remember that if you use software signing and not password signing, you need to personalize the GW and/or node.
@anticimex I thought so too, but I'm grasping at straws to get the signing to work.
To clarify, is the following enough for simple signing: --my-signing-debug --my-signing=password --my-signing-password=ZZZZZZAnd the arduino code #define MY_SIGNING_SIMPLE_PASSWD = "ZZZZZZ"
Any difference where it's placed in the code? Anything else to check for? -
@anticimex I thought so too, but I'm grasping at straws to get the signing to work.
To clarify, is the following enough for simple signing: --my-signing-debug --my-signing=password --my-signing-password=ZZZZZZAnd the arduino code #define MY_SIGNING_SIMPLE_PASSWD = "ZZZZZZ"
Any difference where it's placed in the code? Anything else to check for?