Netatmo, Regen und Wind Regel
Verfasst: 15. Aug 2020 12:12
Moin zusammen,
ich scheitere z.Z. an zwei Regeln um Wind und Regen über Netatmo API zu erkennen.
Die Items sind als Number deklariert.
Hier meine Rules:
rule "Markise Rein fahren bei Wind"
when Item Outdoor_LastMessage received update
then
if (Wind_GustStrength.state != UNDEF){
logInfo("Markise", "Wind Update , Es liegen keine Werte vor ")
logInfo("Markise", "Wind Update " + Wind_GustStrength.state)
}
else
logInfo("Markise", "Wind Update, es liegen Werte vor " + Wind_GustStrength.state)
var Number wind = Wind_GustStrength.state as Number
if (wind.intValue() > 20) {
logInfo("Markise", "zu viel Wind")
logInfo("Markise", "Markise ist auf " + Rollo_EG_Markise.state)
if (Rollo_EG_Markise.state > 0) {
logInfo("Markise", "Sie ist über 0, Auto ist " + Markise_Auto.state)
if (Markise_Auto.state == ON ) {
sendCommand (Rollo_EG_Markise,'0')
logInfo("Markise", "Rein gefahren, zu viel Wind")
sendTelegram("bot", "Zu viel Wind, Markise reingefahren, Wind liegt in Böhen bei " + Wind_GustStrength.state)
}}}
end
rule "Regen"
when Item Outdoor_LastMessage received update
then
if (Rain_Hour.state != UNDEF){
logInfo("Regen", "Regen Update , Es liegen keine Werte vor ")
logInfo("Regen", "Regen Update " + Rain_Hour.state)
}
//logInfo("Garten", "Regen Update " + Rain_Hour.state)
var Number rain = Rain_Hour.state as Number
//logInfo("Regen", Rain_Hour.state)
//logInfo("Regen als Number", rain.state)
if (rain.floatValue() > 0.0 ) {
sendCommand (Regen.state,ON)
logInfo("Regen", "Es regnet")
sendTelegram("bot1","Es Regnet")
}
else
{
if (Regen.state == ON) {
sendCommand (Regen.state,OFF)
logInfo("Regen", "Es regnet nicht mehr")
sendTelegram("bot1","Es Regnet nicht mehr")
}}
end
Im Log bekomme ich folgende Meldunden:
2020-08-15 11:57:29.602 [INFO ] [lipse.smarthome.model.script.Markise] - Wind Update , Es liegen keine Werte vor
2020-08-15 11:57:29.602 [INFO ] [eclipse.smarthome.model.script.Regen] - Regen Update , Es liegen keine Werte vor
2020-08-15 11:57:29.612 [INFO ] [lipse.smarthome.model.script.Markise] - Wind Update 5.999995200003839666666666666666668 km/h
2020-08-15 11:57:29.612 [INFO ] [eclipse.smarthome.model.script.Regen] - Regen Update 6.7670001983642578125 mm
2020-08-15 11:57:29.653 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Regen': An error occurred during the script execution: Could not invoke method: org.eclipse.smarthome.model.script.actions.BusEvent.sendCommand(org.eclipse.smarthome.core.items.Item,org.eclipse.smarthome.core.types.Command) on instance: null
Ich habe nun so einiges Probiert, komme aber nicht zum Ziel..
Habt jemand von euch eine Idee??
Dank euch...
Gruß
Thomas
ich scheitere z.Z. an zwei Regeln um Wind und Regen über Netatmo API zu erkennen.
Die Items sind als Number deklariert.
Hier meine Rules:
rule "Markise Rein fahren bei Wind"
when Item Outdoor_LastMessage received update
then
if (Wind_GustStrength.state != UNDEF){
logInfo("Markise", "Wind Update , Es liegen keine Werte vor ")
logInfo("Markise", "Wind Update " + Wind_GustStrength.state)
}
else
logInfo("Markise", "Wind Update, es liegen Werte vor " + Wind_GustStrength.state)
var Number wind = Wind_GustStrength.state as Number
if (wind.intValue() > 20) {
logInfo("Markise", "zu viel Wind")
logInfo("Markise", "Markise ist auf " + Rollo_EG_Markise.state)
if (Rollo_EG_Markise.state > 0) {
logInfo("Markise", "Sie ist über 0, Auto ist " + Markise_Auto.state)
if (Markise_Auto.state == ON ) {
sendCommand (Rollo_EG_Markise,'0')
logInfo("Markise", "Rein gefahren, zu viel Wind")
sendTelegram("bot", "Zu viel Wind, Markise reingefahren, Wind liegt in Böhen bei " + Wind_GustStrength.state)
}}}
end
rule "Regen"
when Item Outdoor_LastMessage received update
then
if (Rain_Hour.state != UNDEF){
logInfo("Regen", "Regen Update , Es liegen keine Werte vor ")
logInfo("Regen", "Regen Update " + Rain_Hour.state)
}
//logInfo("Garten", "Regen Update " + Rain_Hour.state)
var Number rain = Rain_Hour.state as Number
//logInfo("Regen", Rain_Hour.state)
//logInfo("Regen als Number", rain.state)
if (rain.floatValue() > 0.0 ) {
sendCommand (Regen.state,ON)
logInfo("Regen", "Es regnet")
sendTelegram("bot1","Es Regnet")
}
else
{
if (Regen.state == ON) {
sendCommand (Regen.state,OFF)
logInfo("Regen", "Es regnet nicht mehr")
sendTelegram("bot1","Es Regnet nicht mehr")
}}
end
Im Log bekomme ich folgende Meldunden:
2020-08-15 11:57:29.602 [INFO ] [lipse.smarthome.model.script.Markise] - Wind Update , Es liegen keine Werte vor
2020-08-15 11:57:29.602 [INFO ] [eclipse.smarthome.model.script.Regen] - Regen Update , Es liegen keine Werte vor
2020-08-15 11:57:29.612 [INFO ] [lipse.smarthome.model.script.Markise] - Wind Update 5.999995200003839666666666666666668 km/h
2020-08-15 11:57:29.612 [INFO ] [eclipse.smarthome.model.script.Regen] - Regen Update 6.7670001983642578125 mm
2020-08-15 11:57:29.653 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Regen': An error occurred during the script execution: Could not invoke method: org.eclipse.smarthome.model.script.actions.BusEvent.sendCommand(org.eclipse.smarthome.core.items.Item,org.eclipse.smarthome.core.types.Command) on instance: null
Ich habe nun so einiges Probiert, komme aber nicht zum Ziel..
Habt jemand von euch eine Idee??
Dank euch...
Gruß
Thomas