mirror of
https://github.com/nekorevend/esphome-emporia-vue-utility.git
synced 2026-01-08 20:40:39 -07:00
Some more stubbed stuff.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#include "esphome/core/log.h"
|
||||
#include "emporia_vue_utility.h"
|
||||
|
||||
namespace esphome {
|
||||
namespace emporia_vue_utility {
|
||||
|
||||
static const char *TAG = "emporia_vue_utility.sensor";
|
||||
|
||||
void EmporiaVueUtility::setup() {
|
||||
|
||||
}
|
||||
|
||||
void EmporiaVueUtility::update() {
|
||||
|
||||
}
|
||||
|
||||
void EmporiaVueUtility::loop() {
|
||||
|
||||
}
|
||||
|
||||
void EmporiaVueUtility::dump_config(){
|
||||
ESP_LOGCONFIG(TAG, "Stubbed Emporia Vue Utility");
|
||||
}
|
||||
|
||||
} // namespace emporia_vue_utility
|
||||
} // namespace esphome
|
||||
59
esphome/components/emporia_vue_utility/emporia_vue_utility.h
Normal file
59
esphome/components/emporia_vue_utility/emporia_vue_utility.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/components/sensor/sensor.h"
|
||||
#include "esphome/components/uart/uart.h"
|
||||
|
||||
// Extra meter reading response debugging
|
||||
#define DEBUG_VUE_RESPONSE true
|
||||
|
||||
// If the instant watts being consumed meter reading is outside of these ranges,
|
||||
// the sample will be ignored which helps prevent garbage data from polluting
|
||||
// home assistant graphs. Note this is the instant watts value, not the
|
||||
// watt-hours value, which has smarter filtering. The defaults of 131kW
|
||||
// should be fine for most people. (131072 = 0x20000)
|
||||
#define WATTS_MIN -131072
|
||||
#define WATTS_MAX 131072
|
||||
|
||||
// How much the watt-hours consumed value can change between samples.
|
||||
// Values that change by more than this over the avg value across the
|
||||
// previous 5 samples will be discarded.
|
||||
#define MAX_WH_CHANGE 2000
|
||||
|
||||
// How many samples to average the watt-hours value over.
|
||||
#define MAX_WH_CHANGE_ARY 5
|
||||
|
||||
// How often to request a reading from the meter in seconds.
|
||||
// Meters typically update the reported value only once every
|
||||
// 10 to 30 seconds, so "5" is usually fine.
|
||||
// You might try setting this to "1" to see if your meter has
|
||||
// new values more often
|
||||
#define METER_READING_INTERVAL 30
|
||||
|
||||
// How often to attempt to re-join the meter when it hasn't
|
||||
// been returning readings
|
||||
#define METER_REJOIN_INTERVAL 30
|
||||
|
||||
// On first startup, how long before trying to start to talk to meter
|
||||
#define INITIAL_STARTUP_DELAY 10
|
||||
|
||||
// Should this code manage the "wifi" and "link" LEDs?
|
||||
// set to false if you want manually manage them elsewhere
|
||||
#define USE_LED_PINS true
|
||||
|
||||
#define LED_PIN_LINK 32
|
||||
#define LED_PIN_WIFI 33
|
||||
|
||||
namespace esphome {
|
||||
namespace emporia_vue_utility {
|
||||
|
||||
class EmporiaVueUtility : public sensor::Sensor, public PollingComponent, public uart::UARTDevice {
|
||||
public:
|
||||
void setup() override;
|
||||
void update() override;
|
||||
void loop() override;
|
||||
void dump_config() override;
|
||||
};
|
||||
|
||||
} // namespace emporia_vue_utility
|
||||
} // namespace esphome
|
||||
31
esphome/components/emporia_vue_utility/sensor.py
Normal file
31
esphome/components/emporia_vue_utility/sensor.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import esphome.codegen as cg
|
||||
import esphome.config_validation as cv
|
||||
from esphome.components import uart, sensor
|
||||
from esphome.const import CONF_ID, CONF_POWER
|
||||
|
||||
DEPENDENCIES = ['uart']
|
||||
|
||||
emporia_vue_utility_ns = cg.esphome_ns.namespace('emporia_vue_utility')
|
||||
EmporiaVueUtility = emporia_vue_utility_ns.class_('EmporiaVueUtility', cg.PollingComponent, uart.UARTDevice)
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
cv.Schema(
|
||||
cv.GenerateID(): cv.declare_id(EmporiaVueUtility),
|
||||
cv.Optional(CONF_POWER): sensor.sensor_schema(
|
||||
unit_of_measurement=UNIT_WATT,
|
||||
device_class=DEVICE_CLASS_POWER,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
accuracy_decimals=2,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
# sensor.sensor_schema(UNIT_EMPTY, ICON_EMPTY, 1).extend({
|
||||
# cv.GenerateID(): cv.declare_id(EmporiaVueUtility),
|
||||
# }).extend(cv.polling_component_schema('60s')).extend(uart.UART_DEVICE_SCHEMA)
|
||||
|
||||
# def to_code(config):
|
||||
# var = cg.new_Pvariable(config[CONF_ID])
|
||||
# yield cg.register_component(var, config)
|
||||
# yield sensor.register_sensor(var, config)
|
||||
# yield uart.register_uart_device(var, config)
|
||||
Reference in New Issue
Block a user