tasmota lcd display pricelist

The display driver is able to display predefined setups of text or user defined text. To display text using DisplayText set DisplayMode to 0, or set DisplayMode to 1 for the HT16K33 dot-matrix display.

To use the seven-segment-specific TM1637, TM1638 and MAX7219 Display- commands, set DisplayMode to 0. Parameter LCD Display OLED Display TFT Display 7-segment Display (TM163x and MAX7219) 0 DisplayText DisplayText DisplayText All TM163x Display- functions

The DisplayText command is used to display text as well as graphics and graphs on LCD, OLED and e-Paper displays (EPD). The command argument is a string that is printed on the display at the current position. The string can be prefixed by embedded control commands enclosed in brackets [].

In order to use the DisplayText command the DisplayMode must be set to 0 (or optional 1 on LCD displays) or other modes must be disabled before compilation with #undef USE_DISPLAY_MODES1TO5.

In the list below p stands for parameter and may be a number from 1 to n digits. On monochrome graphic displays things are drawn into a local frame buffer and sent to the display either via the d command or automatically at the end of the command.

Pfilename: = display an rgb 16-bit color (or jpg on ESP32) image when file system is present, Scripteditor contains a converter to convert jpg to special RGB16 pictures See ScriptEditor Ffilename: = load RAM font file when file system is present. the font is selected with font Nr. 5, these fonts are special binary versions of GFX fonts of any type. they end with .fnt. an initial collection is found in Folder BinFonts

Draw up to 16 GFX buttons to switch real Tasmota devices such as relays or draw Sliders to dimm e.g. a lamp Button number + 256 - a virtual touch toggle button is created (MQTT => TBT)

When a file system is present you may define displaytext batch files. If a file named "display.bat" is present in the file system this batch file is executed. The file may contain any number of diplaytext cmds, one at a line. You may have comment lines beginning with a ;

E-Paper displays have 2 operating modes: full update and partial update. While full update delivers a clean and sharp picture, it has the disadvantage of taking several seconds for the screen update and shows severe flickering during update. Partial update is quite fast (300 ms) with no flickering but there is the possibility that erased content is still slightly visible. It is therefore useful to perform a full update in regular intervals (e.g., each hour) to fully refresh the display.

The data sheets of the TFT and OLED displays mention burn-in effects when a static display is shown for extended periods of time. You may want to consider turning on the display on demand only.

The EPD font contains 95 characters starting from code 32, while the classic GFX font contains 256 characters ranging from 0 to 255. Custom characters above 127 can be displayed. To display these characters, you must specify an escape sequence (standard octal escapes do not work). The ~character followed by a hex byte can define any character code.

The I2C address must be specified using DisplayAddress XX, e.g., 60. The model must be specified with DisplayModel, e.g., 2 for SSD1306. To permanently turn the display on set DisplayDimmer 100. Display rotation can be permanently set using DisplayRotate X (x = 0..3).

E-Paper displays are connected via software 3-wire SPI (CS, SCLK, MOSI). DC should be connected to GND , Reset to 3.3 V and busy may be left unconnected. The jumper on the circuit board of the display must be set to 3-wire SPI.

Waveshare has two kinds of display controllers: with partial update and without partial update. The 2.9 inch driver is for partial update and should also support other Waveshare partial update models with modified WIDTH and HEIGHT parameters. The 4.2 inch driver is a hack which makes the full update display behave like a partial update and should probably work with other full update displays.

In black and white displays, a local RAM buffer must be allocated before calling the driver. This must be set to zero on character or TFT color displays.

Universal Display Driver or uDisplay is a way to define your display settings using a simple text file and easily add it to Tasmota. uDisplay is DisplayModel 17. It supports I2C and hardware or software SPI (3 or 4 wire).

Initial register setup for the display controller. (IC marks that the controller is using command mode even with command parameters) All values are in hex. On SPI the first value is the command, then the number of arguments and the the arguments itself. Bi7 7 on the number of arguments set indicate a wait of 150 ms. On I2C all hex values are sent to I2C.

bit 2: enable async DMA, 0 wait for DMA to complete before returning, 4 run DMA async in the background. This later mode is only valid if the SPI bus is not shared between the display and any other SPI device like SD Card Reader.

# Scripter is the nost convenient way to edit and develop a uDisplay driver. On every scripter save the display is reinitialized and you immediately see results of your changes.

There are also many variants of each display available and not all variants may be supported. #define directive Description USE_DISPLAY Enable display support. Also requires at least one of the following compilation directives

tasmota lcd display pricelist

21:50:17 MQT: stat/Home-Display/STATUS = {"Status":{"Module":18,"FriendlyName":["Home-Display"],"Topic":"Home-Display","ButtonTopic":"0","Power":1,"PowerOnState":3,"LedState":1,"SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0}}

21:50:17 MQT: stat/Home-Display/STATUS1 = {"StatusPRM":{"Baudrate":115200,"GroupTopic":"sonoffs","OtaUrl":"http://thehackbox.org/tasmota/release/sonoff-display.bin","RestartReason":"Exception","Uptime":"0T00:14:33","StartupUTC":"2019-03-04T20:35:44","Sleep":10,"BootCount":31,"SaveCount":59,"SaveAddress":"F9000"}}

21:50:17 MQT: stat/Home-Display/STATUS2 = {"StatusFWR":{"Version":"6.4.1(release-display)","BuildDateTime":"2018-12-24T15:54:34","Boot":31,"Core":"2_3_0","SDK":"1.5.3(aec24ac9)"}}

21:50:17 MQT: stat/Home-Display/STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["@home",""],"TelePeriod":300,"SetOption":["00008009","558180C0","00000000"]}}

21:50:17 MQT: stat/Home-Display/STATUS4 = {"StatusMEM":{"ProgramSize":486,"Free":516,"Heap":13,"ProgramFlashSize":1024,"FlashSize":4096,"FlashChipId":"164020","FlashMode":3,"Features":["00000809","0FAAA59C","00038FA0","23B617CA","00003BC0"]}}

21:50:17 MQT: stat/Home-Display/STATUS5 = {"StatusNET":{"Hostname":"Home-Display","IPAddress":"192.168.178.18","Gateway":"192.168.178.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.178.1","Mac":"CC:50:E3:0F:1E:91","Webserver":2,"WifiConfig":4}}

21:50:17 MQT: stat/Home-Display/STATUS6 = {"StatusMQT":{"MqttHost":"192.168.178.11","MqttPort":8883,"MqttClientMask":"Home-Display","MqttClient":"Home-Display","MqttUser":"HA","MqttType":1,"MAX_PACKET_SIZE":1000,"KEEPALIVE":15}}

21:50:17 MQT: stat/Home-Display/STATUS7 = {"StatusTIM":{"UTC":"Mon Mar 04 20:50:17 2019","Local":"Mon Mar 04 21:50:17 2019","StartDST":"Sun Mar 31 02:00:00 2019","EndDST":"Sun Oct 27 03:00:00 2019","Timezone":"+01:00","Sunrise":"07:26","Sunset":"18:37"}}

21:50:17 MQT: stat/Home-Display/STATUS11 = {"StatusSTS":{"Time":"2019-03-04T21:50:17","Uptime":"0T00:14:33","Vcc":2.727,"SleepMode":"Dynamic","Sleep":10,"LoadAvg":99,"POWER":"ON","Wifi":{"AP":1,"SSId":"@home","BSSId":"5C:49:79:38:A1:02","Channel":13,"RSSI":100}}}

tasmota lcd display pricelist

It’s surprisingly easy to make your own simple air quality sensor. All you need is a cheap laser-scattering particulate matter sensor, a Wemos D1 Mini, a soldering iron, and Tasmota.

Part 1 showed how to make the simplest possible air quality sensor. Make sure you’ve seen that first, because Part 2 continues from Part 1 to add a 128×32 pixel OLED display and a mode button. We’re also going to install custom firmware to make the sensor last longer.

Printing a case is totally optional, of course. You can use whatever enclosure you like. My case has been designed to be a press-fit over the PMS5003, which holds the two halves together by friction. See the link above to download the STLs if you want to print it yourself, or you can buy a case from me if you don’t have access to a printer. I’ll include a 6x6x9mm tact switch with the “Display” version of the case:

After the sketch has uploaded the Air Quality Sensor will reboot, connect to your WiFi and MQTT broker, and show values on the display once it has successfully received data from the PMS5003.

tasmota lcd display pricelist

Problem: The LCD 2004 or LCD 1602 Display, for which the Tasmota LCD driver was written, uses a different wiring between the i2c expander (PCF8574) and the HD44780 Display.

I uses a PCF8574A where the address lines are set to 0, so I also have to patch the LCD_ADDRESS2 i2c bus address in xdsp_01_lcd.ino from 0x3F to 0x38.

In my_user_config.h enable USE_I2C, USE_DISPLAY_LCD, USE_DISPLAY, USE_DISPLAY_MODES1TO5 and comment all i2c devices which uses the same i2c address. Otherwise a i2c address conflict could happened which prevent Tasmota from recognizing the Display (i2cscanreturns an error). I also activate Script expressions and if statements.

Ok, time to build the firmware. Get tasmota and the patch (created with git format-patch HEAD~1 –stdout). Patch is written for 9.3.1 (cmmmit 92c0eb000) but if there are no breaking changes it should also run on newer versions.

Setup the basic config (WiFi, MQTT..), open the Webfrontend and go to the (web) console. If the LCD display is recognized there should be such an entry:

tasmota lcd display pricelist

Mar 22 22:30:45 pi-lcd-01 ble_sensor_mqtt_pub[6772]: mac address = A4:C1:38:70:0C:86 location = Living Room device type = 99 advertising_packet_type = 004

Mar 22 22:30:45 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6

Mar 22 22:30:45 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

Mar 22 22:30:50 pi-lcd-01 ble_sensor_mqtt_pub[6772]: mac address = A4:C1:38:70:0C:86 location = Living Room device type = 99 advertising_packet_type = 000

Mar 22 22:30:50 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6

Mar 22 22:30:50 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

Mar 22 22:30:57 pi-lcd-01 ble_sensor_mqtt_pub[6772]: mac address = A4:C1:38:70:0C:86 location = Living Room device type = 99 advertising_packet_type = 000

Mar 22 22:30:57 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6

Mar 22 22:30:57 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

Mar 22 22:31:00 pi-lcd-01 ble_sensor_mqtt_pub[6772]: mac address = A4:C1:38:70:0C:86 location = Living Room device type = 99 advertising_packet_type = 000

Mar 22 22:31:00 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6

Mar 22 22:31:00 pi-lcd-01 ble_sensor_mqtt_pub[6772]: ==>0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0

Mar 22 22:34:32 pi-lcd-01 ble_sensor_mqtt_pub[6837]: mac address = A4:C1:38:DD:CF:AD location = Living Room device type = 1 advertising_packet_type = 000

Mar 22 22:37:11 pi-lcd-01 ble_sensor_mqtt_pub[6837]: mac address = A4:C1:38:DD:CF:AD location = Living Room device type = 1 advertising_packet_type = 000

Mar 22 22:37:12 pi-lcd-01 ble_sensor_mqtt_pub[6837]: mac address = A4:C1:38:DD:CF:AD location = Living Room device type = 1 advertising_packet_type = 000