Re: Temperatur Tendenz ermitteln
Verfasst: 1. Sep 2020 19:49
Quatsch. Das zerkratze ist nur ein aufgeklebter Aluring. Da drunter ist die original Krone.
Quatsch. Das zerkratze ist nur ein aufgeklebter Aluring. Da drunter ist die original Krone.
Code: Alles auswählen
rule "Aussentemperatur Tendenz ermitteln / Update Kombi Item"
when
Item AussenTemp changed or
System started
//Time cron "0 * * * * ?"// jede Minute// jede Minute
then
if(!(AussenTemp_Tendenz_Proxy.state instanceof Number)) {
AussenTemp_Tendenz_Proxy.postUpdate(0)
}
if((AussenTemp.state as Number).floatValue > (AussenTemp_Tendenz_Proxy.state as Number)){
logInfo("Aussentemperatur", "steigend")
AussenTemp_Tendenz.postUpdate("⬆️")
}
//if((AussenTemp.state as Number).floatValue == (AussenTemp_Tendenz_Proxy.state as Number)){
// logInfo("Aussentemperatur", "stagnierend")
// AussenTemp_Tendenz.postUpdate("⟷")
//}
if((AussenTemp.state as Number).floatValue < (AussenTemp_Tendenz_Proxy.state as Number)){
logInfo("Aussentemperatur", "fallend")
AussenTemp_Tendenz.postUpdate("⬇️")
}
AussenTemp_Tendenz_Proxy.postUpdate((AussenTemp.state as Number).floatValue)
LaCrosse_Aussen_Kombi.postUpdate(AussenTemp_Tendenz.state.toString + " " + AussenTemp.state + " °C / " + AussenFeuchte_Tendenz.state.toString + " " + AussenFeuchte.state.toString + " ")
end
rule "AussenFeuchte Tendenz ermitteln / Update Kombi Item"
when
Item AussenFeuchte changed or
System started
//Time cron "0 * * * * ?"// jede Minute// jede Minute
then
if(!(AussenFeuchte_Tendenz_Proxy.state instanceof Number)) {
AussenFeuchte_Tendenz_Proxy.postUpdate(0)
}
if((AussenFeuchte.state as Number).floatValue > (AussenFeuchte_Tendenz_Proxy.state as Number)){
logInfo("Aussenfeuchte", "steigend")
AussenFeuchte_Tendenz.postUpdate("⬆️")
}
//if((AussenFeuchte.state as Number) == (AussenFeuchte_Tendenz_Proxy.state as Number)){
// logInfo("Aussenfeuchtee", "stagnierend")
// AussenFeuchte_Tendenz.postUpdate("⟷")
//}
if((AussenFeuchte.state as Number).floatValue < (AussenFeuchte_Tendenz_Proxy.state as Number)){
logInfo("Aussenfeuchte", "fallend")
AussenFeuchte_Tendenz.postUpdate("⬇️")
}
AussenFeuchte_Tendenz_Proxy.postUpdate((AussenFeuchte.state as Number).floatValue)
LaCrosse_Aussen_Kombi.postUpdate(AussenTemp_Tendenz.state.toString + " " + AussenTemp.state + " °C / " + AussenFeuchte_Tendenz.state.toString + " " + AussenFeuchte.state.toString + " ")
end
Code: Alles auswählen
rule "Update Kombi Item"
when
Item AussenTemp changed or
Item AussenFeuchte changed or
System started
//Time cron "0 * * * * ?"// jede Minute// jede Minute
then
val Number nTempTendence = if(AussenTemp_Tendenz_Proxy.state instanceof Number) (AussenTemp_Tendenz_Proxy.state as Number) else 0
val Number nHumTendence = if(AussenFeuchte_Tendenz_Proxy.state instanceof Number) (AussenFeuchte_Tendenz_Proxy.state as Number) else 0
val Number nTemp = if(AussenTemp.state instanceof Number) (AussenTemp.state as Number).floatValue else nTempTendence
val Number nHum = if(AussenFeuchte.state instanceof Number) (AussenFeuchte.state as Number).floatValue else nHumTendence
var String strTempTendence = "⟷"
var String strTempMessage = "stagnierend"
if(nTemp < nTempTendence) {
strTempTendence = "⬆️"
strTempMessage = "steigend"
}
if(nTemp > nTempTendence) {
strTempTendence = "⬇️"
strTempMessage = "fallend"
}
logInfo("temphum","Aussentemperatur {}",strTempMessage)
AussenTemp_Tendenz.postUpdate(strTempTendence)
AussenTemp_Tendenz_Proxy.postUpdate(nTemp)
var String strHumTendence = "⟷"
var String strHumMessage = "stagnierend"
if(nHum < nHumTendence) {
strHumTendence = "⬆️"
strHumMessage = "steigend"
}
if(nHum > nHumTendence) {
strHumTendence = "⬇️"
strHumMessage = "fallend"
}
logInfo("temphum","Aussenfeuchte {}",strHumMessage)
AussenFeuchte_Tendenz.postUpdate(strHumTendence)
AussenFeuchte_Tendenz_Proxy.postUpdate(nHum)
LaCrosse_Aussen_Kombi.postUpdate(strTempTendence + " " + nTemp.toString + " °C / " + strHumTendence + " " + nHum.toString + " %")
end
Code: Alles auswählen
Group gTempTendenz
Group gTempProxy
Group gHumTendenz
Group gHumProxy
Group gTemp
Group gHum
Group gKombi
String Aussen_TempTendenz "Außentemp. Tendenz [%s]" (gTempTendenz)
Number Aussen_TempProxy "Außentemp. Proxy [%s]" (gTempProxy)
String Aussen_HumTendenz "Außenfeuchte Tendenz [%s]" (gHumTendenz)
Number Aussen_HumProxy "Außenfeuchte Proxy [%s]" (gHumProxy)
Number Aussen_Temp "Außentemp. [%s]" (gTemp)
Number Aussen_Hum "Außenfeuchte [%s]" (gHum)
String Aussen_Kombi "Außen [%s]" (gKombi)
Code: Alles auswählen
rule "Update Kombi Item"
when
Member of gTemp changed or
Member of gFeuchte changed
then
val String strSensor = triggeringItem.name.split("_").get(0) // Sensor bestimmen
// zugehörige Items bestimmen
val ItemTempTendenz = gTempTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem
val ItemTempProxy = gTempProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem
val ItemHumTendenz = gHumTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem
val ItemHumProxy = gHumProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem
val ItemTemp = gTemp.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem
val ItemHum = gHum.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem
val ItemKombi = gKombi.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem
// Werte bestimmen
val Number nTempTendence = if(ItemTempProxy.state instanceof Number) (ItemTempProxy.state as Number) else 0
val Number nHumTendence = if(ItemHumTendenz.state instanceof Number) (ItemHumTendenz.state as Number) else 0
val Number nTemp = if(ItemTemp.state instanceof Number) (ItemTemp.state as Number).floatValue else nTempTendence
val Number nHum = if(ItemHum.state instanceof Number) (ItemHum.state as Number).floatValue else nHumTendence
// Tendenz Temperatur
var String strTempTendence = "⟷"
var String strTempMessage = "stagnierend"
if(nTemp < nTempTendence) {
strTempTendence = "⬆️"
strTempMessage = "steigend"
}
if(nTemp > nTempTendence) {
strTempTendence = "⬇️"
strTempMessage = "fallend"
}
logInfo("temphum","Sensor {} Temperatur {}",strSensor,strTempMessage)
ItemTempTendenz.postUpdate(strTempTendence)
ItemTempProxy.postUpdate(nTemp)
// Tendenz Feuchte
var String strHumTendence = "⟷"
var String strHumMessage = "stagnierend"
if(nHum < nHumTendence) {
strHumTendence = "⬆️"
strHumMessage = "steigend"
}
if(nHum > nHumTendence) {
strHumTendence = "⬇️"
strHumMessage = "fallend"
}
logInfo("temphum","Sensor {} Feuchte {}",strSensor,strHumMessage)
ItemHumTendenz.postUpdate(strHumTendence)
ItemHumProxy.postUpdate(nHum)
// Kombiitem
ItemKombi.postUpdate(strTempTendence + " " + nTemp.toString + " °C / " + strHumTendence + " " + nHum.toString + " %")
end
Code: Alles auswählen
String AussenTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number AussenTemp_Tendenz_Proxy
String AussenFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number AussenFeuchte_Tendenz_Proxy
String InnenDGTemp2_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenDGTemp2_Tendenz_Proxy
String InnenDGFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenDGFeuchte_Tendenz_Proxy
String InnenDGKind1Temp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenDGKind1Temp_Tendenz_Proxy
String InnenDGKind1Feuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenDGKind1Feuchte_Tendenz_Proxy
String InnenDGKind2Temp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenDGKind2Temp_Tendenz_Proxy
String InnenDGKind2Feuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenDGKind2Feuchte_Tendenz_Proxy
String InnenDGBadTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenDGBadTemp_Tendenz_Proxy
String InnenDGBadFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenDGBadFeuchte_Tendenz_Proxy
String InnenDGSZTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenDGSZTemp_Tendenz_Proxy
String InnenDGSZFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenDGSZFeuchte_Tendenz_Proxy
String InnenEGFlurTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenEGFlurTemp_Tendenz_Proxy
String InnenEGFlurFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenEGFlurFeuchte_Tendenz_Proxy
String InnenWHZTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenWHZTemp_Tendenz_Proxy
String InnenWHZFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenWHZFeuchte_Tendenz_Proxy
String InnenKellerFlurTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenKellerFlurTemp_Tendenz_Proxy
String InnenKellerFlurFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenKellerFlurFeuchte_Tendenz_Proxy
String InnenKellerTechnikTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenKellerTechnikTemp_Tendenz_Proxy
String InnenKellerTechnikFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenKellerTechnikFeuchte_Tendenz_Proxy
String InnenKellerHBYTRRTemp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenKellerHBYTRRTemp_Tendenz_Proxy
String InnenKellerHBYTRRFeuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenKellerHBYTRRFeuchte_Tendenz_Proxy
String InnenKellerKeller1Temp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenKellerKeller1Temp_Tendenz_Proxy
String InnenKellerKeller1Feuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenKellerKeller1Feuchte_Tendenz_Proxy
String InnenKellerKeller2Temp_Tendenz "Temperatur Tendenz [%s]" <temperature>
Number InnenKellerKeller2Temp_Tendenz_Proxy
String InnenKellerKeller2Feuchte_Tendenz "Luftfeuchtigkeit Tendenz [%s]" <humidity>
Number InnenKellerKeller2Feuchte_Tendenz_Proxy
String Durchschnitt_Temperatur_Haus_Tendenz "∅ Temperatur Haus Tendenz [%s]" <temperature>
Number Durchschnitt_Temperatur_Haus_Tendenz_Proxy
String Durchschnitt_Feuchte_Haus_Tendenz "∅ Luftfeuchtigkeit Haus Tendenz [%s]" <humidity>
Number Durchschnitt_Feuchte_Haus_Tendenz_Proxy
Code: Alles auswählen
GS_GFA.allMembers.forEach[ m | // Altbau Erdgeschoss
if (m.name.contains("5"))
m.sendCommand(50) // Schlafzimmertür auf 50%
else if (m.name.contains("3"))
m.sendCommand(90) // Wohnzimmerfenster auf 90%
else m.sendCommand(100)