- Platform information:
- Hardware: Raspberry Pi4 4Gig
- OS: Raspbian GNU/Linux 10 (buster)
- Java Runtime Environment: ?
- openHAB version: 2.5.0
- Issue of the topic: I have items configured as Number:DataAmount with units B (Bytes) but I cannot display them in more readable form as KiB or MiB in sitemap - they still show the same value which is obviously wrong! Have also tested KB and MB. Just to be sure I also tested items as Number:DataTransferRate which works OK.
- I have created test configurations to make sure I hadn’t got something wrong in my production configs.
- Items:
Number:DataAmount testDataAmount "Test Data Amount [%d B]"
Number:DataAmount testDataAmountControl "Test Data Amount Control [%d B]"
Number:DataTransferRate testDataTransferRate "Test Data Transfer Rate [%d bit/s]"
Number:DataTransferRate testDataTransferRateControl "Test Data Transfer Rate Control [%d bit/s]"
- Sitemap configuration related to the issue
sitemap DataTest label="Test Units" {
Text item=testDataAmount label="Test Data Amount [%d MB]"
Slider item=testDataAmountControl label="Test Data Control [%d B]" minValue=0 maxValue=10000000 step=10240
Text item=testDataTransferRate label="Test Data Transfer Rate [%d Mbit/s]"
Slider item=testDataTransferRateControl label="Test Data Transfer Rate Control [%d bit/s]" minValue=0 maxValue=10000000 step=10240
}
- Rules code related to the issue
rule "Test Data Amount Units"
when
Item testDataAmountControl received update or
Item testDataAmountControl changed
then
testDataAmount.postUpdate(testDataAmountControl.state)
end
rule "Test Data Transfer Rate Units"
when
Item testDataTransferRateControl received update or
Item testDataTransferRateControl changed
then
testDataTransferRate.postUpdate(testDataTransferRateControl.state)
end
- If logs where generated please post these here using code fences:
2020-02-07 11:41:41.014 [ome.event.ItemCommandEvent] - Item 'testDataTransferRateControl' received command 1402880 bit/s
2020-02-07 11:41:41.038 [vent.ItemStateChangedEvent] - testDataTransferRateControl changed from 471040 bit/s to 1402880 bit/s
2020-02-07 11:41:41.051 [vent.ItemStateChangedEvent] - testDataTransferRate changed from 471040 bit/s to 1402880 bit/s
2020-02-07 11:41:42.558 [ome.event.ItemCommandEvent] - Item 'testDataAmountControl' received command 1402880 o
2020-02-07 11:41:42.574 [vent.ItemStateChangedEvent] - testDataAmountControl changed from 9451520 o to 1402880 o
2020-02-07 11:41:42.593 [vent.ItemStateChangedEvent] - testDataAmount changed from 9451520 o to 1402880 o
2020-02-07 11:41:43.448 [ome.event.ItemCommandEvent] - Item 'testDataAmountControl' received command 3512320 o
2020-02-07 11:41:43.456 [vent.ItemStateChangedEvent] - testDataAmountControl changed from 1402880 o to 3512320 o
2020-02-07 11:41:43.466 [vent.ItemStateChangedEvent] - testDataAmount changed from 1402880 o to 3512320 o
The only potential issue I see in the logs is the use of o as the units and not B for DataAmount item type.
Another test I performed was to change item testDataAmountControl to Number:Dimensionless - this results in OpenHAB treating it as bits, as testDataAmount then becomes 1/8 the value and is hence being converted from bits to bytes.
This can be seen in the following chunk of log:
2020-02-07 11:48:42.296 [ome.event.ItemCommandEvent] - Item 'testDataAmountControl' received command 3968
2020-02-07 11:48:42.312 [vent.ItemStateChangedEvent] - testDataAmountControl changed from 3840 to 3968
2020-02-07 11:48:42.324 [vent.ItemStateChangedEvent] - testDataAmount changed from 480 o to 496 o