mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-01 18:48:28 +02:00
SPI and I2C for ENS160 (#6369)
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
#include "ens160_i2c.h"
|
||||
#include "esphome/components/i2c/i2c.h"
|
||||
#include "../ens160_base/ens160_base.h"
|
||||
|
||||
namespace esphome {
|
||||
namespace ens160_i2c {
|
||||
|
||||
static const char *const TAG = "ens160_i2c.sensor";
|
||||
|
||||
bool ENS160I2CComponent::read_byte(uint8_t a_register, uint8_t *data) {
|
||||
return I2CDevice::read_byte(a_register, data);
|
||||
};
|
||||
bool ENS160I2CComponent::write_byte(uint8_t a_register, uint8_t data) {
|
||||
return I2CDevice::write_byte(a_register, data);
|
||||
};
|
||||
bool ENS160I2CComponent::read_bytes(uint8_t a_register, uint8_t *data, size_t len) {
|
||||
return I2CDevice::read_bytes(a_register, data, len);
|
||||
};
|
||||
bool ENS160I2CComponent::write_bytes(uint8_t a_register, uint8_t *data, size_t len) {
|
||||
return I2CDevice::write_bytes(a_register, data, len);
|
||||
};
|
||||
|
||||
void ENS160I2CComponent::dump_config() {
|
||||
ENS160Component::dump_config();
|
||||
LOG_I2C_DEVICE(this);
|
||||
}
|
||||
|
||||
} // namespace ens160_i2c
|
||||
} // namespace esphome
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/components/ens160_base/ens160_base.h"
|
||||
#include "esphome/components/i2c/i2c.h"
|
||||
|
||||
namespace esphome {
|
||||
namespace ens160_i2c {
|
||||
|
||||
class ENS160I2CComponent : public esphome::ens160_base::ENS160Component, public i2c::I2CDevice {
|
||||
void dump_config() override;
|
||||
|
||||
bool read_byte(uint8_t a_register, uint8_t *data) override;
|
||||
bool write_byte(uint8_t a_register, uint8_t data) override;
|
||||
bool read_bytes(uint8_t a_register, uint8_t *data, size_t len) override;
|
||||
bool write_bytes(uint8_t a_register, uint8_t *data, size_t len) override;
|
||||
};
|
||||
|
||||
} // namespace ens160_i2c
|
||||
} // namespace esphome
|
||||
@@ -0,0 +1,22 @@
|
||||
import esphome.codegen as cg
|
||||
from esphome.components import i2c
|
||||
from ..ens160_base import to_code_base, cv, CONFIG_SCHEMA_BASE
|
||||
|
||||
AUTO_LOAD = ["ens160_base"]
|
||||
CODEOWNERS = ["@latonita"]
|
||||
DEPENDENCIES = ["i2c"]
|
||||
|
||||
ens160_ns = cg.esphome_ns.namespace("ens160_i2c")
|
||||
|
||||
ENS160I2CComponent = ens160_ns.class_(
|
||||
"ENS160I2CComponent", cg.PollingComponent, i2c.I2CDevice
|
||||
)
|
||||
|
||||
CONFIG_SCHEMA = CONFIG_SCHEMA_BASE.extend(
|
||||
i2c.i2c_device_schema(default_address=0x52)
|
||||
).extend({cv.GenerateID(): cv.declare_id(ENS160I2CComponent)})
|
||||
|
||||
|
||||
async def to_code(config):
|
||||
var = await to_code_base(config)
|
||||
await i2c.register_i2c_device(var, config)
|
||||
Reference in New Issue
Block a user