Usermod that uses the overlay feature to create a configurable seven segment display.
This has only been tested on a single configuration. Colon support is entirely untested.
Add the compile-time option -D USERMOD_SEVEN_SEGMENT
to your platformio.ini
(or platformio_override.ini
) or use #define USERMOD_SEVEN_SEGMENT
in my_config.h
.
Settings can be controlled through both the usermod setting page and through MQTT with a raw payload.
Topic <mqttDeviceTopic||mqttGroupTopic>/sevenSeg/perSegment/set
Payload 3
The number of individual LEDs per segment. There are 7 segments per digit.
The number of individual LEDs per period. A ':' has 2x periods.
Index of the LED that the display starts at. Allows a seven segment display to be in the middle of a string.
When true, when displayMask is configured for a time output and no message is set the time will be displayed.
Time, in milliseconds, between message shifts when the length of displayMsg exceeds the length of the displayMask.
This should represent the configuration of the physical display.
HH - 0-23. hh - 1-12, kk - 1-24 hours MM or mm - 0-59 minutes SS or ss = 0-59 seconds : for a colon All others for alpha numeric, (will be blank when displaying time)
HHMMSS
hh:MM:SS
Message to be displayed across the display. If the length exceeds the length of the displayMask the message will scroll at scrollSpd. To 'remove' a message or revert back to time, if timeEnabled is true, set the message to '~'.
The order that your LEDs are configured. All seven segments in the display need to be wired the same way.
------- / A / 0 - EDCGFAB / F / B 1 - EDCBAFG / / 2 - GCDEFAB ------- 3 - GBAFEDC / G / 4 - FABGEDC / E / C 5 - FABCDEG / / ------- D
20211009 - Initial release