All Projects → cbpowell → ESPSense

cbpowell / ESPSense

Licence: MIT license
Use ESPHome to emulate TP-Link Kasa HS110 plugs, and report energy usage to your Sense Home Energy Monitor (or anything else on your network!) via ESP8266/ESP32 devices

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to ESPSense

ESPHome-Devices
A collection of ESPHome custom components, configuration files, and custom code for my various ESP8266/ESP32 devices that integrate with Home Assistant.
Stars: ✭ 83 (+130.56%)
Mutual labels:  energy-monitor, sense, esphome
SenseLink
A tool to create virtual smart plugs and inform a Sense Home Energy Monitor about usage in your home
Stars: ✭ 34 (-5.56%)
Mutual labels:  energy-monitor, sense
rs485-moist-sensor
Digital (RS485 - based) soil moisture and temperature sensor
Stars: ✭ 51 (+41.67%)
Mutual labels:  sensor
Catena-Sketches
Top-level Arduino sketches for the MCCI Catena family of IoT LPWA Devices
Stars: ✭ 12 (-66.67%)
Mutual labels:  sensor
espkyogate
Serial Bridge for Bentel Kyo Alarm System.
Stars: ✭ 22 (-38.89%)
Mutual labels:  esphome
falcon-operator
artifacthub.io/packages/olm/falcon-operator/falcon-operator
Stars: ✭ 28 (-22.22%)
Mutual labels:  sensor
long-live-sense
As Hello said Goodbye, this repo is in an effort to keep the Hardware alive
Stars: ✭ 18 (-50%)
Mutual labels:  sense
Qwiic Spectral Sensor AS726X
Qwiic breakout for the AS7261/AS7262/AS7263 spectral sensors from AMS.
Stars: ✭ 20 (-44.44%)
Mutual labels:  sensor
homeassistant-afvalwijzer
Provides sensors for some Dutch waste collectors
Stars: ✭ 119 (+230.56%)
Mutual labels:  sensor
Roode
A reliable smart home people counter based on VL53L1X and ESPHome
Stars: ✭ 119 (+230.56%)
Mutual labels:  esphome
STMems Linux IIO drivers
DISCONTINUED (October 2022): the maintenance for this repository has been discontinued. Please refer to https://github.com/STMicroelectronics/st-mems-android-linux-drivers-iio for the up-to-date drivers repository. This repository contains Linux Kernel (v3.10, v3.14, v3.18, v4.9, v4.14, v4.19) including STMicroelectronics MEMS IIO sensor support
Stars: ✭ 70 (+94.44%)
Mutual labels:  sensor
Radar
Arduino Servo controller with Ultrasonic sensor, that will send distance value from sensor to Node.js via USB serial and leveraging socket.io to send the data to browser in realtime.
Stars: ✭ 24 (-33.33%)
Mutual labels:  sensor
rssd
Rohde & Schwarz SCPI Driver (in Python)
Stars: ✭ 25 (-30.56%)
Mutual labels:  sensor
esphome-panasonic-ac
Open source alternative for Panasonic air condition wifi adapters that works locally without the Comfort Cloud
Stars: ✭ 109 (+202.78%)
Mutual labels:  esphome
ESPproMon
ESPproMon © Smartphone App for Energy Monitoring with Appp © Technology
Stars: ✭ 15 (-58.33%)
Mutual labels:  energy-monitor
HomeAssistantRepository
🏡 Home Assistant on Gentoo Linux.
Stars: ✭ 26 (-27.78%)
Mutual labels:  esphome
433MHz Tx Rx
Arduino based 433MHz Tx and Rx combo using Manchester protocol
Stars: ✭ 27 (-25%)
Mutual labels:  sensor
ATM90E32
Updated version of the ATM90E32 Arduino library
Stars: ✭ 22 (-38.89%)
Mutual labels:  energy-monitor
iosynth
IoSynth is IoT device/sensor simulator and synthetic data generator.
Stars: ✭ 21 (-41.67%)
Mutual labels:  sensor
esphome-configs
ESPHome Device Configurations Repository - A database of user submitted configurations for a variety of devices which can be flashed to run ESPHome.io firmware.
Stars: ✭ 66 (+83.33%)
Mutual labels:  esphome

ESPSense

Use ESPHome to create virtual TP-Link Kasa HS110 plugs, that report energy usage to your Sense Home Energy Monitor

Similar to the SenseLink project, ESPSense is an ESPHome custom component that emulates the protocol of TP-Link Kasa HS110 energy monitoring plugs. This lets you use your own ESP devices to report energy usage directly to your Sense Home Energy Monitor!

You should use this tool at your own risk! Sense is not obligated to provide any support related to issues with this project, and there's no guarantee everything will reliably work, or even work at all. Neither I or Sense can guarantee it won't affect your Sense data, particularly if things go wrong!

Confirmed Compatible Smart Plugs

One of the more useful cases is flashing other (commercial) energy-monitoring smart plugs with ESPHome, and then using them with ESPSense with no other integration required. Check out the wiki for details on confirmed "conversions" of other plugs, and an OTA flash guide!

The focus on the wiki is for plugs that are re-flashable "over the air" for simplicity, but if you're comfortable with soldering (and opening the plug) there are an incredible number of compatible plugs/devices compatible with ESPHome.

Usage

Modify/create your ESPHome YAML definition to include:

  1. an external_component directive, that specifies this component
  2. a top level espsense directive, to configure the ESPSense component by specifying which ESPHome sensor(s) to utilize for power data for each plug (note: these can also be template sensors that return a wattage value!)

From the included example YAML file:

external_components:
  # Pull the esphome component in from this GitHub repo
  - source: github://cbpowell/ESPSense
    components: [ espsense ]

# Template sensor as an example
sensor:
  - platform: template
    name: Test Sensor
    id: test_sensor
    unit_of_measurement: W
  
espsense:
  # You can define up to 10 "plugs" to report to Sense
  # Power value can come from any of the following:
  #   * A power sensor (in Watts)
  #   * Calculated from a current sensor (in Amps) and a voltage sensor (in Volts)
  #   * Calculated from a current sensor (in Amps) and a fixed voltage value
  plugs:
    - name: espsense
      power_sensor: test_sensor
      # current_sensor: some_current_sensor
      # voltage_sensor: some_voltage_sensor
      # voltage: 120.0
      # encrypt: false
      # mac_address: 35:4B:91:A1:FE:CC

Power Sensor

Note that whatever sensor you tell ESPSense to monitor is assumed to report a state in the units of watts! If you want to report the power usage of a device indirectly (such as scaled on another parameter, or simply if on or off), you'll need to create a template sensor in ESPHome to calculate/report the wattage.

MAC Address

By default, the first plug defined will use the hardware MAC address of your device, if no MAC is explicitly configured. If additional plugs are defined (on the same hardware device) and no specific MAC is configured for those, a MAC address will be automatically generated for each from a hash of the provided plug name.

Voltage and Current

Sense does not currently care about plug voltage or current readings, but this is implemented to support data collection by things other than Sense, or in case Sense does eventually implement it!

Encryption

TP-Link plugs use a light "encryption" of the transmitted data, and the Sense monitor does expect to receive the data in encrypted form, so generally you will want to leave the encrypt setting as default (true). However you can specify to disable encryption if desired, which could be utilize for your own custom data collection approaches.

Copyright 2020, Charles Powell

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].