esphome: name: m5stackfire external_components: - source: type: git url: https://github.com/ssieb/custom_components components: [ip5306] - source: type: local path: ./my_components esp32: board: m5stack-fire flash_size: 16MB #framework: # type: arduino framework: type: esp-idf psram: substitutions: friendly_name: "M5StackFire" api: encryption: key: !secret api_encryption_key services: - service: mhz19_calibrate_zero then: - mhz19.calibrate_zero: my_mhz19 wifi: ssid: WLAN password: !secret wifi_password ota: password: !secret ota_password logger: # Power Management ip5306: battery_level: name: ${friendly_name} Battery Percent id: battery_percent charger_connected: name: ${friendly_name} Charger Connected id: connected charge_full: name: ${friendly_name} Charge Full id: full # Buttons binary_sensor: - platform: gpio id: m5stackfire_button_left pin: number: 39 inverted: true - platform: gpio id: m5stackfire_button_middle pin: number: 38 inverted: true on_click: then: - switch.toggle: backlight - platform: gpio id: m5stackfire_button_right pin: number: 37 inverted: true - platform: gpio pin: 36 name: m5stackfire-motion device_class: motion # GPIO pin of the display backlight switch: - platform: gpio pin: 32 name: "Backlight" id: backlight restore_mode: ALWAYS_OFF light: #- platform: monochromatic # backlight # output: gpio_32_backlight_pwm # name: ${friendly_name} Backlight # id: backlight # restore_mode: ALWAYS_ON - platform: esp32_rmt_led_strip rgb_order: GRB pin: GPIO15 num_leds: 10 rmt_channel: 1 chipset: SK6812 name: "${friendly_name} Side Light" restore_mode: ALWAYS_OFF id: side_light default_transition_length: 0s - platform: partition name: "${friendly_name} Side Light Right" segments: - id: side_light from: 0 to: 4 - platform: partition name: "${friendly_name} Side Light Left" segments: - id: side_light from: 5 to: 9 i2c: sda: 21 scl: 22 scan: True # Display spi: clk_pin: 18 mosi_pin: 23 miso_pin: 19 font: - file: "gfonts://Roboto" id: roboto size: 18 image: - file: m5stack_display.png id: img_background type: RGB24 display: - platform: ili9xxx model: M5STACK spi_mode: MODE3 data_rate: 20MHz cs_pin: 14 dc_pin: 27 reset_pin: 33 update_interval: 20s id: my_display lambda: |- it.image(0, 0, id(img_background)); it.printf(240, 67, id(roboto), Color(255, 255, 255), TextAlign::TOP_CENTER, "%.0f ppm", id(co2value).state ); it.printf(240, 125, id(roboto), Color(255, 255, 255), TextAlign::TOP_CENTER, "%.1f °C", id(co2temp).state ); it.printf(240, 184, id(roboto), Color(255, 255, 255), TextAlign::TOP_CENTER, "%.1f %%", id(m5stackfire_dht22_humidity).state ); uart: id: uart_co2 tx_pin: GPIO17 rx_pin: GPIO16 baud_rate: 9600 sensor: - platform: mhz19 co2: name: "MH-Z19 CO2" id: co2value temperature: name: "MH-Z19 Temperatur" id: co2temp update_interval: 5s automatic_baseline_calibration: false uart_id: uart_co2 id: my_mhz19 - platform: dht pin: 26 temperature: id: m5stackfire_dht22_temperature name: "DHT22 Temperature" humidity: id: m5stackfire_dht22_humidity name: "DHT22 humidity" # BTLE doesn't work - not enough RAM # PSRAM isn't usable because chip is wired to same pins as UART PORT-C :( # #mqtt: # broker: homeassistant.fritz.box # username: !secret mqtt_ble_username # password: !secret mqtt_ble_password # discovery: false # #nimble_tracker: #esp32_ble_tracker: # scan_parameters: # interval: 1.2s # window: 500ms # active: false # on_ble_advertise: # - then: # - lambda: |- # auto build_json = [&](JsonObject obj) { # obj["rssi"] = x.get_rssi(); # obj["address"] = x.address_str(); # obj["address_uint64"] = x.address_uint64(); # if(x.get_tx_powers().size() > 0) # obj["tx_power"] = x.get_tx_powers()[0]; # }; # global_mqtt_client->publish_json("my_btmonitor/raw_measurements/az_oben", build_json); #