Skip to content

MarcelMeurer/OregonPi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OregonPi with MQTT

433 Sensor Oregon Scientific decoder for Raspberry Pi sending mqtt to a local mqtt server (in my case for OpenHab / OpenHabian 2) to work with this data in a home automation. Works parallel to an RF sniffer to get radio signals from remote controls / door sensors AND oregon.

I'll improve the code style.

Forked from https://github.com/1000io/OregonPi

Code based on disk91 project http://www.disk91.com MQTT code based on https://github.com/Josar/RandomStuff/tree/master/Openhab-related

Support OregonSensorV2

  • THGR122NX
  • THN132N
  • THGRN228NX
  • WGR9180
  • STR928N
  • BTHG968

Hardware Config

https://projects.drogon.net/raspberry-pi/wiringpi/pins/

INPUT GPIO 2

Install wiringPi

  • sudo apt-get install git-core
  • sudo apt-get update
  • sudo apt-get upgrade
  • git clone git://git.drogon.net/wiringPi
  • cd wiringPi
  • git pull origin
  • ./build

Install OregonPi

  • cd ..
  • git clone git://github.com/1000io/OregonPi
  • cd OregonPi
  • make

Execute

sudo ./test

Execute & Save Log Archive

nohup sudo /home/pi/OregonPi/test /home/pi/OregonPi/log_oregon.csv &

Log Example

[chanel number],[temp],[hum]

1,temp19.100000,hum69.000000

Pimatic Integration

You can use it with pimatic-log-reader as I do :)

https://pimatic.org/plugins/pimatic-log-reader/

pimatic config example:

{
  "id": "oregon1",
  "name": "Bedroom Sensor",    //sensor display name
  "class": "LogWatcher",
  "file": "/home/pi/OregonPi/log_oregon.csv",  //log file
  "attributes": [
    {
      "name": "temp",
      "type": "number",
      "unit": "°C"
    },
    {
      "name": "hum",
      "type": "number",
      "unit": "%"
    }
  ],
  "lines": [
    {
      "match": "1,temp(.+),hum(.+)",   // ->1<- Sensor channel number
      "temp": "$1",
      "hum": "$2"
    }
  ]
}

Data Support

Sensor(char * _strval); // construct and decode value

  • bool availableTemp(); // return true if valid && have Temp
  • bool availableHumidity(); // return true if valid && have Humidity
  • bool isBatteryLow(); // return true if valid && haveBattery && flag set.
  • bool hasChannel(); // return true if valid && haveChannel
  • bool isDecoded(); // return true if valide
  • bool availableSpeed(); // return true if valid && speed in km/h
  • bool availableDirection(); // return true if valid && wind direction
  • bool availableRain(); // return true if valid && rain in mm/h
  • bool availablePressure(); // return true if valid && pressure in mb
  • double getTemperature(); // return temperature in C°
  • double getHumidity(); // return humidity in % (base 100)
  • char * getSensorName(); // return sensor name
  • double getRain(); // return Rain
  • double getTrain();
  • double getDirection(); // return wind direction
  • double getSpeed(); // return speed in km/h
  • double getPressure(); // return pressure in mb
  • int getChannel(); // return channel value
  • int getSensClass(); // return sensor class
  • int getSensType(); // return sensor type

Thanks to

@renzo38 & @FunFR

About

Sensor Oregon Scientific decoder for Raspberry Pi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.8%
  • Makefile 0.2%