Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. otto001
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    otto001

    @otto001

    10
    Reputation
    44
    Posts
    686
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    otto001 Follow

    Best posts made by otto001

    • RE: 💬 Building a Raspberry Pi Gateway

      Hi,

      I am running the current version (2.2.0) on a RPi 1.
      I noticed that sometimes the cpu usage of the service is increasing dramatically (around 90% and more) - and then the service stops working.
      As I am not a C-Pro, I wrote a little python-script, which is called every minute by cron and restarts the service, if it uses more than 50% cpu.
      Maybe someone will find it useful:

      # -*- coding: utf-8 -*-
      import psutil, sys, os, datetime
      
      PY3 = sys.version_info[0] == 2
      LOOKFOR = u"mysgw"
      for proc in psutil.process_iter():
          if proc.name() == "mysgw":
              dt = str(datetime.datetime.now()).split('.')[0]
              #print(proc)
              cpu = proc.cpu_percent(interval=1)
              #print(cpu)
              #print(proc.cpu_times())
              if cpu > 50:
                      print(dt + " high CPU-usage! --> restarting service")
                      os.system("/bin/systemctl restart mysgw.service")
              else:
                      if datetime.datetime.now().strftime('%M') == "45":
                              print(dt + " everything OK, cpu: " + str(cpu))
      

      and the crontab-entry (as root):

      * * * * * /home/pi/pstest.sh >> /var/log/mysgw-logger.log
      

      Cheers,
      Pula

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno :

      At first, THANKS for your help. CPU usage does not rise anymore.
      But unfortunately no more node READs after the same situation:

      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,14-14-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,12-12-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
      Mar  4 07:00:09 raspiez mysgw: GWT:RFC:C=1,MSG=14;255;3;0;6;M
      Mar  4 07:00:09 raspiez mysgw: !TSF:MSG:SEND,0-0-14-14,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,11-11-0,s=255,c=0,t=18,pt=0,l=3,sg=0:1.5
      Mar  4 07:00:09 raspiez mysgw: GWT:RFC:C=1,MSG=12;255;3;0;6;M
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:SEND,0-0-12-12,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      Mar  4 07:00:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:00:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:00:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 07:00:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:00:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 07:00:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 07:00:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      Mar  4 07:00:37 raspiez mysgw: GWT:TSA:C=1,DISCONNECTED
      

      After this point (again after a reconnect from the controller) no more messages from any node PLUS the cpu usage stayed normal (what makes it even worse at this moment, as I would have to create a script which monitors the logfile and restarts the mysgw service in this situation). As soon as the service is restarted, everything is working fine again.

      What happens after this point in the log:

      Mar  4 07:00:37 raspiez mysgw: GWT:RFC:C=0,MSG=0;0;3;0;2;
      Mar  4 07:15:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:20:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:20:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:30:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 07:30:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:30:37 raspiez mysgw: GWT:TSA:C=0,DISCONNECTED
      Mar  4 07:30:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 07:30:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 07:30:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      Mar  4 07:30:37 raspiez mysgw: GWT:RFC:C=0,MSG=0;0;3;0;2;
      Mar  4 07:40:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:40:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:45:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 08:00:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 08:00:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 08:00:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 08:00:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 08:00:37 raspiez mysgw: GWT:TSA:C=0,DISCONNECTED
      Mar  4 08:00:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 08:00:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 08:00:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      

      and so on....

      It seems that the increasing cpu usage is only a symptom for the real problem.
      As I am using this in production I will dis-apply the patch and use the daemon as before (beacuse using the python script for cpu-usage-monitoring makes the situation somehow controllable for me).
      Maybe you could have an additional eye on this please? Could I help you with further information? Maybe I could add some additional logging somewhere in the code?

      Thanks again and cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno : Wow, you are fast! Thanks!
      Just applied the patch and recompiled. I will report in a couple of days while my monitoring-script is still running (and logging)...

      Cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno : of course, thanks for the hint!

      I had the following configure:

      ./configure --my-transport=nrf24 --my-rf24-irq-pin=15 --my-gateway=ethernet --my-port=5004
      

      (The high CPU problem also occured before I connected PIN 15 to IRQ without the corresponding config option. I hoped to solve the Problem using IRQ, but this did not help. And I have a second GW with default port 5003 in my network. This is running an ancient version of Raspi GW Software and this is working fine -but slower). I am using current fhem as controller and I have it connecting every 30 minutes to the gateways due to stability issues in the past. There are only about 6 nodes (just motion, humidity & temp and lux) connected to this gateway.

      In addition to that I changed the default channel in MyConfig.h (because I have two different MySensor networks):

      #ifndef MY_RF24_CHANNEL
      #define MY_RF24_CHANNEL (82)
      #endif
      

      I am pretty sure, that this is not important, but I also set up rsyslog to write gw logs to an own file instead of syslog....

      Maybe this helps.

      Cheers,
      Otto

      posted in Announcements
      otto001
      otto001

    Latest posts made by otto001

    • RE: 💬 Building a Raspberry Pi Gateway

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

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @MasMat : what does your mysgw.log show?

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      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

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno :
      Hi, unfortunately the latest patch did not work for me.
      Still the gw stops receiving, but without high cpu usage 😞
      Fortunately I can restart the gw now using a button and this udp-scripts 🙂

      Of cource I could give dietpi a try, but I would think, that a general solution would be better (for other users as well)

      cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno :
      THANKS! Just applied your patch.
      I will report in a few days when I can see if the problem is solved...
      Cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @gohan :
      dietpi looks interesting! did not know about this yet.
      what hardware are you using? and what version of mysgw?

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno :
      Thank you!!! Should this patch be applied together with your first patch?
      Interesting:
      After some days without problems on the newest raspbian packages the gw hung again, but WITHOUT high cpu usage (and WITHOUT your first patch applied). There were just no more reads from the sensors in the log, only the re-connects of fhem. After restarting the service, everything is fine again.
      Unfortunately I did see your post after that 😞
      But I checked the log and could not find the words "too" or "Too" in the log (running service with -d).
      Some minutes after restarting I checked how many open files there were with the command you supplied: 21

      In the meantime I have created a small udp listening service which restarts the service if a certain string is received, so I can restart the service by double-clicking one of my switches without the need of login to the gw (also for the wife)....

      @gieljnssns : I think you are experiencing exactly the same problem we are discussing 🙂

      Thanks again!
      Cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno : Thank you!
      Just a notice: I do NOT disconnect, I just connect every 30 minutes. Has been working for me since more than 2 years (ancient ms-gw version on RPi).

      Yesterday I did a dist-upgrade to stretch on the "problematic" gw (as mentioned above) - without your patch but with my monitoring-script running. It is a little bit to early I presume, but no high cpu problems so far. I will report back here in a few days. Maybe this problem is really related to old libraries or something?! If this is running stable for a few days I will apply your patch and see what happens.
      Thanks again!

      Cheers,
      Pula

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno : This is strange. I am using a RPi 1 on this gateway with raspbian Jessie. Beside the GW-service there is only a small python programm which listens on an UPD-Port and plays an mp3 if it receives suitable data (for doorbell). Since March 4, 20:15 there were several restarts due to high cpu usage (after dis-applying your patch):

      2018-03-04 23:01:03 cpu (99.7) very high! --> restarting service
      2018-03-05 07:31:03 cpu (99.7) very high! --> restarting service
      2018-03-05 11:01:03 cpu (98.7) very high! --> restarting service
      2018-03-05 13:31:04 cpu (94.7) very high! --> restarting service
      2018-03-06 11:31:03 cpu (99.7) very high! --> restarting service
      2018-03-06 12:31:03 cpu (98.7) very high! --> restarting service
      2018-03-07 06:01:03 cpu (94.8) very high! --> restarting service
      2018-03-07 22:31:03 cpu (99.8) very high! --> restarting service
      

      With this "auto-restarts" the sensors are working fine, I did not notice any problems.

      However, I just upgraded to the recent Stretch (what takes a LONG time on RPi 1 and made me struggle a little bit with the new network names). I also rebuilt the GW of course and will report here what will happen....

      @Nick-Willis : did you apply the patch of marceloaqno or not? Did you enable debugging? (see here )

      Cheers,
      Otto

      posted in Announcements
      otto001
      otto001
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno :

      At first, THANKS for your help. CPU usage does not rise anymore.
      But unfortunately no more node READs after the same situation:

      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,14-14-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,12-12-0,s=255,c=3,t=6,pt=1,l=1,sg=0:0
      Mar  4 07:00:09 raspiez mysgw: GWT:RFC:C=1,MSG=14;255;3;0;6;M
      Mar  4 07:00:09 raspiez mysgw: !TSF:MSG:SEND,0-0-14-14,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=NACK:M
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:READ,11-11-0,s=255,c=0,t=18,pt=0,l=3,sg=0:1.5
      Mar  4 07:00:09 raspiez mysgw: GWT:RFC:C=1,MSG=12;255;3;0;6;M
      Mar  4 07:00:09 raspiez mysgw: TSF:MSG:SEND,0-0-12-12,s=255,c=3,t=6,pt=0,l=1,sg=0,ft=0,st=OK:M
      Mar  4 07:00:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:00:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:00:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 07:00:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:00:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 07:00:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 07:00:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      Mar  4 07:00:37 raspiez mysgw: GWT:TSA:C=1,DISCONNECTED
      

      After this point (again after a reconnect from the controller) no more messages from any node PLUS the cpu usage stayed normal (what makes it even worse at this moment, as I would have to create a script which monitors the logfile and restarts the mysgw service in this situation). As soon as the service is restarted, everything is working fine again.

      What happens after this point in the log:

      Mar  4 07:00:37 raspiez mysgw: GWT:RFC:C=0,MSG=0;0;3;0;2;
      Mar  4 07:15:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:20:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:20:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:30:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 07:30:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 07:30:37 raspiez mysgw: GWT:TSA:C=0,DISCONNECTED
      Mar  4 07:30:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 07:30:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 07:30:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      Mar  4 07:30:37 raspiez mysgw: GWT:RFC:C=0,MSG=0;0;3;0;2;
      Mar  4 07:40:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 07:40:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 07:45:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 08:00:13 raspiez mysgw: TSM:READY:NWD REQ
      Mar  4 08:00:13 raspiez mysgw: TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
      Mar  4 08:00:13 raspiez mysgw: TSF:SRT:OK
      Mar  4 08:00:13 raspiez mysgw: TSF:SAN:OK
      Mar  4 08:00:37 raspiez mysgw: GWT:TSA:C=0,DISCONNECTED
      Mar  4 08:00:37 raspiez mysgw: Ethernet client disconnected.
      Mar  4 08:00:37 raspiez mysgw: New connection from 192.168.1.11
      Mar  4 08:00:37 raspiez mysgw: GWT:TSA:C=0,CONNECTED
      

      and so on....

      It seems that the increasing cpu usage is only a symptom for the real problem.
      As I am using this in production I will dis-apply the patch and use the daemon as before (beacuse using the python script for cpu-usage-monitoring makes the situation somehow controllable for me).
      Maybe you could have an additional eye on this please? Could I help you with further information? Maybe I could add some additional logging somewhere in the code?

      Thanks again and cheers,
      Otto

      posted in Announcements
      otto001
      otto001