This build introduces new channel types, a lot of new cool features and fixes a lot of bugs.
You can get it from our test repo: https://z-uno.z-wave.me/files/z-uno/pac ... index.json. For more infor check https://z-uno.z-wave.me/install
What's new:
New features
- Three new channel types: Color Switch, Thermostat and Door Lock
- If only one channel, MultiChannel will be supressed (Command Classes outside channel will represent your single channel)
- Handling of incoming reports from other devices. Handled reports are Basic/Sensor Binary/Alarm/Sensor Multilevel/Switch Binary/Switch Multilevel/Battery/Meter.
- New inclusion mode: double click for unsecure inclusion, triple click for secure (as it was before). New security parameter added to zunoStartLearn(timeout, secure)
- Two new functions: tone() and noTone()
- ADC and PWM pins can now be referenced in pinMode/digitalWrite/digitalRead as PWMx и ADCx too (like in Arduino). Before was only via pin number:
Code: Select all
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH); ... pinMode(PWM1, INPUT); digitalRead(PWM1);
- Added FastPWM on pin A0.
Code: Select all
pinMode(A0, OUTPUT); zunoFastPWMInit(0); // Flags are same as for GPT (only divider can be changed) zunoFastPWMSet(100, 100); // Low and high period in timer ticks. By default 4 MHz is one tick zunoFastPWMEnable(1); // Start PWM0 ... zunoFastPWMEnable(0); // Stop PWM0 when not needed anymore
- New types added for SensorMultilevel:
- ZUNO_SENSOR_MULTILEVEL_TYPE_FORMALDEHYDE_CH2O_LEVEL
- ZUNO_SENSOR_MULTILEVEL_TYPE_RADON_CONCENTRATION
- ZUNO_SENSOR_MULTILEVEL_TYPE_METHANE_DENSITY_CH4
- ZUNO_SENSOR_MULTILEVEL_TYPE_VOLATILE_ORGANIC_COMPOUND
- ZUNO_SENSOR_MULTILEVEL_TYPE_CARBON_MONOXIDE_CO
- Fixed multiple ADC influencing each other
- Fixed OTA (broken since 2.1.3)
- Fixed interrupts handlers inside libraries (was broken since 2.1.3)
- Fixed compiler diagnostic messages if a too big sketch is uploaded. Before it was silently ignored.
- Switch between S2 and S0 firmwares was broken (since 2.1.3)
- s_pin interrupt handlers was corrupting value in another s_pin.
- Only lower word part from the DWORD-value on channels was passed. (thanks to @petergebruers)
- Pull Up mode was overriden by mode change on the same i/o port (8 pins) (broken since 2.1.1)
- S2 bootloader upload fixed
- analogWrite(pin, 0) was not working properly (was never actually 0)
- zunoBatteryHandler was not working (since 2.1.3)
- [!!!] Config parameters are now two bytes instead of four
- Added new scale for general purpose sensor multilevel (unitless): SENSOR_MULTILEVEL_SCALE_DIMENSIONLESS_VALUE
- ZUNO_BMP280 - support for BMP280/BME280 sensors by Bosch (thanks to petergebruers for testing it)
- ZUNO_MERCURY206R - support for electrical meters Mercury, model 206R.
- SoftwareSerial - supports for slow UART. Valid speeds are 1200/2400/4800/9600 8-N-1
- Wire. Added clockStretching. Enabled using Wire.enableTS(true). Slows down the speed by ~25%. Usefull to support modern I2C devices that do require Clock Stretching.
- Added library for air quality sensor CCS811 from AMS. Example:
Code: Select all
#define MY_SERIAL Serial0 #include "ZUNO_CCS811.h" ZUNO_CCS811 ccs811; // For precise values you need external temperature/humidity sensor like DHT. Here for example 50.0% humidity and 25.00 C are assumed. CCS811_Environment env_data = {500, 2500}; void setup() { MY_SERIAL.begin(115200); if (ccs811.begin()) { MY_SERIAL.println("CCS811 found!"); ccs811.setEnvironmentalData(&env_data); } } void loop() { if (ccs811.readData() & CCS811_STATUS_DATAREADY) { MY_SERIAL.print("CO2: "); MY_SERIAL.print(ccs811.geteCO2()); MY_SERIAL.println(" ppm"); MY_SERIAL.print("VOC: "); MY_SERIAL.print(ccs811.getTVOC()); MY_SERIAL.println(" ppb"); } delay(5000); }