first commit
This commit is contained in:
0
components/nimble_rssi/__init__.py
Normal file
0
components/nimble_rssi/__init__.py
Normal file
16
components/nimble_rssi/nimble_rssi_sensor.cpp
Normal file
16
components/nimble_rssi/nimble_rssi_sensor.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "nimble_rssi_sensor.h"
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace nimble_rssi
|
||||
{
|
||||
static const char *const TAG = "nimble_rssi";
|
||||
|
||||
bool NimbleRssiSensor::update_state(nimble_tracker::NimbleTrackerEvent *tracker_event)
|
||||
{
|
||||
this->publish_state(tracker_event->getRSSI());
|
||||
return true;
|
||||
}
|
||||
} // namespace nimble_rssi
|
||||
|
||||
} // namespace esphome
|
17
components/nimble_rssi/nimble_rssi_sensor.h
Normal file
17
components/nimble_rssi/nimble_rssi_sensor.h
Normal file
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/components/sensor/sensor.h"
|
||||
#include "esphome/components/nimble_tracker/nimble_tracker.h"
|
||||
|
||||
namespace esphome
|
||||
{
|
||||
namespace nimble_rssi
|
||||
{
|
||||
class NimbleRssiSensor : public sensor::Sensor, public Component, public nimble_tracker::NimbleDeviceListener
|
||||
{
|
||||
protected:
|
||||
bool update_state(nimble_tracker::NimbleTrackerEvent *tracker_event) override;
|
||||
};
|
||||
} // namespace nimble_rssi
|
||||
} // namespace esphome
|
35
components/nimble_rssi/sensor.py
Normal file
35
components/nimble_rssi/sensor.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import esphome.codegen as cg
|
||||
import esphome.config_validation as cv
|
||||
from esphome.components import sensor, nimble_tracker
|
||||
from esphome.const import (
|
||||
DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
UNIT_DECIBEL_MILLIWATT,
|
||||
)
|
||||
|
||||
DEPENDENCIES = ["nimble_tracker"]
|
||||
|
||||
nimble_rssi_ns = cg.esphome_ns.namespace("nimble_rssi")
|
||||
NimbleRssiSensor = nimble_rssi_ns.class_(
|
||||
"NimbleRssiSensor", sensor.Sensor, cg.Component, nimble_tracker.NimbleDeviceListener
|
||||
)
|
||||
|
||||
|
||||
CONFIG_SCHEMA = cv.All(
|
||||
sensor.sensor_schema(
|
||||
NimbleRssiSensor,
|
||||
unit_of_measurement=UNIT_DECIBEL_MILLIWATT,
|
||||
accuracy_decimals=0,
|
||||
device_class=DEVICE_CLASS_SIGNAL_STRENGTH,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
)
|
||||
.extend(nimble_tracker.NIMBLE_DEVICE_LISTENER_SCHEMA)
|
||||
.extend(cv.COMPONENT_SCHEMA),
|
||||
)
|
||||
|
||||
|
||||
async def to_code(config):
|
||||
var = await sensor.new_sensor(config)
|
||||
await cg.register_component(var, config)
|
||||
await nimble_tracker.device_listener_to_code(var, config)
|
||||
await nimble_tracker.register_ble_device(var, config)
|
Reference in New Issue
Block a user