Wrong presentValue is send in entity (select)
selfstream opened this issue · 8 comments
Sorry i'm new to HA so i hope i explain it right.
The AddOn and the Integration is running but i can't right control the device by a "select"-entity
For example: I have activated a select-entity with 4 options.
select.corrigoventilation_airunitautomode
options: OFF, Manual On reduced speed, Manual On normal speed, AUTO
OutOfService: 0
EventState: normal
icon: mdi:fan
friendly_name: Lueftung Halle
When i select the first option "OFF" it sends a presentValue=2 to the api. But it should be presentValue=1
The second option sends presentValue=3 - it should be presentValue=2
The third option sends presentValue=4 - it should be presentValue=3 and so on
I have the same problems with other entities with multistates i activated in the integration.
Can you reproduce this?
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service base-addon-banner: starting
Add-on: Bepacom EcoPanel BACnet/IP Interface
Bepacom BACnet/IP interface for the Bepacom EcoPanel. Allows BACnet devices to be available to Home Assistant through an API
Add-on version: 1.1.3
You are running the latest version of this add-on.
System: Home Assistant OS 11.1 (aarch64 / raspberrypi3-64)
Home Assistant Core: 2023.11.2
Home Assistant Supervisor: 2023.11.3
Is it the same with all multistates?
If so, go to the const.py file in the integration folder within custom_components.
In here, change STATETEXT_OFFSET = 1 to STATETEXT_OFFSET = 0.
Then restart the integration or Home Assistant.
Hopefully it should be alright then! Let me know the results please.
Allright, so I think I see the problem. You can set the offset back to 1, and then I need you to change a little bit in the code.
Please navigate to the select.py file and edit the following part:
@property def current_option(self) -> str: return ( self.coordinator.data.devices[self.deviceid] .objects[self.objectid] .stateText[ self.coordinator.data.devices[self.deviceid] .objects[self.objectid] .presentValue - STATETEXT_OFFSET #JCO ] )
And remove the - STATETEXT_OFFSET #JCO
part.
I think this should solve the issues. If it works, I'll push an update for you.
I have played around with the offsets and now it works for me:
in the const.py file i have:
STATETEXT_OFFSET = 0
STATETEXT_OFFSET1 = 1
and the new variable STATETEXT_OFFSET1 i used in the select.py file
@property def current_option(self) -> str: return ( self.coordinator.data.devices[self.deviceid] .objects[self.objectid] .stateText[ self.coordinator.data.devices[self.deviceid] .objects[self.objectid] .presentValue - STATETEXT_OFFSET1] )
Thank you for your help and your great work!
Glad it works now! Just a quick question, was it only an issue with Multi State Value objects? or also Multi State Outputs?
I think in my case Multi States Outputs are integrated as Multi States Value Objekts, too. But i have to test it.
If you don't mind, could you test the new version and verify if it works for you as well?
Thank you for the new version!
I have tested it and it works good for me!
just as a reference for you:
As I have already written, for me all multi-state outputs are also multi-state values. If I try to change these, I first have to restart the add-on otherwise I can't control anything anymore.