First production release
Added (almost) complete transmit & receive support for all packet types supported by 433 MHz hardware and firmware version 1020, with the exception of:
- 0x1C, Edisio (868 MHz)
- 0x21, Security2
- 0x53, Barometric sensors (currently unused)
- 0x5E, Gas sensors (currently unused)
- 0x5F, Water sensors (currently unused)
- 0x72, FS20 (868 MHz)
- 0x7F, Raw transmit
Other enhancements:
- Added extra subtypes and commands to lighting5 (though there are still one or two missing)
- Added a sendRaw() method to Transmitter to allow any packet type to be sent (including the 0x7F raw packet, if required)
- Improved unit tests (unit tests are no longer installed by npm)
- For firmware versions that support it, the RF transmitter power is reported in the
status
event - Transmitters for all packet types now accept an (optional) options parameter. Currently only Lighting4 and Rfy make use of it
- Added a "receiverstarted" event
- Added scripts to find all RFXCOM devices attached to a computer (
find-rfxcom
), and to manage the enabled receive protocols (set-protocols
)
Breaking changes:
- Curtain1 constructor now requires a subtype
- Lighting5
switchOn()
method no longer accepts a parameter to set moods & levels - usesetMood()
&setLevel()
instead - Rfy venetian blinds commands are no longer duplicated in EU & US variants, e.g.
venetianOpenEU()
&venetianOpenUS
are relaced byvenetianOpen()
. An options parameter to the Rfy constructor sets which variant is used, e.g.{venetianBlindsMode: "EU"}
- Receive data events now correspond strictly one-to-one with received packet types. Previously, some of the 'sensor'
events corresponded with subtypes. For example, the
thb1
andthb2
events from the two different subtypes of the temperature, humidity and barometric pressure sensing devices (packet type 0x54) are replaced by a singletemphumbaro
event. - Adopted the use of camelCase for all event properties, so that
unitcode
is nowunitCode
, and housecode is nowhouseCode
- Added support for AOKE relay (lighting5)
- Added support for Maverick ET-732 BBQ thermometer
- Added support for Rfy devices (Somfy blinds)
- Added support for Blinds1 devices. Tested only for T0/Rollertrol.
- Added a command message transmit queue to avoid buffer overruns in the RFXtrx433
- Improve decoding of status packets from firmware versions 1001 and above
- Send 'start receiver' command when connecting, and check the response
- Added transmission of chime1 type packets
- Fixed a bug in the received message parsing which could cause messages to be lost, and/or throw an unhandled exception.
- Added support for additional weather sensors and energy monitoring devices
- Added support for Byron SX doorbells (receive-only) BREAKING CHANGES:
- In elec2 and elec3 events, property name "currentWatts" is replaced by "power" (the value is unchanged)
- In elec2 and elec3 events, property name "totalWatts" is replaced by "energy" and the value is no longer rounded
- Added support for Lighting3, Lighting4, and Lighting6 device packet types
- Added error-checking for supported commands, address codes, and parameter values
- Handle dynamic removal/replacement of the RFXtrx. Added new events 'connecting', 'disconnected', and 'connectfailed'. Added new properties .connected, .initialising and .initialiseWaitTime
- Bump to serialport 2.x
- Emit end event when serial port 'ends' (device is removed from USB port) contributed by @freakent.
- Bump to serialport ~1.4.
- Change tbX messages to tbhX messages and fix typo in battery level determination.
- Handle the rfxmeter and tempbaro messages.
- Implement support for rfxmeter and tempbaro sensors from bwired-nl.
- Support for serialport 1.3.0 which requires a callback for flush this fixes rfxcom#26.
- Fix bug in emitting "received" events.
- Added additional event "received" with the raw data that was received from the device contributed by @iangregory.
- Added save() method to the rfxcom object, allowing saving the configured protocols to the NVRAM of the rfxtrx433, the SDK cautions against using this too often as there is a limited number of writes (10K).
- Add additional protocol defines for use when configuring the device, contributed by @njh.
- Changes the format of the lighting2 event, the subtype will correspond to the values in rfxcom.lighting2.
- Send a "level" command when we are trying to set the level.
- Bumped serialport version to be compatible with Node 0.10.x.
- Removed dependency on underscore.js.
- Split the various classes out into separate files.
- Split the tests appropriately.
- Rename the LightwaveRf prototype to Lighting5. backwards incompatible
- Made the new Lighting5 prototype accept different types.
- Removed RfxCom.lightOn and RfxCom.lightOff because these were LightwaveRf specific.
- Added support for lighting1 received messages contributed by stianeikeland.
- Added Lighting2 class, which can control devices controlled by the lighting2 message.
- Fix the tamper detection for security1 devices to report status and tamper separately.
- Added support for lighting2 received messages.
- Renamed signalStrength to rssi in keeping with the RFX TRX SDK document.
- Fixed initialise to also run .open() which means you can bootstrap the device with one line.
- Added .initialise to the RfxCom prototype, which handles bootstrapping the device.
- Change the LightwaveRf device identifier format to 0x010203/1 which means that it is possible to define device as strings e.g. FRONT_LIGHT = "0x010203/1".
- Add support for TH1-9 temperature and humidity sensors.
- Add support for TEMP1-9 type sensors.
- Fix bug in handler lookup and improve testing of data handler.
- Update security1Handler event to make the types constants, and better split the battery-level and signal strength elements.
- Updated the Readme.md to illustrate more use.
- Renamed the current_watts and total_watts to currentWatts and totalWatts.
- API CHANGE emitted events are now a JavaScript object.
- New constants for security status messages e.g. security.MOTION.
- Refactored sending messages to the serialport through a sendMessage - still need to update the LightwaveRf prototype.
- Improved the test coverage.
- Added LightwaveRf prototype for specialisation of LightwaveRf control.
- This adds support for dimming and moodlighting control with LightwaveRF.
- Tidied up JavaScript formatting.
- Added start of rfxcom.security constants.
- Support for configuring the interface protocols.