Please use V4 Branch for your devices. The master branch is used for active development and may be instable
AskSin++
C++ implementation of the AskSin protocol
- easy configuration of the device channels by using templates
- direct eeprom access for the channel data
- AES signature support
- Supported MCU:
- ATMega328
- ATMega32 (Standard Pinout)
- ATMega644 (Bobuino Pinout is highly suggested)
- ATMega1284 (No OTA Bootloader support, yet)
- STM32F1
Required additional Arduino libraries:
- EnableInterrupt
- For ATMega644 and ATMega1284 the PR #49 needs to be included
- Low-Power
- For ATMega644 and ATMega1284 the PR #57 needs to be included
Optional required Sensor Libraries
Enable AES Support
To enable the AES signature support USE_AES needs to be defined. In addition the default key and the default key index has to provided with HM_DEF_KEY and HM_DEF_KEY_INDEX.
#define USE_AES
#define HM_DEF_KEY 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10
#deifne HM_DEF_KEY_INDEX 0
In FHEM you can get the key from the hmKey, hmKey2, hmKey3 attributes of the VCCU. The index is the key number multiplied by 2.
Extra Defines for Configuration
- USE_WOR - enables WOR listening during idle (burst devices)
- SENSOR_ONLY - save some byte by exclude code for actor devices
- DEVICE_CHANNEL_COUNT - set number of device channels, skip calculation
Alternative Device RESET Method
Normally, a device can be reset to its default settings by pressing and holding down the config button for at least 6 seconds.
Alternatively, another reset method can be used with ResetOnBoot.h
without pressing the config button (i.e. for devices in hard to reach places):
- to reset, reboot the device twice within 4 seconds after startup
- explained in detail:
- startup: the device led blinks with 5 Hz the first 4 seconds
- if the device is restarted within this time, the device led blinks with 10 Hz for 4 seconds
- only if the device is restarted again within this time, the device will do a RESET , otherwise it will proceed normal operation
- explained in detail:
- implemented in
HM-LC-SW1-BA-PCB.ino
to demonstrate the usage - at least, an automated pairing can be triggered by uncommenting line #113