- Platform information:
- Hardware: RPi 4
- OS: openhabian 3
- Java 11
- openHAB version: 3
I have setup a simple system set up using a Raspberry Pi 4 and two NodeMCUs (ESP8266) connected over a WLAN to measure temperatures (see figure).
I also prepared a Homatic-binding, but no devices are configured.
Additionally, I supervise the network connection to the NodeMCUs and I am supervising the RPi.
In order to determine the CPU-load and the CPU-temperature I execute two different scripts using the exec-binding ever 10 seconds. The systeminfo-binding does not support the CPU-load for the Raspberry.
CPULoad.py
#!/usr/bin/env python import psutil value = psutil.cpu_percent(interval=1) print value
CPU_temp.sh
#! /bin/bash INPUT=$(/bin/cat /sys/class/thermal/thermal_zone0/temp) TEMP=$(echo "scale=2; $INPUT / 1000 " | bc) echo $TEMP
I convert the strings of the scripts into numbers in order to be able to get a graph in openHAB display by an openHAB-rule.
Rule to convert CPU-load:
triggers: - id: "1" configuration: itemName: CPULoad_Ruckgabewert type: core.ItemStateUpdateTrigger conditions: [] actions: - inputs: {} id: "2" configuration: type: application/vnd.openhab.dsl.rule script: ">- CPULoad_Number.postUpdate(Float::parseFloat(String::format(\"%s",CPULoad_Ruckgabewert.state))) logInfo(\"Rule\", \"CPULoad_Number: \" + CPULoad_Number.state) \ \ \ "
Rule to convert CPU-temperature:
triggers:
- id: "1"
configuration:
itemName: CPUTemperature_Ruckgabewert
type: core.ItemStateUpdateTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: >-
CPUTemperature_Number.postUpdate(Float::parseFloat(String::format("%s",CPUTemperature_Ruckgabewert.state)))
logInfo("Rule", "CPUTemperature_Number: " + CPUTemperature_Number.state)
\ \
\ "
All measurements send an update every 10 seconds.
It all works all very well, but after a few hours openHAB gets some problems, which end up in an exeption (06:15:16).
openHAB.log>
2021-01-12 05:52:38.602 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 05:52:57.431 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.io.monitor.internal.EventLogger@1$ 2021-01-12 06:01:39.692 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:02:23.064 [ERROR] [d4j.internal.RRD4jPersistenceService] - Could not create rrd4j database file '/var/lib/openhab/persistence/rrd4j/ESPEasy1_E$ 2021-01-12 06:04:29.464 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:04:51.211 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:05:17.234 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:07:40.790 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:07:46.272 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:08:04.947 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:09:40.440 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:09:53.402 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:12:00.352 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:12:17.755 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:12:30.747 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:12:39.403 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:12:52.417 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:13:41.078 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:13:54.166 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:14:11.465 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:14:28.780 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:15:07.896 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:15:30.873 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:16:35.404 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:15:16.563 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: java.util.concurrent.RejectedExecutionException: Task org.openhab.binding.network.internal.PresenceDetection$$Lambda$973/0x977f9228@605303 rejected from jav$ at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2055) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:825) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1355) ~[?:?] at org.openhab.binding.network.internal.PresenceDetection.performPresenceDetection(PresenceDetection.java:362) ~[?:?] at org.openhab.binding.network.internal.PresenceDetection.lambda$10(PresenceDetection.java:605) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?] 2021-01-12 06:17:05.935 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:17:54.493 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:18:08.565 [INFO ] [.reconnect.PeriodicReconnectStrategy] - Try to restore connection to 'localhost'. Next attempt in 60ms 2021-01-12 06:18:17.224 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:18:59.839 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.io.monitor.internal.EventLogger@1$ 2021-01-12 06:19:26.957 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.internal.items.ItemUpdater@1d4e56$ 2021-01-12 06:19:35.794 [WARN ] [ab.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.openhab.core.thing.internal.CommunicationManag$
First, I thought of some memory leak, but I could not find a major evidence in TOP:
The used memory increases, but levels around 700 MByte.
Has anyone some ideas, what the root cause for the JAVA exception could be?