Ich möchte erkannte Bewegung eines KNX-PM als rrd darstellen. Grundsätzlich funktioniert es, aber bei genauerer Betrachtung nicht zuverlässig.
Things, Items und Rule:
Ein zusammenkopiertes Log, was jeweils die KNX-Message (anderes System), Events und Ausgabe aus Rule enthält:
Man erkennt zwei Probleme:
1. Bei Aufruf der Rule ist der state noch der alte (Block 3). Das ist ein bekanntes Problem bei "receive command" (the Rule might trigger before the Item's state is updated), was man mittels receivedCommand umgeht. Aber gilt das gleiche für "receive update"? Und wie ist die Lösung?
2. das postUpdate in der Rule bewirkt keine Änderung, obwohl der übergebene Wert ein anderer ist als der zuvor (Block 5).
Sicher gibt es dafür eine Erklärung, nur habe ich sie noch nicht gefunden.
Viele Grüße, Manuel
Things, Items und Rule:
Code:
Thing device PM_1_1_54 "PM 1.1.54" [ ] { Type number : PM_DG_Beweg "PM DG Bewegung" [ga="1.006:<7/3/10"] } Number PM_DG_Beweg "PM DG Bewegung" { channel="knx:device:bridge:PM_1_1_54:PM_DG_Beweg" } Number PM_DG_Beweg_Ofs "PM DG Bewgung mit Offset" rule "PM_DG" when Item PM_DG_Beweg received update then { var Number bewoffset = (PM_DG_Beweg.state as Number) + 2.4 logInfo("Manuel","PM_DG: " + (PM_DG_Beweg.state as Number)) PM_DG_Beweg_Ofs.postUpdate(bewoffset) } end
Code:
2021-06-05 20:32:25.647,A_GroupValue_Write,1.1.54,7/3/10,00,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-05 20:32:25.635 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 1 to 0 2021-06-05 20:32:25.640 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 0 2021-06-05 20:32:25.645 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 3.4 to 2.4 2021-06-05 22:16:55.869,A_GroupValue_Write,1.1.54,7/3/10,01,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-05 22:16:55.865 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 0 to 1 2021-06-05 22:16:55.868 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-05 22:16:55.873 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 2.4 to 3.4 2021-06-05 22:27:05.784,A_GroupValue_Write,1.1.54,7/3/10,00,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-05 22:27:05.782 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-05 22:27:05.784 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 1 to 0 2021-06-06 08:58:41.194,A_GroupValue_Write,1.1.54,7/3/10,01,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 08:58:41.191 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 0 to 1 2021-06-06 08:58:41.195 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-06 09:08:50.121,A_GroupValue_Write,1.1.54,7/3/10,00,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 09:08:50.122 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 1 to 0 2021-06-06 09:08:50.122 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 0 2021-06-06 09:44:20.851,A_GroupValue_Write,1.1.54,7/3/10,01,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 09:44:20.849 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 0 to 1 2021-06-06 09:44:20.853 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-06 09:54:30.768,A_GroupValue_Write,1.1.54,7/3/10,00,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 09:54:30.770 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 1 to 0 2021-06-06 09:54:30.770 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 0 2021-06-06 09:54:30.780 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 3.4 to 2.4 2021-06-06 10:25:50.908,A_GroupValue_Write,1.1.54,7/3/10,01,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 10:25:50.905 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 0 to 1 2021-06-06 10:25:50.907 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-06 10:25:50.914 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 2.4 to 3.4 2021-06-06 10:36:00.464,A_GroupValue_Write,1.1.54,7/3/10,00,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 10:36:00.463 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 1 to 0 2021-06-06 10:36:00.463 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 0 2021-06-06 10:36:00.469 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 3.4 to 2.4 2021-06-06 10:47:30.410,A_GroupValue_Write,1.1.54,7/3/10,01,,,,0,low,6,T_DATA_XXX_REQ,0 2021-06-06 10:47:30.406 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg' changed from 0 to 1 2021-06-06 10:47:30.409 [INFO ] [org.openhab.core.model.script.Manuel] - PM_DG: 1 2021-06-06 10:47:30.414 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'PM_DG_Beweg_Ofs' changed from 2.4 to 3.4
1. Bei Aufruf der Rule ist der state noch der alte (Block 3). Das ist ein bekanntes Problem bei "receive command" (the Rule might trigger before the Item's state is updated), was man mittels receivedCommand umgeht. Aber gilt das gleiche für "receive update"? Und wie ist die Lösung?
2. das postUpdate in der Rule bewirkt keine Änderung, obwohl der übergebene Wert ein anderer ist als der zuvor (Block 5).
Sicher gibt es dafür eine Erklärung, nur habe ich sie noch nicht gefunden.

Viele Grüße, Manuel
Kommentar