My goal is to execute an python-script when the Battery-charge has reached 70%
My rule was not executed, the error as shown above is seen in the log. My faulty script:
rule "BYD 70"
when
Item KOSTALPLENTICOREPlus70WithBattery_BatteryCharge received update
then
var BYDBat = (KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state as Number).floatValue
if ((KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state as Number).floatValue = 70.0) {
sendTelegram("bot1",
"BYD hat > 70 % Ladung " + BYDBat)
executeCommandLine("python3 /etc/openhab2/scripts/BYDI.py")
logDebug("logtest", "BYDBat = " + BYDBat)
logDebug("logtest", "state = " + KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state)
}
end
Reason of the error: the if-statement is misleading, to check if the value is equal it needs two “==”:
if ((KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state as Number).floatValue == 70.0) {
working-code:
rule "BYD 70"
when
Item KOSTALPLENTICOREPlus70WithBattery_BatteryCharge received update
then
var BYDBat = (KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state as Number).floatValue
if ((KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state as Number).floatValue == 70.0) {
sendTelegram("bot1",
"BYD hat > 70 % Ladung " + BYDBat)
executeCommandLine("python3 /etc/openhab2/scripts/BYDI.py")
logDebug("logtest", "BYDBat = " + BYDBat)
logDebug("logtest", "state = " + KOSTALPLENTICOREPlus70WithBattery_BatteryCharge.state)
}
end
on my Raspi4 the last installed influxd-package was no more able to start the service. CPU-load was at 100%, the “systemctl start influxd” routine was running in a loop. As the smarthome generates many data the service took longer to start as expected by the new startup-script influxd-systemd-start.sh .
Fix: in ./usr/lib/influxdb/scripts/influxd-systemd-start.sh:
increase the sleep timer (in my case from 1 to 5):
...
while [ "$result" != "200" ]; do
sleep 5
result=$(curl -k -s -o /dev/null $url -w %{http_code})
...
You must be logged in to post a comment.