ich habe einen Fehler in einer Rule und finde den fehler nicht.
Folgendes soll passieren. Ich möchte alle 5min gucken wie die Außentemperatur ist und dann
je nach Außentemperatur eine Zahl per MQTT übermitteln. Auf der Gegenseite empfänt ein
ESP32 die Zahl und stellt dann anhand der Zahl an einem LED Streifen eine bestimmte Farbe ein.
Dummerweise landet er immer bei 9, sprich im Else Fall.
Bei der logInfo kommt folgendes raus:
2020-04-18 11:53:00.019 [INFO ] [smarthome.model.script.Temperature: ] - 20.13 °C
Dann müsste als Ergebnios ja eigtl. 5 rauskommt, aber egal was ich mache, er bleibt immer
bei der 9.
Code: Alles auswählen
rule "Temperatur an ESP321 anzeigen"
when
Time cron "0 0/5 * * * ?"
then
var State = (TF_Barometer_1_Temperatur.state)
if (State <= -10) {
MQTT_ESP321_Input.sendCommand(1)
}
else if (State <= 0) {
MQTT_ESP321_Input.sendCommand(2)
}
else if (State <= 10) {
MQTT_ESP321_Input.sendCommand(3)
}
else if (State <= 18) {
MQTT_ESP321_Input.sendCommand(4)
}
else if (State <= 25) {
MQTT_ESP321_Input.sendCommand(5)
}
else if (State <= 30) {
MQTT_ESP321_Input.sendCommand(6)
}
else if (State <= 40) {
MQTT_ESP321_Input.sendCommand(7)
}
else if (State <= 51) {
MQTT_ESP321_Input.sendCommand(8)
}
else {
MQTT_ESP321_Input.sendCommand(9)
logInfo("Temperature: ", State.toString())
}
end
Code: Alles auswählen
rule "Temperatur an ESP321 anzeigen"
when
Time cron "0 0/1 * * * ?"
then
var State = (TF_Barometer_1_Temperatur.state)
if (State > 51) {
MQTT_ESP321_Input.sendCommand(9)
}
else if (State <= 51) {
MQTT_ESP321_Input.sendCommand(8)
}
else if (State <= 40) {
MQTT_ESP321_Input.sendCommand(7)
}
else if (State <= 30) {
MQTT_ESP321_Input.sendCommand(6)
}
else if (State <= 25) {
MQTT_ESP321_Input.sendCommand(5)
}
else if (State <= 18) {
MQTT_ESP321_Input.sendCommand(4)
}
else if (State <= 10) {
MQTT_ESP321_Input.sendCommand(3)
}
else if (State <= 0) {
MQTT_ESP321_Input.sendCommand(2)
}
else if (State <=-10) {
MQTT_ESP321_Input.sendCommand(1)
logInfo("Temperature: ", State.toString())
}
end
Was mache ich falsch ?