Python script: Enphase Envoy mqtt json for Home Assistant

Overview

Python script: Enphase Envoy mqtt json for Home Assistant

A Python script that takes a real time stream from Enphase Envoy and publishes to a mqtt broker. This can then be used within Home Assistant or for other applications. The data updates at least once per second with negligible load on the Envoy.

Requirements

  • An Enphase Envoy. Note - Tested with Envoy-S-Metered-EU
  • A system running python3 with the paho.mqtt python library
  • The normal way to install paho.mqtt is
    pip install paho-mqtt
  • If that doesn't work, try
git clone https://github.com/eclipse/paho.mqtt.python
cd paho.mqtt.python
python setup.py install
  • The serial number of your Envoy. Can be obtained by browsing to "http://envoy.local"
  • The installer password for your envoy. To obtain, run the passwordCalc.py script using the Envoys serial number after first editing the file and inserting your serial number. Don't change the userName - it must be installer
  • A mqtt broker - this can be external or use the Mosquitto broker from the Home Assistant Add-on store
    • If you use the add-on, create a Home Assistant user/password for mqtt as described in the Mosquitto broker installation instructions

Install

  • Copy to host
  • Configure settings in envoy_to_mqtt_json.py

Run Script

/path/to/python3 /path/to/envoy_to_mqtt_json.py

Run it as a daemon - an example for macOs is to create a ~/Library/LaunchAgents/envoy.plist

Disabled EnvironmentVariables PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/sbin KeepAlive Label envoy ProgramArguments /path/to/python3 /path/to/envoy_to_mqtt_json.py RunAtLoad ">



   

    
	
     
      Disabled
     
	
     
	
     
      EnvironmentVariables
     
	
     
		
      
       PATH
      
		
      
       /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/sbin
      
	
     
	
     
      KeepAlive
     
	
     
	
     
      Label
     
	
     
      envoy
     
	
     
      ProgramArguments
     
	
     
		
      
       /path/to/python3
      
		
      
       /path/to/envoy_to_mqtt_json.py
      
	
     
	
     
      RunAtLoad
     
	
     

    

   

Then use launchctl to load the plist from a terminal:

launchctl load ~/Library/LaunchAgents/envoy.plist

To stop it running use

launchctl unload ~/Library/LaunchAgents/envoy.plist

Run as systemd service on Ubuntu

Take note of where your python file has been saved as you need to point to it in the service file

/path/to/envoy_to_mqtt_json.py

Using a bash terminal

cd /etc/systemd/system

Create a file with your favourite file editor called envoy.service and add the following

[Unit]
Description=Envoy stream to MQTT

[Service]
Type=simple
ExecStart=/path/to/envoy_to_mqtt_json.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

Save and close the file then run the following commands

sudo systemctl daemon-reload
sudo systemctl enable envoy.service
sudo systemctl start envoy.service

You can check the status of the service at any time by the command

systemctl status envoy

Note: this should work for any linux distribution that uses systemd services, but the instructions and locations may vary slightly.

Example output

The resulting mqtt topic should look like this example:

{
    "production": {
        "ph-a": {
            "p": 351.13,
            "q": 317.292,
            "s": 487.004,
            "v": 244.566,
            "i": 1.989,
            "pf": 0.72,
            "f": 50.0
        },
        "ph-b": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        },
        "ph-c": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        }
    },
    "net-consumption": {
        "ph-a": {
            "p": 21.397,
            "q": -778.835,
            "s": 865.208,
            "v": 244.652,
            "i": 3.539,
            "pf": 0.03,
            "f": 50.0
        },
        "ph-b": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        },
        "ph-c": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        }
    },
    "total-consumption": {
        "ph-a": {
            "p": 372.528,
            "q": -1096.126,
            "s": 1352.165,
            "v": 244.609,
            "i": 5.528,
            "pf": 0.28,
            "f": 50.0
        },
        "ph-b": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        },
        "ph-c": {
            "p": 0.0,
            "q": 0.0,
            "s": 0.0,
            "v": 0.0,
            "i": 0.0,
            "pf": 0.0,
            "f": 0.0
        }
    }
}
__Note__: Data is provided for three phases - unused phases have values of `0.0`

Description of labels

"production": = Solar panel production - always positive value
"total-consumption": = Total Power consumed - always positive value
"net-consumption": = Total power Consumed minus Solar panel production. Will be positive when importing and negative when exporting
    
    "ph-a" = Phase A    
    "ph-b" = Phase B
    "ph-c" = Phase C

        "p": =  Real Power ** This is the one to use
        "q": =  Reactive Power
        "s": =  Apparent Power
        "v": =  Voltage
        "i": =  Current
        "pf": = Power Factor
        "f": =  Frequency

value_template configuration examples

value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}' # Phase A Total power consumed by house
value_template: '{{ value_json["net-consumption"]["ph-c"]["p"] }}'   # Phase C - Total Power imported or exported
value_template: '{{ value_json["production"]["ph-b"]["v"] }}'   # Phase B - Voltage produced by panels

configuration.yaml configuration examples

# Example configuration.yaml entry
#
# Creates sensors with names such as sensor.mqtt_production
#
sensor:
  - platform: mqtt
    state_topic: "/envoy/json"
    name: "mqtt_production"
    qos: 0
    unit_of_measurement: "W"
    value_template: '{% if is_state("sun.sun", "below_horizon")%}0{%else%}{{ value_json["production"]["ph-a"]["p"]  | int }}{%endif%}'
    state_class: measurement
    device_class: power

  - platform: mqtt
    state_topic: "/envoy/json"
    value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}'
    name: "mqtt_consumption"
    qos: 0
    unit_of_measurement: "W"
    state_class: measurement
    device_class: power

  - platform: mqtt
    state_topic: "/envoy/json"
    name: "mqtt_power_factor"
    qos: 0
    unit_of_measurement: "%"
    value_template: '{{ value_json["total-consumption"]["ph-a"]["pf"] }}'
    state_class: measurement
    device_class: power_factor

  - platform: mqtt
    state_topic: "/envoy/json"
    name: "mqtt_voltage"
    qos: 0
    unit_of_measurement: "V"
    value_template: '{{ value_json["total-consumption"]["ph-a"]["v"] }}'
    state_class: measurement
    device_class: voltage
#

Real time power display using Power Wheel Card

Here's the code if you'd like real-time visualisations of your power usage like this:

Power Wheel card:

active_arrow_color: '#FF0000'
color_icons: true
consuming_color: '#FF0000'
grid_power_consumption_entity: sensor.importing
grid_power_production_entity: sensor.exporting
home_icon: mdi:home-outline
icon_height: mdi:18px
producing_colour: '#00FF00'
solar_icon: mdi:solar-power
solar_power_entity: sensor.solarpower
title_power: ' '
type: custom:power-wheel-card

configuration.yaml:

sensor:
  
  #
  # These ones are for Envoy via mqtt
  #
  - platform: mqtt
    state_topic: "/envoy/json"
    name: "mqtt_production"
    qos: 0
    unit_of_measurement: "W"
    value_template: '{% if is_state("sun.sun", "below_horizon")%}0{%else%}{{ value_json["production"]["ph-a"]["p"]  | int }}{%endif%}'
    state_class: measurement
    device_class: power

  - platform: mqtt
    state_topic: "/envoy/json"
    value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}'
    name: "mqtt_consumption"
    qos: 0
    unit_of_measurement: "W"
    state_class: measurement
    device_class: power

  - platform: template
    sensors:
      exporting:
        friendly_name: "Current MQTT Energy Exporting"
        value_template: "{{ [0, (states('sensor.mqtt_production') | int - states('sensor.mqtt_consumption') | int)] | max }}"
        unit_of_measurement: "W"
        icon_template: mdi:flash
      importing:
        friendly_name: "Current MQTT Energy Importing"
        value_template: "{{ [0, (states('sensor.mqtt_consumption') | int - states('sensor.mqtt_production') | int)] | max }}"
        unit_of_measurement: "W"
        icon_template: mdi:flash
      solarpower:
        friendly_name: "Solar MQTT Power"
        value_template: "{{ states('sensor.mqtt_production')}}"
        unit_of_measurement: "W"
        icon_template: mdi:flash
Comments
  • Data from HA energy tab does not reflect enlighten data.

    Data from HA energy tab does not reflect enlighten data.

    Howdy,

    Using the energy plugin from HA and your enphase-mqtt plugin the numbers to not align to what enphase enlighten data shows.

    Example: May 13th Production/Consumption HA: 18.9 kWH/24.5kWH Enlighten: 40.2kWH/91.6kWH

    May 12th HA:21.6kWh/26.4kWh Enlighten: 44.4kWh/94.9kWh

    Here is my config minus the customization.yaml file you provided me with in another issue.

    sensor:
      - platform: mqtt
        state_topic: "/envoy/json"
        name: "mqtt_production"
        qos: 0
        unit_of_measurement: "W"
        value_template: '{% if is_state("sun.sun", "below_horizon")%}0{%else%}{{ value_json["production"]["ph-a"]["p"]  | int(0) }}{%endif%}'
        state_class: measurement
        device_class: power
    
      - platform: mqtt
        state_topic: "/envoy/json"
        value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}'
        name: "mqtt_consumption"
        qos: 0
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
    
      - platform: mqtt
        state_topic: "/envoy/json"
        name: "mqtt_power_factor"
        qos: 0
        unit_of_measurement: "%"
        value_template: '{{ value_json["total-consumption"]["ph-a"]["pf"] }}'
        state_class: measurement
        device_class: power_factor
    
      - platform: mqtt
        state_topic: "/envoy/json"
        name: "mqtt_voltage"
        qos: 0
        unit_of_measurement: "V"
        value_template: '{{ value_json["total-consumption"]["ph-a"]["v"] }}'
        state_class: measurement
        device_class: voltage
    sensor:
    
      #
      # These ones are for Envoy via mqtt
      #
      - platform: mqtt
        state_topic: "/envoy/json"
        name: "mqtt_production"
        qos: 0
        unit_of_measurement: "W"
        value_template: '{% if is_state("sun.sun", "below_horizon")%}0{%else%}{{ value_json["production"]["ph-a"]["p"]  | int(0) }}{%endif%}'
        state_class: measurement
        device_class: power
    
      - platform: mqtt
        state_topic: "/envoy/json"
        value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}'
        name: "mqtt_consumption"
        qos: 0
        unit_of_measurement: "W"
        state_class: measurement
        device_class: power
    
      - platform: template
        sensors:
          exporting:
            friendly_name: "Current MQTT Energy Exporting"
            value_template: "{{ [0, (states('sensor.mqtt_production') | int(0) - states('sensor.mqtt_consumption') | int(0))] | max }}"
            unit_of_measurement: "W"
            icon_template: mdi:flash
          importing:
            friendly_name: "Current MQTT Energy Importing"
            value_template: "{{ [0, (states('sensor.mqtt_consumption') | int(0) - states('sensor.mqtt_production') | int(0))] | max }}"
            unit_of_measurement: "W"
            icon_template: mdi:flash
          solarpower:
            friendly_name: "Solar MQTT Power"
            value_template: "{{ states('sensor.mqtt_production')}}"
            unit_of_measurement: "W"
            icon_template: mdi:flash
    
    
    
    
    sensor 1001:
      - platform: integration
        source: sensor.solarpower
        name: energy_solar
        method: left
    #    unit: kWh
        unit_prefix: k
        unit_time: h
        round: 2
    sensor 1002:
      - platform: integration
        source: sensor.exporting
        name: energy_exporting
        method: left
    #    unit: kWh
        unit_prefix: k
        unit_time: h
        round: 2
    sensor 1003:
      - platform: integration
        source: sensor.importing
        name: energy_importing
        method: left
    #    unit: kWh
        unit_prefix: k
        unit_time: h
        round: 2 
    
    opened by timolow 20
  • HA install variable results

    HA install variable results

    I’v been running your excellent script for some time, and have just tried it running under HA. The results have been mixed. Sometimes it works, sometimes it doesn’t. I see no errors in the HA log when it doesn’t work. The log looks OK, except it has no message indicating a successful connection, even when it works:

    [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
    [s6-init] ensuring user provided files have correct perms...exited 0.
    [fix-attrs.d] applying ownership & permissions fixes...
    [fix-attrs.d] done.
    [cont-init.d] executing container initialization scripts...
    [cont-init.d] done.
    [services.d] starting services
    [services.d] done.
    

    Sometimes I get a string of timeout errors after some time, but I can ping the Envoy fine from HA. Sometimes it will take quite a few minutes before it starts. All very variable really!

    Can you think of any troubleshooting I can try? I can pretty easily get it to the point of not working by simply stopping and starting it a few times.

    opened by sddgit 16
  • Can't get launchctl working

    Can't get launchctl working

    I hope it's ok to ask here for help. I can run the script very successfully from MacOS Terminal, using

    python3 /users/serveruser/Envoy_scripts/envoy_mqtt_script.py

    but I'm having a lot of trouble getting it to run via launchctl. My plist is:

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>Disabled</key>
    	<false/>
    	<key>EnvironmentVariables</key>
    	<dict>
    		<key>PATH</key>
    		<string>/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/usr/local/sbin</string>
    	</dict>
    	<key>KeepAlive</key>
    	<true/>
    	<key>Label</key>
    	<string>envoy</string>
    	<key>ProgramArguments</key>
    	<array>
    		<string>/usr/bin/python3</string>
    		<string>/users/serveruser/Envoy_scripts/envoy_mqtt_script.py</string>
    	</array>
    	<key>RunAtLoad</key>
    	<true/>
    	<key>StandardErrorPath</key>
    	<string>/Users/serveruser/Library/logs/Envoy mqtt script/stderr.log</string>
    	<key>StandardOutPath</key>
    	<string>/Users/serveruser/Library/logs/Envoy mqtt script/stdout.log</string>
    </dict>
    </plist>
    

    When I load it, the stderr.log shows

      File "/users/serveruser/Envoy_scripts/envoy_mqtt_script.py", line 12, in <module>
        import requests
    ModuleNotFoundError: No module named 'requests'
    

    Now when I first started playing with this, the "requests" module was missing on my system, and I installed it and all was well via Terminal (or Python3 Launcher). But the problem is back when I use launchctl. Any ideas?

    opened by sddgit 14
  • Values not showing up in

    Values not showing up in "energy" panel

    Howdy,

    I installed this extension into HA, I can see the metrics being imported into HA via the entities tab, however these entities do not show up under the energy tab in HA.

    config.yaml

    sensor:

    • platform: mqtt state_topic: "/envoy/json" name: "mqtt_production" qos: 0 unit_of_measurement: "W" value_template: '{% if is_state("sun.sun", "below_horizon")%}0{%else%}{{ value_json["production"]["ph-a"]["p"] | int(0) }}{%endif%}' state_class: measurement device_class: power

    • platform: mqtt state_topic: "/envoy/json" value_template: '{{ value_json["total-consumption"]["ph-a"]["p"] }}' name: "mqtt_consumption" qos: 0 unit_of_measurement: "W" state_class: measurement device_class: power

    • platform: template sensors: exporting: friendly_name: "Current MQTT Energy Exporting" value_template: "{{ [0, (states('sensor.mqtt_production') | int(0) - states('sensor.mqtt_consumption') | int(0))] | max }}" unit_of_measurement: "W" icon_template: mdi:flash importing: friendly_name: "Current MQTT Energy Importing" value_template: "{{ [0, (states('sensor.mqtt_consumption') | int(0) - states('sensor.mqtt_production') | int(0))] | max }}" unit_of_measurement: "W" icon_template: mdi:flash solarpower: friendly_name: "Solar MQTT Power" value_template: "{{ states('sensor.mqtt_production')}}" unit_of_measurement: "W" icon_template: mdi:flash

    opened by timolow 8
  • Floods of connection errors on occasion

    Floods of connection errors on occasion

    I have the script running on a Mac via launchctl. I have added

    	<key>StandardErrorPath</key>
    	<string>/Users/serveruser/Library/logs/Envoy mqtt script/stderr.log</string>
    	<key>StandardOutPath</key>
    	<string>/Users/serveruser/Library/logs/Envoy mqtt script/stdout.log</string>
    

    to the plist. I’ve noticed that stdout.log will sometimes have hundreds of connection error messages like this:

    Exception fetching stream data: HTTPConnectionPool(host='192.168.0.251', port=80): Read timed out.
    Exception fetching stream data: HTTPConnectionPool(host='192.168.0.251', port=80): Max retries exceeded with url: /stream/meter (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fb33a96eb50>, 'Connection to 192.168.0.251 timed out. (connect timeout=5)'))
    Exception fetching stream data: HTTPConnectionPool(host='192.168.0.251', port=80): Max retries exceeded with url: /stream/meter (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb33a96e370>: Failed to establish a new connection: [Errno 64] Host is down'))
    Exception fetching stream data: HTTPConnectionPool(host='192.168.0.251', port=80): Max retries exceeded with url: /stream/meter (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb33a964b50>: Failed to establish a new connection: [Errno 64] Host is down'))
    Exception fetching stream data: HTTPConnectionPool(host='192.168.0.251', port=80): Max retries exceeded with url: /stream/meter (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb33a9640a0>: Failed to establish a new connection: [Errno 64] Host is down'))
    

    I'm not sure what the timespan between the messages is, because there are no timestamps. I'm wondering whether anyone sees these errors on their system. My Envoy is currently connected wirelessly, with what is says is a couple of bars of reception. For clarity, the errors also happen running the script directly in a Terminal window. Thank you.

    opened by sddgit 7
  • Add on fails to start: s6-overlay-suexec: fatal: can only run as pid 1

    Add on fails to start: s6-overlay-suexec: fatal: can only run as pid 1

    Trying to run this as an add on on a 2022.5.4 system generates the error: s6-overlay-suexec: fatal: can only run as pid 1

    Something seems to have changed w.r.t hass add on configurations. Active discussion is currently occurring in this community thread:

    Hello_world example addon from developer docs stopped working (s6 overlay issue?)

    Adding init: false to the add on's config.yaml might fix this, though there seems to be more discussion about updating base images.

    **UPDATE: ** Adding init: false to the add on's config.yaml enabled the addon to start. While this seems to work I didn't try to sort through the discussion in the community thread to figure out if this is the right thing to do.

    opened by rct 4
  • Correction of the MQTT Topic

    Correction of the MQTT Topic

    Remove the forward slash "/" from the beginning of the mqtt topic. https://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/ Never use a leading forward slash A leading forward slash is permitted in MQTT. For example, /myhome/groundfloor/livingroom. However, the leading forward slash introduces an unnecessary topic level with a zero character at the front. The zero does not provide any benefit and often leads to confusion.

    Its a breaking change, but its more natural to look in the mqtt explorer: image

    opened by helderfmf 1
  • Integration with Domoticz and Docker

    Integration with Domoticz and Docker

    Hello.

    Could you package your script in a container? How to configure it so that Domoticz can generate the proper "electrical sensors" How to set a "prefix" for the mqtt flow ?

    opened by rezzalex 1
  • Occasional large energy errors

    Occasional large energy errors

    I've twice noticed that my bill calculations have shown either huge import or huge export volumes - both times I've only noticed this after the sensor data has been cleared from my recorder, however this is coming form the values reported by this add-on.

    image image

    I'm not sure if this is helpful without any log data, is there a way I could set this up to capture these errors should it happen again?

    opened by alexeiw123 7
  • Install in Docker with docker-compose (request)

    Install in Docker with docker-compose (request)

    I am running Home Assistant Container in Docker, not in HA OS. I have no Add-On's Is there a workout (script?) to install Enphase-Envoy-mqtt-json] in docker (with docker-compose)?

    opened by cmseasy 3
  • Doesn’t work on Envoy 7.x.x firmware

    Doesn’t work on Envoy 7.x.x firmware

    I am getting 401 Authorization Required when the requests gets made to the stream endpoint.

    I can reproduce with curl as well (installer password is generated using envoy serial number in the script you provided):

    Doing this

    curl --insecure --digest --user installer:123456 https://192.168.1.115/stream/meter
    

    Gives me back this:

    
    <html>
    <head><title>401 Authorization Required</title></head>
    <body>
    <center><h1>401 Authorization Required</h1></center>
    <hr><center>Redirecting to <a id='link' href=''></a></center>
    <script>
    const redirect_url = window.location.protocol + '//' + window.location.host + '/home';
    function redirect() { window.location.href = redirect_url; }
    window.onload = function() {
        const link = document.getElementById('link');
        link.href = redirect_url;
        link.text = redirect_url;
        setTimeout(redirect, 500);
    }
    </script>
    </body>
    </html>
    

    My envoy is running firmware D7.0.66 (ddd0d7).

    Is your envoy running the same firmware, but it works? Do you not have issues with getting redirected to HTTPS and having a self-signed certificate cause issues? I noticed you have modified your code recently, so I assumed you are still using this code successfully.

    opened by immesys 19
Owner
null
Home-Assistant MQTT bridge for Panasonic Comfort Cloud

Panasonic Comfort Cloud MQTT Bridge Home-Assistant MQTT bridge for Panasonic Comfort Cloud. Note: Currently this brige is a one evening prototype proj

Santtu Järvi 2 Jan 4, 2023
Iec62056-21-mqtt - Publish DSMR P1 telegrams acquired over IEC62056-21 to MQTT

IEC 62056-21 Publish DSMR P1 telegrams acquired over IEC62056-21 to MQTT. -21 is

Marijn Suijten 1 Jun 5, 2022
A lightweight script for updating custom components for Home Assistant

Updater for Home Assistant This is a lightweight script for updating custom components for Home Assistant. If for some reason you do not want to use H

Alex X 12 Sep 21, 2022
A script that publishes power usage data of iDrac enabled servers to an MQTT broker for integration into automation and power monitoring systems

iDracPowerMonitorMQTT This script publishes iDrac power draw data for iDrac 6 enabled servers to an MQTT broker. This can be used to integrate the pow

Lucas Zanchetta 10 Oct 6, 2022
Universal Xiaomi MIoT integration for Home Assistant

Xiaomi MIoT Raw 简体中文 | English MIoT 协议是小米智能家居从 2018 年起推行的智能设备通信协议规范,此后凡是可接入米家的设备均通过此协议进行通信。此插件按照 MIoT 协议规范与设备通信,实现对设备的状态读取及控制。

null 1.9k Jan 2, 2023
Volkswagen ID component for Home Assistant

Volkswagen ID component for Home Assistant This folder contains both a generic Python 3 library for the Volkswagen ID API and a component for Home Ass

null 55 Jan 7, 2023
Sensor of Temperature Feels Like for Home Assistant.

Please ⭐ this repo if you find it useful Sensor of Temperature Feels Like for Home Assistant Installation Install from HACS (recommended) Have HACS in

Andrey 60 Dec 25, 2022
Home Assistant custom integration for e-distribución

e-Distribución is an energy distribution company that covers most of South Spain area. If you live in this area, you probably are able to register into their website to get some information about your power demand, energy consumption, or even cycle billing (in terms of consumptions).

VMG 17 Sep 7, 2022
Home Assistant custom integration for Yi cameras: yi-hack-MStar, yi-hack-Allwinner and yi-hack-Allwinner-v2

yi-hack Home Assistant integration Overview yi-hack Home Assistant is a custom integration for Yi cameras (or Sonoff camera) with one of the following

roleo 131 Jan 3, 2023
Интеграция Home Assistant с ЛК "Интер РАО"

ЕЛК ЖКХ «Интер РАО» для Home Assistant Предоставление информации о текущем состоянии ваших аккаунтов в ЕЛК ЖКХ. Введение @ TODO @ Установка Посредство

Alexander Ryazanov 27 Nov 5, 2022
Provide Unifi device info via api to Home Assistant that will give ap sensors

Unifi AP Device info Provide Unifi device info via api to Home Assistant that will give ap sensors

null 12 Jan 7, 2023
Switch predictor for Home Assistant with AppDeamon

Home Assistant AppDeamon - Event predictor WORK IN PROGRESS - CURRENTLY NOT COMPLETE AND NOT WORK This is an idea under development (when I have free

null 37 Dec 17, 2022
Uses the Duke Energy Gateway to import near real time energy usage into Home Assistant

Duke Energy Gateway This is a custom integration for Home Assistant. It pulls near-real-time energy usage from Duke Energy via the Duke Energy Gateway

Michael Meli 28 Dec 23, 2022
Custom component for Home Assistant that integrates Candy/Haier Wi-Fi washing machines (also known as Simply-Fi).

Candy Home Assistant component Custom component for Home Assistant that integrates Candy/Haier Wi-Fi washing machines (also known as Simply-Fi). This

Olivér Falvai 61 Dec 29, 2022
Home Assistant integration for energy consumption data from UK SMETS (Smart) meters using the Hildebrand Glow API.

Hildebrand Glow (DCC) Integration Home Assistant integration for energy consumption data from UK SMETS (Smart) meters using the Hildebrand Glow API. T

Aniket 153 Dec 30, 2022
emhass: Energy Management for Home Assistant

emhass EMHASS: Energy Management for Home Assistant Context This module was conceived as an energy management optimization tool for residential electr

David 70 Dec 24, 2022
Electrolux Pure i9 robot vacuum integration for Home Assistant.

Home Assistant Pure i9 This repository integrates your Electrolux Pure i9 robot vacuum with the smart home platform Home Assistant. The integration co

Niklas Ekman 15 Dec 22, 2022
Huawei Solar sensors for Home Assistant

Huawei Solar Sensors This integration splits out the various values that are fetched from your Huawei Solar inverter into separate HomeAssistant senso

Thijs Walcarius 151 Dec 31, 2022
Baseline model for Augmented Home Assistant

Dataset Preparation Step 1. Rename the Virtual-Home output directory to 'vh.[name]', for example: 'vh.door' Make sure the directory contains 100+ fram

Stanford HCI 1 Aug 24, 2022