add generic sensor
This commit is contained in:
parent
fdc9dd452d
commit
2db7d778f5
@ -40,7 +40,24 @@
|
|||||||
"system_error": "cpp",
|
"system_error": "cpp",
|
||||||
"tuple": "cpp",
|
"tuple": "cpp",
|
||||||
"type_traits": "cpp",
|
"type_traits": "cpp",
|
||||||
"utility": "cpp"
|
"utility": "cpp",
|
||||||
|
"__bit_reference": "cpp",
|
||||||
|
"__node_handle": "cpp",
|
||||||
|
"atomic": "cpp",
|
||||||
|
"bitset": "cpp",
|
||||||
|
"chrono": "cpp",
|
||||||
|
"cstddef": "cpp",
|
||||||
|
"__memory": "cpp",
|
||||||
|
"filesystem": "cpp",
|
||||||
|
"limits": "cpp",
|
||||||
|
"locale": "cpp",
|
||||||
|
"random": "cpp",
|
||||||
|
"ratio": "cpp",
|
||||||
|
"__functional_base": "cpp",
|
||||||
|
"algorithm": "cpp",
|
||||||
|
"iterator": "cpp",
|
||||||
|
"memory": "cpp",
|
||||||
|
"variant": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,6 +65,13 @@ void readRcSwitch(JsonDocument& jsonDoc) {
|
|||||||
motion["basement"] = value == 1879048230L ? "on" : "off";
|
motion["basement"] = value == 1879048230L ? "on" : "off";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (GET_TYPE(value) == SensorType::GENERIC) {
|
||||||
|
JsonObject sensor = jsonDoc.createNestedObject("sensor");
|
||||||
|
sensor["id"] = ID(value);
|
||||||
|
sensor["value"] = GET_VALUE(value);
|
||||||
|
sensor["voltage"] = GET_VCC(value);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (GET_TYPE(value) == SensorType::TEMPERATURE) {
|
if (GET_TYPE(value) == SensorType::TEMPERATURE) {
|
||||||
JsonObject sensor = jsonDoc.createNestedObject("sensor");
|
JsonObject sensor = jsonDoc.createNestedObject("sensor");
|
||||||
sensor["id"] = ID(value);
|
sensor["id"] = ID(value);
|
||||||
|
|||||||
20
libraries/Tiny/GenericSensor.h
Normal file
20
libraries/Tiny/GenericSensor.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <TinySensor.h>
|
||||||
|
|
||||||
|
class GenericSensor : public TinySensor {
|
||||||
|
SensorType sensorType = GENERIC;
|
||||||
|
|
||||||
|
public:
|
||||||
|
GenericSensor(short id) :
|
||||||
|
TinySensor(id) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendValueAndVoltage(int value) {
|
||||||
|
sendInfo(ID(id) | VCC(readVcc()) | VALUE(value) | TYPE(sensorType));
|
||||||
|
}
|
||||||
|
|
||||||
|
void sendValue(int value) {
|
||||||
|
sendInfo(ID(id) | TEMP(value) | TYPE(sensorType));
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -4,6 +4,7 @@
|
|||||||
#define VCC(value) ((value & 0x1FFF) << 5)
|
#define VCC(value) ((value & 0x1FFF) << 5)
|
||||||
#define TEMP(value) (((unsigned long)value & 0x2FF) << 18)
|
#define TEMP(value) (((unsigned long)value & 0x2FF) << 18)
|
||||||
#define HUMIDITY(value) (((unsigned long)value & 0x2FF) << 18)
|
#define HUMIDITY(value) (((unsigned long)value & 0x2FF) << 18)
|
||||||
|
#define VALUE(value) (((unsigned long)value & 0x2FF) << 18)
|
||||||
#define STATE(value) ((value & 0x1) << 27)
|
#define STATE(value) ((value & 0x1) << 27)
|
||||||
#define TYPE(value) (((unsigned long)value & 0xF) << 28)
|
#define TYPE(value) (((unsigned long)value & 0xF) << 28)
|
||||||
|
|
||||||
@ -11,9 +12,11 @@
|
|||||||
#define GET_STATE(value) ((value >> 27) & 0x1)
|
#define GET_STATE(value) ((value >> 27) & 0x1)
|
||||||
#define GET_TEMP(value) (((unsigned long)value >> 18) & 0x2FF)
|
#define GET_TEMP(value) (((unsigned long)value >> 18) & 0x2FF)
|
||||||
#define GET_HUMIDITY(value) (((unsigned long)value >> 18) & 0x2FF)
|
#define GET_HUMIDITY(value) (((unsigned long)value >> 18) & 0x2FF)
|
||||||
|
#define GET_VALUE(value) (((unsigned long)value >> 18) & 0x2FF)
|
||||||
#define GET_VCC(value) ((value >> 5) & 0x1FFF)
|
#define GET_VCC(value) ((value >> 5) & 0x1FFF)
|
||||||
|
|
||||||
enum SensorType {
|
enum SensorType {
|
||||||
|
GENERIC = 4,
|
||||||
HUMIDITY = 5,
|
HUMIDITY = 5,
|
||||||
TEMPERATURE = 6,
|
TEMPERATURE = 6,
|
||||||
CONTACT = 7
|
CONTACT = 7
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user