<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">The Tesla Roadster transmits it’s sleep/awake status:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">ID 0x100 B1=0x96</div></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">B4=doors3</div></blockquote></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class="">bit1 = awake/asleep (awake=1 / asleep=0)</div></blockquote></blockquote></blockquote><div class=""><br class=""></div><div class="">In the v2 code, we simply sent this as doors3 value (in the ‘D’ protocol message).</div><div class=""><br class=""></div><div class="">The v3 code has this as:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class="">case 0x96: // Doors / Charging yes/no</div><div class="">  {</div><div class="">  m_awake = d[3] & 0x01;</div></div></blockquote><div class=""><div><br class=""></div><div>Which was wrong (bit #0). I fixed it in recent commit 39cdb7e19e5a3b88ab7217a9adb0cb6008278ab1 to 'm_awake = d[3] & 0x02’ (bit #1), and that now correctly tracks the vehicle state. This was to address bug 'Tesla Roadster: Vehicle AWAKE metric not correct #328’.</div><div><br class=""></div><div>Over the years, it seems that the meaning of doors3 has changed. It originally just specified bit #1, but now the protocol specifies:</div><div><br class=""></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div>
                
        
        
                <div class="page" title="Page 11">
                        <div class="layoutArea">
                                <div class="column">
                                        <ul style="list-style-type: none" class="">
                                                <li class=""><p class=""><span style="color: rgb(0, 0, 10); font-style: normal; font-size: 14px;" class=""><font face="Andale Mono" class="">Door state #3
</font></span></p><p class=""><span style="color: rgb(0, 0, 10); font-style: normal; font-size: 14px;" class=""><font face="Andale Mono" class="">bit0 = Car awake (turned on=1 / off=0)<br class="">
bit1 = Cooling pump (on=1/off=0)<br class="">
bit6 = 1=Logged into motor controller<br class="">
bit7 = 1=Motor controller in configuration mode</font></span><span style="font-size: 12.000000pt; font-family: 'ArialMT'; color: rgb(0.000000%, 0.000000%, 3.921000%)" class=""> </span></p>
                                                </li>
                                        </ul>
                                </div>
                        </div>
                </div></div></div></blockquote><div class=""><div>The Tesla Roadster code in v2 never adhered to that, and just set doors3 to whatever it saw on the bus. However, I’ve never seen values other than 0x00 or 0x02 on that byte. Certainly, no known value for bit#0 (car turned on). I guess this is where the confusion from the conversion v2 -> v3 came from (the protocol document saying ‘awake’ in bit#0, vs cooling pump in bit #1). Tesla Roadster users know the cooling pump as ‘awake/sleep’.</div><div><br class=""></div><div>So, where are we now? A general car can be defined as at least these states:</div><div><br class=""></div><div><ol class="MailOutline"><li class="">Ignition off, asleep, consuming as little power as possible</li><li class="">Ignition off, awake, with some systems using power</li><li class="">Ignition on to the first stop (just some systems on, but car not started)</li><li class="">Ignition on all the way (engine running or starting)</li><li class="">Ignition past on all the way (turning the engine starter motor)</li></ol></div><div><br class=""></div><div>We can ignore #5 for electric cars.</div><div><br class=""></div><div>In v3, we have these metrics:</div><div><br class=""></div><div><ul class="MailOutline"><li class="">v.e.awake</li><li class="">v.e.on</li><li class="">v.e.charging12v</li></ul></div><div><br class=""></div><div>I assumed that v.e.awake corresponds to state #2, and v.e.on to states #3 and/or #4.</div><div><br class=""></div><div>The v.e.charging12v doesn’t really work for the Roadster. The cooling pump is not related to the little 12v battery charging system.</div><div><br class=""></div><div>I guess I could add a standard metric ‘v.e.aux12v’ to indicate the auxiliary 12v system is on (and then set v.e.awake and v.e.ok corresponding to the ignition switch). Is that acceptable?</div><div><br class=""></div><div>Regards, Mark.</div><div><br class=""></div><div><blockquote type="cite" class=""><div class="">On 8 Feb 2020, at 5:46 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="">gregd2350@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class="">
    Hi Michael, Mark,<br class="">
    <br class="">
    Ok, very interesting that this is an old feature.  I only just
    started seeing the message very recently.  What changed?<br class="">
    <br class="">
    As to "Awake" vs "On" vs "Ignited", they are definitely different. 
    I am seeing the correct state reflected in v.e.awake and v.e.on. 
    Simply opening the car door when the car is asleep will wake it up
    (v.e.awake turns to yes), and inserting the key and moving it to the
    "Accessory" position (first notch) moves the state to "On" (both
    metrics are "yes").  Note that the car is not On (drivable) until
    the key is moved one notch farther; I'm presuming that's "Ignited"
    in your terminology.  <br class="">
    <br class="">
    But something has changed.  I have an event script tied to
    vehicle.on which activates ext12v power to enable a HUD or similar
    (*).  Simply awakening the car triggers the script, a behavior I
    believe is new, and incorrect.  The script should get activated only
    when the key is moved to Accessory (your "On" state).  When the car
    goes directly back to sleep after a few minutes, the vehicle.off
    script correctly does not trigger.  Turning the car to Accessory,
    then Off (removing the key), does correctly trigger the vehicle.off
    script, even though the car is still Awake at the time.<br class="">
    <br class="">
    So what I think is happening with the "Vehicle is idling" message is
    that it's a side effect of some logic change to what "on" is, that
    it's being sensed and triggered by "Awake" instead of "On".  The car
    is definitely Awake during charging, but it is not On.  And not
    being On, the Idle message shouldn't be triggered, nor should my HUD
    be turned on.<br class="">
    <br class="">
    What changed?<br class="">
    <br class="">
    Greg<br class="">
    <br class="">
    (*)  Actually, the script does a bit more, to work around the CAN3
    bus hangs:<br class="">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" class="">
    <br class="">
    <tt class="">power ext12v off</tt><tt class=""><br class="">
    </tt><tt class="">obdii ecu stop</tt><tt class=""><br class="">
    </tt><tt class="">obdii ecu start can3</tt><tt class=""><br class="">
    </tt><tt class="">power ext12v on</tt><br class="">
    <br class="">
    <br class="">
    <br class="">
    <div class="moz-cite-prefix">Michael Balzer wrote:<br class="">
    </div>
    <blockquote type="cite" cite="mid:39ff043f-34e9-4f28-29cb-4d24ce43a65c@expeedo.de" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
      <div class="moz-cite-prefix">Greg, Mark,<br class="">
        <br class="">
        that's actually a very old feature originating from V2. It's
        meant to alert about a car left turned on, which is both a
        potential security issue (key is plugged) and a potential
        fire/explosion threat on vehicles that may overcharge the 12V
        battery from the DC/DC converter. It's also main battery
        drainage.<br class="">
        <br class="">
        This also needs to trigger during charging, but of course not if
        the vehicle wakes itself for some internal checks or OTA updates
        / whatever.<br class="">
        <br class="">
        This was/is using the definition of "awake" as "turned on", and
        "on" as "ignited". It seems all cars except the roadster follow
        this scheme now, so maybe we should separate the "maintenance
        awake" state?<br class="">
        <br class="">
        Regards,<br class="">
        Michael<br class="">
        <br class="">
        <br class="">
        Am 07.02.20 um 08:43 schrieb Mark Webb-Johnson:<br class="">
      </div>
      <blockquote type="cite" cite="mid:2E9FB03E-E1F9-4471-85DC-3530F197795B@webb-johnson.net" class="">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8" class="">
        Greg,
        <div class=""><br class="">
        </div>
        <div class="">That would be the system thinking the vehicle is
          asleep, but speed > 0.</div>
        <div class=""><br class="">
        </div>
        <div class="">I did fix the roadster awake/sleep flag (which was
          not being set correctly before), so most likely this is
          something new.</div>
        <div class=""><br class="">
        </div>
        <div class="">The logic is in VehicleTicker1() in vehicle.cpp.
          It is:</div>
        <div class=""><br class="">
        </div>
        <blockquote style="margin: 0 0 0 40px; border: none; padding:
          0px;" class="">
          <div class="">
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class="">//
                  Idle alert:</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class="">if
                  (!StdMetrics.ms_v_env_awake->AsBool() ||
                  StdMetrics.ms_v_pos_speed->AsFloat() > 0)</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  {</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  m_idle_ticker = 15 * 60; // first alert after 15
                  minutes</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  }</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class="">else
                  if (m_idle_ticker > 0 && --m_idle_ticker ==
                  0)</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  {</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  NotifyVehicleIdling();</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  m_idle_ticker = 60 * 60; // successive alerts every 60
                  minutes</span></font></div>
            <div class=""><font class="" face="Andale Mono"><span style="font-style: normal; font-size: 14px;" class=""> 
                  }</span></font></div>
          </div>
        </blockquote>
        <div class="">
          <div class=""><br class="">
          </div>
          <div class="">So, that resets the fifteen minute timer whenever the
            vehicle is either asleep OR speed>0 (driving). Otherwise
            the timer counts down, and after 15 minutes the alert is
            raised (and every 60 minutes thereafter until either the
            vehicle goes to sleep or speed>0).</div>
          <div class=""><br class="">
          </div>
          <div class="">For roadster, that work work. The car can ‘awake’ itself
            for charging,etc.</div>
          <div class=""><br class="">
          </div>
          <div class="">I am not really sure why we are using ms_v_env_awake in
            the first place here. Why do we care if the vehicle is awake
            or not? Surely we should be looking at ms_v_env_on (ie;
            vehicle switched on)? But for JDEMO users that would cause a
            problem (as for they have to leave the vehicle ignition on
            while charging).</div>
          <div class=""><br class="">
          </div>
          <div class="">Maybe simplest to disable this alert for Roadster, unless
            someone else has any better ideas. In any case, we need to
            think about using ms_v_env_awake vs ms_v_env_on.</div>
          <div class=""><br class="">
          </div>
          <div class="">Regards, Mark.</div>
          <div class=""><br class="">
          </div>
          <div class="">
            <blockquote type="cite" class="">
              <div class="">On 7 Feb 2020, at 2:22 AM, Greg D. <<a href="mailto:gregd2350@gmail.com" class="" moz-do-not-send="true">gregd2350@gmail.com</a>>
                wrote:</div>
              <br class="Apple-interchange-newline">
              <div class="">
                <div class="">Hi folks,<br class="">
                  <br class="">
                  I'm starting to get an alert "Vehicle is idling /
                  stopped turned on"<br class="">
                  when my Roadster is charging.  Seems to occur every
                  hour.<br class="">
                  <br class="">
                  Is this something new with OVMSv3, or did something
                  change / break on my<br class="">
                  car?<br class="">
                  <br class="">
                  Greg<br class="">
                  <br class="">
                  _______________________________________________<br class="">
                  OvmsDev mailing list<br class="">
                  <a href="mailto:OvmsDev@lists.openvehicles.com" class="" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a><br class="">
                  <a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br class="">
                </div>
              </div>
            </blockquote>
          </div>
          <br class="">
        </div>
        <br class="">
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
      </blockquote>
      <br class="">
      <br class="">
      <pre class="moz-signature" cols="144">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
</pre>
      <br class="">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br class="">
      <pre wrap="" class="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br class="">
  </div>

_______________________________________________<br class="">OvmsDev mailing list<br class=""><a href="mailto:OvmsDev@lists.openvehicles.com" class="">OvmsDev@lists.openvehicles.com</a><br class="">http://lists.openvehicles.com/mailman/listinfo/ovmsdev<br class=""></div></blockquote></div><br class=""></div></body></html>