- Platform information:
- Hardware: Raspberry Pi 4 Model B Rev 1.1 ; 4GB memory
- Host: Linux openhabian 5.15.76-v7l+ #1597 SMP Fri Nov 4 12:14:58 GMT 2022 armv7l GNU/Linux
- Distro: Raspbian GNU/Linux 11 (bullseye)
- Java: openjdk 11.0.16 2022-07-19
- OH Version: 3.3.0 (Build)
- Installation method: openhabian
I have this rule to extract some minima / maxima data values of the day:
val String LOG_PREFIX = "DataCatch."
rule "DC: collect temp, humi, airp, rain"
when
// Time cron "5 58 23 * * ? *"
Time cron "0 0/5 * * * ? *"
then
val TEMP_MIN = ar_Temperature.minimumSince(now.with(LocalTime.MIN))
val TEMP_MAX = ar_Temperature.maximumSince(now.with(LocalTime.MIN))
val HUMI_MIN = ar_Humidity.minimumSince(now.with(LocalTime.MIN))
val HUMI_MAX = ar_Humidity.maximumSince(now.with(LocalTime.MIN))
val AIRP_MIN = House_TriS_Baro1.minimumSince(now.with(LocalTime.MIN))
val AIRP_MAX = House_TriS_Baro1.maximumSince(now.with(LocalTime.MIN))
val RAIN_TODAY = ar_RainLast24H.state.toString
val String COLLECTED_DATA = LocalDateTime.now().toString + "," +
TEMP_MIN + "," + TEMP_MAX + "," +
HUMI_MIN + "," + HUMI_MAX + "," +
AIRP_MIN + "," + AIRP_MAX + "," +
RAIN_TODAY
logInfo(LOG_PREFIX + "01.01", "Data collected: {}", COLLECTED_DATA)
val String CLI_RETURN_CODE = executeCommandLine
(
Duration.ofSeconds(3), "/bin/sh", "-c", "echo '" +
COLLECTED_DATA + "' >> /etc/openhab/html/helga.txt; echo -n $?"
)
if (Integer::parseInt(CLI_RETURN_CODE) != 0)
{
logInfo(LOG_PREFIX + "01.02", "Return code: {}", CLI_RETURN_CODE)
}
logInfo(LOG_PREFIX + "01.03", "Collected environmental data")
end
The output is just horrible and not what I was expecting:
2023-06-18T08:20:00.924985,6/18/23, 3:50 AM: ar_Temperature -> 3.222 °C,org.openhab.core.persistence.extensions.PersistenceExtensions$1@272fb,org.openhab.core.persistence.extensions.PersistenceExtensions$1@1d35787,org.openhab.core.persistence.extensions.PersistenceExtensions$1@afb028,6/18/23, 4:14 AM: House_TriS_Baro1 -> 997.66,6/18/23, 7:12 AM: House_TriS_Baro1 -> 999.55,0.000
2023-06-18T08:25:00.928903,6/18/23, 3:50 AM: ar_Temperature -> 3.222 °C,org.openhab.core.persistence.extensions.PersistenceExtensions$1@1af2647,org.openhab.core.persistence.extensions.PersistenceExtensions$1@88e32a,org.openhab.core.persistence.extensions.PersistenceExtensions$1@15a3806,6/18/23, 4:14 AM: House_TriS_Baro1 -> 997.66,6/18/23, 7:12 AM: House_TriS_Baro1 -> 999.55,0.000
2023-06-18T08:30:00.933399,6/18/23, 3:50 AM: ar_Temperature -> 3.222 °C,org.openhab.core.persistence.extensions.PersistenceExtensions$1@cd3ea7,org.openhab.core.persistence.extensions.PersistenceExtensions$1@f4aee7,org.openhab.core.persistence.extensions.PersistenceExtensions$1@1f68be0,6/18/23, 4:14 AM: House_TriS_Baro1 -> 997.66,6/18/23, 7:12 AM: House_TriS_Baro1 -> 999.55,0.000
2023-06-18T08:35:00.952435,6/18/23, 3:50 AM: ar_Temperature -> 3.222 °C,org.openhab.core.persistence.extensions.PersistenceExtensions$1@14939f9,org.openhab.core.persistence.extensions.PersistenceExtensions$1@fb1dbb,org.openhab.core.persistence.extensions.PersistenceExtensions$1@1886e78,6/18/23, 4:14 AM: House_TriS_Baro1 -> 997.66,6/18/23, 7:12 AM: House_TriS_Baro1 -> 999.55,0.000
On top of that, it returns units and displays the date in UK format (AM/PM instead of ISO)… with 3:50 being wrong anyway.
What I’d like to achieve is:
2023-06-18,08:35,3.222,23.4,34,99,990,1000,0
Any hints appreciated on where my mistakes are.