MyBMW Binding

Hi @tommycw10 , is setting a new token resolving the issue?

Hi @Udo_Krie , it looks like BMW is not sending the services anymore. I created a fingerprint (via console “mybmw fingerprint”) and there is no data coming in the element for the requiredServices:

Can you check if it the same for you? Anybody else still getting the data?

Hi @MartinOpenhabFan - If you are referring to the token I get by doing a new captcha then no I’ve tried that several times and that didn’t remedy my issue.

Yes, indeed, I checked the raw json, on my side requiredServices is empty as well :expressionless:

Hello,

while the connector is actually working (and yes I had to rotate the captcha), the “Plug-In-Hybrid Electric Vehicle” is throwing an error on activation.
IllegalArgumentException: Duplicate channels on status#charge-remaining

here is what I got in logs immediately when I enable the plugin: (i replaced my VIN with XXXX)

2025-03-16 11:56:00.905 [ERROR] [internal.JSONResponseExceptionMapper] - Unexpected exception occurred while processing REST request.
java.lang.IllegalArgumentException: Duplicate channels mybmw:phev:9c2d2188ec:XXXX:status#charge-remaining
        at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:135) ~[?:?]
        at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:127) ~[?:?]
        at org.openhab.core.thing.util.ThingHelper.ensureUniqueChannels(ThingHelper.java:123) ~[?:?]
        at org.openhab.core.thing.binding.builder.ThingBuilder.withChannel(ThingBuilder.java:123) ~[?:?]
        at org.openhab.core.thing.internal.update.UpdateChannelInstructionImpl.doChannel(UpdateChannelInstructionImpl.java:140) ~[?:?]
        at org.openhab.core.thing.internal.update.UpdateChannelInstructionImpl.lambda$0(UpdateChannelInstructionImpl.java:101) ~[?:?]
        at java.util.Arrays$ArrayList.forEach(Arrays.java:4204) ~[?:?]
        at org.openhab.core.thing.internal.update.UpdateChannelInstructionImpl.perform(UpdateChannelInstructionImpl.java:101) ~[?:?]
        at org.openhab.core.thing.internal.ThingManagerImpl.lambda$17(ThingManagerImpl.java:1095) ~[?:?]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at org.openhab.core.thing.internal.ThingManagerImpl.checkAndPerformUpdate(ThingManagerImpl.java:1095) ~[?:?]
        at org.openhab.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:918) ~[?:?]
        at org.openhab.core.thing.internal.ThingManagerImpl.setEnabled(ThingManagerImpl.java:1009) ~[?:?]
        at org.openhab.core.io.rest.core.internal.thing.ThingResource.setEnabled(ThingResource.java:604) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
        at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[bundleFile:3.6.2]
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[bundleFile:3.6.2]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[bundleFile:3.6.2]
        at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[bundleFile:3.6.2]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[bundleFile:3.6.2]
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[bundleFile:3.6.2]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:304) ~[bundleFile:3.6.2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPut(AbstractHTTPServlet.java:234) ~[bundleFile:3.6.2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:520) ~[bundleFile:4.0.4]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:279) ~[bundleFile:3.6.2]
        at org.ops4j.pax.web.service.spi.servlet.OsgiInitializedServlet.service(OsgiInitializedServlet.java:102) ~[bundleFile:?]
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1656) ~[bundleFile:9.4.54.v20240208]
        at org.ops4j.pax.web.service.spi.servlet.OsgiFilterChain.doFilter(OsgiFilterChain.java:113) ~[bundleFile:?]
        at org.ops4j.pax.web.service.jetty.internal.PaxWebServletHandler.doHandle(PaxWebServletHandler.java:334) ~[bundleFile:?]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234) ~[bundleFile:9.4.54.v20240208]
        at org.ops4j.pax.web.service.jetty.internal.PrioritizedHandlerCollection.handle(PrioritizedHandlerCollection.java:96) ~[bundleFile:?]
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:722) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) ~[bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) [bundleFile:9.4.54.v20240208]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) [bundleFile:9.4.54.v20240208]
        at java.lang.Thread.run(Thread.java:840) [?:?]

First of all, many thanks for this cool binding. E-mobility can now take off.

I have been using this binding for a very short time now. Am I doing something wrong or why does the captcha have to be reset again and again? Is the old token not saved somehow? I think it has something to do with the bridge and the saved tokens. Is it possible that an initial setup is always carried out when the token exists? I have tried the text configuration and also the UI.

This line in the code looks like it.

Hi @pstephan that’s interesting. So far we got the error only in the channel last-fetched. There must be something in the way OpenHab reads the thing-update.xml.

You can resolve the issue if you delete the vehicle thing (click twice if it stays in “removing” state) and start the discovery to get it back again. If you didn’t change the ID of the thing, the channels should be automatically linked again after re-creating the thing. You can see it if there are blue “1” icons next to the channels in the thing:

Hi @csowada , are you restarting OH continuously? If it stays running you should not have to create a new token anytime. And with the latest change, the token should be even surviving a restart…

Thanks @MartinOpenhabFan ! That actually worked.

For whoever has the same issue, originally I have always created the vehicle manually (and not through Auto discovery). Using the above resolved the issue.
FYI I am on 15 min interval for updates.

I really wish it was the case for me (2 cars). I have removed them one by one and added them via the Paper UI - “+” - MyBMW - Scan - [car1] [car2].
Maybe I should have removed them both and then went for scan and add?

I still keep getting this with the 60 minute default refresh:

2025-04-22 09:14:19.259 [WARN ] [al.handler.auth.MyBMWTokenController] - Refresh Exception: 
java.util.concurrent.ExecutionException: java.io.EOFException: @c982f8::DecryptedEndPoint@cf2d7c{l=/192.168.0.[myip]:41822,r=customer.bmwgroup.com/35.227.244.195:443,OPEN,fill=-,flush=-,to=3582281/0}
	at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118) ~[?:?]
	at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101) ~[?:?]
	at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:732) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.auth.MyBMWTokenController.getUpdatedToken(MyBMWTokenController.java:310) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.auth.MyBMWTokenController.getToken(MyBMWTokenController.java:152) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.backend.MyBMWHttpProxy.call(MyBMWHttpProxy.java:355) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.backend.MyBMWHttpProxy.get(MyBMWHttpProxy.java:315) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.backend.MyBMWHttpProxy.requestVehicleStateJson(MyBMWHttpProxy.java:203) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.backend.MyBMWHttpProxy.requestVehicleState(MyBMWHttpProxy.java:191) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.VehicleHandler.lambda$9(VehicleHandler.java:313) ~[?:?]
	at java.util.Optional.ifPresentOrElse(Optional.java:196) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.VehicleHandler.lambda$7(VehicleHandler.java:311) ~[?:?]
	at java.util.Optional.ifPresentOrElse(Optional.java:196) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.VehicleHandler.updateVehicleStatus(VehicleHandler.java:310) ~[?:?]
	at org.openhab.binding.mybmw.internal.handler.VehicleHandler.updateData(VehicleHandler.java:302) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
	at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: java.io.EOFException: @c982f8::DecryptedEndPoint@cf2d7c{l=/192.168.0.[myip]:41822,r=customer.bmwgroup.com/35.227.244.195:443,OPEN,fill=-,flush=-,to=3582281/0}
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.earlyEOF(HttpReceiverOverHTTP.java:385) ~[?:?]
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1621) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.shutdown(HttpReceiverOverHTTP.java:269) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:185) ~[?:?]
	at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:80) ~[?:?]
	at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:131) ~[?:?]
	at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:172) ~[?:?]
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410) ~[?:?]
	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) ~[?:?]
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) ~[?:?]
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) ~[?:?]
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) ~[?:?]
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) ~[?:?]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) ~[?:?]
	... 1 more 

Any ideas are welcome. I’m on OH/MyBmw 4.3.3.

@MartinOpenhabFan, I have had the same problem for quite some time but I have been very busy with my new inverter and batteries. So, it seems that the token doesn’t survive so I have had to create a new one every time I have restarted the OH4.3. I am using the 4.3.2. snapshot jar file in the addons folder. You mentioned that the token should survive so from where I could get the latest version of the binding.

Hi,

I noticed some problems with gathering data, chanels remaining fuel, estimated-fuel-l-100km, service-date, service-mileage shows wrong data or are undefined.

I attach some trace logs:

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}]}]}
2025-05-16 18:05:52.184 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, lock, Secured
2025-05-16 18:05:52.185 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, service-date, UNDEF
2025-05-16 18:05:52.186 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, service-mileage, UNDEF
2025-05-16 18:05:52.187 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, check-control, No Issues
2025-05-16 18:05:52.188 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, last-update, 2025-05-16T17:16:26.000+0200
2025-05-16 18:05:52.189 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, last-fetched, 2025-05-16T18:05:51.839+0200
2025-05-16 18:05:52.190 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, doors, Closed
2025-05-16 18:05:52.191 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel status, windows, Closed
2025-05-16 18:05:52.192 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, fuel, 175 km
2025-05-16 18:05:52.193 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, radius-fuel, 140 km
2025-05-16 18:05:52.193 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, mileage, 3385 km
2025-05-16 18:05:52.194 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, remaining-fuel, -1 l
2025-05-16 18:05:52.196 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, estimated-fuel-l-100km, UNDEF
2025-05-16 18:05:52.196 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel range, estimated-fuel-mpg, UNDEF
2025-05-16 18:05:52.197 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, driver-front, Closed
2025-05-16 18:05:52.197 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, driver-rear, Undef
2025-05-16 18:05:52.198 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, passenger-front, Closed
2025-05-16 18:05:52.199 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, passenger-rear, Undef
2025-05-16 18:05:52.199 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, trunk, Closed
2025-05-16 18:05:52.200 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, hood, Closed
2025-05-16 18:05:52.201 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, win-driver-front, Closed
2025-05-16 18:05:52.202 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, win-driver-rear, Undef
2025-05-16 18:05:52.203 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, win-passenger-front, Closed
2025-05-16 18:05:52.204 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, win-passenger-rear, Undef
2025-05-16 18:05:52.204 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel doors, sunroof, Undef
2025-05-16 18:05:52.213 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel location, gps, XXXXXX,XXXXXXX
2025-05-16 18:05:52.214 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel location, heading, 253 °
2025-05-16 18:05:52.215 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel location, address, XXXXXXXXXXXX
2025-05-16 18:05:52.216 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel location, home-distance, 5 m
2025-05-16 18:05:52.217 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, fl-current, 2.5 bar
2025-05-16 18:05:52.219 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, fl-target, 2.3 bar
2025-05-16 18:05:52.220 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, fr-current, 2.5 bar
2025-05-16 18:05:52.221 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, fr-target, 2.3 bar
2025-05-16 18:05:52.222 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, rl-current, 2.3 bar
2025-05-16 18:05:52.224 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, rl-target, 2.3 bar
2025-05-16 18:05:52.225 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, rr-current, 2.4 bar
2025-05-16 18:05:52.226 [TRACE] [ybmw.internal.handler.VehicleHandler] - updating channel tires, rr-target, 2.3 bar

Hi @jlikonen , yes, looks like it is not preserved during a reboot. I have right now unfortunately no proper solution. There was a change done recently which should resolve the issue, but looks like it was not sufficien. We have to take a look at it again :frowning:

Hi @Andy_Co , yes, looks like BMW is not sending those values anymore, see above

Hi @Jagohu , I never saw this issue before. It doesn’t look like it is related to the duplicate channels. It looks like an issue when getting the correct authentication token. Did you set the right hcaptcha in the bridge?
Maybe you can

  1. delete both cars (just delete the things, the items can be kept). If they keep staying in status “deleting”, then just delete again and force that deletion
  2. generate a new hcaptcha token via the bimmer_connected page and set it in the bridge
  3. wait until the bridge is showing online and then scan for the vehicles
  4. add the vehicles with the same ids like before, then you should have the items linked correctly

BR

I don’t think this improvement has been back ported to 4.3.2. It should be available when 5.0 hits (or in a snapshot).

OK didn’t consider this, thanks.

Has this to do with the token? After a restart I always have to add a new token.
PS Thanks Bernd. It is working fine.
Is it possible to change range#mileage from Number:Length to Number only? I’m using transformation to show the value as Km but that is not working with Number:Length.

Yes, that’s the reason.

Why do you want to use transformations for this? It is Number:Length because that allows you to set the displayState to use the unit relevant for you. No transformation is then required to show it in Km. Changing to Number only will break all the unit handling.

I’m not aware of another way to show it in a sitemap as “value Km”