I added the dht11 sensor to my esp8266. Added the device in sinric pro. After compiling the code provided to me, i am having the following error
/tmp/3468333198/sketch_nov25a/sketch_nov25a.ino: In function 'void setupSinricPro()':
/tmp/3468333198/sketch_nov25a/sketch_nov25a.ino:133:12: error: 'using SinricProTemperaturesensor = class SINRICPRO_3_0_0::SinricProTemperaturesensor' has no member named 'onPowerState'
mySensor.onPowerState(onPowerState);
^
In file included from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Numbers/FloatTraits.hpp:13:0,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Numbers/convertNumber.hpp:15,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantData.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantFunctions.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/JsonVariantConst.hpp:15,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantRefBase.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Array/ElementProxy.hpp:7,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Array/JsonArray.hpp:7,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson.hpp:29,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson.h:9,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricProInterface.h:10,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricProDeviceInterface.h:3,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricPro.h:10,
from /tmp/3468333198/sketch_nov25a/sketch_nov25a.ino:36:
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Polyfills/pgmspace_generic.hpp: In instantiation of 'const T ArduinoJson::V6213PB2::detail::pgm_read(const T const*) [with T = char]':
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Deserialization/DeserializationError.hpp:85:42: required from here
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Polyfills/pgmspace_generic.hpp:25:52: error: 'const void*' is not a pointer-to-object type
define BAUD_RATE 115200 // Change baudrate to your need (used for serial monitor)
define EVENT_WAIT_TIME 60000 // send event every 60 seconds
define DHT_PIN 5
DHT dht; // DHT sensor
bool deviceIsOn; // Temeprature sensor on/off state
float temperature; // actual temperature
float humidity; // actual humidity
float lastTemperature; // last known temperature (for compare)
float lastHumidity; // last known humidity (for compare)
unsigned long lastEvent = (-EVENT_WAIT_TIME); // last time event has been sent
/ bool onPowerState(String deviceId, bool &state)
Callback for setPowerState request
parameters
String deviceId (r)
contains deviceId (useful if this callback used by multiple devices)
bool &state (r/w)
contains the requested state (true:on / false:off)
must return the new state
return
true if request should be marked as handled correctly / false if not
*/
bool onPowerState(const String &deviceId, bool &state) {
Serial.printf("Temperaturesensor turned %s (via SinricPro) \r\n", state?"on":"off");
deviceIsOn = state; // turn on / off temperature sensor
return true; // request handled properly
}
/* handleTemperatatureSensor()
Checks if Temperaturesensor is turned on
Checks if time since last event > EVENT_WAIT_TIME to prevent sending too much events
Get actual temperature and humidity and check if these values are valid
Compares actual temperature and humidity to last known temperature and humidity
Send event to SinricPro Server if temperature or humidity changed
*/
void handleTemperaturesensor() {
if (deviceIsOn == false) return; // device is off...do nothing
unsigned long actualMillis = millis();
if (actualMillis - lastEvent < EVENT_WAIT_TIME) return; //only check every EVENT_WAIT_TIME milliseconds
temperature = dht.getTemperature(); // get actual temperature in °C
// temperature = dht.getTemperature() * 1.8f + 32; // get actual temperature in °F
humidity = dht.getHumidity(); // get actual humidity
if (isnan(temperature) || isnan(humidity)) { // reading failed...
Serial.printf("DHT reading failed!\r\n"); // print error message
return; // try again next time
}
if (temperature == lastTemperature || humidity == lastHumidity) return; // if no values changed do nothing...
SinricProTemperaturesensor &mySensor = SinricPro[TEMP_SENSOR_ID]; // get temperaturesensor device
bool success = mySensor.sendTemperatureEvent(temperature, humidity); // send event
if (success) { // if event was sent successfuly, print temperature and humidity to serial
Serial.printf("Temperature: %2.1f Celsius\tHumidity: %2.1f%%\r\n", temperature, humidity);
} else { // if sending event failed, print error message
Serial.printf("Something went wrong...could not send Event to server!\r\n");
}
lastTemperature = temperature; // save actual temperature for next compare
lastHumidity = humidity; // save actual humidity for next compare
lastEvent = actualMillis; // save actual time for next compare
}
// setup function for WiFi connection
void setupWiFi() {
Serial.printf("\r\n[Wifi]: Connecting");
WiFi.begin(WIFI_SSID, WIFI_PASS);
I added the dht11 sensor to my esp8266. Added the device in sinric pro. After compiling the code provided to me, i am having the following error
/tmp/3468333198/sketch_nov25a/sketch_nov25a.ino: In function 'void setupSinricPro()':
/tmp/3468333198/sketch_nov25a/sketch_nov25a.ino:133:12: error: 'using SinricProTemperaturesensor = class SINRICPRO_3_0_0::SinricProTemperaturesensor' has no member named 'onPowerState'
mySensor.onPowerState(onPowerState);
^
In file included from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Numbers/FloatTraits.hpp:13:0,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Numbers/convertNumber.hpp:15,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantData.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantFunctions.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/JsonVariantConst.hpp:15,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Variant/VariantRefBase.hpp:9,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Array/ElementProxy.hpp:7,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Array/JsonArray.hpp:7,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson.hpp:29,
from /home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson.h:9,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricProInterface.h:10,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricProDeviceInterface.h:3,
from /home/builder/Arduino/libraries/sinricpro_3_0_0/src/SinricPro.h:10,
from /tmp/3468333198/sketch_nov25a/sketch_nov25a.ino:36:
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Polyfills/pgmspace_generic.hpp: In instantiation of 'const T ArduinoJson::V6213PB2::detail::pgm_read(const T const*) [with T = char]':
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Deserialization/DeserializationError.hpp:85:42: required from here
/home/builder/Arduino/libraries/arduinojson_6_21_3/src/ArduinoJson/Polyfills/pgmspace_generic.hpp:25:52: error: 'const void*' is not a pointer-to-object type
return reinterpret_cast<const T*>(pgm_read_ptr(p));
^
Multiple libraries were found for "SinricPro.h"
Used: /home/builder/opt/libraries/sinricpro_3_0_0
Not used: /home/builder/opt/libraries/sinricpro_generic_2_8_5
Multiple libraries were found for "ArduinoJson.h"
Used: /home/builder/opt/libraries/arduinojson_6_21_3
Not used: /home/builder/opt/libraries/thingsiot_1_2_0
Not used: /home/builder/opt/libraries/antares_esp8266_http_1_3_3
Not used: /home/builder/opt/libraries/coogleiot_1_3_1
Not used: /home/builder/opt/libraries/balemessengerbot_arduino_0_1_0
Not used: /home/builder/opt/libraries/antares_esp8266_mqtt_0_9_2
Not used: /home/builder/opt/libraries/thingesp_1_3_0
Not used: /home/builder/opt/libraries/iotkme_3_0_1
Not used: /home/builder/opt/libraries/cmmc_mqtt_connector_1_3_3
Not used: /home/builder/opt/libraries/allthingstalk_lte_m_sdk_2_0_4
Multiple libraries were found for "DHT.h"
Used: /mnt/create-efs/webide/13/40/13407c28ccf545f8590c3d262aa5322d:abhigg12433/libraries_v2/DHT
Not used: /home/builder/opt/libraries/servodht11_1_0_10
Not used: /home/builder/opt/libraries/esp826611_1_0_16
Not used: /home/builder/opt/libraries/dht118266_1_0_16
Not used: /home/builder/opt/libraries/dht_kxn_3_4_4
Not used: /home/builder/opt/libraries/grove_temperature_and_humidity_sensor_2_0_1
Not used: /home/builder/opt/libraries/nanoplayboard_0_1_1
Not used: /home/builder/opt/libraries/dht_sensor_library_1_4_6
Not used: /home/builder/opt/libraries/dht11esp8266examples_1_0_10
Not used: /home/builder/opt/libraries/dht11esp8266_1_0_10
Not used: /home/builder/opt/libraries/ukit_explore_1_2_28
Multiple libraries were found for "Hash.h"
Used: /home/builder/.arduino15/packages/esp8266/hardware/esp8266/2.5.0/libraries/Hash
Not used: /home/builder/opt/libraries/koyn_0_2_0
Not used: /home/builder/opt/libraries/crypto_0_4_0
Not used: /home/builder/opt/libraries/stemi_hexapod_3_0_0
Not used: /home/builder/opt/libraries/uneurai_0_0_1
Not used: /home/builder/opt/libraries/asyncelegantota_2_2_8
Not used: /home/builder/opt/libraries/ubitcoin_0_2_0
Error during build: exit status 1
`/*
ifdef ENABLE_DEBUG
define DEBUG_ESP_PORT Serial
define NODEBUG_WEBSOCKETS
define NDEBUG
endif
include
ifdef ESP8266
include
endif
ifdef ESP32
include
endif
include "SinricPro.h"
include "SinricProTemperaturesensor.h"
include "DHT.h" // https://github.com/markruys/arduino-DHT
define WIFI_SSID ""
define WIFI_PASS ""
define APP_KEY ""
define APP_SECRET ""
define TEMP_SENSOR_ID ""
define BAUD_RATE 115200 // Change baudrate to your need (used for serial monitor)
define EVENT_WAIT_TIME 60000 // send event every 60 seconds
define DHT_PIN 5
DHT dht; // DHT sensor
bool deviceIsOn; // Temeprature sensor on/off state float temperature; // actual temperature float humidity; // actual humidity float lastTemperature; // last known temperature (for compare) float lastHumidity; // last known humidity (for compare) unsigned long lastEvent = (-EVENT_WAIT_TIME); // last time event has been sent
/ bool onPowerState(String deviceId, bool &state)
/* handleTemperatatureSensor()
unsigned long actualMillis = millis(); if (actualMillis - lastEvent < EVENT_WAIT_TIME) return; //only check every EVENT_WAIT_TIME milliseconds
temperature = dht.getTemperature(); // get actual temperature in °C // temperature = dht.getTemperature() * 1.8f + 32; // get actual temperature in °F humidity = dht.getHumidity(); // get actual humidity
if (isnan(temperature) || isnan(humidity)) { // reading failed... Serial.printf("DHT reading failed!\r\n"); // print error message return; // try again next time }
if (temperature == lastTemperature || humidity == lastHumidity) return; // if no values changed do nothing...
SinricProTemperaturesensor &mySensor = SinricPro[TEMP_SENSOR_ID]; // get temperaturesensor device bool success = mySensor.sendTemperatureEvent(temperature, humidity); // send event if (success) { // if event was sent successfuly, print temperature and humidity to serial Serial.printf("Temperature: %2.1f Celsius\tHumidity: %2.1f%%\r\n", temperature, humidity); } else { // if sending event failed, print error message Serial.printf("Something went wrong...could not send Event to server!\r\n"); }
lastTemperature = temperature; // save actual temperature for next compare lastHumidity = humidity; // save actual humidity for next compare lastEvent = actualMillis; // save actual time for next compare }
// setup function for WiFi connection void setupWiFi() { Serial.printf("\r\n[Wifi]: Connecting"); WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) { Serial.printf("."); delay(250); } IPAddress localIP = WiFi.localIP(); Serial.printf("connected!\r\n[WiFi]: IP-Address is %d.%d.%d.%d\r\n", localIP[0], localIP[1], localIP[2], localIP[3]); }
// setup function for SinricPro void setupSinricPro() { // add device to SinricPro SinricProTemperaturesensor &mySensor = SinricPro[TEMP_SENSOR_ID]; mySensor.onPowerState(onPowerState);
// setup SinricPro SinricPro.onConnected([](){ Serial.printf("Connected to SinricPro\r\n"); }); SinricPro.onDisconnected([](){ Serial.printf("Disconnected from SinricPro\r\n"); });
SinricPro.begin(APP_KEY, APP_SECRET);
}
// main setup function void setup() { Serial.begin(BAUD_RATE); Serial.printf("\r\n\r\n"); dht.setup(DHT_PIN);
setupWiFi(); setupSinricPro(); }
void loop() { SinricPro.handle(); handleTemperaturesensor(); } `