Git Product home page Git Product logo

micronova's Introduction

ESPhome component for Micronova board based pellet stoves.

The Micronova component is now part of ESPHome. This repo is still valid and is the first place where new features and bugfixes show up. Full ESPHome documentation: https://esphome.io/components/micronova

You have to build a simple circuit to interface with your stove see documentation preview for the details. You can also order a board from @philibertc, that should make it dead easy.

Example configuration

The hardest part is to configure the correct IO pins for the UART and the enable_rx. Users have reported that when you got the interface board from @philibertc, then the pin-config below should work:

uart:
  tx_pin: D4
  rx_pin: D3
  baud_rate: 1200
  stop_bits: 2

micronova:
  enable_rx_pin: D2
  serial_reply_delay: 100ms

A generic example below. All buttons, sensors, text_sensors, switch and numbers accept a memory_location and memory_address. Specify those if the defaults don't work for you.

uart:
  tx_pin: 5
  rx_pin: 4
  baud_rate: 1200
  stop_bits: 2

external_components:
  - source: github://Jorre05/micronova
    components: [ micronova ]

micronova:
  enable_rx_pin: 7
  update_interval: 20s
  serial_reply_delay: 100ms

text_sensor:
  - platform: micronova
    stove_state:
      name: Stove status

number:
  - platform: micronova
    thermostat_temperature:
      name: Thermostat temperature
      step: 1
    power_level:
      name: Power level
      max_value: 4

sensor:
  - platform: micronova
    room_temperature:
      name: Room temperature
    fumes_temperature:
      name: Fumes temperature
    stove_power:
      name: Stove power level
    fan_speed:
      fan_rpm_offset: 240
      name: Fan RPM
    water_temperature:
      name: Water temperature
    water_pressure:
      name: Water pressure
    memory_address_sensor:
      memory_location: 0x20
      memory_address: 0x7d
      name: Custom Adres sensor

switch:
   - platform: micronova
     stove:
      name: Stove on/off switch

button:
  - platform: micronova
    custom_button:
      name: Custom button
      memory_location: 0x20
      memory_address: 0x7d
      memory_data: 0x08

Creating a climate component overlay

I'm working on a climate component for the Mirconova platform, in the future this may no longer be necessary

You can configure a climate component that links, back and forth, to the Micronova component. The example below will synchronize the thermostat setpoint and switch the stove on and off. Also when you change the thermostat setting on the stove or via the number component, that value will link back to the climate component. The same goes voor the stove switch state.

The if-conditions in the Lambda are there to make sure not to create an endless loop.

This climate component looks just like any other climate control in Home Assistant.

Climate screenshot

...
sensor:
  - platform: micronova
    room_temperature:
      name: Micronova Room Temperature
      id: micronova_room_temperature
...
number:
  - platform: micronova
    thermostat_temperature:
      name: Micronova Thermostat
      id: micronova_thermostat
      step: 1
      on_value:
        then:
          - lambda: |-
              if ( id(ha_thermostat).target_temperature != id(micronova_thermostat).state ) {
                auto call = id(ha_thermostat).make_call();
                call.set_target_temperature(id(micronova_thermostat).state);
                call.perform();
              }
...
switch:
   - platform: micronova
     stove:
      name: Stove on/off
      id: stove_switch
      on_turn_on:
        - lambda: |-
            if ( id(ha_thermostat).mode != CLIMATE_MODE_HEAT ) {
              auto call = id(ha_thermostat).make_call();
              call.set_mode("HEAT");
              call.perform();
            }
      on_turn_off:
        - lambda: |-
            if ( id(ha_thermostat).mode != CLIMATE_MODE_OFF ) {
              auto call = id(ha_thermostat).make_call();
              call.set_mode("OFF");
              call.perform();
            }
...
climate:
  - platform: thermostat
    name: HA thermostaat
    id: ha_thermostat
    sensor: micronova_room_temperature
    min_idle_time: 0s
    min_heating_off_time: 0s
    min_heating_run_time: 0s
    default_preset: Startup preset
    on_boot_restore_from: default
    preset:
      - name: Startup preset
        default_target_temperature_low: 22
    visual:
      min_temperature:  0 °C
      max_temperature: 40 °C
     temperature_step:
        target_temperature: 1
        current_temperature: 0.5
    idle_action:
      - lambda: |-
          ESP_LOGD("main","Bogus idle action");
    heat_action:
      - lambda: |-
          ESP_LOGD("main","Bogus heat action");
    heat_mode:
      - lambda: |-
          if ( ! id(stove_switch).state ) {
            id(stove_switch).turn_on();
          }
    off_mode:
      - lambda: |-
          if ( id(stove_switch).state ) {
            id(stove_switch).turn_off();
          }
    target_temperature_change_action:
       - lambda: |-
           if ( id(ha_thermostat).target_temperature != id(micronova_thermostat).state ) {
             auto call = id(micronova_thermostat).make_call();
             call.set_value(id(ha_thermostat).target_temperature);
             call.perform();
           }

micronova's People

Contributors

jorre05 avatar touste avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.