Happy discovered: I3 seems to manage 12v battery charge by itself
Hi, Do other vehicle types also do this? My car was locked and parked since yesterday about 10:30 UTC. Not connected to the EVSE/charger. I was monitoring and I noticed that by itself it turned on the dc/dc and started a 12v battery charge The battery was 12.6V at the time and it charged it for an hour and then went back to sleep. Battery was bumped up to 13.2V. 2021-01-16T09:25:21+0000 ovms/CAA5060/event vehicle.awake 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.locked 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.state 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.12v.start ... 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/b/12v/current -9.52 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/b/12v/voltage 14.72 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/e/charging12v yes ... 2021-01-16T09:40:20+0000 ovms/CAA5060/notify/alert/vehicle.idle Vehicle is idling / stopped turned on 2021-01-16T09:40:20+0000 ovms/CAA5060/event notify.alert.vehicle.idle ... 2021-01-16T10:25:33+0000 ovms/CAA5060/event vehicle.charge.12v.stop ... Chart in localtime (+0200): [image: image.png] I did wonder if this would trigger the car warning "Battery discharging while stopped" but it did not. So if the car manages the 12v battery I will adjust the warning in my docs about discharging the 12v battery by leaving the OVMS connected. Steve
Steve, yes, that's typical for many (most?) EVs. It's cheap to implement, only needs a bit of software. Even the Twizy does it, just not with the initial charger firmware. To avoid the "idling" alert, don't set the awake state during charges. "Awake" represents the vehicle being switched on, not automatic activity. Also, if distinguishable, you should only set "charging12v" in that case, as "charging" is meant for the main battery. Regarding the warning, the 12V maintenance charges will also use some energy from the main battery. Not much, but users should be aware of this. Regards, Michael Am 16.01.21 um 13:13 schrieb Steve Davies:
Hi,
Do other vehicle types also do this?
My car was locked and parked since yesterday about 10:30 UTC. Not connected to the EVSE/charger.
I was monitoring and I noticed that by itself it turned on the dc/dc and started a 12v battery charge
The battery was 12.6V at the time and it charged it for an hour and then went back to sleep. Battery was bumped up to 13.2V.
2021-01-16T09:25:21+0000 ovms/CAA5060/event vehicle.awake 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.locked 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.state 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.12v.start ... 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/b/12v/current -9.52 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/b/12v/voltage 14.72 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/e/charging12v yes ... 2021-01-16T09:40:20+0000 ovms/CAA5060/notify/alert/vehicle.idle Vehicle is idling / stopped turned on 2021-01-16T09:40:20+0000 ovms/CAA5060/event notify.alert.vehicle.idle ... 2021-01-16T10:25:33+0000 ovms/CAA5060/event vehicle.charge.12v.stop ...
Chart in localtime (+0200):
image.png
I did wonder if this would trigger the car warning "Battery discharging while stopped" but it did not.
So if the car manages the 12v battery I will adjust the warning in my docs about discharging the 12v battery by leaving the OVMS connected.
Steve
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
Hi Michael, On Sat, 16 Jan 2021 at 14:53, Michael Balzer <dexter@expeedo.de> wrote:
To avoid the "idling" alert, don't set the awake state during charges. "Awake" represents the vehicle being switched on, not automatic activity.
Help me understand "v.e.awake" vs "v.e.on"? I'm currently setting "awake" when I'm getting data from the OBD-II, ie the car is responsive ("awake"). I'm not sure how to tell if that happened by user action or automatically. I set "v.e.on" when the car is actually ready to drive (at the moment I detect that the power steering ECU is responsive since that only comes on when the car is "READY"). If "awake" is supposed to mean ready to drive, what does "on" mean?
Also, if distinguishable, you should only set "charging12v" in that case, as "charging" is meant for the main battery.
As for the charge.state event - it should generally have a value like idle, charging etc. In this case though the value was empty - this is because OVMS rebooted at 01:25UTC and had not been able to talk to the car since then since the car was asleep. Here all the relevant events and metric changes: 2021-01-16T01:25:06+0000 ovms/CAA5060/metric/v/c/state # OVMS rebooted. v.c.state initialised empty. # and since we can't talk to the car we never know better 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.state # Vehicle woke, for some reason mqtt code decided to send the charge.state at this point 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.12v.start # 12v charging detected by current flow into 12v battery. 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/c/state idle # Since car is now alive we get the "idle" charge state. BUT WHERE IS THE charge.state EVENT? 2021-01-16T10:25:33+0000 ovms/CAA5060/event vehicle.charge.12v.stop # Car decides to stop charging the 12v. I'm not clear why another "vehicle.charge.state" event was not sent with "idle". I did not implement GetNotifyChargeStateDelay in my vehicle module - so I wonder if it ended up suppressed. Alternatively - at 09:26:42 the module was sending all metrics to MQTT. This implies that it had lost and re-established MQTT session. I wonder if that interfered with the MetricChanged logic. Unfortunately my log doesn't have metrics trace enabled so I can't see exactly. Steve
On Sat, 16 Jan 2021 at 15:52, Steve Davies <steve@telviva.co.za> wrote:
I'm not clear why another "vehicle.charge.state" event was not sent with "idle".
I did not implement GetNotifyChargeStateDelay in my vehicle module - so I wonder if it ended up suppressed.
Alternatively - at 09:26:42 the module was sending all metrics to MQTT. This implies that it had lost and re-established MQTT session. I wonder if that interfered with the MetricChanged logic.
Oh - I misread the code the sending of the vehicle.charge.state event has nothing to do with the GetNotifyChargeStateDelay stuff. So I'm not clear why another vehicle.charge.state event was not sent then the v.charge.state was set to idle. My best guess is the hypothesis that the v3 reconnect logic was busy sending all metrics just after reconnecting and so the "metricchanged" flag was lost and the vehicle.cpp MetricModified method was never called for the v.c.state metric and thus the event send was never triggered.
Steve, "awake" = vehicle has been switched on by the user "on" = vehicle is in drive mode ("ignited") The point is, "charging" is not "being awake". The idle alert checks if the car is awake but not moving. If you cannot tell if the user switched on the vehicle, assume it isn't when you detect charge mode. Another option is to implement your own idle alert handling, e.g. by overriding OvmsVehicle::NotifyVehicleIdling(). The vehicle.charge.state event is bound to changes of the "v.c.state" metric. Charge state is meant to only cover main battery charge states, it's defined & assumed to be one of… // charging, topoff, done, prepare, timerwait, heating, stopped …or empty (unknown). There's currently no "idle" state, it's meant to keep the last charge state. Regards, Michael Am 16.01.21 um 14:52 schrieb Steve Davies:
Hi Michael,
On Sat, 16 Jan 2021 at 14:53, Michael Balzer <dexter@expeedo.de <mailto:dexter@expeedo.de>> wrote:
To avoid the "idling" alert, don't set the awake state during charges. "Awake" represents the vehicle being switched on, not automatic activity.
Help me understand "v.e.awake" vs "v.e.on"?
I'm currently setting "awake" when I'm getting data from the OBD-II, ie the car is responsive ("awake"). I'm not sure how to tell if that happened by user action or automatically.
I set "v.e.on" when the car is actually ready to drive (at the moment I detect that the power steering ECU is responsive since that only comes on when the car is "READY").
If "awake" is supposed to mean ready to drive, what does "on" mean?
Also, if distinguishable, you should only set "charging12v" in that case, as "charging" is meant for the main battery.
As for the charge.state event - it should generally have a value like idle, charging etc. In this case though the value was empty - this is because OVMS rebooted at 01:25UTC and had not been able to talk to the car since then since the car was asleep.
Here all the relevant events and metric changes:
2021-01-16T01:25:06+0000 ovms/CAA5060/metric/v/c/state # OVMS rebooted. v.c.state initialised empty. # and since we can't talk to the car we never know better 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.state # Vehicle woke, for some reason mqtt code decided to send the charge.state at this point 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.12v.start # 12v charging detected by current flow into 12v battery. 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/c/state idle # Since car is now alive we get the "idle" charge state. BUT WHERE IS THE charge.state EVENT? 2021-01-16T10:25:33+0000 ovms/CAA5060/event vehicle.charge.12v.stop # Car decides to stop charging the 12v.
I'm not clear why another "vehicle.charge.state" event was not sent with "idle".
I did not implement GetNotifyChargeStateDelay in my vehicle module - so I wonder if it ended up suppressed.
Alternatively - at 09:26:42 the module was sending all metrics to MQTT. This implies that it had lost and re-established MQTT session. I wonder if that interfered with the MetricChanged logic.
Unfortunately my log doesn't have metrics trace enabled so I can't see exactly.
Steve
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
Looking back at the old thread "Vehicle is idling": A new “Feature”, I don’t think we ever properly finished this. We did add the aux12v standard metric, and we have the charging12v one. But we never renames ‘awake’ to ‘accessory’ to avoid the confusion. The alternative suggested would be one single enumerated metric to reflect all the possible states. Something like: off deepsleep lightsleep awake accessory starting on I’m ok either way. But really depends on how the other vehicle types fit into the model. Regards, Mark.
On 16 Jan 2021, at 10:20 PM, Michael Balzer <dexter@expeedo.de> wrote:
Signed PGP part Steve,
"awake" = vehicle has been switched on by the user "on" = vehicle is in drive mode ("ignited")
The point is, "charging" is not "being awake". The idle alert checks if the car is awake but not moving.
If you cannot tell if the user switched on the vehicle, assume it isn't when you detect charge mode.
Another option is to implement your own idle alert handling, e.g. by overriding OvmsVehicle::NotifyVehicleIdling().
The vehicle.charge.state event is bound to changes of the "v.c.state" metric. Charge state is meant to only cover main battery charge states, it's defined & assumed to be one of…
// charging, topoff, done, prepare, timerwait, heating, stopped
…or empty (unknown). There's currently no "idle" state, it's meant to keep the last charge state.
Regards, Michael
Am 16.01.21 um 14:52 schrieb Steve Davies:
Hi Michael,
On Sat, 16 Jan 2021 at 14:53, Michael Balzer <dexter@expeedo.de <mailto:dexter@expeedo.de>> wrote:
To avoid the "idling" alert, don't set the awake state during charges. "Awake" represents the vehicle being switched on, not automatic activity.
Help me understand "v.e.awake" vs "v.e.on"?
I'm currently setting "awake" when I'm getting data from the OBD-II, ie the car is responsive ("awake"). I'm not sure how to tell if that happened by user action or automatically.
I set "v.e.on" when the car is actually ready to drive (at the moment I detect that the power steering ECU is responsive since that only comes on when the car is "READY").
If "awake" is supposed to mean ready to drive, what does "on" mean?
Also, if distinguishable, you should only set "charging12v" in that case, as "charging" is meant for the main battery.
As for the charge.state event - it should generally have a value like idle, charging etc. In this case though the value was empty - this is because OVMS rebooted at 01:25UTC and had not been able to talk to the car since then since the car was asleep.
Here all the relevant events and metric changes:
2021-01-16T01:25:06+0000 ovms/CAA5060/metric/v/c/state # OVMS rebooted. v.c.state initialised empty. # and since we can't talk to the car we never know better 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.state # Vehicle woke, for some reason mqtt code decided to send the charge.state at this point 2021-01-16T09:25:24+0000 ovms/CAA5060/event vehicle.charge.12v.start # 12v charging detected by current flow into 12v battery. 2021-01-16T09:26:42+0000 ovms/CAA5060/metric/v/c/state idle # Since car is now alive we get the "idle" charge state. BUT WHERE IS THE charge.state EVENT? 2021-01-16T10:25:33+0000 ovms/CAA5060/event vehicle.charge.12v.stop # Car decides to stop charging the 12v.
I'm not clear why another "vehicle.charge.state" event was not sent with "idle".
I did not implement GetNotifyChargeStateDelay in my vehicle module - so I wonder if it ended up suppressed.
Alternatively - at 09:26:42 the module was sending all metrics to MQTT. This implies that it had lost and re-established MQTT session. I wonder if that interfered with the MetricChanged logic.
Unfortunately my log doesn't have metrics trace enabled so I can't see exactly.
Steve
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com <mailto:OvmsDev@lists.openvehicles.com> http://lists.openvehicles.com/mailman/listinfo/ovmsdev <http://lists.openvehicles.com/mailman/listinfo/ovmsdev>
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
It used to be possible to manually set tire pressure with: metrics set v.tp.fl.p 210.29 metrics set v.tp.fr.p 210.29 metrics set v.tp.rl.p 210.29 metrics set v.tp.rr.p 210.29 but after upgrading to the latest persistent metrics code I see these are all gone. I looked at the tpms command but it seems to be designed to track different sets of tpms sensor id numbers. Is it possible to set these from the command line? Are tpms tire pressures (and temperatures) still persistent across warm reboots? Is my problem that these are stored in vectors now and there is not yet a way to manipulate them from the command line? Craig
Any help here? I guess the simple version is, "how can I set vector persistent metrics from the command line?" Craig -------- Forwarded Message -------- Subject: [Ovmsdev] How does TPMS work now? Date: Sun, 17 Jan 2021 19:11:30 -0800 From: Craig Leres <leres@xse.com> Reply-To: OVMS Developers <ovmsdev@lists.openvehicles.com> To: OVMS Developers <ovmsdev@lists.openvehicles.com> It used to be possible to manually set tire pressure with: metrics set v.tp.fl.p 210.29 metrics set v.tp.fr.p 210.29 metrics set v.tp.rl.p 210.29 metrics set v.tp.rr.p 210.29 but after upgrading to the latest persistent metrics code I see these are all gone. I looked at the tpms command but it seems to be designed to track different sets of tpms sensor id numbers. Is it possible to set these from the command line? Are tpms tire pressures (and temperatures) still persistent across warm reboots? Is my problem that these are stored in vectors now and there is not yet a way to manipulate them from the command line? Craig _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
On Wed, 20 Jan 2021, Greg D. wrote:
"On" is the keyswitch position 2, where the car can be driven (contactor is in). Pushing the keyswitch to the momentary position 3 (ICE "Start") toggles the Performance driving mode setting. A handy place to put that, I guess.
It is necessary to depress the brake and momentarily turn to position 3 to initiate the start-up sequence and put the car into driving mode.
The alternative suggested would be one single enumerated metric to reflect all the possible states. Something like:
* off * deepsleep * lightsleep * awake * accessory * starting * on
The condition that occurs when opening the door could be deepsleep or lightsleep rather than awake. -- Steve
Stephen Casner wrote:
On Wed, 20 Jan 2021, Greg D. wrote:
"On" is the keyswitch position 2, where the car can be driven (contactor is in). Pushing the keyswitch to the momentary position 3 (ICE "Start") toggles the Performance driving mode setting. A handy place to put that, I guess. It is necessary to depress the brake and momentarily turn to position 3 to initiate the start-up sequence and put the car into driving mode. I was specifically referring to the Roadster (2.x if that matters) for this use of switch position 3. I expect that's another Roadster-unique behavior. The alternative suggested would be one single enumerated metric to reflect all the possible states. Something like:
* off * deepsleep * lightsleep * awake * accessory * starting * on The condition that occurs when opening the door could be deepsleep or lightsleep rather than awake. Is there an overall description of the various states? What describes the difference between the different sleeps and awake? -- Steve
OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
On Wed, 20 Jan 2021, Greg D. wrote:
Stephen Casner wrote:
On Wed, 20 Jan 2021, Greg D. wrote:
"On" is the keyswitch position 2, where the car can be driven (contactor is in). Pushing the keyswitch to the momentary position 3 (ICE "Start") toggles the Performance driving mode setting. A handy place to put that, I guess. It is necessary to depress the brake and momentarily turn to position 3 to initiate the start-up sequence and put the car into driving mode. I was specifically referring to the Roadster (2.x if that matters) for this use of switch position 3. I expect that's another Roadster-unique behavior.
I was also referring to the Roadster. My point was that postition 3 is not just for toggling to Performance mode.
The alternative suggested would be one single enumerated metric to reflect all the possible states. Something like:
* off * deepsleep * lightsleep * awake * accessory * starting * on The condition that occurs when opening the door could be deepsleep or lightsleep rather than awake. Is there an overall description of the various states? What describes the difference between the different sleeps and awake?
That's not defined yet. I think Mark was making a proposal that would be rich enough to cover all vehicles, and the states used for each vehicle would need to be defined. -- Steve
Stephen Casner wrote:
On Wed, 20 Jan 2021, Greg D. wrote:
Stephen Casner wrote:
It is necessary to depress the brake and momentarily turn to position 3 to initiate the start-up sequence and put the car into driving mode. I was specifically referring to the Roadster (2.x if that matters) for this use of switch position 3. I expect that's another Roadster-unique behavior.
I was also referring to the Roadster. My point was that postition 3 is not just for toggling to Performance mode. Interesting.
I didn't know the 1.5's behaved that way. On a 2.x, simply turning the key to position 2 and pushing the "D" button gets you going. Foot on brake likely required, too. Never tried without doing that, for safety reasons. I guess they figured the "start" action was kind of silly in an EV, and repurposed the 3rd switch position for something else. But to the question of vehicle states, is a single metric going to be sufficient, or do we need separate status metrics for the various functions as it is today? I'm not sure. The more of these exceptions we run into, the more the separate metrics make sense to me. Greg
On Thu, 21 Jan 2021, Greg D. wrote:
I didn't know the 1.5's behaved that way. On a 2.x, simply turning the key to position 2 and pushing the "D" button gets you going.
Do the startup sounds occur at the first step or the second?
But to the question of vehicle states, is a single metric going to be sufficient, or do we need separate status metrics for the various functions as it is today? I'm not sure. The more of these exceptions we run into, the more the separate metrics make sense to me.
If the states for all vehicles are strictly ordered, then it should be possible to define a mapping to a single metric so long as the number of values is sufficient. -- Steve
Hi Steve, Chimes and such occur at 2, along with the brake vacuum pump. But, to show you how much I pay attention to these things, it turns out that there is actually a key position between 1 and 2. The first notch ("Accessory") turns on the dash lights, radio, and such, then there's a very short throw to another notch that doesn't have any obvious function, then a bigger throw to the "On" position. Then the spring-return to position 3, aka Start / Performance. The user guide is silent on that intermediate 1-B position, and unless we can determine what it does, it's probably safe to ignore. The reverse direction brings out another Roadster quirk, where going from Accessory to Off doesn't do anything until you actually remove the key. The dash stays active, radio on, etc. until the key is removed. The user guide does describe this behavior. So, what state is the car in, when the key is at Off, but the dash is still active? Greg Stephen Casner wrote:
On Thu, 21 Jan 2021, Greg D. wrote:
I didn't know the 1.5's behaved that way. On a 2.x, simply turning the key to position 2 and pushing the "D" button gets you going. Do the startup sounds occur at the first step or the second?
But to the question of vehicle states, is a single metric going to be sufficient, or do we need separate status metrics for the various functions as it is today? I'm not sure. The more of these exceptions we run into, the more the separate metrics make sense to me. If the states for all vehicles are strictly ordered, then it should be possible to define a mapping to a single metric so long as the number of values is sufficient.
-- Steve _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
participants (6)
-
Craig Leres -
Greg D. -
Mark Webb-Johnson -
Michael Balzer -
Stephen Casner -
Steve Davies