Put something like this in your sitemap:
Text item=distance label="Distance [%.0f km]"
The distance item needs to be a quantity item (Number:Length). Also not the proper unit for kilometer is km, not Km. Only km will properly convert.
Put something like this in your sitemap:
Text item=distance label="Distance [%.0f km]"
The distance item needs to be a quantity item (Number:Length). Also not the proper unit for kilometer is km, not Km. Only km will properly convert.
Thanks. That was my initial issue.
My binding stopped receiving new data from BMW.
Bridge and car are shown as online but the items aren´t updated.
Last update was the 26. May when i readded the car thing.
Short dumb question:
the authentication still does not survive a openHAB-reboot, right?
At least for me. When I restart openHAB I always need to get a new captcha token. ![]()
In December Tim wrote:
This is still the same?
I am asking because I tested this in Home Assistant as well - and in HA the token survived a reboot. ![]()
Would be really nice, if this would work in openHAB as well.
Yes it is still the case. Thanks to @Mherwege it will work in OH 5. Afaik the HA plugin is based on bimmer_connected which fixed the issue some time ago
Hmmm can you create a fingerprint? Do you see anything if you increase the log level?
It was error 40 ![]()
Seems like the channel id had the bridge in it before and now it´s without the bridge.
So all my items weren´t linked to the car thing.
Hi,
Maybe the remaing-fuel should be change from liters to % ? Do you want me to issue a bug report on github ?
this could lead to an interesting discussion - because I don’t want % (instead of liters) ![]()
Percentage is not helpful (for me) ![]()
This is not possible as the API just returns the remaining litres and not the capacity, so the percentage can’t be calculated
But, if you take a closer look to raw data, you will find: ““combustionFuelLevel”:{“remainingFuelPercent”:50,“range”:175}”
2025-05-16 18:05:52.182 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, raw, {"state":{"isLeftSteering":true,"lastFetched":"2025-05-16T16:05:51.839Z","lastUpdatedAt":"2025-05-16T15:16:26Z","isLscSupported":true,"range":175,"doorsState":{"combinedSecurityState":"SECURED","leftFront":"CLOSED","rightFront":"CLOSED","combinedState":"CLOSED","hood":"CLOSED","trunk":"CLOSED"},"windowsState":{"leftFront":"CLOSED","rightFront":"CLOSED","combinedState":"CLOSED"},"tireState":{"frontLeft":{"status":{"currentPressure":250,"targetPressure":230}},"frontRight":{"status":{"currentPressure":250,"targetPressure":230}},"rearLeft":{"status":{"currentPressure":230,"targetPressure":230}},"rearRight":{"status":{"currentPressure":240,"targetPressure":230}}},"location":{"coordinates":{"latitude":XXXXXXXXXXXXX,"longitude":XXXXXXXXXXXXXX},"address":{"formatted":"XXXXXXXXXXXX"},"heading":253},"currentMileage":3385,"climateControlState":{"activity":"INACTIVE"},"climateTimers":[{"isWeeklyTimer":false,"timerAction":"DEACTIVATE","timerWeekDays":[],"departureTime":{"hour":15,"minute":0}},{"isWeeklyTimer":true,"timerAction":"DEACTIVATE","timerWeekDays":["MONDAY"],"departureTime":{"hour":7,"minute":0}},{"isWeeklyTimer":true,"timerAction":"DEACTIVATE","timerWeekDays":["MONDAY"],"departureTime":{"hour":7,"minute":0}}],"departurePlan":{},"requiredServices":[],"checkControlMessages":[{"type":"TIRE_PRESSURE","severity":"LOW"},{"type":"ENGINE_OIL","severity":"LOW"}],"combustionFuelLevel":{"remainingFuelPercent":50,"range":175},"driverPreferences":{"lscPrivacyMode":"OFF"},"securityOverviewMode":"ARMED","vehicleSoftwareVersion":{"puStep":{"month":3,"year":25},"iStep":{"seriesCluster":"S18A","year":25,"month":3,"iStep":530}},"pwf":"STANDING_CUSTOMER_NOT_IN_VEH"},"capabilities":{"remoteServices":{"departureTimerControl":{"id":"departureTimerControl","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"inCarCamera":{"id":"inCarCamera","state":"NOT_AVAILABLE","executionApi":"RS_360_V4"},"inCarCameraDwa":{"id":"inCarCameraDwa","state":"NOT_AVAILABLE","executionApi":"RS_360_V4"},"remote360":{"id":"remote360","state":"NOT_AVAILABLE","executionApi":"RS_360_V4"},"surroundViewRecorder":{"id":"surroundViewRecorder","state":"NOT_AVAILABLE","executionApi":"RS_360_V4"},"windowControl":{"id":"windowControl","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"centralLockControl":{"id":"centralLockControl","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"batteryPreconditioningControl":{"id":"batteryPreconditioningControl","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"doorLock":{"id":"doorLock","state":"ACTIVATED","executionApi":"RS_API_V6"},"doorUnlock":{"id":"doorUnlock","state":"ACTIVATED","executionApi":"RS_API_V6"},"hornBlow":{"id":"hornBlow","state":"ACTIVATED","executionApi":"RS_API_V6"},"lightFlash":{"id":"lightFlash","state":"ACTIVATED","executionApi":"RS_API_V6"},"telematicsWakeup":{"id":"telematicsWakeup","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"wakeup":{"id":"wakeup","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"},"interiorPreconditioningControl":{"id":"interiorPreconditioningControl","state":"NOT_AVAILABLE","executionApi":"RS_API_V6"}},"a4aType":"NOT_SUPPORTED","climateNow":true,"isClimateTimerSupported":true,"climateTimerTrigger":"DEPARTURE_TIMER","isClimateTimerWeeklyActive":true,"climateFunction":"VENTILATION","horn":true,"isBmwChargingSupported":false,"isCarSharingSupported":false,"isChargeNowForBusinessSupported":false,"isChargingHistorySupported":false,"isLocationBasedChargingSettingsSupported":false,"isChargingHospitalityEnabled":false,"isChargingLoudnessEnabled":false,"isChargingPlanSupported":false,"isChargingPowerLimitEnabled":false,"isChargingSettingsEnabled":false,"isBatteryPreconditioningSupported":false,"isChargingTargetSocEnabled":false,"isCustomerEsimSupported":true,"isDataPrivacyEnabled":false,"isDCSContractManagementSupported":false,"isEasyChargeEnabled":false,"isMiniChargingSupported":false,"isEvGoChargingSupported":false,"isRemoteHistoryDeletionSupported":false,"isRemoteEngineStartSupported":false,"isRemoteServicesActivationRequired":false,"isRemoteServicesBookingRequired":false,"isScanAndChargeSupported":false,"lastStateCallState":"ACTIVATED","lights":true,"lock":true,"remoteSoftwareUpgrade":true,"sendPoi":true,"unlock":true,"vehicleFinder":true,"vehicleStateSource":"LAST_STATE_CALL","isRemoteHistorySupported":true,"isWifiHotspotServiceSupported":false,"isNonLscFeatureEnabled":false,"isSustainabilitySupported":true,"isSustainabilityAccumulatedViewEnabled":true,"specialThemeSupport":[],"isRemoteParkingSupported":false,"isRemoteParkingEes25Active":false,"remoteChargingCommands":{},"digitalKey":{"state":"ACTIVATED","bookedServicePackage":"SMACC_1_5","readerGraphics":"000200000000","vehicleSoftwareUpgradeRequired":false,"isDigitalKeyFirstSupported":false},"isPersonalPictureUploadSupported":false,"personalPictureUpload":{"state":"NOT_AVAILABLE","aspectRatio":"2:1"},"isPlugAndChargeSupported":false,"isOptimizedChargingSupported":false,"alarmSystem":false,"isThirdPartyAppStoreSupported":false,"thirdPartyAppStore":{"state":"NOT_AVAILABLE"},"locationBasedCommerceFeatures":{"parking":false,"fueling":false,"reservations":false}},"features":[{"id":"DIGITAL_KEY","isSupported":true,"isActive":true,"subFeatures":[]},{"id":"TRAFFIC_INFORMATION","isSupported":true,"isActive":true},{"id":"WEBSOCKET_CONNECTION","isSupported":false},{"id":"NACS_CHARGING_CONNECTOR","isSupported":false},{"id":"ALARM_SYSTEM","isSupported":false,"subFeatures":[{"id":"ALARM_SYSTEM_PARTIAL_ARMING_ON_LSC","isSupported":false}]}]}
You’re right. Looks like BMW didn’t send this value reliably as the whole add-on is not prepared for it. If you look at the code you can see a channel remaining-fuel and this is linked only to the litres, not to the percentage. But if you look at the CombustionFuelLevel class you can see there is already the percentage value mapped from JSON, it is just not created as channel. Imho we should create the additional channel, but then the existing channel has to be renamed or a new one remaining-fuel-percent should be added. Renaming might break database time series, so maybe adding the new channel would be the preferrable solution.
Hello, I managed to get the binding running. So first of all Thank you very much for the efforts to develop the binding! Can you give me a short hint on how to create a switch for activation/deactivation of the air condition (Klimatisierung) of my BMW? I cannot find a dedicated channel for Klimatisierung. Thanks a lot.
look for channel “remote#command” in your car thing:
Click “add link to item”.
Afterwards you can create a rule, that turns on the AC:
BMWcommand.sendCommand("climate-now-start")
At least for me that works (most time
)
Thank you for the great binding! Really does the job!
There is just one thing which I cannot find (yet?):
The limit of the charging current is not only a switch in my BEV but also allows to select the limit value (e.g. 6A up to 32A in specific increments).
Could you please add this to the binding as well?
Or is it somewhere and I just could not find it?
I want to use this to limit the charging power to what my PV is currently producing as my wallbox does not allow this kind of configuration.
Thank you very much!
Is there any way to avoid having to generate a new token each 24h?
EDIT: Ok, since I have my server rebooting once every night, that’s why this only lasts 24h. But I do not want to take this reboot, so what possibility do I have?
Under OH5 the token survives the reboot. I have now been running OH5 for a week and I haven’t had to create a new token after rebooting the OH5.
Hi,
I’m still facing the “Duplicate channels” on the things and the “Out of quota” on the bridge issues. Using OH5.0.0.M2 still with that version of the binding with 10min refresh on 2 cars. Any suggestion?
Thanks!
Hi @ollo , the duplicate channel issue is very bad and I have no other solution than already described above. Refreshing every 10mins for 2 cars could be too much. Maybe you can increase the refresh continuously up to 30mins and check if you still run into the issue?
@MartinOpenhabFan Should I open issue on Github ?