mirror of
https://github.com/anklimov/lighthub
synced 2025-12-06 11:49:51 +03:00
domoticz dht22 support
This commit is contained in:
@@ -20,10 +20,11 @@ e-mail anklimov@gmail.com
|
||||
|
||||
#include "inputs.h"
|
||||
#include "item.h"
|
||||
#include "utils.h"
|
||||
#include <PubSubClient.h>
|
||||
|
||||
#ifndef DHT_DISABLE
|
||||
#if defined(ESP8266) || defined(ARDUINO_ARCH_ESP32)
|
||||
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
|
||||
#include <DHTesp.h>
|
||||
#else
|
||||
#include "DHT.h"
|
||||
@@ -149,7 +150,7 @@ void Input::counterPoll() {
|
||||
return;
|
||||
}
|
||||
long counterValue = counter_value[pin];
|
||||
Serial.print(F("IN:"));Serial.print(pin);Serial.print(F(" Counter type. val="));Serial.print(counterValue);
|
||||
debugSerial<<F("IN:")<<(pin)<<F(" Counter type. val=")<<counterValue;
|
||||
|
||||
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
||||
if (emit) {
|
||||
@@ -159,10 +160,10 @@ void Input::counterPoll() {
|
||||
sprintf(valstr, "%d", counterValue);
|
||||
mqttClient.publish(addrstr, valstr);
|
||||
setNextPollTime(millis() + DHT_POLL_DELAY_DEFAULT);
|
||||
Serial.print(F(" NextPollMillis="));Serial.println(nextPollTime());
|
||||
debugSerial<<F(" NextPollMillis=")<<nextPollTime();
|
||||
}
|
||||
else
|
||||
Serial.print(F(" No emit data!"));
|
||||
debugSerial<<F(" No emit data!");
|
||||
}
|
||||
|
||||
void Input::attachInterruptPinIrq(int realPin, int irq) {
|
||||
@@ -207,24 +208,27 @@ void Input::dht22Poll() {
|
||||
DHTesp dhtSensor;
|
||||
dhtSensor.setup(pin, DHTesp::DHT22);
|
||||
TempAndHumidity dhtSensorData = dhtSensor.getTempAndHumidity();
|
||||
float temp = dhtSensorData.temperature;
|
||||
float humidity = dhtSensorData.humidity;
|
||||
float temp = roundf(dhtSensorData.temperature*10)/10;
|
||||
float humidity = roundf(dhtSensorData.humidity);
|
||||
#else
|
||||
DHT dht(pin, DHT22);
|
||||
float temp = dht.readTemperature();
|
||||
float humidity = dht.readHumidity();
|
||||
#endif
|
||||
aJsonObject *emit = aJson.getObjectItem(inputObj, "emit");
|
||||
Serial.print(F("IN:"));
|
||||
Serial.print(pin);
|
||||
Serial.print(F(" DHT22 type. T="));
|
||||
Serial.print(temp);
|
||||
Serial.print(F("°C H="));
|
||||
Serial.print(humidity);
|
||||
Serial.print(F("%"));
|
||||
aJsonObject *idx = aJson.getObjectItem(inputObj, "idx");
|
||||
debugSerial<<F("IN:")<<pin<<F(" DHT22 type. T=")<<temp<<F("°C H=")<<humidity<<F("%");
|
||||
if (emit && temp && humidity && temp == temp && humidity == humidity) {
|
||||
char valstr[10];
|
||||
char addrstr[100] = "";
|
||||
if(idx&&idx->valuestring){//DOMOTICZ json format support
|
||||
debugSerial<<endl<<idx->valuestring<<F(" Domoticz valstr:");
|
||||
char valstr[80];
|
||||
sprintf( valstr, "{\"command\":\"udevice\",\"idx\":%s,\"svalue\":\"%.1f;%.0f;0\"}",idx->valuestring,temp,humidity);
|
||||
debugSerial<<valstr;
|
||||
mqttClient.publish(emit->valuestring, valstr);
|
||||
}
|
||||
else {
|
||||
char valstr[10];
|
||||
strcat(addrstr, emit->valuestring);
|
||||
strcat(addrstr, "T");
|
||||
printFloatValueToStr(temp, valstr);
|
||||
@@ -232,9 +236,10 @@ void Input::dht22Poll() {
|
||||
addrstr[strlen(addrstr) - 1] = 'H';
|
||||
printFloatValueToStr(humidity, valstr);
|
||||
mqttClient.publish(addrstr, valstr);
|
||||
}
|
||||
|
||||
setNextPollTime(millis() + DHT_POLL_DELAY_DEFAULT);
|
||||
Serial.print(" NextPollMillis=");
|
||||
Serial.println(nextPollTime());
|
||||
debugSerial<<" NextPollMillis="<<nextPollTime()<<endl;
|
||||
} else
|
||||
setNextPollTime(millis() + DHT_POLL_DELAY_DEFAULT / 3);
|
||||
#endif
|
||||
|
||||
@@ -68,12 +68,7 @@ PWM Out
|
||||
#include "main.h"
|
||||
#include "options.h"
|
||||
#include "utils.h"
|
||||
#ifdef WITH_STREAMING_LIB
|
||||
#include "Streaming.h"
|
||||
#else
|
||||
#include "PrintEx.h"
|
||||
using namespace ios;
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if defined(__SAM3X8E__)
|
||||
|
||||
@@ -24,6 +24,12 @@ e-mail anklimov@gmail.com
|
||||
#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
|
||||
|
||||
#include <Arduino.h>
|
||||
#ifdef WITH_STREAMING_LIB
|
||||
#include "Streaming.h"
|
||||
#else
|
||||
#include "PrintEx.h"
|
||||
using namespace ios;
|
||||
#endif
|
||||
|
||||
void PrintBytes(uint8_t* addr, uint8_t count, bool newline);
|
||||
void SetBytes(uint8_t* addr, uint8_t count, char * out);
|
||||
|
||||
2
mosquitto_examples.sh
Normal file
2
mosquitto_examples.sh
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
mosquitto_pub -t 'domoticz/in' -h broker_url -p port -u user -P pass -m '{"command": "udevice", "idx": 20, "svalue": "15"}'
|
||||
@@ -11,9 +11,9 @@
|
||||
src_dir = lighthub
|
||||
env_default =
|
||||
; megaatmega2560
|
||||
megaatmega2560-net
|
||||
; megaatmega2560-net
|
||||
; due
|
||||
; esp8266
|
||||
esp8266
|
||||
; esp32
|
||||
; megaatmega2560-5500
|
||||
; due-5500
|
||||
|
||||
Reference in New Issue
Block a user