💬 Building a Raspberry Pi Gateway


  • Mod

    @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?



  • @gohan How would I interface the rest of my HA without MQTT...that's at the center of my plan really 😞


  • Mod

    I think OH should support it, but I was just asking to make a test.



  • @gohan I configured:
    ./configure --my-transport=nrf24 --my-gateway=ethernet --my-controller-ip-address=127.0.0.1 --my-rf24-irq-pin=15 --my-leds-err-pin=12 --my-leds-rx-pin=16 --my-leds-tx-pin=18 --my-signing=password --my-signing-password=ZZZZZZ

    ./bin/mysgw -d:

    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0
    mysgw: MCO:BGN:INIT GW,CP=RNNGLSQX,VER=2.2.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: connect: Connection refused
    mysgw: failed to connect
    mysgw: GWT:TIN:ETH OK
    mysgw: connect: Connection refused
    mysgw: failed to connect
    mysgw: GWT:TPS:ETH OK
    mysgw: connect: Connection refused
    mysgw: failed to connect
    mysgw: GWT:TPS:ETH OK
    

    The controller doesn't exist on the DietPi card yet but I'm not sure if that's causing the problem.


  • Mod

    @masmat said in 💬 Building a Raspberry Pi Gateway:

    --my-controller-ip-address=127.0.0.1

    remove that parameter as it is not needed for ethernet


  • Code Contributor

    @masmat I did a test with the following configuration:

    • Raspberry Pi 1 with Raspbian (2017-11-29-raspbian-stretch-lite)

      pi@raspberrypi:~/MySensors $ lsb_release -a
      No LSB modules are available.
      Distributor ID: Raspbian
      Description:    Raspbian GNU/Linux 9.1 (stretch)
      Release:        9.1
      Codename:       stretch
      
    • MySensors master branch - Protocol version - 2.2.0

      ./configure --my-transport=nrf24 --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=m ygateway1 --my-mqtt-user=rpi --my-mqtt-password=password
      
    • Mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) [installed from apt-get]

      pi@raspberrypi:~/MySensors $ cat /etc/mosquitto/mosquitto.conf
      # Place your local configuration in /etc/mosquitto/conf.d/
      #
      # A full description of the configuration file is at
      # /usr/share/doc/mosquitto/examples/mosquitto.conf.example
      
      pid_file /var/run/mosquitto.pid
      
      persistence true
      persistence_location /var/lib/mosquitto/
      
      log_dest file /var/log/mosquitto/mosquitto.log
      
      allow_anonymous false
      password_file /etc/mosquitto/passwordfile
      
      include_dir /etc/mosquitto/conf.d
      

      Added the mosquitto user (user=rpi, password=password) with:

      sudo mosquitto_passwd -c /etc/mosquitto/passwordfile rpi
      

    It didn't show any error to connect to the MQTT broker:

    pi@raspberrypi:~/MySensors $ sudo ./bin/mysgw -d
    mysgw: Starting gateway...
    mysgw: Protocol version - 2.2.0
    mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.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: GWT:RMQ:MQTT RECONNECT
    mysgw: connected to 127.0.0.1
    mysgw: GWT:RMQ:MQTT CONNECTED
    mysgw: GWT:TPS:TOPIC=mysensors-out/0/255/0/0/18,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=24,pt=1,l=1,sg=0:1
    mysgw: TSF:MSG:PINGED,ID=5,HP=1
    mysgw: TSF:MSG:SEND,0-0-5-5,s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=OK:1
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=32,pt=5,l=4,sg=0:500
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/32,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=33,pt=5,l=4,sg=0:4951
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/33,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=1,c=1,t=37,pt=4,l=4,sg=0:36053
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/1/1/0/37,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=32,pt=5,l=4,sg=0:500
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/32,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=33,pt=5,l=4,sg=0:5000
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/33,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=1,c=1,t=37,pt=4,l=4,sg=0:36055
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/1/1/0/37,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=32,pt=5,l=4,sg=0:500
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/32,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=255,c=3,t=33,pt=5,l=4,sg=0:5000
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/255/3/0/33,MSG SENT
    mysgw: TSF:MSG:READ,5-5-0,s=1,c=1,t=37,pt=4,l=4,sg=0:36055
    mysgw: GWT:TPS:TOPIC=mysensors-out/5/1/1/0/37,MSG SENT
    


  • @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?


  • Mod

    @mvader oh, that's normal. I though you meant something else



  • Yesterday I cloned the latest version on a recent raspbian (9.3) and I applied the first patch of @marceloaqno .
    We will see. So long there were no problems. I will send an update in a few days...
    As a last help I could switch to mqtt and do a restart after a defined amount of time (if no events are received)....

    Cheers,
    Otto


  • Mod

    @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)



  • How can I monitor the traffic data between the raspberry and RF module (NRF24L01) on a Ethernet gateway ??

    My gateway is built for Ethernet. I start the gateway with "service mysgw start"
    Now, I would like to get the same data output than output debug (./bin/mysgw -d) but without stop mysgw service.
    I need to use MYSController as Ethernet client at the same time.

    Thanks


  • Mod



  • @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 : what does your mysgw.log show?



  • @mfalkvidd Thanks fer info, now I can see the serial protocol as well in the syslog. Next step should be to have a logfile dedicated to mysgw.



  • @otto001
    Syslog:

    Mar 21 20:06:05 DietPi systemd[1]: Started MySensors Gateway daemon.
    Mar 21 20:06:05 DietPi mysgw: Starting gateway...
    Mar 21 20:06:05 DietPi mysgw: Protocol version - 2.2.0
    Mar 21 20:06:05 DietPi mysgw: MCO:BGN:INIT GW,CP=RNNGL---,VER=2.2.0
    Mar 21 20:06:05 DietPi mysgw: TSF:LRT:OK
    Mar 21 20:06:05 DietPi mysgw: TSM:INIT
    Mar 21 20:06:05 DietPi mysgw: TSF:WUR:MS=0
    Mar 21 20:06:05 DietPi mysgw: TSM:INIT:TSP OK
    Mar 21 20:06:05 DietPi mysgw: TSM:INIT:GW MODE
    Mar 21 20:06:05 DietPi mysgw: TSM:READY:ID=0,PAR=0,DIS=0
    Mar 21 20:06:05 DietPi mysgw: MCO:REG:NOT NEEDED
    Mar 21 20:06:05 DietPi mysgw: MCO:BGN:STP
    Mar 21 20:06:05 DietPi mysgw: MCO:BGN:INIT OK,TSP=1
    Mar 21 20:06:05 DietPi mysgw: GWT:RMQ:MQTT RECONNECT
    Mar 21 20:06:05 DietPi mysgw: connected to 127.0.0.1
    Mar 21 20:06:05 DietPi mysgw: GWT:RMQ:MQTT CONNECTED
    Mar 21 20:06:05 DietPi mysgw: GWT:TPS:TOPIC=mysensors-out/0/255/0/0/18,MSG SENT
    

    Where is mysgw.log?



  • @MasMat : I just forgot, that I reconfigured rsyslogd to log mysgw to a different file. syslog is correct.

    I do not use mqtt for mysensors yet, but the syslog seems good?



  • 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-daemon                                                                                                                                      
    
    PRETTY_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/Linux
    

    Rebooting 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)


  • Mod

    @richard-van-der-plas the best workaround so far is in the post I linked to.


  • Code Contributor

    @mvader The gateway will respond with an I_VERSION every time a controller connected to port 5003 sends an I_VERSION request.


Log in to reply
 

Suggested Topics

493
Online

7.3k
Users

8.1k
Topics

87.6k
Posts

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.