This is basically a cut down version of MAX31855 without reference
temperature reading and lower resolution (only positive, 12bit only).
This implements 16bit protocol (31855 uses 32bit). SetOption94 enables
the new behavior.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
Changes:
v2:
* treat occasional 0xfff as an error
* do not add new sensor pins, use SetOption94 instead
Implement changes proposed by @s-hadinger review.
* Use 0-255 range in settings
* Apply gamma correction from xdrv_light & use changuintscale helper fn (as per pwm light routine)
* Extra setting & command to set - allows masking of pwm mode. Use case is for leds attached to buttons for seeing at night; this way user can combine both pwm and digital leds (i.e. pwm for the button leds but non-button status leds can stay on/off).
* Added settings for ledpwm_on and ledpwm_off with defaults that mimic current digitalwrite function
* Changed ledpoweridx from digitalwrite to analogwrite
* Add commands to change new settings
- Add experimental basic support for Tasmota on ESP32 based on work by Jörg Schüler-Maroldt
- Bump version to 8.2.0.6
- This ESP32 upgrade breaks current ESP32 templates
Hello,
I would like to share with you my extension of the code.
I have some new lamps that have 2 PWM channels that are not classically wired. The first one is for brightness and the other channel is for color temperature.
Tasmota has already integrated the possibility to switch between CWWW and CTBRI. I only built the possibility to set it up manually.
greetings,
Jens
PS: This is my first commit. If I did something wrong, please report it.
- Decided to support ONLY flash mode DOUT (no software change but allows for RX1/TX1)
- Add GPIO9 (RX1) and GPIO10 (TX1) for hardware serial support
- Add above two GPIOs to template
- Moved basic ADC0 support from GPIO36 to GPIO33
New commands CounterDebounceLow and CounterDebounceHigh to allow individual debounce times for low and high pulse widths to discard non valid falling edges. These are checked before legacy CounterDebounce checks distance between to valid falling edges.
Useful to have robust counter results when using e.g. an TCRT5000 optical sensor to count electromechanical "Ferraris" electricity meters.
Command shutterlock<x> 1 locks shutter <x> movement. Any ongoing movement is still finished when called. Subsequent calls of shutter commands about movement, web buttons and shutter buttons are blocked when shutter is locked. shutterlock<x> 0 unlocks shutter <x>.
New command "ShutterButton<x> <a> <b> <c> <d> <e> <f> <g> <h> <i> <j>" added that allows to assign a tasmota button <x> to control shutter <a>.
Single press button shutter is set to position <b>. Double press button shutter is set to position <c>. Tripple press button shutter is set to position <d>. Hold button shutter is set to position <e>. Disabling any button action is given by <b> ... <e> equal to "-". Any press of the button while the shutter is moving will immediately stop that shutter.
Global steering of all your shutters at home is supported by MQTT. By any button action an MQTT command can be initiated to the <grouptopic> of the device. For single press button this can be enabled by <f> equal to "1". Disabling is indicated by <f> equal to "0". Double to hold actions are given by <g> ... <i>, correspondingly. When <j> is equal to "0" only "cmnd/<grouptopic>/Shutterposition<y> ..." with <y>=<x> is fired. When <j> is equal to "1" <y>=1...4 is used to control any shutter number of a tasmota device having same <grouptopic>.
Easy setup for an "up" button:
ShutterButton<x> <a> up (same as ShutterButton<x> <a> 100 50 74 100 0 0 0 1 1)
Single press will move shutter up to 100%, double press to 50% and tripple press to 74%. Holding the button for more than the hold time (SetOption32) moves all shutters with same <grouptopic> up to 100%.
Easy setup for an "down" button:
ShutterButton<x> <a> down (same as ShutterButton<x> <a> 0 50 24 0 0 0 0 1 1)
Single press will move shutter down to 0%, double press to 50% and tripple press to 24%. Holding the button for more than the hold time (SetOption32) moves all shutters with same <grouptopic> down to 0%.
Easy setup for an "updown" button:
ShutterButton<x> <a> updown (same as ShutterButton<x> <a> 100 0 50 - 0 0 0 0 0)
Single press will move shutter up to 100%, double press down to 0% and tripple press to 50%. No hold action and no other shutter control by MQTT.