I CANNOT SEE TEMPERATURES HIGHER THAN 125 ºcº ON MULTILEVEL CHANNEL HC1 HC3 FIBARO CONTROLLER
Posted: 01 Oct 2023 19:46
HC1 YUBII HOME FIBARO,
Z1 V2. gen 7 th Integrated no security and with S0 too
ARDUINO IDE V.204
I'm not a developer.
I try to send the values of a thermal solar panel up to 220 degrees.
I have tried everything. I have created several multilevel temperature channels, as the guide says. By default, and with double size and double precision celsius scale, with INT BYTE AND WORD variables. Source of variable "byte int word or float".
When I go from 125 degrees, or "12500" because the system seems to divide by 100. If I increase digits. The only thing that happens is that the decimals disappear, but I have never been able to transmit more temperature than 125 to the controller or the app. With or without decimals after the point.
When I increase to values above 125, I think there is some kind of oveflow. And this sends zero or stays at 125.
Is it a limitation of the dr fibaro driver? or am I configuring something wrong or my code is bad?
Multilevel channels are created well in the console. And read the data.
I know that in the z1 v2 guide it refers to signed values, but I don't quite understand how to translate that to send, for example, 210 degrees to the controller. And therefore to the app.
Oh, I haven't been able to send anything through the multilevel sensor either, it doesn't do anything, even if I change values.
I don't know what to do anymore, can someone help me?
Thank you very much in advance
Code
```cpp
// demo sketch for connecting DHT11 humidity and temperature sensor to Z-Uno
// add library
#include "ZUNO_DHT.h"
// pin connection
#define DHTPIN 9
DHT dht(DHTPIN, DHT22);
float humidity; // here we will store the humidity
float temperature; // here we will store the temperature
int temperature0 = 140; //
dword temperature1 = 12500; //overflow en este modo con word o dwor para temp mayor que 125
float temperature2 = 125.00;// overflow en este modo que llega hasta 125
int temperature3 = -29;// overflow en este modo que llega -29
byte rele1 = 00;
// set up channels me falta un report
ZUNO_SETUP_CHANNELS(
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature),
ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumidity),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_TWO_BYTES, SENSOR_MULTILEVEL_PRECISION_TWO_DECIMALS, getterTemperature1),
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature0),
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature2),
ZUNO_SENSOR_MULTILEVEL_WATER_TEMPERATURE(getterTemperature3),
ZUNO_SENSOR_BINARY_GENERAL_PURPOSE(getterRele1)
);
void setup() {
dht.begin();
Serial.begin();
Serial.println("start");
}
void loop() {
// obtaining readings from the sensor DHT
humidity = dht.readHumidity();
temperature = dht.readTemperature();
Serial.print("Humidity = ");
Serial.print(humidity);
Serial.print(" % ");
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" *C");
// send data to channels
zunoSendReport(1);
zunoSendReport(2);
zunoSendReport(3);
zunoSendReport(4);
zunoSendReport(5);
zunoSendReport(6);
zunoSendReport(7);
// send every 30 second
delay(30000);
}
byte getterTemperature() {
return temperature;
}
byte getterHumidity() {
return humidity;
}
byte getterTemperature0() {
return temperature0;
}
dword getterTemperature1() {
return temperature1;
}
byte getterTemperature2() {
return temperature2;
}
byte getterTemperature3() {
return temperature3;
}
byte getterRele1() {
return rele1;
}
```
Z1 V2. gen 7 th Integrated no security and with S0 too
ARDUINO IDE V.204
I'm not a developer.
I try to send the values of a thermal solar panel up to 220 degrees.
I have tried everything. I have created several multilevel temperature channels, as the guide says. By default, and with double size and double precision celsius scale, with INT BYTE AND WORD variables. Source of variable "byte int word or float".
When I go from 125 degrees, or "12500" because the system seems to divide by 100. If I increase digits. The only thing that happens is that the decimals disappear, but I have never been able to transmit more temperature than 125 to the controller or the app. With or without decimals after the point.
When I increase to values above 125, I think there is some kind of oveflow. And this sends zero or stays at 125.
Is it a limitation of the dr fibaro driver? or am I configuring something wrong or my code is bad?
Multilevel channels are created well in the console. And read the data.
I know that in the z1 v2 guide it refers to signed values, but I don't quite understand how to translate that to send, for example, 210 degrees to the controller. And therefore to the app.
Oh, I haven't been able to send anything through the multilevel sensor either, it doesn't do anything, even if I change values.
I don't know what to do anymore, can someone help me?
Thank you very much in advance
Code
```cpp
// demo sketch for connecting DHT11 humidity and temperature sensor to Z-Uno
// add library
#include "ZUNO_DHT.h"
// pin connection
#define DHTPIN 9
DHT dht(DHTPIN, DHT22);
float humidity; // here we will store the humidity
float temperature; // here we will store the temperature
int temperature0 = 140; //
dword temperature1 = 12500; //overflow en este modo con word o dwor para temp mayor que 125
float temperature2 = 125.00;// overflow en este modo que llega hasta 125
int temperature3 = -29;// overflow en este modo que llega -29
byte rele1 = 00;
// set up channels me falta un report
ZUNO_SETUP_CHANNELS(
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature),
ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumidity),
ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_TEMPERATURE, SENSOR_MULTILEVEL_SCALE_CELSIUS, SENSOR_MULTILEVEL_SIZE_TWO_BYTES, SENSOR_MULTILEVEL_PRECISION_TWO_DECIMALS, getterTemperature1),
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature0),
ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemperature2),
ZUNO_SENSOR_MULTILEVEL_WATER_TEMPERATURE(getterTemperature3),
ZUNO_SENSOR_BINARY_GENERAL_PURPOSE(getterRele1)
);
void setup() {
dht.begin();
Serial.begin();
Serial.println("start");
}
void loop() {
// obtaining readings from the sensor DHT
humidity = dht.readHumidity();
temperature = dht.readTemperature();
Serial.print("Humidity = ");
Serial.print(humidity);
Serial.print(" % ");
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" *C");
// send data to channels
zunoSendReport(1);
zunoSendReport(2);
zunoSendReport(3);
zunoSendReport(4);
zunoSendReport(5);
zunoSendReport(6);
zunoSendReport(7);
// send every 30 second
delay(30000);
}
byte getterTemperature() {
return temperature;
}
byte getterHumidity() {
return humidity;
}
byte getterTemperature0() {
return temperature0;
}
dword getterTemperature1() {
return temperature1;
}
byte getterTemperature2() {
return temperature2;
}
byte getterTemperature3() {
return temperature3;
}
byte getterRele1() {
return rele1;
}
```