# EverBlu Gas Meter - Minimal Configuration Example # This example shows the minimum required configuration esphome: name: everblu-gas-meter # Choose your board configuration below (uncomment one): # ========== ESP32 (generic) ========== esp32: board: esp32dev framework: type: arduino # Required since ESPHome 2026.1.0 (everblu_meter needs Arduino.h) # ========== ESP8266 (uncomment to use instead of ESP32) ========== # esp8266: # board: huzzah # framework: # version: recommended # WiFi configuration wifi: ssid: "YourWiFiSSID" password: "YourWiFiPassword" # Enable logging logger: # Enable Home Assistant API api: # Enable OTA updates ota: # Time component (required) time: - platform: homeassistant id: ha_time # SPI bus shared with the CC1101 radio # Pins below are for ESP32. For ESP8266, use: clk_pin GPIO14, mosi_pin GPIO13, miso_pin GPIO12 spi: id: main_bus clk_pin: GPIO18 mosi_pin: GPIO23 miso_pin: GPIO19 # EverBlu Meter Component external_components: - source: type: git url: https://github.com/genestealer/everblu-meters-esp8266-improved ref: main path: ESPHOME-release components: [ everblu_meter ] refresh: 1d everblu_meter: id: my_gas_meter spi_id: main_bus # REQUIRED: Meter identification # Enter the code printed under the barcode, with dashes. # Format on label: YY-SSSSSSS-NNN (year - serial - suffix) # The 3-digit suffix is optional. # Example (with suffix): '22-8765432-100' -> meter_code: '22-8765432-100' # Example (without suffix): '22-8765432-100' -> meter_code: '22-8765432' meter_code: "22-8765432-100" # Replace with your meter's code cs_pin: GPIO25 # ESP32 CC1101 CS / NSS — GPIO25 is safe (non-strapping, non-SPI) gdo0_pin: GPIO4 # ESP32 GPIO4 -> CC1101 GDO0 gdo2_pin: GPIO27 # REQUIRED (v3.0.0+): CC1101 GDO2 -> ESP32 GPIO27, hardware FIFO threshold. # Use any free GPIO (not SPI: avoid GPIO18/CLK, GPIO19/MISO, GPIO23/MOSI) # (not strapping pins: avoid GPIO0, GPIO2, GPIO5, GPIO12, GPIO15; GPIO27 is safe) # To keep legacy SPI polling instead, remove this line and add: # disable_gdo2_fifo_management: true # REQUIRED: Meter type meter_type: gas gas_volume_divisor: 100 # Gas meters use divisor (100 or 1000) # Optional: Link to time component time_id: ha_time # Optional: Timezone offset in MINUTES (default: 0 = UTC) # ⚠️ IMPORTANT: Set this to match your local timezone! # ESPHome's 'timezone' setting above is NOT automatically used by everblu_meter. # This is a static offset - doesn't handle DST automatically. # Examples: 60 = UTC+1, -300 = UTC-5, 660 = UTC+11 # timezone_offset: 60 # Central Europe CET (UTC+1) # Optional: Front-end RX input attenuation (default: 0) # Increase to 6/12/18 only if log shows *** NEAR-FIELD SATURATION DETECTED *** # and the device cannot be moved further from the meter. # rx_attenuation: 0 # Minimal sensors - just the essentials # Control button (optional but handy) request_reading_button: name: "Read Gas Meter Now" deep_scan_button: name: "Deep Frequency Scan" reset_frequency_button: name: "Reset Frequency Offset" stop_reading_button: name: "Stop Reading" volume: name: "Gas Volume" counter: name: "Read Counter" battery: name: "Meter Battery" rssi: name: "Meter RSSI" rssi_percentage: name: "RSSI Percentage" lqi: name: "LQI" lqi_percentage: name: "LQI Percentage" total_attempts: name: "Total Read Attempts" successful_reads: name: "Successful Reads" failed_reads: name: "Failed Reads" frequency_offset: name: "Frequency Offset" tuned_frequency: name: "Tuned Frequency (MHz)" frequency_estimate: name: "Frequency Estimate" meter_serial_sensor: name: "Meter Serial" meter_year_sensor: name: "Meter Year" meter_clock_sensor: name: "Meter Clock" meter_model_sensor: name: "Meter Type" reading_schedule_sensor: name: "Reading Schedule" reading_time_utc_sensor: name: "Reading Time (UTC)" # Timing sensors (24-hour format: HH:MM) time_start: name: "Reading Start Time" time_end: name: "Reading End Time" status: name: "Meter Status" error: name: "Last Error" radio_state: name: "CC1101 State" timestamp: name: "Last Reading Time" history_json: name: "Meter History (JSON)" firmware_version: name: "Firmware Version" active_reading: name: "Reading Active" radio_connected: name: "CC1101 Connected"