💬 Building a Raspberry Pi Gateway
-
Was pointed here from another post, having serious issues with high CPU utilization op the gateway, is there any workaround and the moment?
top:
asks: 157 total, 2 running, 155 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.5 us, 23.0 sy, 0.0 ni, 74.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 949580 total, 448732 free, 146912 used, 353936 buff/cache KiB Swap: 102396 total, 102396 free, 0 used. 737656 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 337 root 20 0 20492 1060 932 R 100.0 0.1 28:54.55 mysgw 3947 pi 20 0 8248 3324 2736 R 1.6 0.4 0:00.82 top 447 homeass+ 20 0 340112 63684 9916 S 1.0 6.7 3:28.71 hass 7 root 20 0 0 0 0 S 0.3 0.0 0:04.18 rcu_sched 767 root 20 0 126572 8628 6544 S 0.3 0.9 0:00.95 piplight-daemonPRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" Linux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/LinuxRebooting the pi sometimes helps, sometimes freezes the pi
seeing nothing strange in the mysensors log what so ever
running MySensors Version 2.2.0
and Home Assistant Version 0.64.0
Anyone can point me in the direction where to troubleshoot this further ?
its not a high traffic gateway (around 10 sensors connected of which 5 updating every 15 minutes) -
@gohan said in 💬 Building a Raspberry Pi Gateway:
@masmat have you tried with ethernet gateway? If I have time I'll try the mqtt this weekend
@mvader I never noticed that.... is it the mqtt GW?
I'm not using mqtt.
for debug purposes i use MYSController
every 10 seconds on the dot. it shows me the version of the gateway.201 3/15/2018 20:47:15 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0 202 3/15/2018 20:47:25 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0 203 3/15/2018 20:47:35 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0 204 3/15/2018 20:47:45 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0 205 3/15/2018 20:47:55 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0 206 3/15/2018 20:48:05 RX 0 - Gateway INTERNAL C_INTERNAL NO I_VERSION 2.2.0@marceloaqno any ideas about that?
@mvader The gateway will respond with an I_VERSION every time a controller connected to port 5003 sends an I_VERSION request.
-
@marceloaqno I got my gw rfm69 gateway suddenly stopped communicating with nodes. I tried everything to reinstall it but without luck. I was able to have it running on my test rpi with a complete OS reinstall. Is there anything else I need need to clean up from my install to reset every settings? (besides the mysensors folder and mysensors.dat file I already deleted)
@gohan Sorry to hear that, mysgw doesn't change any system files, a simple reboot and rebuild of the gateway should be enough to resume communication in a case of more serious error.
-
@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?