devices.esphome.io
Nous A8T
Nous A8T
Device Type: plugElectrical Standard: euBoard: esp32Difficulty: Disassembly required, 3/5
General Notes
Theis device contains an ESP32-C3 and ships with Tasmota firmware To flash it the device can easily be dissasemblied by unscrewing the screw at the plug side. Alternatively this procedure bij kadam12g works as well, start at step 21: https://github.com/kadam12g/ESPHome-Shelly-Plus-Plug-S?tab=readme-ov-file
Example Configuration
substitutions: name: nous-a8t friendly_name: Nous A8T (ESPHome) max_power: "2000" # Higher value gives lower watt readout current_res: "0.00126" # Lower value gives lower voltage readout voltage_div: "1570"
esphome: name: ${name} friendly_name: ${friendly_name} name_add_mac_suffix: false project: name: "NOUS.Smart-Wifi-Socket" version: "A8T" on_boot: priority: 200 then: - if: condition: switch.is_on: relay then: - light.turn_on: led else: - light.turn_off: led
esp32: board: esp32dev framework: type: esp-idf
# Enable logginglogger:
# Enable Home Assistant APIapi:
# Allow Over-The-Air updatesota:
# Allow provisioning Wi-Fi via serialimprov_serial:
wifi: # Set up a wifi access point ap: {}
# In combination with the `ap` this allows the user# to provision wifi credentials to the device via WiFi AP.captive_portal:
time: - platform: homeassistant id: my_time
globals: - id: total_energy type: float restore_value: true initial_value: "0.0"
dashboard_import: package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main import_full_config: true
# To have a "next url" for improv serialweb_server:
light: - platform: status_led internal: True name: "Switch state" id: led pin: number: GPIO02 inverted: true
binary_sensor: - platform: gpio id: "push_button" internal: true pin: number: GPIO04 inverted: yes mode: INPUT_PULLUP on_press: - switch.toggle: "relay"
switch: - platform: gpio pin: GPIO13 id: relay name: "Relay" restore_mode: RESTORE_DEFAULT_OFF icon: mdi:power on_turn_on: - light.turn_on: led on_turn_off: - light.turn_off: led
sensor: - platform: wifi_signal name: "Wifi Signal" update_interval: 60s icon: mdi:wifi
- platform: uptime name: "Uptime" update_interval: 60s icon: mdi:clock-outline
- platform: hlw8012 model: BL0937 sel_pin: number: GPIO14 inverted: True cf_pin: GPIO27 cf1_pin: GPIO26 current_resistor: ${current_res} voltage_divider: ${voltage_div} change_mode_every: 1 update_interval: 5s
current: id: current name: "current" unit_of_measurement: A accuracy_decimals: 3 icon: mdi:current-ac filters: - lambda: |- if (x < 0.01) return 0; else return x;
voltage: id: voltage name: "voltage" unit_of_measurement: V accuracy_decimals: 1 icon: mdi:flash-outline
power: name: "power" id: power unit_of_measurement: W icon: mdi:flash-outline force_update: true filters: - calibrate_linear: - 0.0 -> 0.0 - 24.50 -> 28.40 on_value_range: - above: ${max_power} then: - switch.turn_off: relay - homeassistant.service: service: persistent_notification.create data: title: Message from ${name} data_template: message: Switch turned off because power exceeded ${max_power}W
- platform: total_daily_energy name: "energy" power_id: power state_class: total_increasing unit_of_measurement: kWh filters: # Multiplication factor from W to kW is 0.001 - multiply: 0.001 - lambda: !lambda |- static auto last_state = x; if (x < last_state) { // x was reset id(total_energy) += last_state; ESP_LOGI("main", "Energy was reset: %f", id(total_energy)); } last_state = x; return id(total_energy) + x;