tasmota lcd display factory

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 factory

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 factory

After flashing Tasmota, open the web UI of the device and navigate to Configuration -> Auto-configuration. Select your device from the drop-down and click Apply Configuration.

tasmota lcd display factory

After flashing Tasmota, open the web UI of the device and navigate to Configuration -> Auto-configuration. Select your device from the drop-down and click Apply Configuration.

tasmota lcd display factory

Tasmota is an open source firmware for the ESP8266 and ESP32. It is mostly used for home automation devices, but can also be loaded on any other ESP device. It comes with support for a wide range of peripherals "out of the box" and makes interacting with sensors via WiFi extremely easy as a result.

Download the ESP32 bootloader files from https://github.com/arendst/Tasmota-firmware/tree/main/static/esp32, the latest Tasmota firmware file, and then run:

Configure MQTT. Set the host as mqtt, port as 1883, topic as the device name, and the prefix as tasmota/%topic%/. The mqtt hostname resolves to the MQTT server and the IoT router allows MQTT traffic on port 1883 to leave the network to this server.

Rules are sets of commands that should run when a specific condition is met. They are a way to program user defined behaviors to Tasmota without needing to write real code and requiring a recompile. The ability to write rules allow for interesting behaviors between events, sensors, and peripherals, such as updating an attached display when sensor values change, or turning a light on when a specific condition is met.

Rules are defined within a rule set which allows similar rules to be grouped togoether. Out of the box, Tasmota has 3 rule sets called rule1, rule2, and rule3. Any number of rules can be placed in each set (though in actuality, it"s limited by the device"s memory. Tasmota"s documentation says each rule set can hold least 1000 bytes worth of rules). Each of the 3 rule sets can be enabled or disabled. When a rule set is enabled, all rules within it will be active and vice versa. The ability to toggle on or off entire sets of rules allows for some interesting behaviors which we will explore later on.

Frequently, we want to do something with a sensor reading. In the case of a CO2 monitor, we may want to update a display when the PPM value changes. To do this, we create a new rule within the rule1 set by the following command:

Tasmota supports the following comparison operators. Aside from the string based equality operators, I haven"t come across any of the other string operators in any rule examples yet.

To apply these rules, copy and paste the entire rule set and paste it as a command into Tasmota"s console. This multi-line rule set will be converted into a single line and compressed in memory by Tasmota.

There are a different set of supported peripherals out of the box depending on which Tasmota build you used. Refer to the BUILDS page at https://github.com/arendst/Tasmota/blob/development/BUILDS.md to determine if a particular feature is enabled. If it isn"t, you will need to compile Tasmota with the desired feature enabled using the users_config_override.h file placed in the Tasmota source directory.

All supported displays can be found at https://tasmota.github.io/docs/Displays/#supported-displays. You may need to tweak the Tasmota compile options and rebuild a firmware file for your particular display. Once Tasmota is able to see your display, you should be able to draw or write text to it using the common display commands that are included in Tasmota.

The SSD1306 is an OLED display that comes in various sizes. These displays use I2C. The Wemos D1 OLED module is one such device with a screen size of 64x48. Tasmota supports this display through the tasmota-displays.bin image or you may compile support in by creating a user_config_override.h file with:

After flashing Tasmota with the proper peripheral support, attach the display to the ESP8266 via I2C (GPIOs 4 and 5 for SDA/SCL on the ESP8266, or GPIOs 21 and 22 for SDA/SCL on the ESP32). Once connected, running i2cscan on the console should return the display device at address 0x3c.

The HD44780 family of LCD displays, which includes the 1602 LCD display, can be interfaced using a i2c adapter. After connecting the adapter to Tasmota via the i2c bus, you should be able to start drawing text to the display using the Displaytext command.

To get started, use the display Tasmotao firmware or compile Tasmota with USE_I2C, USE_DISPLAY options. Configure the display with the following commands:

You may have noticed that there are some letters in square brackets passed to the Displaytext command. These are options that control the behavior of where and how the text should be drawn and can control the font size and location of the text. For example, to print "Hello World" across two separate lines, we write hello on line 1 column 1 (l1c1) and world on line 2 column 1 (l2c1):

There are many other parameters which can be found at: https://tasmota.github.io/docs/Displays/#displaytext-use. The most important ones you should know are listed below. You may chain any number of these together and they will run in the order they appear. Eg. [zl1c1f0s1]Hello would clear, then write the world Hello in the smallest font on line 1 column 1.Command/parameter

With the power of Tasmota rules, we can trigger text to be written when a state changes. In the case of a CO2 monitor, we can create the following rule which clears and prints the PPM value on the first line of the display whenever the value changes.

Configure the GPIO pins for I2C as usual. If everything is working, Tasmota should being reporting the read voltage and current from the INA219 in the telemetry messages in addition to it being displayed on the web page. If no values are being reported, run i2cscan and confirm whether the device shows up on the bus and recheck wiring and the I2C GPIO pin configuration.

For my INA219 monitoring board, I also have a SSD1306 display. I use the following rules to show the values on the display. A button is also used to optionally turn the display on temporarily.

The INA219 can be adjusted to measure higher currents by changing the shunt resistor. The shunt resistor value can be defined by setting the value to Sensor13 (see: https://github.com/arendst/Tasmota/pull/7803).

To increase the range of the INA219 from the default 3.2A to 6.4A, we could add an additional 0.1Ω resistor in parallel to the existing one which would effectively halve the resistance to 0.05Ω. Update the resistance value in Tasmota by running Sensor13 51. This should automatically save to flash and reboot.

The ADC input pins can detect a voltage and convert it into a digital value. Tasmota has the option to read a ADC pin and convert the value into a luminance value measured in Lux.

On the hardware side, connect your LED to your ESP on PWM capable output pins. On Tasmota, configure the pin as "PWM" or "PWM_i" with each pin on a separate channel (1 as red, 2 as green, 3 as blue). You should use PWM if your pins will be sourcing current (for common-cathode lights) and PWM_i if your pins will be sinking current (for common-anode lights). Ensure that SetOption68 is disabled so that all 3 channels are treated as a single light.

Compile instructions are available at https://tasmota.github.io/docs/Compile-your-build/. The simplest way for me was to use their Docker image which uses platform.io to do the builds. To get started, run:

What you want to build is controlled by the environment (provided by the -e option). A list of all available environments can be found in the platformio.ini file. By default, if no environment is specified, it will build everything for you. For a standard Tasmota firmware, use the tasmota environment.

To include additional drivers (like displays, sensors, etc), edit the tasmota/my_user_config.h file and uncomment (to add) or comment out (to remove) each feature as desired. Be aware that Tasmota groups features together and you may need to enable an entire group of features (eg. displays, power monitoring) for a specific feature to become included.

tasmota lcd display factory

After opening my device, I figured that mine came with WB3S module, which is not compatible with Tasmota/ESPHome…so I have changed it to ESP-12E (same size and pinout) and I got this working, almost. I can upload ESPHome and Tasmota firmwares, both works fine.

In Tasmota, I could not get any function to work. Button, relay, power information (current, voltage, power), nothing…just the firmware that loads. But I could enable TuyaMCU and got some debug information from that (more below).

Like I said before, Tasmot could not read anything is this device…not even relay. I’m using these commands to configure tasmota (copyied from URL in this msg):

From Tasmota, I got a lot more debug information…but I don’t have any idea how to use/configure these information. Note that even after copy/paste command from URL, I got an invalid function id from tasmota:

19:18:51.018 RSL: INFO1 = {"Info1":{"Module":"Tuya MCU","Version":"9.4.0(lite)","FallbackTopic":"cmnd/DVES_E04F1A_fb/","GroupTopic":"cmnd/tasmotas/"}}

tasmota lcd display factory

This clever utility uses a security loophole to trick your Tuya device into thinking that it’s installing an updated version of itself, when in fact it’s replacing itself with Tasmota. This means you can do the conversion without any electrical connection to the device: you don’t need a serial connection, and you don’t need to open the case.

If you only had one device to convert, you can say “N” (or just press ENTER) and Tuya-Convert will exit. You’re now ready to follow the normal Tasmota setup and configure your device.

Tuya-Convert installs a very basic Tasmota binary that will allow your device to connect to WiFi, but it may not be the specific Tasmota build that your device requires for its features to work.

Power up your device, and then follow the usual Tasmota setup process to connect your phone or tablet to its network. Then you can open its web interface, and if necessary you can install a different build of Tasmota that suits your device.

The best place to get information about specific devices is the Tasmota Device Templates Repository. Look up your device there to find out what Tasmota build you need to install, and how it should be configured.

tasmota lcd display factory

Xmas DIY projects part 2: ESP8266 based central heating monitor (up to 4x DS18B20 thermal sensor; up to 3x 230V AC input to keep track of when which pump is enabled). Hardware athttps://gitea.osmocom.org/laforge/esp8266-projects/src/branch/master/esp8622_heating_monitoring…using stock Tasmota as software, feeding mosquitto->influxdb->grafana

tasmota lcd display factory

Hello Rogerio, thanks! I"m sorry, I don"t have the original firmware v1.0.6. I converted my own test device to Tasmota before any original firmware update could take place (it was in version 1.0.2). Nevertheless (not sure if is true or not), I read that Tuya firmwares can contain device specific data, preventing a firmware image extracted from one device, to work in another device.

10:04:52 MQT: tele/StudioPower/INFO1 = {"Module":"Generic","Version":"8.1.0(tasmota)","FallbackTopic":"cmnd/DVES_593705_fb/","GroupTopic":"cmnd/tasmotas/"}

I cannot promise when but I have the ambition of implementing logic on Tasmota side for doing the parsing, and exposing the calculated values as sensors, making the integration simpler and similar to other sensors/meters.

I included the baudrate command inside the system boot rule, because I have the same issue, when you restart the tasmota, it loses the configuration of the baudrate

With Tasmota 8.2 (the only one I have tested with), the serial data does not flow until the Baudrate command is issued after boot (even though it is set to the same value).

@Unknown, regarding the "SerialReceived" with the hex data not delimited by " ", there is a fix for that already in the Tasmota project (is currently in the development branch, should go in the next release).

Hello! You did a fantastic job of reverse engineering this device. I reflash it on tasmota 8.1 and it works great. But my question is: is it possible to make the relay remember its previous state? It is very inconvenient when the relay always turns off when power is applied. Regards

Hi, I"m new in IOT and have no deep knowledge of Tasmota but I hope my humble experience will help someone who also is researching this field and/or wants investigate it more deeply than I am.

It appears that both PCB layout and internal communication architecture have been changed in new version of device. Some GPIOs became disconnected from the PCB as long as Button/Led/Relay controls - now everything is connected to V8921 chip and all control from ESP is performed now via TuyaMCU (https://tasmota.github.io/docs/TuyaMCU). ESP chip sends serial commands to MCU and MCU responds: turns on and off the relay, report measured power metrics and probably turns on/off the LEDs. I guess that earlier self resets could have been caused by serial tx on GPIO 13 which was interpreted as 40-second button pressing. When GPIO 13 setting has been changed from button no more self resets was observed. Finally module type/GPIO assignment has been set up as at screenshot(I"m not sure if double set of tx/rx communication lines need to be configured. Also since it appeared to be working with all GPIOs set to none probably some settings are already embedded into TuyaMCU tasmota module and therefore GPIO assignment is not needed.)

It appears that there is only 4 metrics now(full list of metrics is exposed with "SerialSend5 55aa0001000000" command as described in Tasmota TuyaMCU documentation article). The metrics are following:

I"m not sure if TuyaMCU tasmota module poll the MCU itself or MCU by itself reports the status periodically but no further polling settings (like described Rule1 creation) need to be done manually. Probably if you need to poll more frequently you need to create a Rule with "SerialSend5 55aa0001000000" command.

According to my understanding Tasmota at the moment does not support integration for Total W/h metric (DpType2Id17). Tasmota"s values for total Kw/h appears to be calculated from momentary Voltage/Current/Power measurements and since that can"t be accurate. But because I"m planning to read Total W/h counter into Zabbix via mqtt it"s not an issue for me.

If you don"t mind, I can make reference to you and your findings in the Tasmota discord channel, as the community members more related to the TuyaMCU integration may have some ideas regarding additional commands that may potentially exist (given that the metering chip is the same, it wouldn"t be surprising that the measurements exposed in the previous version are also available in this one too, via different commands).

22:46:21 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA0301002A7B2270223A226136646A61627A6D7062627036326777222C2276223A22312E302E30222C226D223A307DE8","Cmnd":1,"CmndData":"7B2270223A226136646A61627A6D7062627036326777222C2276223A22312E302E30222C226D223A307D"}}

22:46:21 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA03070005010100010011","Cmnd":7,"CmndData":"0101000100","DpType1Id1":0,"1":{"DpId":1,"DpIdType":1,"DpIdData":"00"}}}

22:46:21 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA03070008110200040000000028","Cmnd":7,"CmndData":"1102000400000000","DpType2Id17":0,"17":{"DpId":17,"DpIdType":2,"DpIdData":"00000000"}}}

22:46:22 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA03070008120200040000000029","Cmnd":7,"CmndData":"1202000400000000","DpType2Id18":0,"18":{"DpId":18,"DpIdType":2,"DpIdData":"00000000"}}}

22:46:22 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA0307000813020004000000002A","Cmnd":7,"CmndData":"1302000400000000","DpType2Id19":0,"19":{"DpId":19,"DpIdType":2,"DpIdData":"00000000"}}}

22:46:22 RSL: tele/tasmota_DF55AE/RESULT = {"TuyaReceived":{"Data":"55AA0307000814020004000000002B","Cmnd":7,"CmndData":"1402000400000000","DpType2Id20":0,"20":{"DpId":20,"DpIdType":2,"DpIdData":"00000000"}}}

I can get data when I first configure my device in tasmota, but after a power down - up cycle of the device (not relay) I can"t get real data until I send in console

They both work fine, the front display seems to be accurate and I can read the output via MQTT in Home Assistant (eventually, took me a while to figure it out).

Both are configured as [Tuya MCU(54)] units and both show the same problem on the Tasmota Web page for the 2 devices, the problem is minor but annoying.

The important things to know about those strings is that the ["Total":3416.192] value should be the same as the ["DpType2Id17":55000] except for the decimal point so it should display ["Total":55.000] kWh the same as the meters LCD display but it never does. The other values ("Yesterday" & "Today")aren"t shown on the display but simple maths on yesterdays usage and todays usage shows these are always incorrect too. I have been using one of these meters for months with this problem by just ignoring the Web page and using the MQTT values for Volts; Current; Power & Total kWh in HA instead.

Good day. What do you think about the new version of the electricity meter. The tui module costs WB3S (not really!). Tasmoto is not stitched. I changed the module to esp-12 and tasmota 9.2 through the programmer.

Good day. What do you think about the new version of the electricity meter. The tui module costs WB3S (not really!). Tasmoto is not stitched. I changed the module to esp-12 and tasmota 9.2 through the programmer.

It uses a somewhat different protocol and has only more basic readings (total consumption, voltage, current and power). You can only utilize the relay (i think it was dpId 16) with the current development firmware of tasmota. I submitted a pull request for my changes, which make it possible to get the rest of the data.

I have a ZMAI-90 with WB3S Wifi module. I replaced the module with an ESP12F and I have flashed on it a Tasmota 9.3.1. I have tried to run the above commands in console, but I get some errors. I guess this version is not supporting these features yet:

https://www.amazon.de/AZDelivery-ESP8266-ESP-12F-verbesserte-Version/dp/B01NASA1MV/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&dchild=1&keywords=esp%2B12%2BTasmota&qid=1620306443&sr=8-4&th=1

https://www.amazon.de/AZDelivery-ESP8266-ESP-12F-verbesserte-Version/dp/B01NASA1MV/ref=sr_1_4?__mk_de_DE=ÅMÅŽÕÑ&dchild=1&keywords=esp%2B12%2BTasmota&qid=1620306443&sr=8-4&th=1

So I have managed sucessfully to run the new version with the TuyaMCU mode in tasmota. However, the values of kwh readings somehow inconsistent. More often the value of total kwh is getting reset after a power cycle.

14:57:03.635 MQT: tele/tasmota_936F2D/RESULT = {"TuyaReceived":{"Data":"55AA03070008110200040026D1EE0D","Cmnd":7,"CmndData":"110200040026D1EE","DpType2Id17":2544110,"17":{"DpId":17,"DpIdType":2,"DpIdData":"0026D1EE"}}}

So I think I can still display the correct value by manually entering mqtt config on yaml file. however I lack the skill to parse the text strings. Can anyone help me to parse 2544.110 to HA?

Found a minor bug, affecting the new version of the zmai-90 using tuyamcu protocols. the latest tasmota binaries (9.4.0) limited the power reports to around 6500W.

Hallo, erstmal Kompliment für Ihr gelungenes Tasmota-Flashen des ZMAi-90. Ich habe auch schon diverse Sonoff Produkte selbst geflasht aber beim ZMAi-90 glaube ich bin ich zu schwach. Wäre es möglich einen Tasmota geflashten ZMAi-9o von Ihnen zu erwerben? Konnten Sie schon eine Lösung zu Rückstellen des Zählers finden?

"Hello, first of all compliments for your successful Tasmota flashing of the ZMAi-90. I"ve flashed various Sonoff products myself, but I think I"m too weak with the ZMAi-90. Would it be possible to purchase a Tasmota flashed ZMAi-9o from you? Have you already found a solution to reset the counter?

tasmota lcd display factory

While searching the Internet for a battery monitor for DC voltages, I came across the PZME-017. The Peacefair company is known for various inexpensive battery monitors with LCD displays such as the PZEM-015.

In contrast to the PZEM-015, the PZEM-017 has no display and transmits the measurement data via the Modbus. The Modbus protocol is open and there are some implementations with an arduino. The website is an example here Solarduino called. There, however, a TTL-RS485 adapter is used to connect to the Arduino. In the area of home automation there are implementations with a Wemos D1 mini (ESP8266) with Tasmota firmware and a data connection via WiFi. However, it cannot be used well as a battery monitor on a boat, as you still need an external power supply of 5V for the Wemos D1 mini.

Energy display in kWh for the current day, previous day and total consumption display (not power off resistant when completely switched off, details look here)

The current version of the Tasmota firmware can be downloaded here: http://ota.tasmota.com/tasmota/release/ The firmware is available in different language versions. The tasmota.bin file would be a good choice for English-language firmware. If you want to know more about Tasmota, you can visit this website: https://www.tasmota.info There you will find detailed information about supported hardware and flashing.

The Tasmota firmware is universal and supports a variety of devices. With the configuration, the firmware is adapted to the specific hardware. After flashing, the Wemos D1 mini starts with its own access point, which can be reached under the SSID tasmota_xxxxxx. A password for logging into the WiFi network is not required. The start page can be opened with a web browser under the IP address 192.168.4.1. The respective settings are made under Configuration as shown in the following images.

Up to 3 temperature sensors can be connected in parallel to the 1-Wire port. The sensors can be used, for example, to measure the temperature of the battery, the charger, the solar regulator or the inverter. Any other application would also be conceivable. The Tasmota firmware will automatically detect the additional temperature sensors and display the temperature values below the values from the battery monitor. The assignment of the sensors to the IDs must be found out by testing the sensors.

By default, the Tasmota firmware only shows the voltage without decimal places. Up to two decimal places can be displayed if you enter the following command in the console:

If you want to access this data on third-party websites, you have to CORS (Cross Origin Resource Sharing) in the Tasmota firmware. This is done with the following command via the console:

The measured values can also be integrated into SignalK and can then be displayed via the instrument panel. How the configuration works in detail is described here:

The power consumption of the battery monitor can be reduced quite significantly to 1.0 mA at 12 V if the Wemos D1 mini can be switched off using a small switch (red cable 3.3V). The original measuring circuit then continues to run in the switched-off state and counts the power consumption. Only data transmission and display of the measurement data is then no longer possible. After switching on the supply voltage, all data are transmitted again and displayed correctly. This is very useful when you are not on the boat, so as not to discharge the battery.

If you also want to measure the consumption data of the AC shore connection, you can do this with the Sonoff Pow Power Monitoring Switch with the Tasmopta firmware do. The shore connection can also be switched on and off via the module. The newer variant is the Sonoff Pow R2. It has a larger range of functions and can display more measured values and react to limit values. An ESP8266 is already built into these two devices and is only operated with the Tasmota firmware. A modification of the electronic circuit is not necessary as with the battery monitor. The Sonoff Pow R2 is therefore a good addition to the battery monitor.