ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    DIY Environment Monitoring

    Scheduled Pinned Locked Moved IT Discussion
    44 Posts 5 Posters 7.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • travisdh1T
      travisdh1
      last edited by

      Got a script to run that will log the daily average temperature for me. I think it's longer than it needs to be, but it works and I actually didn't have much trouble getting it to work once I dropped it into zsh. (zsh natively supports double float that bash does not.)

      #!/bin/zsh
      # Calculate previous days average temperature
      # Get yesterday's date
      yesterday=$(date -d "-1 days" +%D)
      # Dump only yesterday's data into a file
      eval 'cat /var/log/temp/temp.log | grep ${yesterday} > /home/tech/bin/yesterdaylog'
      # Get a count of the number of records in yesterday's records
      # In case of a power outage it will be different
      num_records=$(eval "wc -l /home/tech/bin/yesterdaylog|cut -d' ' -f1")
      # Get the values in Farenheight from yesterday's file
      degF=( $(cut -d ',' -f3 /home/tech/bin/yesterdaylog) )
      # Get a sum of the degF array to use in average
      tot=$((${(j[+])degF[*]}))
      # Devide tot by num_records to produce an average
      daily_average=$((tot/num_records))
      daily_average2=$(eval "echo '$daily_average' | cut -c1-5")
      # Drop the output into another log file
      date +%D", "$daily_average2 >> /var/log/temp/dailytemp.log
      # Troubleshooting section.  Print variables for confirmation.
      #echo "${yesterday}"
      #echo $num_records
      #echo $degF[1]
      #echo $tot
      #echo $daily_average2
      

      And the root crontab now contains

      */10 * * * * /home/tech/bin/tmphmdtime.out >> /var/log/temp/temp.log
      2 2 * * * /home/tech/bin/tmpavgcalc.sh
      
      1 Reply Last reply Reply Quote 1
      • travisdh1T
        travisdh1
        last edited by

        Just to cover all my bases, I also created a logrotate configuration file for my two new log files.

        /var/log/temp/temp.log
        {
        monthly
        rotate 24
        errors tech
        prerotate
        compress
        }
        
        /var/log/temp/dailytemp.log
        {
        monthly
        rotate 56
        errors tech
        prerotate
        compress
        }
        
        1 Reply Last reply Reply Quote 1
        • travisdh1T
          travisdh1
          last edited by

          I suppose this could all be rolled up into a nice debian package, but for now I'm just going to image the sd card and call it a day.

          Added /home/user/bin to the user's path in .bashrc. To get the current time/tempC/tempF/humidity I just run tmphmdtime.out (copied a.out to that in the user bin directory).

          1 Reply Last reply Reply Quote 0
          • travisdh1T
            travisdh1
            last edited by

            Temp monitoring is working great. My daily log

            tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
            07/11/16, 77.70
            07/12/16, 72.56
            07/13/16, 73.67
            07/14/16, 73.14
            07/15/16, 73.13
            07/16/16, 72.83
            07/17/16, 71.27
            07/18/16, 71.45
            

            When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

            1 Reply Last reply Reply Quote 0
            • thwrT
              thwr
              last edited by thwr

              @travisdh1 said in DIY Environment Monitoring:

              Temp monitoring is working great. My daily log

              tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
              07/11/16, 77.70
              07/12/16, 72.56
              07/13/16, 73.67
              07/14/16, 73.14
              07/15/16, 73.13
              07/16/16, 72.83
              07/17/16, 71.27
              07/18/16, 71.45
              

              When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

              Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

              travisdh1T 1 Reply Last reply Reply Quote 0
              • travisdh1T
                travisdh1 @thwr
                last edited by

                @thwr said in DIY Environment Monitoring:

                @travisdh1 said in DIY Environment Monitoring:

                Temp monitoring is working great. My daily log

                tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
                07/11/16, 77.70
                07/12/16, 72.56
                07/13/16, 73.67
                07/14/16, 73.14
                07/15/16, 73.13
                07/16/16, 72.83
                07/17/16, 71.27
                07/18/16, 71.45
                

                When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

                Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

                Oh, the door monitor script is working great via a very small python script. Just need to get the little sucker mounted properly.

                tech@tempdoor-rpi ~/bin $ cat door.py
                import datetime
                import time
                import RPi.GPIO as io
                io.setmode(io.BCM)
                door_pin = 6
                io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) #Activate door sensor using the pull up resistor
                while True:
                    if io.input(door_pin):
                            print ('DOOR ALARM!'), datetime.datetime.now().strftime("%H:%M %Y-%m-%d")
                    time.sleep(0.5)
                
                thwrT 1 Reply Last reply Reply Quote 2
                • thwrT
                  thwr @travisdh1
                  last edited by

                  @travisdh1 said in DIY Environment Monitoring:

                  @thwr said in DIY Environment Monitoring:

                  @travisdh1 said in DIY Environment Monitoring:

                  Temp monitoring is working great. My daily log

                  tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
                  07/11/16, 77.70
                  07/12/16, 72.56
                  07/13/16, 73.67
                  07/14/16, 73.14
                  07/15/16, 73.13
                  07/16/16, 72.83
                  07/17/16, 71.27
                  07/18/16, 71.45
                  

                  When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

                  Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

                  Oh, the door monitor script is working great via a very small python script. Just need to get the little sucker mounted properly.

                  tech@tempdoor-rpi ~/bin $ cat door.py
                  import datetime
                  import time
                  import RPi.GPIO as io
                  io.setmode(io.BCM)
                  door_pin = 6
                  io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) #Activate door sensor using the pull up resistor
                  while True:
                      if io.input(door_pin):
                              print ('DOOR ALARM!'), datetime.datetime.now().strftime("%H:%M %Y-%m-%d")
                      time.sleep(0.5)
                  

                  So your problem is getting an image? USB or IP cam?

                  travisdh1T 1 Reply Last reply Reply Quote 0
                  • travisdh1T
                    travisdh1 @thwr
                    last edited by

                    @thwr said in DIY Environment Monitoring:

                    @travisdh1 said in DIY Environment Monitoring:

                    @thwr said in DIY Environment Monitoring:

                    @travisdh1 said in DIY Environment Monitoring:

                    Temp monitoring is working great. My daily log

                    tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
                    07/11/16, 77.70
                    07/12/16, 72.56
                    07/13/16, 73.67
                    07/14/16, 73.14
                    07/15/16, 73.13
                    07/16/16, 72.83
                    07/17/16, 71.27
                    07/18/16, 71.45
                    

                    When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

                    Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

                    Oh, the door monitor script is working great via a very small python script. Just need to get the little sucker mounted properly.

                    tech@tempdoor-rpi ~/bin $ cat door.py
                    import datetime
                    import time
                    import RPi.GPIO as io
                    io.setmode(io.BCM)
                    door_pin = 6
                    io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) #Activate door sensor using the pull up resistor
                    while True:
                        if io.input(door_pin):
                                print ('DOOR ALARM!'), datetime.datetime.now().strftime("%H:%M %Y-%m-%d")
                        time.sleep(0.5)
                    

                    So your problem is getting an image? USB or IP cam?

                    IP cam, cheap TrendNet TV-IP672PI. Haven't looked at the camera side yet to see how difficult that will be.

                    travisdh1T 1 Reply Last reply Reply Quote 0
                    • thwrT
                      thwr
                      last edited by thwr

                      Ah ok. There are basically 3 ways. Some cams do have kind of an API, like a REST interface. Others can upload pictures via FTP when they detect something with motion detection, so you could grab that image from there.

                      But next to all cams can provide a video stream. You could grab that using VLC or some other streaming client. Grab a photo or maybe even an video 🙂

                      1 Reply Last reply Reply Quote 1
                      • travisdh1T
                        travisdh1 @travisdh1
                        last edited by

                        @travisdh1 said in DIY Environment Monitoring:

                        @thwr said in DIY Environment Monitoring:

                        @travisdh1 said in DIY Environment Monitoring:

                        @thwr said in DIY Environment Monitoring:

                        @travisdh1 said in DIY Environment Monitoring:

                        Temp monitoring is working great. My daily log

                        tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
                        07/11/16, 77.70
                        07/12/16, 72.56
                        07/13/16, 73.67
                        07/14/16, 73.14
                        07/15/16, 73.13
                        07/16/16, 72.83
                        07/17/16, 71.27
                        07/18/16, 71.45
                        

                        When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

                        Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

                        Oh, the door monitor script is working great via a very small python script. Just need to get the little sucker mounted properly.

                        tech@tempdoor-rpi ~/bin $ cat door.py
                        import datetime
                        import time
                        import RPi.GPIO as io
                        io.setmode(io.BCM)
                        door_pin = 6
                        io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) #Activate door sensor using the pull up resistor
                        while True:
                            if io.input(door_pin):
                                    print ('DOOR ALARM!'), datetime.datetime.now().strftime("%H:%M %Y-%m-%d")
                            time.sleep(0.5)
                        

                        So your problem is getting an image? USB or IP cam?

                        IP cam, cheap TrendNet TV-IP672PI. Haven't looked at the camera side yet to see how difficult that will be.

                        Hoping I can just grab a picture with wget or curl.

                        travisdh1T 1 Reply Last reply Reply Quote 1
                        • travisdh1T
                          travisdh1 @travisdh1
                          last edited by

                          @travisdh1 said in DIY Environment Monitoring:

                          @travisdh1 said in DIY Environment Monitoring:

                          @thwr said in DIY Environment Monitoring:

                          @travisdh1 said in DIY Environment Monitoring:

                          @thwr said in DIY Environment Monitoring:

                          @travisdh1 said in DIY Environment Monitoring:

                          Temp monitoring is working great. My daily log

                          tech@tempdoor-rpi ~ $ tail /var/log/temp/dailytemp.log
                          07/11/16, 77.70
                          07/12/16, 72.56
                          07/13/16, 73.67
                          07/14/16, 73.14
                          07/15/16, 73.13
                          07/16/16, 72.83
                          07/17/16, 71.27
                          07/18/16, 71.45
                          

                          When I went in the room last week to adjust the air conditioner and the door sensor pieces were glued together instead of the door and door frame. Need to get that glued on properly and then get it logging that as well. We have a security camera in the room as well, would be nice to grab a picture from it each time someone opens the door.

                          Easy, write a script that is monitoring an input pin. You could use a Reed switch for example. Basically a magnetic switch.

                          Oh, the door monitor script is working great via a very small python script. Just need to get the little sucker mounted properly.

                          tech@tempdoor-rpi ~/bin $ cat door.py
                          import datetime
                          import time
                          import RPi.GPIO as io
                          io.setmode(io.BCM)
                          door_pin = 6
                          io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) #Activate door sensor using the pull up resistor
                          while True:
                              if io.input(door_pin):
                                      print ('DOOR ALARM!'), datetime.datetime.now().strftime("%H:%M %Y-%m-%d")
                              time.sleep(0.5)
                          

                          So your problem is getting an image? USB or IP cam?

                          IP cam, cheap TrendNet TV-IP672PI. Haven't looked at the camera side yet to see how difficult that will be.

                          Hoping I can just grab a picture with wget or curl.

                          Looks like it does support RTSP, so I should be able to work with that 🙂

                          travisdh1T 1 Reply Last reply Reply Quote 1
                          • travisdh1T
                            travisdh1 @travisdh1
                            last edited by

                            cvlc rtsp://192.168.0.13:554/play1.sdp --rtsp-user=someluser --rtsp-pwd=somepassword --sout=file/ps:/mnt/gluststor/secvid/test.mpg -Vdummy
                            

                            Grabs the video camera feed and records it without any X11 installed 🙂 Now all I have to do is figure out how I want to work the file storage and it's good to go.

                            1 Reply Last reply Reply Quote 1
                            • hobbit666H
                              hobbit666
                              last edited by

                              Could this be monitored by Zabbix??

                              Might do one myself if it can 😄

                              scottalanmillerS travisdh1T 2 Replies Last reply Reply Quote 0
                              • scottalanmillerS
                                scottalanmiller @hobbit666
                                last edited by

                                @hobbit666 said in DIY Environment Monitoring:

                                Could this be monitored by Zabbix??

                                Might do one myself if it can 😄

                                If you have sensors, yes.

                                1 Reply Last reply Reply Quote 0
                                • travisdh1T
                                  travisdh1 @hobbit666
                                  last edited by travisdh1

                                  @hobbit666 said in DIY Environment Monitoring:

                                  Could this be monitored by Zabbix??

                                  Might do one myself if it can 😄

                                  Yes. For Zabbix you'd just install the client.

                                  I'm having the sensors drop their information into /var/log with the idea that it would be very easy to integrate with log shipping or Splunk/splunk like programs.

                                  1 Reply Last reply Reply Quote 0
                                  • hobbit666H
                                    hobbit666
                                    last edited by

                                    Thinking maybe having 2-3 sensors for different parts of the room then feed them into zabbix and alert if 1 goes over x. hmmmm see if I can get some cheap now and the sensors and some cables.

                                    gjacobseG travisdh1T 2 Replies Last reply Reply Quote 1
                                    • gjacobseG
                                      gjacobse @hobbit666
                                      last edited by

                                      @hobbit666 said in DIY Environment Monitoring:

                                      Thinking maybe having 2-3 sensors for different parts of the room then feed them into zabbix and alert if 1 goes over x. hmmmm see if I can get some cheap now and the sensors and some cables.

                                      you should be able to do that with no issues... have a look at the ESP8266 chip as an option for that.

                                      travisdh1T 1 Reply Last reply Reply Quote 1
                                      • travisdh1T
                                        travisdh1 @hobbit666
                                        last edited by

                                        @hobbit666 said in DIY Environment Monitoring:

                                        Thinking maybe having 2-3 sensors for different parts of the room then feed them into zabbix and alert if 1 goes over x. hmmmm see if I can get some cheap now and the sensors and some cables.

                                        Water sensors are the simplest sensors you can possibly make, literally just two wires. It's crazy to see what companies charge for those. $50 for a piece of plastic that holds two wires, the only requirement is that the two wires never touch. So those are really super cheap and easy to add onto a Pi/Arduino.

                                        If you want a network connection for each of them, then a Pi is going to be easier to deal with than adding that to an Arduino.

                                        I just took a quick look, and zabbix-agent is included in the Raspbian repo.

                                        1 Reply Last reply Reply Quote 2
                                        • travisdh1T
                                          travisdh1 @gjacobse
                                          last edited by

                                          @gjacobse said in DIY Environment Monitoring:

                                          @hobbit666 said in DIY Environment Monitoring:

                                          Thinking maybe having 2-3 sensors for different parts of the room then feed them into zabbix and alert if 1 goes over x. hmmmm see if I can get some cheap now and the sensors and some cables.

                                          you should be able to do that with no issues... have a look at the ESP8266 chip as an option for that.

                                          You made me look, Adafruit is at it again. HUZZAH ESP8266 Wifi, enough pins to make a useful control module, and can use the Arduino IDE to program the thing. So much win with that one.

                                          gjacobseG 1 Reply Last reply Reply Quote 2
                                          • gjacobseG
                                            gjacobse @travisdh1
                                            last edited by

                                            @travisdh1 said in DIY Environment Monitoring:

                                            @gjacobse said in DIY Environment Monitoring:

                                            @hobbit666 said in DIY Environment Monitoring:

                                            Thinking maybe having 2-3 sensors for different parts of the room then feed them into zabbix and alert if 1 goes over x. hmmmm see if I can get some cheap now and the sensors and some cables.

                                            you should be able to do that with no issues... have a look at the ESP8266 chip as an option for that.

                                            You made me look, Adafruit is at it again. HUZZAH ESP8266 Wifi, enough pins to make a useful control module, and can use the Arduino IDE to program the thing. So much win with that one.

                                            They are something I have been looking at, but have no idea how to use.. I have no issue with concocting things,.. but seemingly no ability to program it.... I want to so some work with them,.. and replace the (self moderated) job of an alarm system and have a hybrid system.

                                            travisdh1T 1 Reply Last reply Reply Quote 1
                                            • 1
                                            • 2
                                            • 3
                                            • 2 / 3
                                            • First post
                                              Last post