NAME

Device::RFXCOM::Decoder::Oregon - Device::RFXCOM::Decoder::Oregon decode Oregon RF messages

VERSION

version 1.163170

SYNOPSIS

# see Device::RFXCOM::RX

DESCRIPTION

Module to recognize Oregon RF messages from an RFXCOM RF receiver.

METHODS

decode( $parent, $message, $bytes, $bits, \%result )

This method attempts to recognize and decode RF messages from Oregon Scientific sensors. If messages are identified, a reference to a list of message data is returned. If the message is not recognized, undef is returned.

uv138( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a message from a UV138 sensor.

uvn800( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a message from a UVN800 sensor.

wgr918_anemometer( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a wind speed/direction message from a WGR918 sensor.

wtgr800_anemometer( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a wind speed/direction message from a WTGR800 sensor.

alt_temphydro( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a temperature/humidity message from a WTGR800 sensor.

alt_temphydrobaro( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a temperature/humidity/baro message from a BTHR918N sensor.

rtgr328n_datetime( $device, $bytes, $nibbles, \%result )

This method is called if the device type bytes indicate that the bytes might contain a date/time message from a RTGR328n sensor.

common_temp( $device, $bytes, $nibbles, \%result )

This method is a generic device method for devices that report temperature in a particular manner.

common_temphydro( $device, $bytes, $nibbles, \%result )

This method is a generic device method for devices that report temperature and humidity in a particular manner.

common_temphydrobaro( $device, $bytes, $nibbles, \%result )

This method is a generic device method for devices that report temperature, humidity and barometric pressure in a particular manner.

common_rain( $device, $bytes, $nibbles, \%result )

This method handles the rain measurements from an RGR918 rain gauge.

pcr800_rain( $device, $bytes, $nibbles, \%result )

This method handles the rain measurements from a PCR800 rain gauge.

checksum1( $bytes, $nibbles )

This method is a byte checksum of all nibbles of the first 6 bytes, the low nibble of the 7th byte, minus 10 which should equal the byte consisting of a high nibble taken from the low nibble of the 8th byte plus the high nibble from the 7th byte.

checksum2( $bytes )

This method is a byte checksum of all nibbles of the first 8 bytes minus 10, which should equal the 9th byte.

checksum3( $bytes )

This method is a byte checksum of all nibbles of the first 11 bytes minus 10, which should equal the 12th byte.

checksum4( $bytes )

This method is a byte checksum of all nibbles of the first 9 bytes minus 10, which should equal the 10th byte.

checksum5( $bytes )

This method is a byte checksum of all nibbles of the first 10 bytes minus 10, which should equal the 11th byte.

checksum6( $bytes )

This method is a byte checksum of all nibbles of the first 10 bytes minus 10, which should equal the 11th byte.

checksum7( $bytes )

This method is a byte checksum of all nibbles of the first 7 bytes, minus 10 which should equal the byte consisting of the 8th byte

checksum8( $bytes )

This method is a byte checksum of all nibbles of the first 7 bytes, minus 10 which should equal the byte consisting of the 8th byte

checksum_tester( $bytes, $nibbles )

This method is a dummy checksum method that tries to guess the checksum that is required.

uv_string( $uv_index )

This method takes the UV Index and returns a suitable string.

uv( $device, $bytes, $nibbles, \%result)

This method processes a UV Index reading. It appends an xPL message to the result array.

uv2( $device, $bytes, $nibbles, \%result)

This method processes a UV Index reading for UVN800 sensor type. It appends an xPL message to the result array.

temperature( $device, $bytes, $nibbles, \%result)

This method processes a temperature reading. It appends an xPL message to the result array.

humidity( $device, $bytes, $nibbles, \%result)

This method processes a humidity reading. It appends an xPL message to the result array.

pressure( $device, $bytes, $nibbles, \%result, $forecast_index, $offset )

This method processes a pressure reading. It appends an xPL message to the result array.

simple_battery( $device, $bytes, $nibbles, \%result)

This method processes a simple low battery reading. It appends an xPL message to the result array if the battery is low.

percentage_battery( $device, $bytes, $nibbles, \%result)

This method processes a battery percentage charge reading. It appends an xPL message to the result array if the battery is low.

type_length_key( $type, $length )

This function creates a simple key from a device type and message length (in bits). It is used to as the index for the parts table.

DEVICE METHODS

CHECKSUM METHODS

UTILITY METHODS

SENSOR READING METHODS

THANKS

Special thanks to RFXCOM, http://www.rfxcom.com/, for their excellent documentation and for giving me permission to use it to help me write this code. I own a number of their products and highly recommend them.

SEE ALSO

RFXCOM website: http://www.rfxcom.com/

AUTHOR

Mark Hindess <soft-cpan@temporalanomaly.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Mark Hindess.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.