Firmware Builds and Tools

There are automatic builds from source code in the develop, release and master branch as provided over GitHub.

A build package filename (e.g. shc_basestation_130928_0524_develop_v0.1.1-1-gf02bdd5.7z) consists of the following parts:

  • The name describing for which device the package is for.
  • The build date in the format YYMMDD_HHMM.
  • The name of the branch.
  • The latest tag known in the branch formatted as v{MAJOR}.{MINOR}.{PATCH}[-{EXTENSION}] (e.g. "v0.1.1").
  • The number of commits since the last tag (e.g. "5"). A zero indicates that it is the tagged build without changes.
  • The head revision ID as short hash (e.g. "gf02bdd5").

Read more about branching and versioning.

Latest Builds

This is an overview of the latest successful builds for all devices and branches.

Devicedevelopreleasemaster
shc_e2p_editorv0.10.1-242-ga976a07
(335 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_basestationv0.10.1-220-g10c291c
(372 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_controllerv0.13.0-1-ge40fd24
(4 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_envsensorv0.10.1-207-gc2b24f8
(376 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_powerswitchv0.10.1-217-gd4fdd46
(374 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_rgb_dimmerv0.10.1-217-gd4fdd46
(374 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_dimmerv0.10.1-217-gd4fdd46
(374 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_soil_moisture_meterv0.10.1-148-g6117b55
(451 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)
shc_fhemv0.10.1-245-g8685b32
(331 days old)
v0.13.0-rc.1-0-gb18cbf0
(270 days old)
v0.13.0-0-g278c0ec
(269 days old)

All Builds + Changelog

shc_e2p_editor (develop)

20230526 develop_v0.10.1-242-ga976a07Download
Define to not send menu selection without user interaction by default. This can lead to unwanted behaviour in receiving home automation software as it looks as if the user selected something.2023-05-25
20230512 develop_v0.10.1-231-g5a5c8c1Download
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in E2P editor.2023-05-11
20230510 develop_v0.10.1-228-ge8a20abDownload
Support display_backlight function in controller device.2023-05-09
20230426 develop_v0.10.1-227-gad8d6caDownload
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
20230421 develop_v0.10.1-222-g10eef74Download
Extend max. virtual pages to 4.2023-04-20
20230419 develop_v0.10.1-220-g10c291cDownload
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
20230414 develop_v0.10.1-205-g3499999Download
Fix basestation e2p layout. Add UartBaudRate again.2023-04-13
Update message description.2023-04-13
20230412 develop_v0.10.1-198-g8e9d619Download
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
20230311 develop_v0.10.1-182-g117be7eDownload
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement generation of ByteArray access functions in the E2P Editor's SourceCodeGenerator.2023-03-10
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
20230130 develop_v0.10.1-148-g6117b55Download
Support 2kB E2P for ATMega644, which is used in the Controller device.2023-01-27
Add initial Controller device e2p layout.2022-11-24
20221125 develop_v0.10.1-136-g01b4871Download
Define new default 48 value for TransceiverWatchdogTimeout, so that the function is on by default.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
20220924 develop_v0.10.1-120-gef383c9Download
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
20220920 develop_v0.10.1-114-g28f653fDownload
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20191118 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Rename E2P values for PM sensor.2019-11-16
Redesign ParticulateMatter message to use UIntValue instead of FloatValue. This reduces message size and makes ParticulateMatterConfig obsolete.2019-11-16
Add kateconfig.2019-11-16
Add some files created by current eclipse version.2019-11-11
Support FloatValue type in SourceCodeGnerator.2019-11-11
Define new messages for ParticulateMatter sensor.2019-11-11
Add e2p configuration for ParticulateMatter sensor.2019-11-11
Introduce new data type FloatValue.2019-11-11
Add build script to not forget how building the package works.2019-11-10
Add shell script to start generation of e2p and packet source code files.2019-11-07
20191021 develop_v0.10.1-91-g6efd3deDownload
Update copyright info.2019-10-20
Remove quotation marks around file name under linux. User can add them if wanted in the command line.2019-10-20
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
Improve description in e2p layout.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
20180318 develop_v0.10.1-75-g35a42b5Download
Add TransceiverWatchdogTimeout for Base Station.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
20160424 develop_v0.10.1-65-g67459daDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Use specified MicrocontrollerModel in e2p layout for calling the flash utility.2016-04-23
Update e2p layout for tea maker.2016-04-23
Add DeviceType TeaMaker (90).2016-04-23
Add StartupConfirmationMessage to E2P layout and some Reserved areas for future additions.2016-04-23
Add possibility to define microcontroller model in e2p layout file (used by e2p editor, which also calls the flash program).2016-04-23
Correct reading and writing to e2p byte array when using new string mode of the byte array editor.2016-04-23
Remove unused import which caused error in compiling the program.2016-04-23
Add possibility to switch byte array editor to string mode (instead of hex mode). This can be used to easily define tea maker strings shown on the display.2016-04-23
Remember window size and split pane divider location in cfg file.2016-04-22
Clean up imports.2016-04-22
Clean up imports.2016-04-22
20160417 develop_v0.10.1-48-g1e296d1Download
Add Tea Maker e2p layout and header files.2016-04-16
20160411 develop_v0.10.1-46-g1537623Download
Add TeaMaker device with ID 90.2016-04-10
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Update description of TransceiverWatchdogTimeout value.2015-06-22
20150524 develop_v0.10.1-6-g29ed99bDownload
Set default value for RFM watchdog.2015-05-23
Support configurable RFM watchdog in devices which can receive.2015-05-23
20150416 develop_v0.9.0-rc.5-47-g8f5b2e0Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
20150303 develop_v0.9.0-rc.5-21-g052a55fDownload
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150208 develop_v0.7.0-rc.1-145-g9768f76Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
20150112 develop_v0.7.0-rc.1-139-g428fc33Download
Correct some wake-up values. SoilMoistureMeter did not wake up at large intervals.2015-01-11
20150111 develop_v0.7.0-rc.1-135-g2083b6fDownload
Change default values for SoilMoistureMeter.2015-01-10
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
20150104 develop_v0.7.0-rc.1-126-g9e692dfDownload
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
20141123 develop_v0.7.0-rc.1-118-g4913df8Download
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Update description.2014-11-16
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
20141010 develop_v0.7.0-rc.1-108-g563a108Download
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
20140928 develop_v0.7.0-rc.1-78-g85f7defDownload
Update max number of switches in e2p to 6.2014-09-27
Mark messages as deprecated.2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Use ATMega328 instead of 168.2014-09-21
Use ATMega 168p instead of 168 in avrdude parameter.2014-09-20
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
20140916 develop_v0.7.0-rc.1-58-g7f23e17Download
Update comment. Remove brightness translation table because a fixed lookup table is implemented to make the brightness levels appear linear to the human eye.2014-09-16
Change order of value in ColorAnimation message according (new) description on homepage.2014-08-03
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Change number of colors.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
20140722 develop_v0.7.0-rc.1-16-g4335fd0Download
Add color animation message, using the new "structured array".2014-07-21
Add support for "structured arrays", which is a series of elements consisting of sub-elements (like a struct). The advantage over using several normal arrays is that in a "structured array", all sub-elements are grouped together at one place. That allows that the data is concentrated at the beginning of a packet if only the beginning of the array is used. Later on, this will allow to truncate a packet if the rest of it does only contain empty values (0 bytes).2014-07-21
Add color message in dimmer message group.2014-07-20
20140713 develop_v0.7.0-rc.1-11-g59b2953Download
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Define DefaultVal for BrightnessFactor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add initial e2p config block for the RGB dimmer.2014-07-12
20140708 develop_v0.5.0-222-g162f37fDownload
Update comments, cleanup imports.2014-07-07
Increase scroll speed in panels.2014-07-07
20140630 develop_v0.5.0-210-g5b53812Download
Show legend for color codes in input components.2014-06-29
Add component for editing boolean values, including "Default" button and background coloring.2014-06-29
Support default values in e2p editor for UIntValue, IntValue, EnumValue and ByteArray. Show entries in yellow if they differ from the default. Show a button "Default" to reset the value to the default.2014-06-29
Rename attribute "Default" to "DefaultVal" to make it similar to MinVal and MaxVal.2014-06-29
20140629 develop_v0.5.0-206-g139bd55Download
Set default values for e2p configs where needed.2014-06-28
Add possibility to define default values for UIntValue, IntValue, BoolValue, EnumValue and ByteArray values in data type definitions. This can be used in the e2p editor to have useful defaults.2014-06-28
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
20140628 develop_v0.5.0-202-g46d3e24Download
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
20140625 develop_v0.5.0-197-gd0bcd85Download
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
Add Up/Down to OnChange DI pin watching When watching pins, f.ex. a motion detector, it may be useful to only send rising or falling edges.2014-06-24
20140616 develop_v0.5.0-190-gfad02fdDownload
rename e2p values2014-06-15
20140615 develop_v0.5.0-185-g42629faDownload
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Fix that EnumValues with more than 8 bits size are read out of E2P correctly.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
20140611 develop_v0.5.0-173-g7ef5465Download
Include needed header file.2014-06-10
20140526 develop_v0.5.0-132-g219892dDownload
Detect OS (Windows or Linux) and use other command line for flashing.2014-05-25
20140511 develop_v0.5.0-127-g1e35889Download
Add message group "GPIO" and a message to send the status of digital pins.2014-05-11
Add support for digital input pins in the e2p config of the envsensor.2014-05-11
20140507 develop_v0.5.0-110-gada1ea5Download
Correct e2p layout description.2014-05-03
20140427 develop_v0.5.0-91-g2f1d533Download
correct reserved area in e2p2014-04-26
Split up messages into new message groups "weather" and "environment".2014-04-26
Add HumiditySensorType and DistanceSensorType to e2p layout of envsensor.2014-04-26
20140406 develop_v0.5.0-38-gc24ce15Download
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
20140324 develop_v0.4.0-rc.1-26-gd924cd9Download
Use correct editor dialog for ByteArrays in e2p editor.2014-03-23
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Move string generation function for Byte/Bit positions to Util. Support Arrays in packets.2014-03-23
Add SwitchStateExt message (for testing Array functionality in packets primarily).2014-03-23
Simplify generation of access strings for e2p byte and bit offset. Correct offset for Enums.2014-03-23
Correct calculation of byte and bit position in generated e2p header files.2014-03-23
Print a warning if a BoolValue in e2p is not at a byte boundary.2014-03-23
Remove the possibility to have arrays of "Reserved" bits, which make no sense.2014-03-23
20140323 develop_v0.4.0-rc.1-16-g62c3cbdDownload
Add "Array" as possible data type for e2p layouts. An Array can store a series of one of the other primitive data types. Add an editor for BoolValues to the e2p editor.2014-03-22
20140319 develop_v0.4.0-rc.1-15-gbc0661eDownload
Move definition of data types to a separate XSD file, because they are used both in the e2p and the packet metamodel.2014-03-16
add cfg file to gitignore2014-03-16
20140316 develop_v0.4.0-rc.1-13-gfe83608Download
Implement new flash dialog which remembers the used command line using a file.2014-03-15
20140309 develop_v0.4.0-rc.1-8-g22ed0e6Download
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 develop_v0.4.0-rc.1-1-g2759da9Download
change microcontroller model to ATMega328 for the tempsensor2014-03-09
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
20140212 develop_v0.3.0-rc.1-33-g9c70cc8Download
Read version from pom.properties file at start up and and show it in the about box. The version is set by the build robot, so official builds now contain the version information.2014-02-10
revert JComboBox constructor to old version which is Java 1.6 compatible2014-02-10
Support (signed) int value in e2p layout, e2p editor and generator.2014-02-09
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
surroud message group header files with defines2014-02-09
minor code cleanup2014-02-09
20140209 develop_v0.3.0-rc.1-24-gc67c8c9Download
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
Immediately check default data for validity to avoid wrong error message when saving data to file.2014-02-08
20140127 develop_v0.3.0-rc.1-18-g26ca39eDownload
Generate one e2p header file for each block. Avoid repeating the "Hardware" and "Generic" blocks in every device specific header file.2014-01-26
make function public (for E2P generator)2014-01-26
Add annotation in xsd.2014-01-26
Rename E2P config blocks by removing the "Config" suffix to make them consistent with the header files.2014-01-26
create e2p header files in src_common folder2014-01-26
Add thermostat e2p config block. Change device names to the spelling as used in packet definitions.2014-01-26
20140118 develop_v0.2.0-76-gafdf34dDownload
set default values in ByteArrayTextArea and UIntTextArea in constructor so there is already valid data in them when GUI is presented to the user2014-01-18
remove unused imports2014-01-18
improve description of e2p field2014-01-18
20140107 develop_v0.2.0-53-gc2dc11eDownload
correct calculation of packets when they don't have message data2014-01-06
add dimmer message definitions2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
20140105 develop_v0.2.0-39-gbd2cda2Download
set __MESSAGETYPE variable correctly2014-01-04
20140102 develop_v0.2.0-35-g0d87767Download
fix generation of MessageID enum2014-01-01
Add common set functions for header extensions. Add ENUMs for MessageGroupID and MessageID.2014-01-01
add common access functions for header extensions2014-01-01
20140101 develop_v0.2.0-28-gb080f33Download
update source code generator for data packets / messages to reflect newest XML layout, rename class2013-12-31
rename file2013-12-25
add header extension concept to support different packet types2013-12-25
20131206 develop_v0.2.0-21-gb85f684Download
add packet metamodel file2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
20131113 develop_v0.2.0-rc.3-8-ge04ad3aDownload
make sure a new e2p file is 1024 bytes in size so it can be read without problems even devicetype is not set yet2013-11-09
set fixed filename for JAR file2013-11-09
20131109 develop_v0.2.0-rc.1-0-g93d6114Download
20131106 develop_v0.1.1-39-g93d6114Download
fix issue #20 (E2P Editor crashes with null pointer exception when using Java 7)2013-11-06
react on changed DeviceType in the EnumEditor with updating the other editor components on the right side2013-11-06
20131104 develop_v0.1.1-37-g0d81754Download
add e2p support for dimmer2013-11-03
20131028 develop_v0.1.1-23-g3645da1Download
support new e2p layout in powerswitch2013-10-27
20131027 develop_v0.1.1-21-gfed23aeDownload
correct detection of MC type to flash, change default flash command2013-10-26
20131014 develop_v0.1.1-13-g732fff0Download
remove unused file2013-10-13
Handle the case correctly when E2P file is too short (corrupt).2013-10-12
Add Base Station E2P config block to layout.2013-10-12
20131006 develop_v0.1.1-4-gbd3d701Download
Add a e2p config block to e2p layout. Use temperature and brightness sensor settings for configuration of connected sensor type. Implement using the new values to avoid that the firmware hangs (waits forever) when no SHT15 is connected.2013-10-05
20131001 develop_v0.1-4-gbc0a281Download
20130925 develop_v0.1-1-gf02bdd5Download
use .org domain2013-09-22
20130925 develop_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_e2p_editor (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Define to not send menu selection without user interaction by default. This can lead to unwanted behaviour in receiving home automation software as it looks as if the user selected something.2023-05-25
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in E2P editor.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Fix basestation e2p layout. Add UartBaudRate again.2023-04-13
Update message description.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement generation of ByteArray access functions in the E2P Editor's SourceCodeGenerator.2023-03-10
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
Support 2kB E2P for ATMega644, which is used in the Controller device.2023-01-27
Add initial Controller device e2p layout.2022-11-24
Define new default 48 value for TransceiverWatchdogTimeout, so that the function is on by default.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Rename E2P values for PM sensor.2019-11-16
Redesign ParticulateMatter message to use UIntValue instead of FloatValue. This reduces message size and makes ParticulateMatterConfig obsolete.2019-11-16
Add kateconfig.2019-11-16
Add some files created by current eclipse version.2019-11-11
Support FloatValue type in SourceCodeGnerator.2019-11-11
Define new messages for ParticulateMatter sensor.2019-11-11
Add e2p configuration for ParticulateMatter sensor.2019-11-11
Introduce new data type FloatValue.2019-11-11
Add build script to not forget how building the package works.2019-11-10
Add shell script to start generation of e2p and packet source code files.2019-11-07
Update copyright info.2019-10-20
Remove quotation marks around file name under linux. User can add them if wanted in the command line.2019-10-20
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
Improve description in e2p layout.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Add TransceiverWatchdogTimeout for Base Station.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Use specified MicrocontrollerModel in e2p layout for calling the flash utility.2016-04-23
Update e2p layout for tea maker.2016-04-23
Add DeviceType TeaMaker (90).2016-04-23
Add StartupConfirmationMessage to E2P layout and some Reserved areas for future additions.2016-04-23
Add possibility to define microcontroller model in e2p layout file (used by e2p editor, which also calls the flash program).2016-04-23
Correct reading and writing to e2p byte array when using new string mode of the byte array editor.2016-04-23
Remove unused import which caused error in compiling the program.2016-04-23
Add possibility to switch byte array editor to string mode (instead of hex mode). This can be used to easily define tea maker strings shown on the display.2016-04-23
Remember window size and split pane divider location in cfg file.2016-04-22
Clean up imports.2016-04-22
Clean up imports.2016-04-22
Add Tea Maker e2p layout and header files.2016-04-16
Add TeaMaker device with ID 90.2016-04-10
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description of TransceiverWatchdogTimeout value.2015-06-22
Set default value for RFM watchdog.2015-05-23
Support configurable RFM watchdog in devices which can receive.2015-05-23
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Correct some wake-up values. SoilMoistureMeter did not wake up at large intervals.2015-01-11
Change default values for SoilMoistureMeter.2015-01-10
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Update description.2014-11-16
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Update max number of switches in e2p to 6.2014-09-27
Mark messages as deprecated.2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Use ATMega328 instead of 168.2014-09-21
Use ATMega 168p instead of 168 in avrdude parameter.2014-09-20
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Update comment. Remove brightness translation table because a fixed lookup table is implemented to make the brightness levels appear linear to the human eye.2014-09-16
Change order of value in ColorAnimation message according (new) description on homepage.2014-08-03
Change number of colors.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Add color animation message, using the new "structured array".2014-07-21
Add support for "structured arrays", which is a series of elements consisting of sub-elements (like a struct). The advantage over using several normal arrays is that in a "structured array", all sub-elements are grouped together at one place. That allows that the data is concentrated at the beginning of a packet if only the beginning of the array is used. Later on, this will allow to truncate a packet if the rest of it does only contain empty values (0 bytes).2014-07-21
Add color message in dimmer message group.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Define DefaultVal for BrightnessFactor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add initial e2p config block for the RGB dimmer.2014-07-12
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Update comments, cleanup imports.2014-07-07
Increase scroll speed in panels.2014-07-07
Show legend for color codes in input components.2014-06-29
Add component for editing boolean values, including "Default" button and background coloring.2014-06-29
Support default values in e2p editor for UIntValue, IntValue, EnumValue and ByteArray. Show entries in yellow if they differ from the default. Show a button "Default" to reset the value to the default.2014-06-29
Rename attribute "Default" to "DefaultVal" to make it similar to MinVal and MaxVal.2014-06-29
Set default values for e2p configs where needed.2014-06-28
Add possibility to define default values for UIntValue, IntValue, BoolValue, EnumValue and ByteArray values in data type definitions. This can be used in the e2p editor to have useful defaults.2014-06-28
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
Add Up/Down to OnChange DI pin watching When watching pins, f.ex. a motion detector, it may be useful to only send rising or falling edges.2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Fix that EnumValues with more than 8 bits size are read out of E2P correctly.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Include needed header file.2014-06-10
Detect OS (Windows or Linux) and use other command line for flashing.2014-05-25
Add message group "GPIO" and a message to send the status of digital pins.2014-05-11
Add support for digital input pins in the e2p config of the envsensor.2014-05-11
20140506 release_v0.6.0-rc.1-0-g8900514Download
Correct e2p layout description.2014-05-03
correct reserved area in e2p2014-04-26
Split up messages into new message groups "weather" and "environment".2014-04-26
Add HumiditySensorType and DistanceSensorType to e2p layout of envsensor.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Use correct editor dialog for ByteArrays in e2p editor.2014-03-23
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Move string generation function for Byte/Bit positions to Util. Support Arrays in packets.2014-03-23
Add SwitchStateExt message (for testing Array functionality in packets primarily).2014-03-23
Simplify generation of access strings for e2p byte and bit offset. Correct offset for Enums.2014-03-23
Correct calculation of byte and bit position in generated e2p header files.2014-03-23
Print a warning if a BoolValue in e2p is not at a byte boundary.2014-03-23
Remove the possibility to have arrays of "Reserved" bits, which make no sense.2014-03-23
Add "Array" as possible data type for e2p layouts. An Array can store a series of one of the other primitive data types. Add an editor for BoolValues to the e2p editor.2014-03-22
Move definition of data types to a separate XSD file, because they are used both in the e2p and the packet metamodel.2014-03-16
add cfg file to gitignore2014-03-16
Implement new flash dialog which remembers the used command line using a file.2014-03-15
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 release_v0.4.0-rc.1-0-g2feca00Download
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Read version from pom.properties file at start up and and show it in the about box. The version is set by the build robot, so official builds now contain the version information.2014-02-10
revert JComboBox constructor to old version which is Java 1.6 compatible2014-02-10
Support (signed) int value in e2p layout, e2p editor and generator.2014-02-09
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
surroud message group header files with defines2014-02-09
minor code cleanup2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
Immediately check default data for validity to avoid wrong error message when saving data to file.2014-02-08
Generate one e2p header file for each block. Avoid repeating the "Hardware" and "Generic" blocks in every device specific header file.2014-01-26
make function public (for E2P generator)2014-01-26
Add annotation in xsd.2014-01-26
Rename E2P config blocks by removing the "Config" suffix to make them consistent with the header files.2014-01-26
create e2p header files in src_common folder2014-01-26
Add thermostat e2p config block. Change device names to the spelling as used in packet definitions.2014-01-26
20140118 release_v0.3.0-rc.1-0-gc639872Download
set default values in ByteArrayTextArea and UIntTextArea in constructor so there is already valid data in them when GUI is presented to the user2014-01-18
remove unused imports2014-01-18
improve description of e2p field2014-01-18
correct calculation of packets when they don't have message data2014-01-06
add dimmer message definitions2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
set __MESSAGETYPE variable correctly2014-01-04
fix generation of MessageID enum2014-01-01
Add common set functions for header extensions. Add ENUMs for MessageGroupID and MessageID.2014-01-01
add common access functions for header extensions2014-01-01
update source code generator for data packets / messages to reflect newest XML layout, rename class2013-12-31
rename file2013-12-25
add header extension concept to support different packet types2013-12-25
add packet metamodel file2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
20131109 release_v0.2.0-rc.2-0-gb1d6321Download
make sure a new e2p file is 1024 bytes in size so it can be read without problems even devicetype is not set yet2013-11-09
20131109 release_v0.2.0-rc.1-1-g2b200d3Download
set fixed filename for JAR file2013-11-09
20131108 release_v0.2.0-rc.1-0-g93d6114Download

shc_e2p_editor (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Define to not send menu selection without user interaction by default. This can lead to unwanted behaviour in receiving home automation software as it looks as if the user selected something.2023-05-25
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in E2P editor.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Fix basestation e2p layout. Add UartBaudRate again.2023-04-13
Update message description.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement generation of ByteArray access functions in the E2P Editor's SourceCodeGenerator.2023-03-10
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
Support 2kB E2P for ATMega644, which is used in the Controller device.2023-01-27
Add initial Controller device e2p layout.2022-11-24
Define new default 48 value for TransceiverWatchdogTimeout, so that the function is on by default.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Rename E2P values for PM sensor.2019-11-16
Redesign ParticulateMatter message to use UIntValue instead of FloatValue. This reduces message size and makes ParticulateMatterConfig obsolete.2019-11-16
Add kateconfig.2019-11-16
Add some files created by current eclipse version.2019-11-11
Support FloatValue type in SourceCodeGnerator.2019-11-11
Define new messages for ParticulateMatter sensor.2019-11-11
Add e2p configuration for ParticulateMatter sensor.2019-11-11
Introduce new data type FloatValue.2019-11-11
Add build script to not forget how building the package works.2019-11-10
Add shell script to start generation of e2p and packet source code files.2019-11-07
Update copyright info.2019-10-20
Remove quotation marks around file name under linux. User can add them if wanted in the command line.2019-10-20
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
Improve description in e2p layout.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Add TransceiverWatchdogTimeout for Base Station.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Use specified MicrocontrollerModel in e2p layout for calling the flash utility.2016-04-23
Update e2p layout for tea maker.2016-04-23
Add DeviceType TeaMaker (90).2016-04-23
Add StartupConfirmationMessage to E2P layout and some Reserved areas for future additions.2016-04-23
Add possibility to define microcontroller model in e2p layout file (used by e2p editor, which also calls the flash program).2016-04-23
Correct reading and writing to e2p byte array when using new string mode of the byte array editor.2016-04-23
Remove unused import which caused error in compiling the program.2016-04-23
Add possibility to switch byte array editor to string mode (instead of hex mode). This can be used to easily define tea maker strings shown on the display.2016-04-23
Remember window size and split pane divider location in cfg file.2016-04-22
Clean up imports.2016-04-22
Clean up imports.2016-04-22
Add Tea Maker e2p layout and header files.2016-04-16
Add TeaMaker device with ID 90.2016-04-10
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description of TransceiverWatchdogTimeout value.2015-06-22
Set default value for RFM watchdog.2015-05-23
Support configurable RFM watchdog in devices which can receive.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Correct some wake-up values. SoilMoistureMeter did not wake up at large intervals.2015-01-11
Change default values for SoilMoistureMeter.2015-01-10
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Update description.2014-11-16
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Update max number of switches in e2p to 6.2014-09-27
Mark messages as deprecated.2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Use ATMega328 instead of 168.2014-09-21
Use ATMega 168p instead of 168 in avrdude parameter.2014-09-20
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Update comment. Remove brightness translation table because a fixed lookup table is implemented to make the brightness levels appear linear to the human eye.2014-09-16
Change order of value in ColorAnimation message according (new) description on homepage.2014-08-03
Change number of colors.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Add color animation message, using the new "structured array".2014-07-21
Add support for "structured arrays", which is a series of elements consisting of sub-elements (like a struct). The advantage over using several normal arrays is that in a "structured array", all sub-elements are grouped together at one place. That allows that the data is concentrated at the beginning of a packet if only the beginning of the array is used. Later on, this will allow to truncate a packet if the rest of it does only contain empty values (0 bytes).2014-07-21
Add color message in dimmer message group.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Define DefaultVal for BrightnessFactor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add initial e2p config block for the RGB dimmer.2014-07-12
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Update comments, cleanup imports.2014-07-07
Increase scroll speed in panels.2014-07-07
Show legend for color codes in input components.2014-06-29
Add component for editing boolean values, including "Default" button and background coloring.2014-06-29
Support default values in e2p editor for UIntValue, IntValue, EnumValue and ByteArray. Show entries in yellow if they differ from the default. Show a button "Default" to reset the value to the default.2014-06-29
Rename attribute "Default" to "DefaultVal" to make it similar to MinVal and MaxVal.2014-06-29
Set default values for e2p configs where needed.2014-06-28
Add possibility to define default values for UIntValue, IntValue, BoolValue, EnumValue and ByteArray values in data type definitions. This can be used in the e2p editor to have useful defaults.2014-06-28
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
Add Up/Down to OnChange DI pin watching When watching pins, f.ex. a motion detector, it may be useful to only send rising or falling edges.2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Fix that EnumValues with more than 8 bits size are read out of E2P correctly.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Include needed header file.2014-06-10
Detect OS (Windows or Linux) and use other command line for flashing.2014-05-25
Add message group "GPIO" and a message to send the status of digital pins.2014-05-11
Add support for digital input pins in the e2p config of the envsensor.2014-05-11
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25
Correct e2p layout description.2014-05-03
correct reserved area in e2p2014-04-26
Split up messages into new message groups "weather" and "environment".2014-04-26
Add HumiditySensorType and DistanceSensorType to e2p layout of envsensor.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Use correct editor dialog for ByteArrays in e2p editor.2014-03-23
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Move string generation function for Byte/Bit positions to Util. Support Arrays in packets.2014-03-23
Add SwitchStateExt message (for testing Array functionality in packets primarily).2014-03-23
Simplify generation of access strings for e2p byte and bit offset. Correct offset for Enums.2014-03-23
Correct calculation of byte and bit position in generated e2p header files.2014-03-23
Print a warning if a BoolValue in e2p is not at a byte boundary.2014-03-23
Remove the possibility to have arrays of "Reserved" bits, which make no sense.2014-03-23
Add "Array" as possible data type for e2p layouts. An Array can store a series of one of the other primitive data types. Add an editor for BoolValues to the e2p editor.2014-03-22
Move definition of data types to a separate XSD file, because they are used both in the e2p and the packet metamodel.2014-03-16
add cfg file to gitignore2014-03-16
Implement new flash dialog which remembers the used command line using a file.2014-03-15
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 master_v0.5.0-0-g6adbdc0Download
TAG: Use ATMega328 for TempSensor. Everything else is identical to v0.4.0. 2024-04-25
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Read version from pom.properties file at start up and and show it in the about box. The version is set by the build robot, so official builds now contain the version information.2014-02-10
revert JComboBox constructor to old version which is Java 1.6 compatible2014-02-10
Support (signed) int value in e2p layout, e2p editor and generator.2014-02-09
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
surroud message group header files with defines2014-02-09
minor code cleanup2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
Immediately check default data for validity to avoid wrong error message when saving data to file.2014-02-08
Generate one e2p header file for each block. Avoid repeating the "Hardware" and "Generic" blocks in every device specific header file.2014-01-26
make function public (for E2P generator)2014-01-26
Add annotation in xsd.2014-01-26
Rename E2P config blocks by removing the "Config" suffix to make them consistent with the header files.2014-01-26
create e2p header files in src_common folder2014-01-26
Add thermostat e2p config block. Change device names to the spelling as used in packet definitions.2014-01-26
20140201 master_v0.3.0-0-gac61e5cDownload
TAG: Update of the packet format as described on the homepage. Functions to access the packet data fields easily in the firmware are generated from the packet_layout.xml definition. The code generator is included in the E2P editor. Six message types are defined to support all needed communication sequences. The new packet format also supports more devices (4096 instead of 256). Firmware includes support of the new functions/packet format in all four devices. 2024-04-25
set default values in ByteArrayTextArea and UIntTextArea in constructor so there is already valid data in them when GUI is presented to the user2014-01-18
remove unused imports2014-01-18
improve description of e2p field2014-01-18
correct calculation of packets when they don't have message data2014-01-06
add dimmer message definitions2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
set __MESSAGETYPE variable correctly2014-01-04
fix generation of MessageID enum2014-01-01
Add common set functions for header extensions. Add ENUMs for MessageGroupID and MessageID.2014-01-01
add common access functions for header extensions2014-01-01
update source code generator for data packets / messages to reflect newest XML layout, rename class2013-12-31
rename file2013-12-25
add header extension concept to support different packet types2013-12-25
add packet metamodel file2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
20131117 master_v0.2.0-0-g00adbecDownload
TAG: v0.2.0 supports the new EEPROM layout as also used in the EEPROM editor. These are other main changes: - fix problem with E2P editor and Java7 - fix several E2P editor error messages and improve handling - use fixed JAR filename for E2P editor - set BODLEVEL for all devices (under voltage detection) - add E2P and array acces functions for read/write of specific parts inside bigger blocks - add "unit test" file to test access functions, can be extended later for other tests 2024-04-25
make sure a new e2p file is 1024 bytes in size so it can be read without problems even devicetype is not set yet2013-11-09
set fixed filename for JAR file2013-11-09
fix issue #20 (E2P Editor crashes with null pointer exception when using Java 7)2013-11-06
react on changed DeviceType in the EnumEditor with updating the other editor components on the right side2013-11-06
add e2p support for dimmer2013-11-03
support new e2p layout in powerswitch2013-10-27
correct detection of MC type to flash, change default flash command2013-10-26
remove unused file2013-10-13
Handle the case correctly when E2P file is too short (corrupt).2013-10-12
Add Base Station E2P config block to layout.2013-10-12
Add a e2p config block to e2p layout. Use temperature and brightness sensor settings for configuration of connected sensor type. Implement using the new values to avoid that the firmware hangs (waits forever) when no SHT15 is connected.2013-10-05
20131004 master_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
use .org domain2013-09-22
20130925 master_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_basestation (develop)

20230419 develop_v0.10.1-220-g10c291cDownload
Bugfix: Clear byte after the last byte of the packet, because otherwise it can be decoded incorrectly when the last data is over the byte boundary.2023-04-18
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
20230417 develop_v0.10.1-217-gd4fdd46Download
Align UART output format.2023-04-16
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
20230415 develop_v0.10.1-207-gc2b24f8Download
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
20230414 develop_v0.10.1-205-g3499999Download
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Also list ReceivderID in case of a received Deliver message.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
20230306 develop_v0.10.1-172-gd2c1951Download
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Initialize variables to avoid compiler warning, even they are definitly not used uninitialized according the if-statements.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Clean UART output earlier to clean up the send buffer. Otherwise it overflows when using large (64 byte) packets.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
20230204 develop_v0.10.1-158-g4420133Download
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
Extend message buffer in base station to cover 64 byte messages.2023-01-31
20230130 develop_v0.10.1-148-g6117b55Download
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Remove trailing spaces.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
20221125 develop_v0.10.1-136-g01b4871Download
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20211109 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
20190808 develop_v0.10.1-77-gf75f338Download
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150518 develop_v0.10.1-1-g6c76ffeDownload
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
20150309 develop_v0.9.0-rc.5-44-gf0d2408Download
Truncate trailing 0-bytes when printing received MessageData to make string shorter (therefore speeding up reception).2015-03-08
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Show packet before encoding (slower, but necessary, because encoded bytes can't be displayed correctly anymore).2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
Change spelling to upper case.2015-03-07
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Move LED blink functions. Speed up sending from queue to 0.25s. Remove debug code.2015-03-07
Don't show request queue when adding packet to it. (Speed up from ~0.4s to 0.3s).2015-03-07
Speed up sending packet from queue (from ~1s to ~0,4s) by checking queue immediately after storing packet in it.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
Add generated e2p layout header.2014-09-16
20140901 develop_v0.7.0-rc.1-50-g83885cfDownload
Correct offset for sending AckStatus packet. Change variable names for better readability.2014-08-31
20140818 develop_v0.7.0-rc.1-46-ga3154f5Download
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Fix copying right amount of data from request buffer. (Packets > 16 bytes were not sent correctly.)2014-08-17
Fix truncation of MessageData and calculate packet length correctly.2014-08-17
20140805 develop_v0.7.0-rc.1-35-gdf6c23bDownload
Automatically truncate messages before sending with base station if the rest contains only 0-bytes.2014-08-04
Avoid request queue for broadcast requests (DeviceID == 4095).2014-08-04
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
20140607 develop_v0.5.0-169-g13f9f37Download
Fix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly when they were not acknowledged.2014-06-06
Fix: Only count down the first request per queue. (Before, every timeout was counted down.)2014-06-06
Remove unnecessary block brackets.2014-05-31
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
adapt base station to new message group "weather"2014-04-27
20140428 develop_v0.5.0-92-g0fc1b75Download
adapt base station to new message group "weather"2014-04-27
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
20140316 develop_v0.4.0-rc.1-13-gfe83608Download
add flash script for linux2014-03-15
20140311 develop_v0.4.0-rc.1-11-gd863310Download
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 develop_v0.4.0-rc.1-5-geb18bbaDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
20140309 develop_v0.4.0-rc.1-3-gd84432dDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 develop_v0.3.0-rc.1-46-g2feca00Download
update comments2014-02-23
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
20140217 develop_v0.3.0-rc.1-41-ga4931caDownload
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
20140216 develop_v0.3.0-rc.1-39-gdb2e3fdDownload
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
20140215 develop_v0.3.0-rc.1-35-g7f1d2daDownload
Use (signed) int value in firmware for OSCCAL value.2014-02-14
20140212 develop_v0.3.0-rc.1-33-g9c70cc8Download
add missing UInt e2p access function2014-02-12
20140210 develop_v0.3.0-rc.1-30-gcb53db0Download
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
20140209 develop_v0.3.0-rc.1-24-gc67c8c9Download
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 develop_v0.2.0-77-gc639872Download
correct use of special value that marks unused request_queue slots (necessary because DeviceIDs >= 255 are possible)2014-01-18
20140118 develop_v0.2.0-76-gafdf34dDownload
move function inc_packetcounter to util file and use it everywhere2014-01-18
20140118 develop_v0.2.0-70-g96f8915Download
remember data size in request buffer and use it when sending retries2014-01-17
20140117 develop_v0.2.0-65-g64fe766Download
improve function description2014-01-16
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use util_init function2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
20140107 develop_v0.2.0-53-gc2dc11eDownload
correct calculation of packets when they don't have message data2014-01-06
correct handling of 32 bytes packets in request queue2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
20140106 develop_v0.2.0-43-g1dda5f2Download
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
20140105 develop_v0.2.0-39-gbd2cda2Download
support new packet format in basestation (without request queue)2014-01-04
20140102 develop_v0.2.0-35-g0d87767Download
updated header files2014-01-01
make base station process new packet format2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
20131206 develop_v0.2.0-21-gb85f684Download
read CRC from position 02013-12-05
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
20131127 develop_v0.2.0-17-g903d137Download
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
20131113 develop_v0.2.0-rc.3-8-ge04ad3aDownload
Merge branch 'release-v0.2.0' into develop2013-11-12
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_basestation.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131104 develop_v0.1.1-37-g0d81754Download
re-adding value in comment2013-11-03
Merge branch 'bod' of https://github.com/Inhumierer/smarthomatic into Inhumierer-bod2013-11-03
add more e2p default files (according new layout)2013-11-03
BOD level fuses at basestation and tempsensor2013-11-03
cleanup: remove unnecessary cast2013-10-27
20131027 develop_v0.1.1-21-gfed23aeDownload
read OSCCAL mode using new E2P access function2013-10-26
correct serial output string2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
20131014 develop_v0.1.1-13-g732fff0Download
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Use device specific E2P layout in base station.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 develop_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
20131003 develop_v0.1-15-g762dd6aDownload
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Add default e2p file for basestation.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
20131002 develop_v0.1-6-g042f6b6Download
Add readme for building binary packages.2013-10-01
20130926 develop_v0.1-4-gbc0a281Download
add fuses.c files to editor project file2013-09-25
Corrected fuse settings for base station.2013-09-25
20130925 develop_v0.1-1-gf02bdd5Download
use .org domain2013-09-22
20130925 develop_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25
Add header files for e2p positions (generated by e2p editor). Files are unused a.t.m.2013-09-21

shc_basestation (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Bugfix: Clear byte after the last byte of the packet, because otherwise it can be decoded incorrectly when the last data is over the byte boundary.2023-04-18
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Align UART output format.2023-04-16
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Also list ReceivderID in case of a received Deliver message.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Initialize variables to avoid compiler warning, even they are definitly not used uninitialized according the if-statements.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Clean UART output earlier to clean up the send buffer. Otherwise it overflows when using large (64 byte) packets.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
Extend message buffer in base station to cover 64 byte messages.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Remove trailing spaces.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Truncate trailing 0-bytes when printing received MessageData to make string shorter (therefore speeding up reception).2015-03-08
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Show packet before encoding (slower, but necessary, because encoded bytes can't be displayed correctly anymore).2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
Change spelling to upper case.2015-03-07
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Move LED blink functions. Speed up sending from queue to 0.25s. Remove debug code.2015-03-07
Don't show request queue when adding packet to it. (Speed up from ~0.4s to 0.3s).2015-03-07
Speed up sending packet from queue (from ~1s to ~0,4s) by checking queue immediately after storing packet in it.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Add generated e2p layout header.2014-09-16
Correct offset for sending AckStatus packet. Change variable names for better readability.2014-08-31
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Fix copying right amount of data from request buffer. (Packets > 16 bytes were not sent correctly.)2014-08-17
Fix truncation of MessageData and calculate packet length correctly.2014-08-17
Automatically truncate messages before sending with base station if the rest contains only 0-bytes.2014-08-04
Avoid request queue for broadcast requests (DeviceID == 4095).2014-08-04
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Fix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly when they were not acknowledged.2014-06-06
Fix: Only count down the first request per queue. (Before, every timeout was counted down.)2014-06-06
Remove unnecessary block brackets.2014-05-31
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140506 release_v0.6.0-rc.1-0-g8900514Download
adapt base station to new message group "weather"2014-04-27
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 release_v0.4.0-rc.1-0-g2feca00Download
update comments2014-02-23
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 release_v0.3.0-rc.1-0-gc639872Download
correct use of special value that marks unused request_queue slots (necessary because DeviceIDs >= 255 are possible)2014-01-18
move function inc_packetcounter to util file and use it everywhere2014-01-18
remember data size in request buffer and use it when sending retries2014-01-17
improve function description2014-01-16
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use util_init function2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
correct handling of 32 bytes packets in request queue2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
make base station process new packet format2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
read CRC from position 02013-12-05
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_basestation.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131113 release_v0.2.0-rc.3-0-gb499f61Download
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
20131106 release_v0.2.0-rc.1-0-g93d6114Download

shc_basestation (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Bugfix: Clear byte after the last byte of the packet, because otherwise it can be decoded incorrectly when the last data is over the byte boundary.2023-04-18
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Align UART output format.2023-04-16
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Also list ReceivderID in case of a received Deliver message.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Initialize variables to avoid compiler warning, even they are definitly not used uninitialized according the if-statements.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Clean UART output earlier to clean up the send buffer. Otherwise it overflows when using large (64 byte) packets.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
Extend message buffer in base station to cover 64 byte messages.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Remove trailing spaces.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Truncate trailing 0-bytes when printing received MessageData to make string shorter (therefore speeding up reception).2015-03-08
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Show packet before encoding (slower, but necessary, because encoded bytes can't be displayed correctly anymore).2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
Change spelling to upper case.2015-03-07
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Move LED blink functions. Speed up sending from queue to 0.25s. Remove debug code.2015-03-07
Don't show request queue when adding packet to it. (Speed up from ~0.4s to 0.3s).2015-03-07
Speed up sending packet from queue (from ~1s to ~0,4s) by checking queue immediately after storing packet in it.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Add generated e2p layout header.2014-09-16
Correct offset for sending AckStatus packet. Change variable names for better readability.2014-08-31
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Fix copying right amount of data from request buffer. (Packets > 16 bytes were not sent correctly.)2014-08-17
Fix truncation of MessageData and calculate packet length correctly.2014-08-17
Automatically truncate messages before sending with base station if the rest contains only 0-bytes.2014-08-04
Avoid request queue for broadcast requests (DeviceID == 4095).2014-08-04
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Fix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly when they were not acknowledged.2014-06-06
Fix: Only count down the first request per queue. (Before, every timeout was counted down.)2014-06-06
Remove unnecessary block brackets.2014-05-31
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
Fix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly when they were not acknowledged.2014-06-06
Fix: Only count down the first request per queue. (Before, every timeout was counted down.)2014-06-06
Remove unnecessary block brackets.2014-05-31
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25
adapt base station to new message group "weather"2014-04-27
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 master_v0.5.0-0-g6adbdc0Download
TAG: Use ATMega328 for TempSensor. Everything else is identical to v0.4.0. 2024-04-25
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
update comments2014-02-23
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140201 master_v0.3.0-0-gac61e5cDownload
TAG: Update of the packet format as described on the homepage. Functions to access the packet data fields easily in the firmware are generated from the packet_layout.xml definition. The code generator is included in the E2P editor. Six message types are defined to support all needed communication sequences. The new packet format also supports more devices (4096 instead of 256). Firmware includes support of the new functions/packet format in all four devices. 2024-04-25
correct use of special value that marks unused request_queue slots (necessary because DeviceIDs >= 255 are possible)2014-01-18
move function inc_packetcounter to util file and use it everywhere2014-01-18
remember data size in request buffer and use it when sending retries2014-01-17
improve function description2014-01-16
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use util_init function2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
correct handling of 32 bytes packets in request queue2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
make base station process new packet format2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
read CRC from position 02013-12-05
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_basestation.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131117 master_v0.2.0-0-g00adbecDownload
TAG: v0.2.0 supports the new EEPROM layout as also used in the EEPROM editor. These are other main changes: - fix problem with E2P editor and Java7 - fix several E2P editor error messages and improve handling - use fixed JAR filename for E2P editor - set BODLEVEL for all devices (under voltage detection) - add E2P and array acces functions for read/write of specific parts inside bigger blocks - add "unit test" file to test access functions, can be extended later for other tests 2024-04-25
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
re-adding value in comment2013-11-03
Merge branch 'bod' of https://github.com/Inhumierer/smarthomatic into Inhumierer-bod2013-11-03
add more e2p default files (according new layout)2013-11-03
BOD level fuses at basestation and tempsensor2013-11-03
cleanup: remove unnecessary cast2013-10-27
read OSCCAL mode using new E2P access function2013-10-26
correct serial output string2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Use device specific E2P layout in base station.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 master_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Add default e2p file for basestation.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
Add readme for building binary packages.2013-10-01
add fuses.c files to editor project file2013-09-25
Corrected fuse settings for base station.2013-09-25
use .org domain2013-09-22
20130925 master_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_dimmer (develop)

20230417 develop_v0.10.1-217-gd4fdd46Download
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
20230415 develop_v0.10.1-207-gc2b24f8Download
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
20230130 develop_v0.10.1-148-g6117b55Download
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
20221125 develop_v0.10.1-136-g01b4871Download
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20211109 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
20190808 develop_v0.10.1-77-gf75f338Download
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Change comment about NRES pin.2015-09-27
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
20150524 develop_v0.10.1-6-g29ed99bDownload
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
20150104 develop_v0.7.0-rc.1-126-g9e692dfDownload
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
20140804 develop_v0.7.0-rc.1-32-ga2ffbe9Download
Change Debug message to reduce duplicate info.2014-08-03
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Set BODLEVEL and correct comment.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
20140612 develop_v0.5.0-174-g4e55434Download
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
20140420 develop_v0.5.0-79-gfb7996dDownload
Send dimmer status after button press and after animation is finished.2014-04-19
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
20140405 develop_v0.4.0-rc.1-29-ge71461fDownload
Use 1k3 instead of 1k2 resistor (0,1%), which is more common. Adopt lookup table accordingly. Change power off timeout to 3s.2014-04-04
20140324 develop_v0.4.0-rc.1-26-gd924cd9Download
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
20140316 develop_v0.4.0-rc.1-13-gfe83608Download
add flash script for linux2014-03-15
20140311 develop_v0.4.0-rc.1-11-gd863310Download
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 develop_v0.4.0-rc.1-5-geb18bbaDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
20140309 develop_v0.4.0-rc.1-3-gd84432dDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
20140217 develop_v0.3.0-rc.1-41-ga4931caDownload
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
20140216 develop_v0.3.0-rc.1-39-gdb2e3fdDownload
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
20140215 develop_v0.3.0-rc.1-35-g7f1d2daDownload
Use (signed) int value in firmware for OSCCAL value.2014-02-14
20140212 develop_v0.3.0-rc.1-33-g9c70cc8Download
add missing UInt e2p access function2014-02-12
20140210 develop_v0.3.0-rc.1-30-gcb53db0Download
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
20140209 develop_v0.3.0-rc.1-24-gc67c8c9Download
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
remove unused file in project file2014-01-18
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 develop_v0.2.0-76-gafdf34dDownload
Correct usage of requested brightness value. Send status message.2014-01-18
move function inc_packetcounter to util file and use it everywhere2014-01-18
remove unnecessary ifdefs2014-01-18
20140118 develop_v0.2.0-70-g96f8915Download
don't send status so often2014-01-17
20140117 develop_v0.2.0-65-g64fe766Download
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
20140107 develop_v0.2.0-53-gc2dc11eDownload
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
20131206 develop_v0.2.0-21-gb85f684Download
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
20131113 develop_v0.2.0-rc.3-8-ge04ad3aDownload
Merge branch 'release-v0.2.0' into develop2013-11-12
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131106 develop_v0.1.1-39-g93d6114Download
20131105 develop_v0.1.1-37-g0d81754Download
add e2p support for dimmer2013-11-03
add more e2p default files (according new layout)2013-11-03
add needed include2013-11-03
read OSCCAL mode using new E2P access function2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
20131014 develop_v0.1.1-13-g732fff0Download
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 develop_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
20131003 develop_v0.1-15-g762dd6aDownload
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
correct comment about fuses2013-10-02
20131002 develop_v0.1-6-g042f6b6Download
Add readme for building binary packages.2013-10-01
20130925 develop_v0.1-1-gf02bdd5Download
use .org domain2013-09-22
20130925 develop_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25
Add header files for e2p positions (generated by e2p editor). Files are unused a.t.m.2013-09-21
add files2013-09-18

shc_dimmer (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Change comment about NRES pin.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change Debug message to reduce duplicate info.2014-08-03
Set BODLEVEL and correct comment.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140506 release_v0.6.0-rc.1-0-g8900514Download
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Send dimmer status after button press and after animation is finished.2014-04-19
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
Use 1k3 instead of 1k2 resistor (0,1%), which is more common. Adopt lookup table accordingly. Change power off timeout to 3s.2014-04-04
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 release_v0.4.0-rc.1-0-g2feca00Download
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
remove unused file in project file2014-01-18
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 release_v0.3.0-rc.1-0-gc639872Download
Correct usage of requested brightness value. Send status message.2014-01-18
move function inc_packetcounter to util file and use it everywhere2014-01-18
remove unnecessary ifdefs2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131113 release_v0.2.0-rc.3-0-gb499f61Download
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
20131106 release_v0.2.0-rc.1-0-g93d6114Download

shc_dimmer (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Change comment about NRES pin.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change Debug message to reduce duplicate info.2014-08-03
Set BODLEVEL and correct comment.2014-07-23
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Send dimmer status after button press and after animation is finished.2014-04-19
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
Use 1k3 instead of 1k2 resistor (0,1%), which is more common. Adopt lookup table accordingly. Change power off timeout to 3s.2014-04-04
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 master_v0.5.0-0-g6adbdc0Download
TAG: Use ATMega328 for TempSensor. Everything else is identical to v0.4.0. 2024-04-25
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
remove unused file in project file2014-01-18
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140201 master_v0.3.0-0-gac61e5cDownload
TAG: Update of the packet format as described on the homepage. Functions to access the packet data fields easily in the firmware are generated from the packet_layout.xml definition. The code generator is included in the E2P editor. Six message types are defined to support all needed communication sequences. The new packet format also supports more devices (4096 instead of 256). Firmware includes support of the new functions/packet format in all four devices. 2024-04-25
Correct usage of requested brightness value. Send status message.2014-01-18
move function inc_packetcounter to util file and use it everywhere2014-01-18
remove unnecessary ifdefs2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131117 master_v0.2.0-0-g00adbecDownload
TAG: v0.2.0 supports the new EEPROM layout as also used in the EEPROM editor. These are other main changes: - fix problem with E2P editor and Java7 - fix several E2P editor error messages and improve handling - use fixed JAR filename for E2P editor - set BODLEVEL for all devices (under voltage detection) - add E2P and array acces functions for read/write of specific parts inside bigger blocks - add "unit test" file to test access functions, can be extended later for other tests 2024-04-25
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
add e2p support for dimmer2013-11-03
add more e2p default files (according new layout)2013-11-03
add needed include2013-11-03
read OSCCAL mode using new E2P access function2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 master_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
correct comment about fuses2013-10-02
Add readme for building binary packages.2013-10-01
use .org domain2013-09-22
20130925 master_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_powerswitch (develop)

20230417 develop_v0.10.1-217-gd4fdd46Download
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Modify the RFM12 reset / power pin logic in the power switch device. Since power is directly connected to the I/O pin, it needs to be changed.2023-04-16
Call new rfm12_send_wait_led function immediately when packets shall be sent. Use new rfm12_delay20 function and therefore speed up sending packets.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
20230415 develop_v0.10.1-207-gc2b24f8Download
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
20230130 develop_v0.10.1-148-g6117b55Download
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
20221125 develop_v0.10.1-136-g01b4871Download
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Update spaces in PowerSwitch Makefile.2022-10-03
20220924 develop_v0.10.1-120-gef383c9Download
Send status message when logical switch state changed.2022-09-23
Correct that only 2 relais states are set (only 8 bit available).2022-09-23
Fix calculation of version_status_cycle.2022-09-22
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Put also the relais state as a result from (requested) command state, physical switch state and switch delay, into the digitalporttimeout message.2022-09-21
20220920 develop_v0.10.1-114-g28f653fDownload
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220917 develop_v0.10.1-113-g4d8b9e0Download
Fix missing breaks in switch-case statement for SWITCHMODE function of powerswitch.2022-09-16
20211109 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
20191021 develop_v0.10.1-91-g6efd3deDownload
Send status of manual switches also when status is sent (not only in the Ack).2019-08-10
Read state of manual switch (if configured) and update relais state accordingly.2019-08-09
Reorder switch modes as they are in a more consistent order.2019-08-09
Calculate relais state out or cmd state and switch state.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Read new switch mode from e2p.2019-08-08
Fix trailing spaces.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Added defines for additional manual switch.2019-08-08
20190808 develop_v0.10.1-77-gf75f338Download
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Update comment.2015-09-30
Increase delay for reset / power down time.2015-09-27
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
20150524 develop_v0.10.1-6-g29ed99bDownload
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150222 develop_v0.7.0-rc.1-152-gfd61ff8Download
Fix writing timeout value of 0 to e2p when timeout was counted down completely. The power switch was toggling state again after timeout after power loss even if this was not intended. (Thanks to wurststulle for the bug report.)2015-02-21
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Remove debug output.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
20150104 develop_v0.7.0-rc.1-126-g9e692dfDownload
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
20141010 develop_v0.7.0-rc.1-108-g563a108Download
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Limit number of switches as defined when preparing message to send.2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Check relais number to switch and ignore call when number higher than relais count.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
20141003 develop_v0.7.0-rc.1-82-gaabe7b1Download
Implement support for digitalpin and digitalpintimeout messages.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
20140928 develop_v0.7.0-rc.1-78-g85f7defDownload
Update max number of switches in e2p to 6.2014-09-27
Support up to 6 switches in power switch. Use new messages DigitalPort(Timeout) / DigitalPin(Timeout) (partly implemented).2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
20140804 develop_v0.7.0-rc.1-32-ga2ffbe9Download
Change Debug message to reduce duplicate info.2014-08-03
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
20140612 develop_v0.5.0-174-g4e55434Download
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Add configuration options for BMP0852014-03-25
20140326 develop_v0.4.0-rc.1-27-g5c78670Download
Make switch state and timeout persistent against power loss.2014-03-25
20140324 develop_v0.4.0-rc.1-26-gd924cd9Download
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
20140316 develop_v0.4.0-rc.1-13-gfe83608Download
add flash script for linux2014-03-15
20140311 develop_v0.4.0-rc.1-11-gd863310Download
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 develop_v0.4.0-rc.1-5-geb18bbaDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
20140309 develop_v0.4.0-rc.1-3-gd84432dDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 develop_v0.3.0-rc.1-46-g2feca00Download
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Fix using timeout correctly even when switch state is already as requested.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
20140217 develop_v0.3.0-rc.1-41-ga4931caDownload
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
20140216 develop_v0.3.0-rc.1-39-gdb2e3fdDownload
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
20140215 develop_v0.3.0-rc.1-35-g7f1d2daDownload
Use (signed) int value in firmware for OSCCAL value.2014-02-14
20140212 develop_v0.3.0-rc.1-33-g9c70cc8Download
add missing UInt e2p access function2014-02-12
20140210 develop_v0.3.0-rc.1-30-gcb53db0Download
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
20140209 develop_v0.3.0-rc.1-24-gc67c8c9Download
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 develop_v0.2.0-76-gafdf34dDownload
move function inc_packetcounter to util file and use it everywhere2014-01-18
20140118 develop_v0.2.0-70-g96f8915Download
don't send status so often2014-01-17
20140117 develop_v0.2.0-65-g64fe766Download
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
20140116 develop_v0.2.0-55-g9848939Download
update default e2p file2014-01-15
20140107 develop_v0.2.0-53-gc2dc11eDownload
correct calculation of packets when they don't have message data2014-01-06
correct reaction on SET, GET and SETGET message types2014-01-06
support new packet format in dimmer2014-01-06
check eeprom compatibility at startup2014-01-06
Show switch state with LED. Let LED blink if timeout is set.2014-01-06
add button support for manual switching2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
20140106 develop_v0.2.0-43-g1dda5f2Download
correct limiting of signed integer values after reading from byte array2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
20140105 develop_v0.2.0-39-gbd2cda2Download
support new packet format in basestation (without request queue)2014-01-04
optimize debug output2014-01-04
add OSCCAL support2014-01-04
20140102 develop_v0.2.0-35-g0d87767Download
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
20131206 develop_v0.2.0-21-gb85f684Download
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
20131118 develop_v0.2.0-rc.3-13-ge4904a4Download
use pin PC0 for relais / transistor2013-11-16
use 8 Mhz at power switch2013-11-16
set correct MCU for flashing fuses2013-11-16
20131113 develop_v0.2.0-rc.3-8-ge04ad3aDownload
Merge branch 'release-v0.2.0' into develop2013-11-12
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131106 develop_v0.1.1-39-g93d6114Download
20131104 develop_v0.1.1-37-g0d81754Download
correct comment2013-11-03
set BODLEVEL fuse2013-11-03
add more e2p default files (according new layout)2013-11-03
20131028 develop_v0.1.1-23-g3645da1Download
support new e2p layout in powerswitch2013-10-27
read OSCCAL mode using new E2P access function2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Use device specific E2P layout in base station.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 develop_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
20131003 develop_v0.1-15-g762dd6aDownload
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
20131002 develop_v0.1-6-g042f6b6Download
Add readme for building binary packages.2013-10-01
add fuses.c files to editor project file2013-09-25
20130925 develop_v0.1-1-gf02bdd5Download
use .org domain2013-09-22
20130925 develop_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25
Add header files for e2p positions (generated by e2p editor). Files are unused a.t.m.2013-09-21
add files2013-09-18

shc_powerswitch (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Modify the RFM12 reset / power pin logic in the power switch device. Since power is directly connected to the I/O pin, it needs to be changed.2023-04-16
Call new rfm12_send_wait_led function immediately when packets shall be sent. Use new rfm12_delay20 function and therefore speed up sending packets.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Update spaces in PowerSwitch Makefile.2022-10-03
Send status message when logical switch state changed.2022-09-23
Correct that only 2 relais states are set (only 8 bit available).2022-09-23
Fix calculation of version_status_cycle.2022-09-22
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Put also the relais state as a result from (requested) command state, physical switch state and switch delay, into the digitalporttimeout message.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
Fix missing breaks in switch-case statement for SWITCHMODE function of powerswitch.2022-09-16
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Send status of manual switches also when status is sent (not only in the Ack).2019-08-10
Read state of manual switch (if configured) and update relais state accordingly.2019-08-09
Reorder switch modes as they are in a more consistent order.2019-08-09
Calculate relais state out or cmd state and switch state.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Read new switch mode from e2p.2019-08-08
Fix trailing spaces.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Added defines for additional manual switch.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Update comment.2015-09-30
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150221 release_v0.9.0-rc.3-0-ga4771bdDownload
Fix writing timeout value of 0 to e2p when timeout was counted down completely. The power switch was toggling state again after timeout after power loss even if this was not intended. (Thanks to wurststulle for the bug report.)2015-02-21
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Remove debug output.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Limit number of switches as defined when preparing message to send.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Check relais number to switch and ignore call when number higher than relais count.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Implement support for digitalpin and digitalpintimeout messages.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support up to 6 switches in power switch. Use new messages DigitalPort(Timeout) / DigitalPin(Timeout) (partly implemented).2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change Debug message to reduce duplicate info.2014-08-03
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140506 release_v0.6.0-rc.1-0-g8900514Download
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Make switch state and timeout persistent against power loss.2014-03-25
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 release_v0.4.0-rc.1-0-g2feca00Download
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Fix using timeout correctly even when switch state is already as requested.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 release_v0.3.0-rc.1-0-gc639872Download
move function inc_packetcounter to util file and use it everywhere2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
update default e2p file2014-01-15
correct calculation of packets when they don't have message data2014-01-06
correct reaction on SET, GET and SETGET message types2014-01-06
support new packet format in dimmer2014-01-06
check eeprom compatibility at startup2014-01-06
Show switch state with LED. Let LED blink if timeout is set.2014-01-06
add button support for manual switching2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
optimize debug output2014-01-04
add OSCCAL support2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
use pin PC0 for relais / transistor2013-11-16
use 8 Mhz at power switch2013-11-16
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131113 release_v0.2.0-rc.3-0-gb499f61Download
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
20131106 release_v0.2.0-rc.1-0-g93d6114Download

shc_powerswitch (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Modify the RFM12 reset / power pin logic in the power switch device. Since power is directly connected to the I/O pin, it needs to be changed.2023-04-16
Call new rfm12_send_wait_led function immediately when packets shall be sent. Use new rfm12_delay20 function and therefore speed up sending packets.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Update spaces in PowerSwitch Makefile.2022-10-03
Send status message when logical switch state changed.2022-09-23
Correct that only 2 relais states are set (only 8 bit available).2022-09-23
Fix calculation of version_status_cycle.2022-09-22
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Put also the relais state as a result from (requested) command state, physical switch state and switch delay, into the digitalporttimeout message.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
Fix missing breaks in switch-case statement for SWITCHMODE function of powerswitch.2022-09-16
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Send status of manual switches also when status is sent (not only in the Ack).2019-08-10
Read state of manual switch (if configured) and update relais state accordingly.2019-08-09
Reorder switch modes as they are in a more consistent order.2019-08-09
Calculate relais state out or cmd state and switch state.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Read new switch mode from e2p.2019-08-08
Fix trailing spaces.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Added defines for additional manual switch.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Update comment.2015-09-30
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Fix writing timeout value of 0 to e2p when timeout was counted down completely. The power switch was toggling state again after timeout after power loss even if this was not intended. (Thanks to wurststulle for the bug report.)2015-02-21
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Remove debug output.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Limit number of switches as defined when preparing message to send.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Check relais number to switch and ignore call when number higher than relais count.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Implement support for digitalpin and digitalpintimeout messages.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support up to 6 switches in power switch. Use new messages DigitalPort(Timeout) / DigitalPin(Timeout) (partly implemented).2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change Debug message to reduce duplicate info.2014-08-03
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
rename e2p values2014-06-15
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Add header file for GPIO message group.2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Add config options for SRF022014-03-31
Make switch state and timeout persistent against power loss.2014-03-25
Add configuration options for BMP0852014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
correct calculation of negative values in e2p/array access function2014-03-11
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 master_v0.5.0-0-g6adbdc0Download
TAG: Use ATMega328 for TempSensor. Everything else is identical to v0.4.0. 2024-04-25
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Fix using timeout correctly even when switch state is already as requested.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140201 master_v0.3.0-0-gac61e5cDownload
TAG: Update of the packet format as described on the homepage. Functions to access the packet data fields easily in the firmware are generated from the packet_layout.xml definition. The code generator is included in the E2P editor. Six message types are defined to support all needed communication sequences. The new packet format also supports more devices (4096 instead of 256). Firmware includes support of the new functions/packet format in all four devices. 2024-04-25
move function inc_packetcounter to util file and use it everywhere2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
update default e2p file2014-01-15
correct calculation of packets when they don't have message data2014-01-06
correct reaction on SET, GET and SETGET message types2014-01-06
support new packet format in dimmer2014-01-06
check eeprom compatibility at startup2014-01-06
Show switch state with LED. Let LED blink if timeout is set.2014-01-06
add button support for manual switching2014-01-06
use ATMega328 for power switch to allow more features and debugging output2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
beautify debug output2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
optimize debug output2014-01-04
add OSCCAL support2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
use pin PC0 for relais / transistor2013-11-16
use 8 Mhz at power switch2013-11-16
set correct MCU for flashing fuses2013-11-16
Merge branch 'release-v0.2.0' into develop2013-11-12
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131117 master_v0.2.0-0-g00adbecDownload
TAG: v0.2.0 supports the new EEPROM layout as also used in the EEPROM editor. These are other main changes: - fix problem with E2P editor and Java7 - fix several E2P editor error messages and improve handling - use fixed JAR filename for E2P editor - set BODLEVEL for all devices (under voltage detection) - add E2P and array acces functions for read/write of specific parts inside bigger blocks - add "unit test" file to test access functions, can be extended later for other tests 2024-04-25
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
correct comment2013-11-03
set BODLEVEL fuse2013-11-03
add more e2p default files (according new layout)2013-11-03
support new e2p layout in powerswitch2013-10-27
read OSCCAL mode using new E2P access function2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Use device specific E2P layout in base station.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131004 master_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
Add readme for building binary packages.2013-10-01
add fuses.c files to editor project file2013-09-25
use .org domain2013-09-22
20130925 master_v0.1-0-g0697553Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_controller (develop)

20240421 develop_v0.13.0-1-ge40fd24Download
Auto-increment line (y pos) when the width of the LCD is reached. This saves to send an explicit newline character to go to the next line and allows to send two full lines (2x20 characters) on a small display in one message.2024-04-20
20230729 develop_v0.10.1-248-g8b230f4Download

shc_controller (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download

shc_controller (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25

shc_envsensor (develop)

20230415 develop_v0.10.1-207-gc2b24f8Download
Switch off UART_DEBUG as default in EnvSensor. Somehow it was on by mistake.2023-04-14
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
20230306 develop_v0.10.1-172-gd2c1951Download
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
20230130 develop_v0.10.1-148-g6117b55Download
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20211109 develop_v0.10.1-111-gfd16790Download
20191118 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Fix makefile to consider sps30.2019-11-16
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
20191027 develop_v0.10.1-92-gc1ef1b9Download
Bugfix: Fix support for more than one analog pin. The averaging function was changing the measured value to 0 for all pins except the first one.2019-10-26
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Add possibility to override onewire port configuration.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Correct project file (WinAVR).2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Correct description.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150416 develop_v0.9.0-rc.5-47-g8f5b2e0Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 develop_v0.9.0-rc.5-9-gc173af6Download
Minor code beautification. Add line break.2015-02-28
envsensor: init i2c when only temperature is used2015-02-28
20150208 develop_v0.7.0-rc.1-145-g9768f76Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Fix calculation of negative temperatures with DS18B20 sensor.2015-02-07
20150202 develop_v0.7.0-rc.1-143-g9df91ffDownload
Support DS18B20.2015-02-01
20150112 develop_v0.7.0-rc.1-139-g428fc33Download
Updated header files with corrected wake-up values.2015-01-11
Describe wake-up values in comment correctly.2015-01-11
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Enable global interrupts while measurement is running. Change measurement time to 800ms. Check status of 1-wire reset.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
20150104 develop_v0.7.0-rc.1-126-g9e692dfDownload
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
20141026 develop_v0.7.0-rc.1-114-gbaa2906Download
Fix: Reset measurement counter after sending DigitalPort message.2014-10-25
Don't send other message (e.g. temperature) on pin wake-up. Send either DigitalPort message (if trigger fired as configured) or no message.2014-10-25
Remember DI state right before going to power down to not miss any "button press" (if a button is connected to a digital input).2014-10-14
20141014 develop_v0.7.0-rc.1-109-g0355e0aDownload
Fix configuration of the internal pull-up resistors.2014-10-13
20141010 develop_v0.7.0-rc.1-108-g563a108Download
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Correct using the right message ID (DigitalPort instead of DigitalPin).2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Change back battery measuring interval to correct value.2014-10-04
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
20140928 develop_v0.7.0-rc.1-78-g85f7defDownload
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140706 develop_v0.5.0-213-gda643faDownload
Use variable value and avoid reading value from e2p a 2nd time.2014-07-05
20140629 develop_v0.5.0-206-g139bd55Download
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Add trigger function for AnalogInput.2014-06-28
20140628 develop_v0.5.0-202-g46d3e24Download
Fix: send DigitalInput status after the AveragingInterval is reached in any case.2014-06-27
Use di[i].pin instead of di[i].port to check if the DigitalPin is unused (same as with AnalogPins).2014-06-27
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
20140625 develop_v0.5.0-197-gd0bcd85Download
Merge two if statements.2014-06-24
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
20140617 develop_v0.5.0-191-g1eab4a0Download
Reduce idle power consumption to about 21µA by connecting the pull-up resistors for the battery voltage and photocell to a separate pin (PB6) that is switched on only when measuring.2014-06-16
20140616 develop_v0.5.0-190-gfad02fdDownload
optimize debug output2014-06-15
Add measuring counter to struct measurement_t. Use functions to count measurement interval and calculate the average value.2014-06-15
rename variable2014-06-15
rename variables2014-06-15
rename e2p values2014-06-15
20140615 develop_v0.5.0-185-g42629faDownload
Correct calculation of measurement cycle for distance sensor.2014-06-14
Avoid sensing messages about values that were never measured.2014-06-14
Update default e2p file.2014-06-14
Use measuring intervals and averaging counts in firmware.2014-06-14
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
20140612 develop_v0.5.0-174-g4e55434Download
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
20140606 develop_v0.5.0-167-ga39a990Download
Wait for stable voltage level only if pull-ups were switched on now.2014-06-05
Use sbi macro as everywhere.2014-06-05
Distinguish wake-up by pin change and RFM12B wake-up to ensure usual measuring interval for other sensors on pin change.2014-06-05
Use PCI for immediate response on pins watched Use the Pin Change Interrupts to wake up uC when a watched pin changes the state during sleep mode. If using PCI, don't switch off the pullup resistors.2014-05-29
20140526 develop_v0.5.0-132-g219892dDownload
Set DIDR0 for ADC channels, switch off digital input buffers to reduce ADC noise and to save power.2014-05-25
Switch on pull up resistor for digital pins only when measuring to reduce power consumption.2014-05-25
add header define2014-05-25
20140511 develop_v0.5.0-127-g1e35889Download
Add header file for GPIO message group.2014-05-11
DigitalPin send cycle: Send every 7 min. in cycle mode. Send immediately in "OnChange" mode and after 28 min.2014-05-11
send out digital pin status directly after power up2014-05-11
Add support for digital pins in the envsensor.2014-05-11
20140507 develop_v0.5.0-110-gada1ea5Download
Remap SHT15 SCL pin from PC4 to PC2 to avoid problems with I2C.2014-05-06
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140503 develop_v0.5.0-106-g123966dDownload
Support SHT15 in parallel to I2C sensors. Correct calculation of average values before sending.2014-05-02
20140427 develop_v0.5.0-91-g2f1d533Download
revert measurement interval2014-04-26
correct calculation of humidity2014-04-26
beautify code2014-04-26
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
20140406 develop_v0.5.0-38-gc24ce15Download
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Enable SRF02 in envsensor2014-03-31
SRF02: Add config options for SRF022014-03-31
SRF02: Add driver files2014-03-31
Update license information2014-03-31
Adapt BMP085 driver to new i2c interface Right now the barometric pressure data is not included in the sensor message because after including the additional bytes the CRC check failed in the basestation. In the current develop branch is ongoing work to redefine the message format, after finalizing I'm happy to add a patch to adapt it. The barometric pressure data can be seen on the temperature sensor debug port (just #define UART_DEBUG and recompile). Code size: text data bss dec hex BMP085: 12626 289 544 13459 3493 v0.2.0: 10260 289 509 11058 2b32 Conflicts: firmware/shc_envsensor/shc_envsensor.c2014-03-31
Enable barometric sensor2014-01-18
Add configuration options for BMP0852014-03-25
Add BMP085 driver files2014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
20140316 develop_v0.4.0-rc.1-13-gfe83608Download
add flash script for linux2014-03-15
20140311 develop_v0.4.0-rc.1-11-gd863310Download
use e2p/array access function in lm75 driver2014-03-11
correct calculation of negative values in e2p/array access function2014-03-11
20140309 develop_v0.4.0-rc.1-9-g449cbe2Download
Move lm75_get_meas_time_ms function to header file and change to static inline to 1) avoid compile error under linux ("expects a compile time integer constant") and 2) save some flash size (~130 bytes).2014-03-09
rename e2p file2014-03-09
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 develop_v0.4.0-rc.1-5-geb18bbaDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
20140309 develop_v0.4.0-rc.1-3-gd84432dDownload
change tempsensor MC model to ATMega328 in flash script2014-03-09
change default e2p to 1024 bytes size2014-03-09
20140309 develop_v0.4.0-rc.1-1-g2759da9Download
change microcontroller model to ATMega328 for the tempsensor2014-03-09
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
20140217 develop_v0.3.0-rc.1-41-ga4931caDownload
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
20140216 develop_v0.3.0-rc.1-39-gdb2e3fdDownload
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
20140215 develop_v0.3.0-rc.1-35-g7f1d2daDownload
Use (signed) int value in firmware for OSCCAL value.2014-02-14
20140212 develop_v0.3.0-rc.1-33-g9c70cc8Download
add missing UInt e2p access function2014-02-12
20140210 develop_v0.3.0-rc.1-30-gcb53db0Download
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
20140209 develop_v0.3.0-rc.1-24-gc67c8c9Download
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
20140203 develop_v0.3.0-rc.1-19-gfa9e967Download
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 develop_v0.2.0-76-gafdf34dDownload
move function inc_packetcounter to util file and use it everywhere2014-01-18
don't send status so often2014-01-17
20140117 develop_v0.2.0-65-g64fe766Download
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
20140107 develop_v0.2.0-53-gc2dc11eDownload
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
20140106 develop_v0.2.0-43-g1dda5f2Download
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
support request queue for sending requests with new packet format2014-01-05
20140105 develop_v0.2.0-39-gbd2cda2Download
support new packet format in basestation (without request queue)2014-01-04
20140102 develop_v0.2.0-35-g0d87767Download
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
20140101 develop_v0.2.0-28-gb080f33Download
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
20131206 develop_v0.2.0-21-gb85f684Download
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
20131113 develop_v0.2.0-rc.3-8-ge04ad3aDownload
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_tempsensor.c2013-11-12
Update shc_tempsensor.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131104 develop_v0.1.1-37-g0d81754Download
correct comment2013-11-03
correct comment2013-11-03
Merge branch 'bod' of https://github.com/Inhumierer/smarthomatic into Inhumierer-bod2013-11-03
use deviceID 20 (same as devicetype) as default2013-11-03
tempsensor e2p file device id set to 20 (0x14) - was 0x0, giving error signal2013-11-03
BOD level fuses at basestation and tempsensor2013-11-03
20131028 develop_v0.1.1-23-g3645da1Download
cleanup: remove unnecessary cast2013-10-27
20131027 develop_v0.1.1-21-gfed23aeDownload
set measure timeout back to normal value2013-10-26
read OSCCAL mode using new E2P access function2013-10-26
support E2P positions as defined in new e2p layout2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
20131014 develop_v0.1.1-13-g732fff0Download
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Make UART debugging work again.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
20131006 develop_v0.1.1-4-gbd3d701Download
Add a e2p config block to e2p layout. Use temperature and brightness sensor settings for configuration of connected sensor type. Implement using the new values to avoid that the firmware hangs (waits forever) when no SHT15 is connected.2013-10-05
20131004 develop_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
20131003 develop_v0.1-15-g762dd6aDownload
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Add default e2p file for temp sensor.2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
20131002 develop_v0.1-6-g042f6b6Download
Add readme for building binary packages.2013-10-01
20130925 develop_v0.1-1-gf02bdd5Download
use .org domain2013-09-22
Add header files for e2p positions (generated by e2p editor). Files are unused a.t.m.2013-09-21
add files2013-09-18
20130924 develop_v0.1-0-gf02bdd5Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_envsensor (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Switch off UART_DEBUG as default in EnvSensor. Somehow it was on by mistake.2023-04-14
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Fix makefile to consider sps30.2019-11-16
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Bugfix: Fix support for more than one analog pin. The averaging function was changing the measured value to 0 for all pins except the first one.2019-10-26
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Add possibility to override onewire port configuration.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Correct project file (WinAVR).2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Correct description.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150228 release_v0.9.0-rc.6-0-g9c554b6Download
Minor code beautification. Add line break.2015-02-28
envsensor: init i2c when only temperature is used2015-02-28
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Fix calculation of negative temperatures with DS18B20 sensor.2015-02-07
Support DS18B20.2015-02-01
Updated header files with corrected wake-up values.2015-01-11
Describe wake-up values in comment correctly.2015-01-11
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Enable global interrupts while measurement is running. Change measurement time to 800ms. Check status of 1-wire reset.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Fix: Reset measurement counter after sending DigitalPort message.2014-10-25
Don't send other message (e.g. temperature) on pin wake-up. Send either DigitalPort message (if trigger fired as configured) or no message.2014-10-25
Remember DI state right before going to power down to not miss any "button press" (if a button is connected to a digital input).2014-10-14
Fix configuration of the internal pull-up resistors.2014-10-13
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Correct using the right message ID (DigitalPort instead of DigitalPin).2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Change back battery measuring interval to correct value.2014-10-04
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Use variable value and avoid reading value from e2p a 2nd time.2014-07-05
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Add trigger function for AnalogInput.2014-06-28
Fix: send DigitalInput status after the AveragingInterval is reached in any case.2014-06-27
Use di[i].pin instead of di[i].port to check if the DigitalPin is unused (same as with AnalogPins).2014-06-27
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Merge two if statements.2014-06-24
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
Reduce idle power consumption to about 21µA by connecting the pull-up resistors for the battery voltage and photocell to a separate pin (PB6) that is switched on only when measuring.2014-06-16
optimize debug output2014-06-15
Add measuring counter to struct measurement_t. Use functions to count measurement interval and calculate the average value.2014-06-15
rename variable2014-06-15
rename variables2014-06-15
rename e2p values2014-06-15
Correct calculation of measurement cycle for distance sensor.2014-06-14
Avoid sensing messages about values that were never measured.2014-06-14
Update default e2p file.2014-06-14
Use measuring intervals and averaging counts in firmware.2014-06-14
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Wait for stable voltage level only if pull-ups were switched on now.2014-06-05
Use sbi macro as everywhere.2014-06-05
Distinguish wake-up by pin change and RFM12B wake-up to ensure usual measuring interval for other sensors on pin change.2014-06-05
Use PCI for immediate response on pins watched Use the Pin Change Interrupts to wake up uC when a watched pin changes the state during sleep mode. If using PCI, don't switch off the pullup resistors.2014-05-29
Set DIDR0 for ADC channels, switch off digital input buffers to reduce ADC noise and to save power.2014-05-25
Switch on pull up resistor for digital pins only when measuring to reduce power consumption.2014-05-25
add header define2014-05-25
Add header file for GPIO message group.2014-05-11
DigitalPin send cycle: Send every 7 min. in cycle mode. Send immediately in "OnChange" mode and after 28 min.2014-05-11
send out digital pin status directly after power up2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Remap SHT15 SCL pin from PC4 to PC2 to avoid problems with I2C.2014-05-06
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140506 release_v0.6.0-rc.1-0-g8900514Download
Support SHT15 in parallel to I2C sensors. Correct calculation of average values before sending.2014-05-02
revert measurement interval2014-04-26
correct calculation of humidity2014-04-26
beautify code2014-04-26
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Enable SRF02 in envsensor2014-03-31
SRF02: Add config options for SRF022014-03-31
SRF02: Add driver files2014-03-31
Update license information2014-03-31
Adapt BMP085 driver to new i2c interface Right now the barometric pressure data is not included in the sensor message because after including the additional bytes the CRC check failed in the basestation. In the current develop branch is ongoing work to redefine the message format, after finalizing I'm happy to add a patch to adapt it. The barometric pressure data can be seen on the temperature sensor debug port (just #define UART_DEBUG and recompile). Code size: text data bss dec hex BMP085: 12626 289 544 13459 3493 v0.2.0: 10260 289 509 11058 2b32 Conflicts: firmware/shc_envsensor/shc_envsensor.c2014-03-31
Enable barometric sensor2014-01-18
Add configuration options for BMP0852014-03-25
Add BMP085 driver files2014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
use e2p/array access function in lm75 driver2014-03-11
correct calculation of negative values in e2p/array access function2014-03-11
Move lm75_get_meas_time_ms function to header file and change to static inline to 1) avoid compile error under linux ("expects a compile time integer constant") and 2) save some flash size (~130 bytes).2014-03-09
rename e2p file2014-03-09
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
change tempsensor MC model to ATMega328 in flash script2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140224 release_v0.4.0-rc.1-0-g2feca00Download
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140118 release_v0.3.0-rc.1-0-gc639872Download
move function inc_packetcounter to util file and use it everywhere2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_tempsensor.c2013-11-12
Update shc_tempsensor.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131113 release_v0.2.0-rc.3-0-gb499f61Download
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
20131106 release_v0.2.0-rc.1-0-g93d6114Download

shc_envsensor (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Switch off UART_DEBUG as default in EnvSensor. Somehow it was on by mistake.2023-04-14
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Fix makefile to consider sps30.2019-11-16
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Bugfix: Fix support for more than one analog pin. The averaging function was changing the measured value to 0 for all pins except the first one.2019-10-26
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Add possibility to override onewire port configuration.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Correct project file (WinAVR).2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Correct description.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Minor code beautification. Add line break.2015-02-28
envsensor: init i2c when only temperature is used2015-02-28
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Fix calculation of negative temperatures with DS18B20 sensor.2015-02-07
Support DS18B20.2015-02-01
Updated header files with corrected wake-up values.2015-01-11
Describe wake-up values in comment correctly.2015-01-11
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Enable global interrupts while measurement is running. Change measurement time to 800ms. Check status of 1-wire reset.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Fix: Reset measurement counter after sending DigitalPort message.2014-10-25
Don't send other message (e.g. temperature) on pin wake-up. Send either DigitalPort message (if trigger fired as configured) or no message.2014-10-25
Remember DI state right before going to power down to not miss any "button press" (if a button is connected to a digital input).2014-10-14
Fix configuration of the internal pull-up resistors.2014-10-13
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Correct using the right message ID (DigitalPort instead of DigitalPin).2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Change back battery measuring interval to correct value.2014-10-04
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Add generated e2p layout header.2014-09-16
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Use variable value and avoid reading value from e2p a 2nd time.2014-07-05
Add an array of binary values about analog input pins to the AnalogPin message. The values tell if the current voltage is above or below the configured threshold. This makes it possible to have differently configured sensors (with different thresholds) that share the same control logic in the server application (FHEM).2014-06-28
Add trigger function for AnalogInput.2014-06-28
Fix: send DigitalInput status after the AveragingInterval is reached in any case.2014-06-27
Use di[i].pin instead of di[i].port to check if the DigitalPin is unused (same as with AnalogPins).2014-06-27
Rename array.2014-06-27
Add initial AnalogInput support. Trigger modes are missing.2014-06-27
Commented out resetting the wake-up timer when sending data with the RFM12 module. Waking up in fixed intervals is what's expected in the EnvSensor.2014-06-27
Merge two if statements.2014-06-24
Rename and reorder enum values to make DigitalInput and AnalogInput similar.2014-06-24
typo corrected2014-06-24
Add Up/Down to OnChange DI pin watching2014-06-24
Reduce idle power consumption to about 21µA by connecting the pull-up resistors for the battery voltage and photocell to a separate pin (PB6) that is switched on only when measuring.2014-06-16
optimize debug output2014-06-15
Add measuring counter to struct measurement_t. Use functions to count measurement interval and calculate the average value.2014-06-15
rename variable2014-06-15
rename variables2014-06-15
rename e2p values2014-06-15
Correct calculation of measurement cycle for distance sensor.2014-06-14
Avoid sensing messages about values that were never measured.2014-06-14
Update default e2p file.2014-06-14
Use measuring intervals and averaging counts in firmware.2014-06-14
Add E2P values for measuring and averaging intervals for DigitalInput and AnalogInput.2014-06-14
Support configurable wake-up time.2014-06-14
Add configuration options for AnalogInput sensor and wake up intervals. Both are not used yet.2014-06-14
Fix: Change device_id type to uint16_t (to support values > 255).2014-06-11
Remove / move include statements.2014-06-10
Use enum type instead of integer type in function signature.2014-06-10
Include needed header file.2014-06-10
cosmetic2014-06-10
Wait for stable voltage level only if pull-ups were switched on now.2014-06-05
Use sbi macro as everywhere.2014-06-05
Distinguish wake-up by pin change and RFM12B wake-up to ensure usual measuring interval for other sensors on pin change.2014-06-05
Use PCI for immediate response on pins watched Use the Pin Change Interrupts to wake up uC when a watched pin changes the state during sleep mode. If using PCI, don't switch off the pullup resistors.2014-05-29
Set DIDR0 for ADC channels, switch off digital input buffers to reduce ADC noise and to save power.2014-05-25
Switch on pull up resistor for digital pins only when measuring to reduce power consumption.2014-05-25
add header define2014-05-25
Add header file for GPIO message group.2014-05-11
DigitalPin send cycle: Send every 7 min. in cycle mode. Send immediately in "OnChange" mode and after 28 min.2014-05-11
send out digital pin status directly after power up2014-05-11
Add support for digital pins in the envsensor.2014-05-11
Remap SHT15 SCL pin from PC4 to PC2 to avoid problems with I2C.2014-05-06
Add SRF02 (ultrasonic range sensor) support, incl. voltage converter switching at PD5.2014-05-06
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25
Support SHT15 in parallel to I2C sensors. Correct calculation of average values before sending.2014-05-02
revert measurement interval2014-04-26
correct calculation of humidity2014-04-26
beautify code2014-04-26
Add separate functions for measuring values and for preparing a message to send. Send one message whenever an average threshold is reached. Use new message groups "weather" and "environment". Support barometric pressure message.2014-04-26
Change e2p config: Select barometric pressure sensor BMP085 explicitly also as temp sensor, or use another sensor instead.2014-04-05
Merge BMP085 support from branch 'Roadyweb-SRF02_v0.5.0' into develop.2014-04-05
SRF02: Enable SRF02 in envsensor2014-03-31
SRF02: Add config options for SRF022014-03-31
SRF02: Add driver files2014-03-31
Update license information2014-03-31
Adapt BMP085 driver to new i2c interface Right now the barometric pressure data is not included in the sensor message because after including the additional bytes the CRC check failed in the basestation. In the current develop branch is ongoing work to redefine the message format, after finalizing I'm happy to add a patch to adapt it. The barometric pressure data can be seen on the temperature sensor debug port (just #define UART_DEBUG and recompile). Code size: text data bss dec hex BMP085: 12626 289 544 13459 3493 v0.2.0: 10260 289 509 11058 2b32 Conflicts: firmware/shc_envsensor/shc_envsensor.c2014-03-31
Enable barometric sensor2014-01-18
Add configuration options for BMP0852014-03-25
Add BMP085 driver files2014-03-25
Generate ByteArray access functions instead of using defines. Use them for reading AesKeys in all firmwares.2014-03-23
Update generated header files.2014-03-23
Use new e2p layout in powerswitch firmware.2014-03-23
add flash script for linux2014-03-15
use e2p/array access function in lm75 driver2014-03-11
correct calculation of negative values in e2p/array access function2014-03-11
Move lm75_get_meas_time_ms function to header file and change to static inline to 1) avoid compile error under linux ("expects a compile time integer constant") and 2) save some flash size (~130 bytes).2014-03-09
rename e2p file2014-03-09
rename tempsensor to envsensor2014-03-09
add I2C and DS7505 support2014-03-09
20140309 master_v0.5.0-0-g6adbdc0Download
TAG: Use ATMega328 for TempSensor. Everything else is identical to v0.4.0. 2024-04-25
change tempsensor MC model to ATMega328 in flash script2014-03-09
change default e2p to 1024 bytes size2014-03-09
change microcontroller model to ATMega328 for the tempsensor2014-03-09
20140302 master_v0.4.0-0-gb07c72bDownload
TAG: The generated e2p access functions are improved to allow simpler use. Signed ints are now supported as e2p values. All firmwares built by the build robot now contain a version number compiled into the firmware. The version is sent by each device about once a day. 2024-04-25
Rename rfm12_sendbuf function to rfm12_send_bufx, which better represents a function name and also tells that bufx is the buffer used in the function.2014-02-23
Remove sendbuf and use cmdbuf from main loop directly, thus removing one unnecessary buffer.2014-02-23
Rename GitHash parameter in version message to Hash. This is better to be independent of Git (even if Git is currently used).2014-02-23
Use avr-gcc names for integer variables and functions instead of C naming.2014-02-16
Make functions static to save a little flash size.2014-02-16
Add cleanbuild target to makefile. Change memory info format to the AVR specific one.2014-02-16
Split up of util lib into util_hw.c|h and util_generic.c|h.2014-02-16
Move hex_to_uint... functions from uart to util lib.2014-02-16
Move print_signed and print_bytearray to uart module.2014-02-16
Use (signed) int value in firmware for OSCCAL value.2014-02-14
add missing UInt e2p access function2014-02-12
add descriptions for data fields in header files2014-02-09
Generate nice e2p access functions and use them everywhere.2014-02-09
move include statement2014-02-09
surroud message group header files with defines2014-02-09
Support displaying version info at startup and sending version info packet once a day in all devices.2014-02-08
add define for header file2014-02-08
fix cbc decryption2014-02-08
avoid clash with definitions in inttypes.h by using it in aes256.h instead of using own declaration2014-02-08
correct battery percentage calculation in tempsensor depending on used sensor2014-02-02
Use separate e2p header files in every device and in util module instead of the old header files. Add initial compilable source code for thermostat device.2014-01-26
beautify if statement in makefile2014-01-18
Merge branch 'GoHoHa-master' into develop2014-01-18
Merge branch 'master' of https://github.com/GoHoHa/smarthomatic into GoHoHa-master2014-01-18
added skeleton for thermostat HR252013-11-06
Typo change "RFM12"2013-11-04
20140201 master_v0.3.0-0-gac61e5cDownload
TAG: Update of the packet format as described on the homepage. Functions to access the packet data fields easily in the firmware are generated from the packet_layout.xml definition. The code generator is included in the E2P editor. Six message types are defined to support all needed communication sequences. The new packet format also supports more devices (4096 instead of 256). Firmware includes support of the new functions/packet format in all four devices. 2024-04-25
move function inc_packetcounter to util file and use it everywhere2014-01-18
don't send status so often2014-01-17
move common function rfm12_sendbuf to util2014-01-16
rename function printSigned to print_signed2014-01-16
move function print_bytearray to util module2014-01-16
use bool parameter instead of int2014-01-16
rename function2014-01-16
print out OSCCAL info (if UART debugging active)2014-01-16
Reorder functions. Rename internal functions.2014-01-16
add powerswitch in flash script2014-01-16
correct calculation of packets when they don't have message data2014-01-06
support new packet format in dimmer2014-01-06
change LED blink pattern at startup2014-01-06
correct limiting of signed integer values after reading from byte array2014-01-05
correct calculation of humidity value2014-01-05
support request queue for sending requests with new packet format2014-01-05
support new packet format in basestation (without request queue)2014-01-04
updated header files2014-01-01
Bugfix for eeprom/array read function. Unused upper bits were not cleared, resulting in wrong return values sometimes.2014-01-01
initial implementation for support of new packet format in powerswitch2014-01-01
add common access functions for header extensions2014-01-01
Set UART_DEBUG and UART_RX defines in makefile instead of main source code file. Remove ifdefs for UART debugging and let the compiler remove unused calls when defines are not set to simplify source code.2013-12-31
use new generated functions in tempsensor device2013-12-31
simplify int access function2013-12-31
add generated header files2013-12-31
use new packet format in temp sensor2013-12-05
Add packet metamodel and first version of packet catalog file. Generate headers and use them in temp sensor.2013-12-05
Merge pull request #36 from Inhumierer/develop Update util.c2013-11-26
Update util.c Fixed typo in PrintSigned2013-11-23
set correct MCU for flashing fuses2013-11-16
Merge branch 'develop' of https://github.com/Inhumierer/smarthomatic into develop2013-11-12
Update shc_tempsensor.c2013-11-12
Update shc_tempsensor.c2013-11-12
Update util.c2013-11-12
Update util.h2013-11-12
20131117 master_v0.2.0-0-g00adbecDownload
TAG: v0.2.0 supports the new EEPROM layout as also used in the EEPROM editor. These are other main changes: - fix problem with E2P editor and Java7 - fix several E2P editor error messages and improve handling - use fixed JAR filename for E2P editor - set BODLEVEL for all devices (under voltage detection) - add E2P and array acces functions for read/write of specific parts inside bigger blocks - add "unit test" file to test access functions, can be extended later for other tests 2024-04-25
fix severe bug that the old EEPROM position was used to write the packetcounter2013-11-12
correct comment2013-11-03
correct comment2013-11-03
Merge branch 'bod' of https://github.com/Inhumierer/smarthomatic into Inhumierer-bod2013-11-03
use deviceID 20 (same as devicetype) as default2013-11-03
tempsensor e2p file device id set to 20 (0x14) - was 0x0, giving error signal2013-11-03
BOD level fuses at basestation and tempsensor2013-11-03
cleanup: remove unnecessary cast2013-10-27
set measure timeout back to normal value2013-10-26
read OSCCAL mode using new E2P access function2013-10-26
support E2P positions as defined in new e2p layout2013-10-26
add e2p compatibility check, read e2p values for deviceID, packetCounter, AES key position according E2P layout2013-10-26
add access to arrays to former eeprom access functions2013-10-26
make function signature C conform2013-10-14
add e2p access functions (not used in firmware currently) with working unit test2013-10-13
add error function that lets the LED blink forever2013-10-13
Make UART debugging work again.2013-10-12
Remove ifdefs in temp sensor code. Use E2P values instead. Use E2P values in util.h and include device specific e2p definition there.2013-10-12
Add a e2p config block to e2p layout. Use temperature and brightness sensor settings for configuration of connected sensor type. Implement using the new values to avoid that the firmware hangs (waits forever) when no SHT15 is connected.2013-10-05
20131004 master_v0.1.1-0-ga263f2fDownload
TAG: Updated and working version with corrected fuse settings, but old EEPROM and package format. 2024-04-25
Autodetect microcontroller type in flash script.2013-10-04
Add flash batch files for Windows and move readme to common "extra" directory.2013-10-04
Correct makefile command to write fuse bytes into binary files. It was working on Windows, but not Linux.2013-10-04
Merge branch 'master' of https://github.com/Inhumierer/smarthomatic into develop2013-10-03
Add default e2p file for temp sensor.2013-10-03
Using avrdude raw option for writing e2p file is the better choice than autodetection.2013-10-03
Add info about how to flash your ATMega in README.2013-10-03
Create binary files for fuses, because these are supported by avrdude (and text files with hex strings are not).2013-10-03
Remove avrdude options from makefile. User should create a avrdude.rc / ~/.avrduderc with options.2013-10-03
Update uart.h typo corrected2013-10-03
Add readme for building binary packages.2013-10-01
use .org domain2013-09-22
Add header files for e2p positions (generated by e2p editor). Files are unused a.t.m.2013-09-21
add files2013-09-18
20130924 master_v0.1-0-gf02bdd5Download
TAG: stable version with initial eeprom and message format 2024-04-25

shc_rgb_dimmer (develop)

20230417 develop_v0.10.1-217-gd4fdd46Download
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
20230415 develop_v0.10.1-207-gc2b24f8Download
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
20230311 develop_v0.10.1-182-g117be7eDownload
Remove duplicated function.2023-03-10
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Show received bytes when debugging.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
20230301 develop_v0.10.1-164-ge6a0db6Download
Limit effect to 1 since others are not implemented yet.2023-02-28
Add warning regarding Makefile parameter.2023-02-28
Reorder lines.2023-02-06
20230206 develop_v0.10.1-159-g58ff07dDownload
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
20230204 develop_v0.10.1-158-g4420133Download
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Improve startup sound.2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
Correct timer divider.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Remove unused defines.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
20221125 develop_v0.10.1-136-g01b4871Download
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20211109 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
20190808 develop_v0.10.1-77-gf75f338Download
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
20150524 develop_v0.10.1-6-g29ed99bDownload
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
20150303 develop_v0.9.0-rc.5-21-g052a55fDownload
Send brightness status as well from time to time.2015-03-02
Add user_brightness_factor (additionally to fixed e2p brightness_factor).2015-03-02
Merge commit '108897f' with some modifications into develop (support for brightness).2015-03-02
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
rgb_dimmer: add brightness message2015-02-13
disable COM0A1 and COM0B1 when value is 02015-02-13
20150302 develop_v0.9.0-rc.5-10-ge456fb5Download
Use phase correct PWM for both timers. This seems to give us the full range of 0..100% duty cycle.2015-03-01
20150223 develop_v0.7.0-rc.1-153-gc56586aDownload
Fix that LEDs of RGB dimmer are completely off when color is 0 by using inverting mode of fast PWM instead of non-inverting mode.2015-02-22
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
20150104 develop_v0.7.0-rc.1-126-g9e692dfDownload
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141118 develop_v0.7.0-rc.1-118-g4913df8Download
Set fast PWM mode correctly (not phase-correct PWM). Use prescaler of 64 (results in 480 Hz PWM).2014-11-17
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
At power on, show colors shortly to tell user that power is connected (status LED may not be visible).2014-10-03
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
Add generated e2p layout header.2014-09-16
20140916 develop_v0.7.0-rc.1-55-g911328bDownload
Use a (fixed) exponential (-like) PWM lookup table to make the brightness levels appear linear.2014-09-15
20140915 develop_v0.7.0-rc.1-54-ge8c6d07Download
Switch off debug mode as default.2014-09-14
Shut off test mode. Rename anim_cycles to timer_cycles. Reduce debug output.2014-09-14
Divide the animation into an initialization part and a much more simpler animation. Add description about initialization. Implement a test function to debug the initialization and animation sequence.2014-09-13
20140902 develop_v0.7.0-rc.1-51-g07764fdDownload
Correct forward animation for endless loop and loop with limited amount of cycles.2014-09-01
20140901 develop_v0.7.0-rc.1-50-g83885cfDownload
Remember currently active color (from a running animation) and use it as start color for a new animation.2014-08-31
20140818 develop_v0.7.0-rc.1-46-ga3154f5Download
Implement color animation (not working completely yet). React on ColorAnimation message. Send cyclic status.2014-08-17
20140805 develop_v0.7.0-rc.1-35-gdf6c23bDownload
Fix sending correct color in AckStatus.2014-08-04
20140804 develop_v0.7.0-rc.1-32-ga2ffbe9Download
Dump message values correctly.2014-08-03
Change Debug message to reduce duplicate info.2014-08-03
Set color when color message received.2014-08-03
20140729 develop_v0.7.0-rc.1-28-gdfaa0ebDownload
Change time values.2014-07-28
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
Improve animation function (not finished yet).2014-07-26
Add lookup table for timer2 cycles.2014-07-23
Correct color calculation.2014-07-23
Add animation functions. Initialize animation timer (timer 2).2014-07-23
Support receiving coloranimation message.2014-07-22
Remove unused code.2014-07-22
Change e2p / packet functions to use bit offsets as parameter everywhere instead of a pair "byte offset + bit offset within byte". This is more consistent to the general concept about considering e2p / packet data as a bitstream and having data values of any bit length at any position. Additionally, this reduces code size, because the needed byte and bit offset is now calculated internally in the e2p / packet access functions.2014-07-22
Fix unit test to run without avr lib.2014-07-21
20140722 develop_v0.7.0-rc.1-16-g4335fd0Download
Add color animation message, using the new "structured array".2014-07-21
Support color message.2014-07-20
Remove unused file.2014-07-20
20140713 develop_v0.7.0-rc.1-11-g59b2953Download
Remove ColorMixMode, because it leads to unwanted effects and contradicts to the usual RGB mixing. Use BrightnessFactor to limit the brightness.2014-07-12
Support brightness factor.2014-07-12
Add BrightnessFactor value to adjust overall brightness.2014-07-12
Use non inverting mode for PWMs.2014-07-12
20140712 develop_v0.7.0-rc.1-5-g752c167Download

shc_rgb_dimmer (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Remove duplicated function.2023-03-10
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Show received bytes when debugging.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Add warning regarding Makefile parameter.2023-02-28
Reorder lines.2023-02-06
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Improve startup sound.2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
Correct timer divider.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Remove unused defines.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Send brightness status as well from time to time.2015-03-02
Add user_brightness_factor (additionally to fixed e2p brightness_factor).2015-03-02
Merge commit '108897f' with some modifications into develop (support for brightness).2015-03-02
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
Use phase correct PWM for both timers. This seems to give us the full range of 0..100% duty cycle.2015-03-01
rgb_dimmer: add brightness message2015-02-13
disable COM0A1 and COM0B1 when value is 02015-02-13
20150222 release_v0.9.0-rc.4-0-g43f9adcDownload
Fix that LEDs of RGB dimmer are completely off when color is 0 by using inverting mode of fast PWM instead of non-inverting mode.2015-02-22
20150208 release_v0.9.0-rc.1-0-ga724183Download
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Set fast PWM mode correctly (not phase-correct PWM). Use prescaler of 64 (results in 480 Hz PWM).2014-11-17
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
At power on, show colors shortly to tell user that power is connected (status LED may not be visible).2014-10-03
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140916 release_v0.8.0-rc.1-0-gfe3f648Download

shc_rgb_dimmer (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Remove duplicated function.2023-03-10
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Show received bytes when debugging.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Add warning regarding Makefile parameter.2023-02-28
Reorder lines.2023-02-06
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Improve startup sound.2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
Correct timer divider.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Remove unused defines.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Use new Watchdog mechanism at other devices.2015-10-30
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Update default e2p files to current layout.2015-06-22
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Send brightness status as well from time to time.2015-03-02
Add user_brightness_factor (additionally to fixed e2p brightness_factor).2015-03-02
Merge commit '108897f' with some modifications into develop (support for brightness).2015-03-02
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
Use phase correct PWM for both timers. This seems to give us the full range of 0..100% duty cycle.2015-03-01
rgb_dimmer: add brightness message2015-02-13
disable COM0A1 and COM0B1 when value is 02015-02-13
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
Fix that LEDs of RGB dimmer are completely off when color is 0 by using inverting mode of fast PWM instead of non-inverting mode.2015-02-22
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
Updated header files with corrected wake-up values.2015-01-11
Send error Ack when MessageID is not supported. This is to reduce traffic (and react according spec). Without this function, the e.g. BaseStation would retry the "Set" request and produce more traffic if a request is not supported by a device.2015-01-04
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Fix receiver ID range to 16 bits.2015-01-03
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
Set fast PWM mode correctly (not phase-correct PWM). Use prescaler of 64 (results in 480 Hz PWM).2014-11-17
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
At power on, show colors shortly to tell user that power is connected (status LED may not be visible).2014-10-03
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
Correct cyclic sending of battery status. Add debug function for raw value. Move MIN function to util_generic.h.2014-10-03
Update max number of switches in e2p to 6.2014-09-27
Support reading battery voltage without any external resistors. The accuracy is basically the same (~ 4.3mV at 2.2V, 8mV at 3.0V against 3,4mV with external resistors).2014-09-27
Enter initialization after long button press. Remember dry threshold after averaging some values. Support averaging intervals and wakeup times from e2p config. Send battery status after given amount of cycles.2014-09-27
Change GPIO message format.2014-09-22
Add humidity message.2014-09-21
Use ATMega328 instead of 168.2014-09-21
Add soil moisture meter firmware (first version - does not measure anything).2014-09-20
Use ATMega168p instead of ATmega168 (for soil moisture meter). Be aware that you need a newer version of avrdude, because the avrdude.conf of older versions does not contain the 168p.2014-09-20
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25

shc_soil_moisture_meter (develop)

20230130 develop_v0.10.1-148-g6117b55Download
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
20220926 develop_v0.10.1-125-gff6b760Download
Remove unused variable.2022-09-25
Add test code to measure when debugging. Remove unnecessary spaces at line endings.2022-09-25
Send status only once at startup.2022-09-25
Fix calculation of battery percentage.2022-09-25
Add asm source file to Makefile.2022-09-25
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20211109 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
20180318 develop_v0.10.1-72-g66baf5eDownload
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
20160411 develop_v0.10.1-46-g1537623Download
Update default e2p file.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151030 develop_v0.10.1-34-g0578486Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
20150607 develop_v0.10.1-7-g98d388fDownload
Switch RFM interrupt off and on in reset function.2015-06-06
20150524 develop_v0.10.1-6-g29ed99bDownload
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
20150303 develop_v0.9.0-rc.5-21-g052a55fDownload
Send DeviceInfo and Battery status twice after start up (inserting battery). Minor code beautifications.2015-03-02
Show number of measurements to take in debug message.2015-03-01
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
Rename DS18S20 sensor type to DS18x20, because this is a common name meaning DS18S20 and DS18B20 support.2015-02-07
20150112 develop_v0.7.0-rc.1-139-g428fc33Download
Remove unused variables. Use led_blink function. Add debug output.2015-01-11
Updated header files with corrected wake-up values.2015-01-11
20150111 develop_v0.7.0-rc.1-135-g2083b6fDownload
Make sure to send version after startup (fix). Prepare messages only in functions and send in main loop. Remove unused variables.2015-01-10
Go to sleep when button pressed at startup to check for idle current. The RFM12 is not initialized and may not have been soldered when the test is done.2015-01-10
Rename functions from "...version..." to "...deviceinfo..." according to the message name.2015-01-04
Support HTU21D temperature/humidity sensor (I2C).2015-01-04
Add 1-wire implementation to support DS18S20 temperature sensor. Currently supports only 1 sensor.2015-01-03
Added path (commented out by default) to specify compiler binaries as suggested by arohde in forums.2015-01-01
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
Allow multiple enum definitions in e2p and packet definition files as long as they are identical. Implement "DeviceInfo" message which includes DeviceType and version info and mark old "Version" message as deprecated.2014-11-16
20141109 develop_v0.7.0-rc.1-115-g0286fe4Download
Implement that reported values are smoothed when they jump up and down in a short time.2014-11-08
Exclude BOD disable in sleep for ATMega329 which does not support it.2014-10-09
Remove generated pkg_header_calc_crc32 function. Use rfm12_send_bufx() in util_hw.h instead, which will now also set the CRC32.2014-10-09
20141007 develop_v0.7.0-rc.1-101-g8e8903cDownload
Truncate and calc CRC32 in rfm12_send_bufx function. Don't use CRC function separately. Fix calculation of truncated messages.2014-10-06
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
Trim trailing zero bytes in packet before encryption. Results in smaller amount of data to send in some cases and therefore to fewer collisions and lower battery usage.2014-10-04
Rewrite ADC conversion functions to get correct values after changing reference voltage, which is used for the new battery voltage measurement (without external resistors).2014-10-04
20141004 develop_v0.7.0-rc.1-89-g3a7160eDownload
Switch off BOD in power down to reduce sleep current to ~1.6µA (instead of ~19µA). The BOD is enabled when the device is active, so writing garbage to e2p is prevented.2014-10-03
Remove unnecessary c and h files which are not needed anymore, because the Makefiles are changed to place all temporary files in the build subdirectory of the firmware to build.2014-10-03
Use AVR-Crypto lib with ASM imlplementation of AES instead of the C implementation. This speeds up encoding and decoding times by a factor of at least 50 (incl. loading the AES key). This is especially relevant for low speed devices (1 MHz) like the EnvSensor to reduce power consumption, because encoding a 16 byte block now takes <20ms instead of ~750ms. The Makefiles are changed so that all temporary files are stored under the Build path of the device.2014-10-03
20141003 develop_v0.7.0-rc.1-83-ga00fde3Download

shc_soil_moisture_meter (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Remove unused variable.2022-09-25
Add test code to measure when debugging. Remove unnecessary spaces at line endings.2022-09-25
Send status only once at startup.2022-09-25
Fix calculation of battery percentage.2022-09-25
Add asm source file to Makefile.2022-09-25
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Update default e2p file.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Send DeviceInfo and Battery status twice after start up (inserting battery). Minor code beautifications.2015-03-02
Show number of measurements to take in debug message.2015-03-01
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150208 release_v0.9.0-rc.1-0-ga724183Download

shc_soil_moisture_meter (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
Correct animation timer speed for Controller device (since it's running on 20 MHz and not 8 Mhz CPU clock).2023-05-28
Change microcontroller model used in Controller device to ATMega1284. Support 16 instead of 8 menu options, since we have now more E2P space.2023-05-11
Support ATMega1284 in makefile.2023-05-11
Support display_backlight function in controller device.2023-05-09
Support up to 32 lines in the text message of the virtual display (= 8 pages).2023-04-25
Update e2p layout to support longer and more menu entries, saving last selected indexes and backlight option.2023-04-25
Extend max. virtual pages to 4.2023-04-20
Allow to configure in e2p the text shown when sending the menu options. Reorder an e2p value.2023-04-18
Instead of switching on the LED when sending a packet, the LED is now switched off instead for 150ms when it was on before. This ensures LED blinking is always visible.2023-04-16
Move common code to send data and wait until it's sent to new include file. Reduce retries to send menu selection in controller.2023-04-16
Improve handling of collision detection timing. With the usual 20ms cycle for rfm12_tick in the main loop of all devices, the checks were too seldom to detect a signal safely. Additionally, the loop count of 200 was much too large, so packets were sent out only after 4s after the air channel was used. For the controller device to function properly, this is improved to have adequate free air channel detection and quicker broadcasts of the deliver Ack from the base station.2023-04-16
Add rfm12_tx_status function to allow detecting if a packet in the buffer is completely sent.2023-04-16
Reduce free air time before sending with RFM12. This is to help quicker ACK (answers) when sending a Deliver message. Also call rfm12_tick within a loop which switches on the LED for 200ms when sending.2023-04-14
Update message description.2023-04-13
Support Deliver Ack in basestation.2023-04-13
Add sound (key tone) option for controller in e2p.2023-04-11
Add controller message group to send menu selection.2023-04-11
Correct reserved block size in e2p for SoilMoistureMeter.2023-04-11
Controller update: Support LCD. Support menu with user options. Support buttons to select menu items.2023-04-11
Reduce "Format" attribute of "Text" message again to 4 bits.2023-03-12
Change "Text" message format so the text bytes are aligned. Saving one bit doesn't make the messages smaller.2023-03-12
Add Devicetype Controller.2023-03-12
Support LED and speaker in controller.2023-03-10
Change order of X and Y coordinates in "Text" message.2023-03-10
Add brightness factor to controller E2P layout.2023-03-10
Implement missing ByteArray access functions.2023-03-10
Extend uartbuf, since a whole line that shall be sent via UART to e.g. FHEM has to be stored to calculate its CRC.2023-03-05
Explain buffer size in comment.2023-03-05
Add warning about possible buffer overflow when making too many UART_PUT*_B calls.2023-03-05
Remove temporary debug messages.2023-03-05
Extend the command buffer to hold the command string from user to hold large packets. This requires 128 bytes now. Extend as well the UART RX buffer size, since these extended long strings are entered as well quickly (e.g. by FHEM). Otherwise, some bytes in the UART buffer would be lost.2023-03-05
Limit effect to 1 since others are not implemented yet.2023-02-28
Use a more generic effect parameter instead of a "slide" parameter for the melody.2023-02-05
In RGB Dimmer device, implement processing of new messages "Tone" and "Melody" of new message group "Audio".2023-02-03
Add melody test (debug) function.2023-02-03
Support melody "slide" mode.2023-02-03
Use correct time value from array. The wrong one was used, so the animation was too slow.2023-02-03
E Calculate and initialize the melody in the same way as the RGB LED animation. Use common functions.2023-02-03
Rename many variables. Define a struct to hold the animation/melody configurations. Move data to PROGMEM to reduce needed RAM. Add PWM values for tones at 20 MHz clock speed.2023-02-01
Define new messages for Controller and RGB Dimmer device.2023-01-31
HW Break! Switch pins for Blue LED and Speaker on RGB Dimmer, so that Blue LED is on PD3 and uses timer 2 (8 Bit) and Speaker can now use PB1 and use 16 Bit timer 1. The higher accuracy timer is better to be used for exact tone generation.2023-01-29
Move RGB LED code to common source files.2023-01-28
Initial files to move RGB LED code to common source files, since the functionality shall be used by the controller as well.2023-01-28
Allow configuration of standard (debug) LED on different pin and port.2023-01-27
Support atmega644p in Makefile.2023-01-26
Add initial Controller device e2p layout.2022-11-24
Introducing "Deliver" message type for sending a status with request for an acknowledge.2022-10-04
Release another message in the message catalog.2022-10-03
Set status "released" for some of the messages in the message catalog.2022-10-03
Remove deprecated messages from message catalog.2022-10-03
Remove unused variable.2022-09-25
Add test code to measure when debugging. Remove unnecessary spaces at line endings.2022-09-25
Send status only once at startup.2022-09-25
Fix calculation of battery percentage.2022-09-25
Add asm source file to Makefile.2022-09-25
Add e2p parameter to configure how often the digitalportstatus shall be repeated. In case of loss of a message, the repeated message is at least reporting the current status.2022-09-21
Implemented switch on/off delay. When set in e2p, a status change of the optional switch is considered to calculate the relais state only after the defined delay.2022-09-19
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add support of SPS30 sensor to envsensor.2019-11-16
Clean up trailing spaces.2019-11-11
Add messages and e2p functions for ParticulateMatter sensor in source code.2019-11-11
Raise RFM12_TX_BUFFER_SIZE and RFM12_RX_BUFFER_SIZE from 50 to 64 bytes for all devices, because it is now necessary for the ParticulateMatter message (> 32 bytes).2019-11-10
Reorder switch modes as they are in a more consistent order.2019-08-09
PowerSwitch: Rename e2p setting to reflect that it is the switch state requested by a command, not the resulting one, which also depends on the optional manual switch.2019-08-08
PowerSwitch: Add E2P option for an optional manual switch.2019-08-08
Remove project files for the WinAVR editor. Development is now done under Linux, and e.g. Kate (as my main editor) loads the files from a git repo in a project tree automatically.2019-08-08
Use watchdog in devices that are in receive mode to detect hanging RFM12 module. Reset device in this case. The behaviour can be enabled in the E2P.2019-08-07
Add TransceiverWatchdogTimeout for BaseStation, header file.2017-11-12
Improve comments in code.2017-11-12
Read number of presets to use from e2p. Change debounce values.2016-04-23
Update e2p layout for tea maker.2016-04-23
Update generated e2p and message header files.2016-04-23
Add e2p_teamaker.h file to project.2016-04-23
Add Tea Maker e2p layout and header files.2016-04-16
Update default e2p file.2016-04-10
Redefine SPI definitions for the ATMega324PA that are otherwise used for the ATMega328.2016-04-03
Support ATMega324PA in makefile, used for tea maker.2016-04-03
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Include wdt.h not in main c file.2015-10-30
Make ATMega soft reset (instead of only RFM12 reset) when RFM12 hangs. Report different startup reasons in (updated) HardwareError message.2015-10-30
Update description.2015-10-29
Increase delay for reset / power down time.2015-09-27
Support hardware reset of RFM module. Connect IO pin PC3 of ATMega to the NRES pin of the RFM module to enable the function. If pin is not connected, only SW reset is used in case of a watchdog timeout.2015-06-22
Use both 0xFF00 and 0xFE00 commands for the sw reset, because datasheet lists FE and in practive FF seems to work. Different modules may support different commands. Rename "rfm_watchdog_reset" to "rfm_watchdog_alive", because this function resets the counters, not the RFM module.2015-06-21
Switch RFM interrupt off and on in reset function.2015-06-06
Support configurable RFM watchdog in devices which can receive.2015-05-23
Implement watchdog function to reset RFM12B when nothing is received some time.2015-05-23
Add RFM12B reset command.2015-05-23
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Hotfix for buggy CRC check with GCC 4.7.2 on linux.2015-05-17
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Support SHT21/SHT25 (I2C). These sensors are actually compatible to the HTU21D. Renamed the files and functions accordingly. Delay in measurement function is removed because the "HOLD" function is used which needs no delay.2015-04-15
Shorten debug output to speed up sending.2015-03-08
Fix: Strip CRC from command when using the new "c" command.2015-03-08
Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line.2015-03-08
After receiving a message, print out a CRC32 at the end of the "Packet Data:..." line. This should be used in e.g. FHEM to detect corruption on the serial line. When the CRC does not match, the line should be ignored.2015-03-07
Call rfm12_tick directly in send function. Reorder UART output. Time for sending packets (from reception of last character to rfm12_tick) is now down to 95ms with 19200 baud and 18ms with 115200 baud.2015-03-07
Support changing UART baud rate at base station from 19200 to 115200 to speed up sending commands. Default value is still 19200.2015-03-07
Shorten some debug output to make storing commands in queue quicker.2015-03-07
Send DeviceInfo and Battery status twice after start up (inserting battery). Minor code beautifications.2015-03-02
Show number of measurements to take in debug message.2015-03-01
Add SmoothingPercentage as e2p value. This is the size of a moving window in which the absolute humidity (0 to 100 percent) is smoothed. This is necessary because the raw values typically show some short term variation, depending on external circumstances (plant in sunlight or above radiator). The variation also depends on the thickness of isolation above the sensor plates.2015-03-01
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25

shc_fhem (develop)

20230530 develop_v0.10.1-245-g8685b32Download
When a menu selection is "delivered" by a controller to FHEM, then set additionally the reading menuSelectionDelivery to distinguish this compared to a menu selection change initiated by a FHEM "set" command. This can be used to keep several controllers in sync.2023-05-29
20230517 develop_v0.10.1-238-g6dd3951Download
Fix support for receiving "Deliver" type message.2023-05-16
FHEM: Use "Set" instead of "SetGet" when sending Controller-Text message. This reduces the size of the answer from the controller.2023-05-16
FHEM support for messages Controller-MenuSelection and Controller-Backlight.2023-05-16
20230510 develop_v0.10.1-228-ge8a20abDownload
20230426 develop_v0.10.1-227-gad8d6caDownload
20230420 develop_v0.10.1-221-gc1eb954Download
Support reception of Controller-MenuSelection message in FHEM. Support that the user can use \x (1-8) to show user defined characters on the LCD.2023-04-19
20230414 develop_v0.10.1-205-g3499999Download
20230412 develop_v0.10.1-198-g8e9d619Download
20230313 develop_v0.10.1-190-g2ca2db9Download
Find a solution to have spaces in the text when using the "Text" message in FHEM: Use underline for spaces. Escape them with backslash to have an underline.2023-03-12
Add FHEM SHC parser test case for controller device.2023-03-12
Support Controller device in FHEM.2023-03-12
Support ByteArray type in FHEM.2023-03-12
20230311 develop_v0.10.1-182-g117be7eDownload
Add shell script to start SHC_parser_test.2023-03-06
20230301 develop_v0.10.1-164-ge6a0db6Download
Implement "Tone" and "Melody" functions from "Audio" message group for FHEM.2023-02-06
Update FHEM files to what is in the FHEM repo.2023-02-06
20230206 develop_v0.10.1-159-g58ff07dDownload
20230204 develop_v0.10.1-158-g4420133Download
20221125 develop_v0.10.1-136-g01b4871Download
20221004 develop_v0.10.1-132-g14197beDownload
Remove deprecated messages from message catalog.2022-10-03
20221001 develop_v0.10.1-127-g19214eeDownload
Avoid using experimental given/when feature of Perl. Use if-elsif instead.2022-09-30
20220929 develop_v0.10.1-126-g7e6cf15Download
Use "use DevIO;" instead of "require", as needed for FHEM now.2022-09-28
20220924 develop_v0.10.1-120-gef383c9Download
Update FHEM module for smarthomatic. Update default baudrate of base station to 115200. Update description.2022-09-21
Adapt fhem parser test script to updated packet layout for PM sensor.2019-12-28
20191118 develop_v0.10.1-111-gfd16790Download
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
20191117 develop_v0.10.1-110-g23b294bDownload
Add test code for FHEM SHC parser for ParticulateMatter message.2019-11-16
Support new FloatValue type in FHEM implementation.2019-11-16
Support ParticulateMatter message in FHEM SHC device.2019-11-16
20160424 develop_v0.10.1-65-g67459daDownload
20151030 develop_v0.10.1-34-g0578486Download
20150622 develop_v0.10.1-16-g1d2ec9dDownload
Fix variable access.2015-06-21
Add test case for HardwareError message.2015-06-21
Fix: Remember enum definitions per enum. Before, the mapping was overwritten when the parser initialized the following enum value mapping.2015-06-21
Add HardwareError message to FHEM parser.2015-06-21
20150524 develop_v0.10.1-6-g29ed99bDownload
20150518 develop_v0.10.1-1-g6c76ffeDownload
Merge branch 'master' of github.com:breaker27/smarthomatic2015-05-16
fhem: merge svn commit to sync svn commit id to git repo2015-03-10
20150502 develop_v0.9.0-rc.5-49-gb771104Download
Remember PacketCounter of the device from which a message was received.2015-05-01
Sleep for 250 milliseconds after sending a string over UART to the base station to make sure it can process the command before the next is sent.2015-05-01
20150309 develop_v0.9.0-rc.5-44-gf0d2408Download
Correct regular expressions and dispose "PKT:SID=0;" strings (which are from the messages originally sent by FHEM itself).2015-03-08
Change regexp to require numbers to have one character at least.2015-03-08
Strip trailing zeros in string to send to base station to speed up sending in some cases.2015-03-08
Change test packets to new format.2015-03-08
Use new command of base station which includes a CRC suffix.2015-03-08
Change debug message formats according to changed base station behavior. Log CRC Error with verbosity 1.2015-03-08
Check CRC from received packets. If it does not match, write log message (search for "CRC Error in FHEM logfiles") and ignore the packet.2015-03-08
20150307 develop_v0.9.0-rc.5-30-gae9c9a6Download
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
20150303 develop_v0.9.0-rc.5-21-g052a55fDownload
Beautify code.2015-03-02
Merge commit '6f09633' into develop2015-03-02
add brightness slider to fhem for rgbdimmer2015-02-14
20150301 develop_v0.9.0-rc.5-9-gc173af6Download
FHEM: Correct devStateIcon for PowerSwitch in case more than the 1st channel/pin is used.2015-02-28
20150226 develop_v0.9.0-rc.5-1-geddbd48Download
Fix devStateIcon string.2015-02-25
20150216 develop_v0.7.0-rc.1-151-g2232d39Download
Fix link in FHEM documentation.2015-02-15
Set DevStateIcon for SoilMoistureMeter.2015-02-15
Change condition format for toggle. Correct DevStateIcon so toggling works by clicking the icon.2015-02-15
fix fhem toggle web command for power switch2015-02-14
Add test message with negative temperature.2015-02-08
20150105 develop_v0.7.0-rc.1-132-g2e5d5deDownload
Use DeviceInfo message to set DeviceType. Rename DeviceType strings according definition in XML file.2015-01-04
20141117 develop_v0.7.0-rc.1-117-gaafd1c8Download
20141015 develop_v0.7.0-rc.1-111-gcb1ebbeDownload
Add test case.2014-10-14
Fix parameter order.2014-10-14
20141010 develop_v0.7.0-rc.1-108-g563a108Download
Correct reading values of DigitalPin message in test script. Add test message string.2014-10-09
Set "On" value additionally when DigitalPort(Timeout) message received.2014-10-09
Correct message names.2014-10-09
20141005 develop_v0.7.0-rc.1-100-ga92a9e7Download
fhem: update documentation2014-10-04
fhem: use pin & port instead of din & dins2014-10-04
fhem: convert deprecated SwitchState messages2014-10-04
fhem: added support to set DigitalPins and DigitalPorts also DigitalPinTimeout and DigitalPortTimeout2014-10-04
fhem: added Rx support new PowerSwitch messages reception of DigitalPortTimeout autoassign devtype adjust state format2014-10-04
fhem: added support for soil moisture meter added Wheather.Humidity message added auto device detection update documentation2014-10-02
Test new DigitalPinTimeout message instead of old SwitchState message.2014-10-03
20140929 develop_v0.7.0-rc.1-80-geec77d7Download
Update to current test messages.2014-09-28
Fix parsing of negative values (Int).2014-09-28
20140928 develop_v0.7.0-rc.1-78-g85f7defDownload
20140921 develop_v0.7.0-rc.1-61-g9189e46Download
backport SVN commit ID from fhem repo2014-09-20
fhem - RGB_Dimmer: improve docu2014-08-18
20140916 develop_v0.7.0-rc.1-58-g7f23e17Download
Support truncated messages by filling up enough empty bytes in the data array after reception.2014-09-16
20140818 develop_v0.7.0-rc.1-46-ga3154f5Download
Use better test case.2014-08-17
fhem - RGB_Dimmer: update doku2014-08-11
fhem - RGB_Dimmer: add parser and set function for ColorAnimation2014-08-11
fhem - RGB_Dimmer: add set function2014-08-04
fhem - RGB_Dimmer: add parser function2014-08-04
fhem - RGB_Dimmer: add defines for new device2014-08-04
20140807 develop_v0.7.0-rc.1-36-gea1c116Download
Support structured arrays (arrays with several sub-elements). FIX byte offset calculation in setUInt function. FIX initialization of data buffer used for packets to send. Set default AES key to 0 if none is given as argument in getSendString function.2014-08-06
20140804 develop_v0.7.0-rc.1-32-ga2ffbe9Download
20140727 develop_v0.7.0-rc.1-27-gafc0018Download
20140722 develop_v0.7.0-rc.1-16-g4335fd0Download
20140707 develop_v0.5.0-220-g90c314bDownload
Change path of file to exclude.2014-07-07
analog in: use ain and din as unique identifier for digital and analog inputs2014-07-07
analog in: add new msg type to get function2014-07-07
analog in: add new msg type to parser function2014-07-07
merge last svn commit2014-07-05
move SHC_packet_layout.xml under subdir lib/ as requested from the FHEM developer2014-06-29
20140703 develop_v0.5.0-212-gd9818d7Download
Support arrays of IntValue, UIntValue and EnumValue in FHEM parser.2014-07-02
Change .gitignore to reflect new name of xml file.2014-07-02
20140629 develop_v0.5.0-206-g139bd55Download
20140628 develop_v0.5.0-202-g46d3e24Download
20140613 develop_v0.5.0-177-g2f8b8ffDownload
move devtype from internals to attributes2014-06-12
rename 37_SHC_Dev.pm to 37_SHCdev.pm no underscores in the device name2014-06-11
20140602 develop_v0.5.0-161-g08d3831Download
Add symlink to packet_layout.xml2014-06-01
Harmonise file headers and SVN Id-Tag2014-05-30
improved support for get input command avoid careless checking of $hash->{READINGS}{pins}{VAL} better error messages2014-05-27
comment out debug prints2014-05-27
bugfix: phantom readings remove corresponing work around and debug code2014-05-27
20140527 develop_v0.5.0-151-ge0b7a1eDownload
extend workaround to correct wrong readings entries Before the workaround was only applied to barometric_pressure. Now all other affected readings are cleaned up as well.2014-05-26
update html documentation by running "perl contrib/commandref_join.pl" the commandref can be refreshed and verified.2014-05-26
rename packet_layout.xml to SHC_packet_layout.xml2014-05-26
bugfix: assemble state string correctly for dimmer device The bugfix in commit id 30bd0677224 only fixes the state string creation for the power switch, but breaks it for the dimmer. The define statement for the dimmer is different from the power switch because the state string also contains the brightness (e.g. "on B: 100") Use define SHC_DIM_60_notify_on notify SHC_DIM_60:on.B:.1002014-05-26
bugfix: rename readings entry as well (in -> pins)2014-05-26
Merge pull request #76 from Roadyweb/fhem_update Fhem update2014-05-26
bugfix: notify doesnt work2014-05-26
remove copy & paste remains in svn id info2014-05-26
add gitignore file to filter out XML files that are used for testing2014-05-25
add GPL license info2014-05-13
review 37_SHC.pm and remove dead code2014-05-13
remove useless info in SHC_Dev->internals (PaketCounter and MsgData)2014-05-13
rename in -> pin, port -> pin2014-05-13
implement get commands for EnvSenor inputs2014-05-12
correctly support set commands The fhem web interface now shows the correct set commands according to the device type2014-05-12
fhem: add digital inputs to fhem device readings2014-05-11
20140511 develop_v0.5.0-127-g1e35889Download
Support GPIO.DigitalPin message (only the 1st pin currently).2014-05-11
Add support for Arrays of BoolValues (other types will follow as needed).2014-05-11
proposal for extended command set implementation (independent of device type)2014-05-09
add distance to fhem state string2014-05-09
refactor automatic device type assignment (now . delimiter)2014-05-09
bugfix: remove invalid barometric pressure reading Without receiving the BarometricPressureTemperature message a barometric reading gets added. This happens especially after a fhem restart. The root cause is not easy to debug and still unknown. Add this workaround to avoid wrong/invalid entries in the device reading table2014-05-09
refactor set commands define a array with device specific set of cmds and check against allow to set the devtype through a new set command2014-05-08
refactor state string creation use lookup table do assemble state string2014-05-02
refactor adding webCmds and devStateIcons use lookup table do define webCmds and devStateIcons2014-05-02
20140507 develop_v0.5.0-110-gada1ea5Download
Add distance message to FHEM module.2014-05-06
20140503 develop_v0.5.0-106-g123966dDownload
add perltidy config file2014-05-02
use perltidy to enforce coding style for SHC_datafields.pm and SHC_parser.pm2014-05-02
use perltidy to enforce coding style2014-05-01
20140502 develop_v0.5.0-100-g0448324Download
implement statusRequest with Get meassge for dimmer and powerswitch2014-05-01
remove superfluous comment (AckStatus pakets are already handeled)2014-05-01
assemble state info from latest readings2014-05-01
more verbose logging of SHC messages2014-05-01
move msg details to hash->Internals2014-04-27
bugfix: until device name is available use SHC_TEMP in logs2014-04-27
20140427 develop_v0.5.0-91-g2f1d533Download
Support new message groups "Weather" and "Environment".2014-04-26
20140420 develop_v0.5.0-79-gfb7996dDownload

shc_fhem (release)

20230729 release_v0.13.0-rc.1-0-gb18cbf0Download
When a menu selection is "delivered" by a controller to FHEM, then set additionally the reading menuSelectionDelivery to distinguish this compared to a menu selection change initiated by a FHEM "set" command. This can be used to keep several controllers in sync.2023-05-29
Fix support for receiving "Deliver" type message.2023-05-16
FHEM: Use "Set" instead of "SetGet" when sending Controller-Text message. This reduces the size of the answer from the controller.2023-05-16
FHEM support for messages Controller-MenuSelection and Controller-Backlight.2023-05-16
Support reception of Controller-MenuSelection message in FHEM. Support that the user can use \x (1-8) to show user defined characters on the LCD.2023-04-19
Find a solution to have spaces in the text when using the "Text" message in FHEM: Use underline for spaces. Escape them with backslash to have an underline.2023-03-12
Add FHEM SHC parser test case for controller device.2023-03-12
Support Controller device in FHEM.2023-03-12
Support ByteArray type in FHEM.2023-03-12
Add shell script to start SHC_parser_test.2023-03-06
Implement "Tone" and "Melody" functions from "Audio" message group for FHEM.2023-02-06
Update FHEM files to what is in the FHEM repo.2023-02-06
Remove deprecated messages from message catalog.2022-10-03
Avoid using experimental given/when feature of Perl. Use if-elsif instead.2022-09-30
Use "use DevIO;" instead of "require", as needed for FHEM now.2022-09-28
Update FHEM module for smarthomatic. Update default baudrate of base station to 115200. Update description.2022-09-21
20220906 release_v0.12.0-rc.1-0-ga8c1fc0Download
Adapt fhem parser test script to updated packet layout for PM sensor.2019-12-28
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add test code for FHEM SHC parser for ParticulateMatter message.2019-11-16
Support new FloatValue type in FHEM implementation.2019-11-16
Support ParticulateMatter message in FHEM SHC device.2019-11-16
20151212 release_v0.11.0-rc.1-0-g3042e25Download
Fix variable access.2015-06-21
Add test case for HardwareError message.2015-06-21
Fix: Remember enum definitions per enum. Before, the mapping was overwritten when the parser initialized the following enum value mapping.2015-06-21
Add HardwareError message to FHEM parser.2015-06-21
Merge branch 'master' of github.com:breaker27/smarthomatic2015-05-16
fhem: merge svn commit to sync svn commit id to git repo2015-03-10
20150502 release_v0.10.0-rc.1-0-g39b1b02Download
Remember PacketCounter of the device from which a message was received.2015-05-01
Sleep for 250 milliseconds after sending a string over UART to the base station to make sure it can process the command before the next is sent.2015-05-01
Correct regular expressions and dispose "PKT:SID=0;" strings (which are from the messages originally sent by FHEM itself).2015-03-08
Change regexp to require numbers to have one character at least.2015-03-08
Strip trailing zeros in string to send to base station to speed up sending in some cases.2015-03-08
Change test packets to new format.2015-03-08
Use new command of base station which includes a CRC suffix.2015-03-08
Change debug message formats according to changed base station behavior. Log CRC Error with verbosity 1.2015-03-08
Check CRC from received packets. If it does not match, write log message (search for "CRC Error in FHEM logfiles") and ignore the packet.2015-03-08
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
Beautify code.2015-03-02
Merge commit '6f09633' into develop2015-03-02
add brightness slider to fhem for rgbdimmer2015-02-14
20150228 release_v0.9.0-rc.6-0-g9c554b6Download
FHEM: Correct devStateIcon for PowerSwitch in case more than the 1st channel/pin is used.2015-02-28
20150225 release_v0.9.0-rc.5-0-gb29fe3eDownload
Fix devStateIcon string.2015-02-25
20150215 release_v0.9.0-rc.2-0-g3ec003bDownload
Fix link in FHEM documentation.2015-02-15
Set DevStateIcon for SoilMoistureMeter.2015-02-15
Change condition format for toggle. Correct DevStateIcon so toggling works by clicking the icon.2015-02-15
fix fhem toggle web command for power switch2015-02-14
20150208 release_v0.9.0-rc.1-0-ga724183Download
Add test message with negative temperature.2015-02-08
Use DeviceInfo message to set DeviceType. Rename DeviceType strings according definition in XML file.2015-01-04
Add test case.2014-10-14
Fix parameter order.2014-10-14
Correct reading values of DigitalPin message in test script. Add test message string.2014-10-09
Set "On" value additionally when DigitalPort(Timeout) message received.2014-10-09
Correct message names.2014-10-09
fhem: update documentation2014-10-04
fhem: use pin & port instead of din & dins2014-10-04
fhem: convert deprecated SwitchState messages2014-10-04
fhem: added support to set DigitalPins and DigitalPorts also DigitalPinTimeout and DigitalPortTimeout2014-10-04
fhem: added Rx support new PowerSwitch messages reception of DigitalPortTimeout autoassign devtype adjust state format2014-10-04
fhem: added support for soil moisture meter added Wheather.Humidity message added auto device detection update documentation2014-10-02
Test new DigitalPinTimeout message instead of old SwitchState message.2014-10-03
Update to current test messages.2014-09-28
Fix parsing of negative values (Int).2014-09-28
backport SVN commit ID from fhem repo2014-09-20
fhem - RGB_Dimmer: improve docu2014-08-18
20140916 release_v0.8.0-rc.1-0-gfe3f648Download
Support truncated messages by filling up enough empty bytes in the data array after reception.2014-09-16
Use better test case.2014-08-17
fhem - RGB_Dimmer: update doku2014-08-11
fhem - RGB_Dimmer: add parser and set function for ColorAnimation2014-08-11
fhem - RGB_Dimmer: add set function2014-08-04
fhem - RGB_Dimmer: add parser function2014-08-04
fhem - RGB_Dimmer: add defines for new device2014-08-04
Support structured arrays (arrays with several sub-elements). FIX byte offset calculation in setUInt function. FIX initialization of data buffer used for packets to send. Set default AES key to 0 if none is given as argument in getSendString function.2014-08-06
20140710 release_v0.7.0-rc.1-0-g309c9d6Download
Change path of file to exclude.2014-07-07
analog in: use ain and din as unique identifier for digital and analog inputs2014-07-07
analog in: add new msg type to get function2014-07-07
analog in: add new msg type to parser function2014-07-07
merge last svn commit2014-07-05
move SHC_packet_layout.xml under subdir lib/ as requested from the FHEM developer2014-06-29
Support arrays of IntValue, UIntValue and EnumValue in FHEM parser.2014-07-02
Change .gitignore to reflect new name of xml file.2014-07-02
move devtype from internals to attributes2014-06-12
rename 37_SHC_Dev.pm to 37_SHCdev.pm no underscores in the device name2014-06-11
Add symlink to packet_layout.xml2014-06-01
Harmonise file headers and SVN Id-Tag2014-05-30
improved support for get input command avoid careless checking of $hash->{READINGS}{pins}{VAL} better error messages2014-05-27
comment out debug prints2014-05-27
bugfix: phantom readings remove corresponing work around and debug code2014-05-27
extend workaround to correct wrong readings entries Before the workaround was only applied to barometric_pressure. Now all other affected readings are cleaned up as well.2014-05-26
update html documentation by running "perl contrib/commandref_join.pl" the commandref can be refreshed and verified.2014-05-26
rename packet_layout.xml to SHC_packet_layout.xml2014-05-26
bugfix: assemble state string correctly for dimmer device The bugfix in commit id 30bd0677224 only fixes the state string creation for the power switch, but breaks it for the dimmer. The define statement for the dimmer is different from the power switch because the state string also contains the brightness (e.g. "on B: 100") Use define SHC_DIM_60_notify_on notify SHC_DIM_60:on.B:.1002014-05-26
bugfix: rename readings entry as well (in -> pins)2014-05-26
Merge pull request #76 from Roadyweb/fhem_update Fhem update2014-05-26
bugfix: notify doesnt work2014-05-26
remove copy & paste remains in svn id info2014-05-26
add gitignore file to filter out XML files that are used for testing2014-05-25
add GPL license info2014-05-13
review 37_SHC.pm and remove dead code2014-05-13
remove useless info in SHC_Dev->internals (PaketCounter and MsgData)2014-05-13
rename in -> pin, port -> pin2014-05-13
implement get commands for EnvSenor inputs2014-05-12
correctly support set commands The fhem web interface now shows the correct set commands according to the device type2014-05-12
fhem: add digital inputs to fhem device readings2014-05-11
Support GPIO.DigitalPin message (only the 1st pin currently).2014-05-11
Add support for Arrays of BoolValues (other types will follow as needed).2014-05-11
proposal for extended command set implementation (independent of device type)2014-05-09
add distance to fhem state string2014-05-09
refactor automatic device type assignment (now . delimiter)2014-05-09
bugfix: remove invalid barometric pressure reading Without receiving the BarometricPressureTemperature message a barometric reading gets added. This happens especially after a fhem restart. The root cause is not easy to debug and still unknown. Add this workaround to avoid wrong/invalid entries in the device reading table2014-05-09
refactor set commands define a array with device specific set of cmds and check against allow to set the devtype through a new set command2014-05-08
refactor state string creation use lookup table do assemble state string2014-05-02
refactor adding webCmds and devStateIcons use lookup table do define webCmds and devStateIcons2014-05-02
Add distance message to FHEM module.2014-05-06
20140506 release_v0.6.0-rc.1-0-g8900514Download

shc_fhem (master)

20230730 master_v0.13.0-0-g278c0ecDownload
TAG: *General:* Support "deliver" message to ensure that the base station received a message sent by a device (used by controller device). Support 64 byte packets. Support ATMega1284 and 4kB e2p. Improve collision detection timing. *Controller:* New device which acts as user interface. Supports LCD text display, RGB LED, speaker and buttons to navigate through a menu with options defined in e2p. Can be used as control interface for smart home functions. *Powerswitch:* Support for On/Off delay that is used when a status change is triggered by the optional switch. Put relais state into status message. Fix version status cycle. *RGB Dimmer:* HW break! Pins for RGB LEDs changed to have common source code with controller device. Support "tone" and "melody" message to play (warning) melodies / alerts. *FHEM:* Update modules to be used with new controller device. Use default baud rate of 115200. Avoid "require" keyword and "given/when". 2024-04-25
When a menu selection is "delivered" by a controller to FHEM, then set additionally the reading menuSelectionDelivery to distinguish this compared to a menu selection change initiated by a FHEM "set" command. This can be used to keep several controllers in sync.2023-05-29
Fix support for receiving "Deliver" type message.2023-05-16
FHEM: Use "Set" instead of "SetGet" when sending Controller-Text message. This reduces the size of the answer from the controller.2023-05-16
FHEM support for messages Controller-MenuSelection and Controller-Backlight.2023-05-16
Support reception of Controller-MenuSelection message in FHEM. Support that the user can use \x (1-8) to show user defined characters on the LCD.2023-04-19
Find a solution to have spaces in the text when using the "Text" message in FHEM: Use underline for spaces. Escape them with backslash to have an underline.2023-03-12
Add FHEM SHC parser test case for controller device.2023-03-12
Support Controller device in FHEM.2023-03-12
Support ByteArray type in FHEM.2023-03-12
Add shell script to start SHC_parser_test.2023-03-06
Implement "Tone" and "Melody" functions from "Audio" message group for FHEM.2023-02-06
Update FHEM files to what is in the FHEM repo.2023-02-06
Remove deprecated messages from message catalog.2022-10-03
Avoid using experimental given/when feature of Perl. Use if-elsif instead.2022-09-30
Use "use DevIO;" instead of "require", as needed for FHEM now.2022-09-28
Update FHEM module for smarthomatic. Update default baudrate of base station to 115200. Update description.2022-09-21
20220906 master_v0.12.0-0-gec025f0Download
TAG: EnvSensor: Support ParticulateMatter sensor. Support FloatValue type in e2p. Add tea maker project (currently not being worked on). Add shutter control HW. Generic maxi speed 1.2 introduces transistor to switch RFM module on/off. Support transceiver timeout to restart RFM12 if needed. Allow to edit strings as array in e2p editor. 2024-04-25
Adapt fhem parser test script to updated packet layout for PM sensor.2019-12-28
Envsensor: Add PowerPinMode e2p config option. This allows to switch the power pin explicitly on before i2c measurement for sensors that need the 5V step-up converter. Before, it was implicitly switched on depending on the sensor type. Minimize ParticulateMatter message to fit into 32 bytes (Status message).2019-11-17
Add test code for FHEM SHC parser for ParticulateMatter message.2019-11-16
Support new FloatValue type in FHEM implementation.2019-11-16
Support ParticulateMatter message in FHEM SHC device.2019-11-16
20160103 master_v0.11.0-0-gfa208fcDownload
TAG: Increase stability of devices which send and receive and have sporadic hangs of RFM module: Added configurable (optional) watchdog to reset ATMega and RFM12B when nothing is received some time. Add HardwareError message to FHEM parser to log the error cases. Update Soil Moisture Meter PCB (V1.2) with 6-pin ISP connector including VCC pin. Update Dimmer PCB (V1.3), Power Switch PCB (V1.1), Generic Maxi Speed PCB (V1.1) by added VCC pin on ISP connector and/or connection of RFM power pin to an I/O pin for shutting it off in case of a hang. Added new Generic Micro 2 SMD PCB (V1.0) which is compatible to a Generic Midi and can be used as a smaller EnvSensor device. 2024-04-25
Fix variable access.2015-06-21
Add test case for HardwareError message.2015-06-21
Fix: Remember enum definitions per enum. Before, the mapping was overwritten when the parser initialized the following enum value mapping.2015-06-21
Add HardwareError message to FHEM parser.2015-06-21
20150517 master_v0.10.1-0-g9d85b61Download
TAG: Hotfix for buggy CRC check with GCC 4.7.2 on linux (which my build robot uses under linux). 2024-04-25
Merge branch 'master' of github.com:breaker27/smarthomatic2015-05-16
fhem: merge svn commit to sync svn commit id to git repo2015-03-10
20150516 master_v0.10.0-0-g6ecdef6Download
TAG: Speed up of communication to/from base station by supporting 115200 baud on UART and shortening strings. Reaction on a command over UART until encrypted packet is sent is now under 20ms! Add CRC32 at the end of the packet data string to secure sommunication from base station to PC (fhem). Add command to the base station where the user suffixes his input with a CRC32 (8 characters). If it doesn't match, the command is ignored. This is to be safe against interferences/problems on the serial line. Add SmoothingPercentage parameter to SoilMoistureMeter to smooth reported humidity values. 2024-04-25
Remember PacketCounter of the device from which a message was received.2015-05-01
Sleep for 250 milliseconds after sending a string over UART to the base station to make sure it can process the command before the next is sent.2015-05-01
Correct regular expressions and dispose "PKT:SID=0;" strings (which are from the messages originally sent by FHEM itself).2015-03-08
Change regexp to require numbers to have one character at least.2015-03-08
Strip trailing zeros in string to send to base station to speed up sending in some cases.2015-03-08
Change test packets to new format.2015-03-08
Use new command of base station which includes a CRC suffix.2015-03-08
Change debug message formats according to changed base station behavior. Log CRC Error with verbosity 1.2015-03-08
Check CRC from received packets. If it does not match, write log message (search for "CRC Error in FHEM logfiles") and ignore the packet.2015-03-08
Add CRC32 at the end of the packet data string. Abbreviate field names in the received packet that is printed on the serial line. This reduces the delay for transferring data from/to the server (e.g. FHEM). But is also needs a change in the FHEM module.2015-03-07
Beautify code.2015-03-02
Merge commit '6f09633' into develop2015-03-02
add brightness slider to fhem for rgbdimmer2015-02-14
20150301 master_v0.9.0-0-gec1ee4eDownload
TAG: Add new device soil moisture meter (schematics, layout and firmware). Speed up encryption/decryption drastically by using other AES lib. Support additional sensors in EnvSensor: HTU21d (I2C, humidity + temperature), DS18S20/DS18B20 (1-wire, temperature). Reduce power consumption to ~1.8µA at EnvSensor by switching off BOD in sleep mode. Support DeviceInfo message (containing DeviceType + firmware version) at all devices. Send Error Ack for messages which are not supported at all devices. Several minor fixes. 2024-04-25
FHEM: Correct devStateIcon for PowerSwitch in case more than the 1st channel/pin is used.2015-02-28
Fix devStateIcon string.2015-02-25
Fix link in FHEM documentation.2015-02-15
Set DevStateIcon for SoilMoistureMeter.2015-02-15
Change condition format for toggle. Correct DevStateIcon so toggling works by clicking the icon.2015-02-15
fix fhem toggle web command for power switch2015-02-14
Add test message with negative temperature.2015-02-08
Use DeviceInfo message to set DeviceType. Rename DeviceType strings according definition in XML file.2015-01-04
Add test case.2014-10-14
Fix parameter order.2014-10-14
Correct reading values of DigitalPin message in test script. Add test message string.2014-10-09
Set "On" value additionally when DigitalPort(Timeout) message received.2014-10-09
Correct message names.2014-10-09
fhem: update documentation2014-10-04
fhem: use pin & port instead of din & dins2014-10-04
fhem: convert deprecated SwitchState messages2014-10-04
fhem: added support to set DigitalPins and DigitalPorts also DigitalPinTimeout and DigitalPortTimeout2014-10-04
fhem: added Rx support new PowerSwitch messages reception of DigitalPortTimeout autoassign devtype adjust state format2014-10-04
fhem: added support for soil moisture meter added Wheather.Humidity message added auto device detection update documentation2014-10-02
Test new DigitalPinTimeout message instead of old SwitchState message.2014-10-03
Update to current test messages.2014-09-28
Fix parsing of negative values (Int).2014-09-28
backport SVN commit ID from fhem repo2014-09-20
fhem - RGB_Dimmer: improve docu2014-08-18
20140921 master_v0.8.0-0-gc0ed0c3Download
TAG: Implement RGB dimmer firmware. Support Color and ColorAnimation message for an animation (fading) of several colors, using repeat and autoreverse parameters for different visual effects. BaseStation: Automatically truncate empty bytes in messages before sending. Fix sending packets > 16 bytes. Avoid request queue for broadcast requests. 2024-04-25
Support truncated messages by filling up enough empty bytes in the data array after reception.2014-09-16
Use better test case.2014-08-17
fhem - RGB_Dimmer: update doku2014-08-11
fhem - RGB_Dimmer: add parser and set function for ColorAnimation2014-08-11
fhem - RGB_Dimmer: add set function2014-08-04
fhem - RGB_Dimmer: add parser function2014-08-04
fhem - RGB_Dimmer: add defines for new device2014-08-04
Support structured arrays (arrays with several sub-elements). FIX byte offset calculation in setUInt function. FIX initialization of data buffer used for packets to send. Set default AES key to 0 if none is given as argument in getSendString function.2014-08-06
20140728 master_v0.7.0-0-g0e996ccDownload
TAG: EnvSensor: add digital + analog input support, configurable wake-up / measuring times. Add support for SRF02 ultrasonic distance sensor. E2PEditor: Handling of default values for config options, incl. coloring of modified values. 2024-04-25
Change path of file to exclude.2014-07-07
analog in: use ain and din as unique identifier for digital and analog inputs2014-07-07
analog in: add new msg type to get function2014-07-07
analog in: add new msg type to parser function2014-07-07
merge last svn commit2014-07-05
move SHC_packet_layout.xml under subdir lib/ as requested from the FHEM developer2014-06-29
Support arrays of IntValue, UIntValue and EnumValue in FHEM parser.2014-07-02
Change .gitignore to reflect new name of xml file.2014-07-02
move devtype from internals to attributes2014-06-12
rename 37_SHC_Dev.pm to 37_SHCdev.pm no underscores in the device name2014-06-11
Add symlink to packet_layout.xml2014-06-01
Harmonise file headers and SVN Id-Tag2014-05-30
improved support for get input command avoid careless checking of $hash->{READINGS}{pins}{VAL} better error messages2014-05-27
comment out debug prints2014-05-27
bugfix: phantom readings remove corresponing work around and debug code2014-05-27
extend workaround to correct wrong readings entries Before the workaround was only applied to barometric_pressure. Now all other affected readings are cleaned up as well.2014-05-26
update html documentation by running "perl contrib/commandref_join.pl" the commandref can be refreshed and verified.2014-05-26
rename packet_layout.xml to SHC_packet_layout.xml2014-05-26
bugfix: assemble state string correctly for dimmer device The bugfix in commit id 30bd0677224 only fixes the state string creation for the power switch, but breaks it for the dimmer. The define statement for the dimmer is different from the power switch because the state string also contains the brightness (e.g. "on B: 100") Use define SHC_DIM_60_notify_on notify SHC_DIM_60:on.B:.1002014-05-26
bugfix: rename readings entry as well (in -> pins)2014-05-26
Merge pull request #76 from Roadyweb/fhem_update Fhem update2014-05-26
bugfix: notify doesnt work2014-05-26
remove copy & paste remains in svn id info2014-05-26
add gitignore file to filter out XML files that are used for testing2014-05-25
add GPL license info2014-05-13
review 37_SHC.pm and remove dead code2014-05-13
remove useless info in SHC_Dev->internals (PaketCounter and MsgData)2014-05-13
rename in -> pin, port -> pin2014-05-13
implement get commands for EnvSenor inputs2014-05-12
correctly support set commands The fhem web interface now shows the correct set commands according to the device type2014-05-12
fhem: add digital inputs to fhem device readings2014-05-11
Support GPIO.DigitalPin message (only the 1st pin currently).2014-05-11
Add support for Arrays of BoolValues (other types will follow as needed).2014-05-11
proposal for extended command set implementation (independent of device type)2014-05-09
add distance to fhem state string2014-05-09
refactor automatic device type assignment (now . delimiter)2014-05-09
bugfix: remove invalid barometric pressure reading Without receiving the BarometricPressureTemperature message a barometric reading gets added. This happens especially after a fhem restart. The root cause is not easy to debug and still unknown. Add this workaround to avoid wrong/invalid entries in the device reading table2014-05-09
refactor set commands define a array with device specific set of cmds and check against allow to set the devtype through a new set command2014-05-08
refactor state string creation use lookup table do assemble state string2014-05-02
refactor adding webCmds and devStateIcons use lookup table do define webCmds and devStateIcons2014-05-02
Add distance message to FHEM module.2014-05-06
20140610 master_v0.6.1-0-g19b1771Download
TAG: HotFix: Copy request buffer indices correctly in request queue. This bug could lead to sending messages endlessly (only) in the case when there were more than 2 requests in a queue for one receiver and the requests were additionally not acknowledged. 2024-04-25
20140515 master_v0.6.0-0-gf49d8afDownload
TAG: Support for I2C. Support for temp sensor DS7505. Support for barometric pressure sensor BMP085. FHEM support. Support for array structures in e2p definitions and packets (used in base station and power switch e2p layout). Renamed "tempsensor" to "envsensor", which also requires an ATMega328. e2p editor remembers flash command line. 2024-04-25