Custom component for EspHome to control your extraflame oven.
I will not anwser to mails, written about this project!! A issue can be read from anyone and a mail is only between two people. I don't know why only germans are writting mails, but the question is always the same: I'm already using this component and I will improve it when I have time.
I will describe here only the software part. The wiring with the board can be done in different ways. Some are described here
Please add the following snippet into your configuration file.
More information about external_components
can be found in the official docs
external_components:
- source: github://edenhaus/esphome-extraflame
components: [extraflame]
The base configuration is needed for all other components to work. Copy the configuration below into your configuration file. For further options of uart please refer to the docs
uart:
baud_rate: 1200
# data_bits: 8
# parity: NONE
stop_bits: 2
extraflame:
Name | Type | Default | Description |
---|---|---|---|
dump |
boolean |
false | See dump section |
With a sensor it is possible to read any value from the RAM or EEPROM. It will be reported as decimal number. The addresses seem to be different for different boards. A reference can be found here
Typical example of using this sensor would look like this:
sensor:
- platform: extraflame
memory: RAM
address: 0x01
Here is what every options means:
Name | Type | Default | Description |
---|---|---|---|
platform |
static string |
Required | extraflame |
memory |
string |
Required | RAM or EEPROM |
address |
hex number |
Required | The address as a hex number |
You can use in addition all sensor options. As for example the temperature must be divided by 2, below an complete example, where I use the built in filters.
sensor:
- platform: extraflame
memory: RAM
address: 0x01
name: ${name} Temperatur
filters:
- multiply: 0.5
Writing a value can be done with the following action:
extraflame.write:
memory: RAM
address: 0x21
value: 0x01
Here is what every options means:
Name | Type | Default | Description |
---|---|---|---|
memory |
string |
Required | RAM or EEPROM |
address |
hex number |
Required | The address as a hex number |
value |
hex number |
Required | The actual value, which you want to write |
All fields can be used with template and lambdas. More information about action can be found in the official documentation. Before writing the value to the memory, a read request is send to verify if a write command is necessary. This should reduce unnecessary write as the EEPROM can has only a certain number of writes.
If you enable the dump
option, a new home assistant is created with give the possibility to dump all values from the two memories.
The values are logged on level info. Therefore you need be connected to the device to get it.
The main purpose for this functionality is that different oven store the data on different addresses. It should be only activated for debugging or configuration.
Here an example, how to call the service in home assistant:
service: esphome.esp13_dump_memory
data:
memory: RAM
start: 0x00
end: 0xFF
Here is what every options means:
Name | Type | Default | Description |
---|---|---|---|
memory |
string |
Required | RAM or EEPROM |
start |
(hex) number |
Required | From which address the values are dumped. Values must be between 0x0 - 0xFF (255) |
end |
(hex) number |
Required | Until which address the values are dumped. Values must be between 0x0 - 0xFF (255) |
The output should be than something similar to:
This component is at an early stage so please be aware that there can be bugs...
Robert Resch, MIT, 2021