<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    New builds:<br>
    <ul>
      <li><span style="color: rgb(0, 0, 0); font-family: ui-monospace,
          "Cascadia Mono", "Segoe UI Mono",
          "Source Code Pro", "Roboto Mono", Hack,
          "Liberation Mono", Menlo, Monaco, Consolas,
          monospace, monospace; font-size: 12px; font-style: normal;
          font-variant-ligatures: normal; font-variant-caps: normal;
          font-weight: 400; letter-spacing: normal; orphans: 2;
          text-align: start; text-indent: 0px; text-transform: none;
          white-space: normal; widows: 2; word-spacing: 0px;
          -webkit-text-stroke-width: 0px; background-color: rgb(255,
          255, 248); text-decoration-thickness: initial;
          text-decoration-style: initial; text-decoration-color:
          initial; display: inline !important; float: none;"><a class="moz-txt-link-freetext" href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-release.apk">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-release.apk</a></span></li>
      <li><span style="color: rgb(0, 0, 0); font-family: ui-monospace,
          "Cascadia Mono", "Segoe UI Mono",
          "Source Code Pro", "Roboto Mono", Hack,
          "Liberation Mono", Menlo, Monaco, Consolas,
          monospace, monospace; font-size: 12px; font-style: normal;
          font-variant-ligatures: normal; font-variant-caps: normal;
          font-weight: 400; letter-spacing: normal; orphans: 2;
          text-align: start; text-indent: 0px; text-transform: none;
          white-space: normal; widows: 2; word-spacing: 0px;
          -webkit-text-stroke-width: 0px; background-color: rgb(255,
          255, 248); text-decoration-thickness: initial;
          text-decoration-style: initial; text-decoration-color:
          initial; display: inline !important; float: none;"><a class="moz-txt-link-freetext" href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-debug.apk">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-debug.apk</a></span></li>
    </ul>
    <p>This also fixes the feature & parameter bug, but major change
      is the command activity & service rework.</p>
    <p>Command shortcuts now also work without the service enabled, i.e.
      start the service on demand. This even works reasonably fast.<br>
    </p>
    <p>I've removed all UI activities from the service, so this should
      now basically work the same way on all Android versions.</p>
    <p>The command activity now also supports queueing, multiple
      commands can be sent to it at once. It will execute them in
      series, with each result being shown for 5 seconds or according to
      user interaction. On commands returning multiple rows, only the
      first 10-15 will be shown.</p>
    <p>Command intent extras for action
      com.openvehicles.OVMS.action.COMMAND are now:</p>
    <pre style="background-color:#ffffff;color:#080808;font-family:'JetBrains Mono',monospace;font-size:9,8pt;"><font face="monospace">* Intent extras expected/supported:
* - vehicleid (optional)
* - apikey or (with vehicleid) password
* - title (optional)
* - command (optional, no command means only change the car)
*
* Commands need to be in user input syntax:
*  - MMI/USSD commands: prefix "*", example: "*100#"
*  - Modem commands:    prefix "@", example: "@ATI"
*  - MP MSG commands:   prefix "#", example: "#31"
*  - Text commands:     everything else, example: "stat"</font><span style="color: rgb(140, 140, 140);"></span><span style="color:#8c8c8c;font-style:italic;">
</span></pre>
    <p></p>
    <br>
    Changes are on github, tests & feedback are welcome.<br>
    <br>
    If you've added command bookmarks somewhere before, you may need to
    delete and recreate them to see the title in the UI.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 09.10.22 um 22:11 schrieb Michael
      Balzer:<br>
    </div>
    <blockquote type="cite"
      cite="mid:5fc6b4f4-49f7-05d2-9777-a6ee136298b3@expeedo.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <br>
      <div class="moz-cite-prefix">Am 09.10.22 um 20:40 schrieb van der
        Meijden, Chris:<br>
      </div>
      <blockquote type="cite"
        cite="mid:7C852916-C740-4E34-996B-D53DBFEBB4A8@arachnon.de">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        Features and Parameters are not showing. Clicking there brings
        me to Messages.<br>
      </blockquote>
      Oops, yes, confirmed.<br>
      <br>
      <blockquote type="cite"
        cite="mid:7C852916-C740-4E34-996B-D53DBFEBB4A8@arachnon.de"><br>
        Starting in landscape and then turning to portrait is fixed :-)<br>
      </blockquote>
      Nothing changed with the old ScaleLayout, it's on my list, but
      with low priority.<br>
      <br>
      So I don't think it's fixed, was working sometimes before.<br>
      <br>
      <br>
      <blockquote type="cite"
        cite="mid:7C852916-C740-4E34-996B-D53DBFEBB4A8@arachnon.de"><br>
        <br>
        <div class="gmail_quote">Am 9. Oktober 2022 20:22:50 MESZ
          schrieb Chris van der Meijden <a
            class="moz-txt-link-rfc2396E"
            href="mailto:chris@arachnon.de" moz-do-not-send="true"><chris@arachnon.de></a>:
          <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
            0.8ex; border-left: 1px solid rgb(204, 204, 204);
            padding-left: 1ex;">
            <div>It compiled and runs without troubles, but I needed to
              build with</div>
            <div><br>
            </div>
            <div>
              <div>gradlew build -x lint</div>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>Am Sonntag, dem 09.10.2022 um 19:16 +0200 schrieb
              Michael Balzer:</div>
            <blockquote type="cite" style="margin:0 0 0 .8ex;
              border-left:2px #729fcf solid;padding-left:1ex">
              <div> Chris, Michael, thanks for tests & feedback.<br>
                <br>
                Code changes so far are now in the hub:<br>
              </div>
              <div><a class="moz-txt-link-freetext"
href="https://github.com/openvehicles/Open-Vehicle-Android/commit/c23b3dbd772bdae7e82601797cd3a71c2623a78c"
                  moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Android/commit/c23b3dbd772bdae7e82601797cd3a71c2623a78c</a><br>
                <br>
                This has become a very large commit, and it mixes some
                version update changes that became necessary &
                deprecation fixes I should have kept separate, but
                cannot disentangle now.<br>
                <br>
                Some things still to do for the release, most notably
                removing UI interaction from the service. So if any
                other stuff shall be added to the next release, tell me
                & go ahead preparing that.<br>
                <br>
                Regards,<br>
                Michael<br>
                <br>
                <br>
              </div>
              <div class="moz-cite-prefix">Am 09.10.22 um 17:09 schrieb
                Chris van der Meijden:<br>
              </div>
              <div>
                <meta http-equiv="content-type" content="text/html;
                  charset=UTF-8">
              </div>
              <div>I tested the new build. Everything is working fine
                for me.</div>
              <div><br>
              </div>
              <div>I think it is a good idea to restrict the respond to
                only action.COMMAND and leave SendCommand for background
                operation.</div>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>Am Sonntag, dem 09.10.2022 um 16:05 +0200 schrieb
                Michael Balzer:</div>
              <div> <br>
              </div>
              <blockquote type="cite" style="margin:0 0 0 .8ex;
                border-left:2px #729fcf solid;padding-left:1ex">
                <div> Chris, Michael,<br>
                  <br>
                  new builds with the announced new security scheme:<br>
                </div>
                <div> </div>
                <ul>
                  <li><span style="color: rgb(0, 0, 0); font-family:
                      ui-monospace, "Cascadia Mono",
                      "Segoe UI Mono", "Source Code
                      Pro", "Roboto Mono", Hack,
                      "Liberation Mono", Menlo, Monaco,
                      Consolas, monospace, monospace; font-size: 12px;
                      font-style: normal; font-variant-ligatures:
                      normal; font-variant-caps: normal; font-weight:
                      400; letter-spacing: normal; orphans: 2;
                      text-align: start; text-indent: 0px;
                      text-transform: none; white-space: normal; widows:
                      2; word-spacing: 0px; -webkit-text-stroke-width:
                      0px; background-color: rgb(238, 238, 238);
                      text-decoration-thickness: initial;
                      text-decoration-style: initial;
                      text-decoration-color: initial; display: inline
                      !important; float: none;"><a
                        class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-release.apk"
                        moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-release.apk</a></span></li>
                  <li><span style="color: rgb(0, 0, 0); font-family:
                      ui-monospace, "Cascadia Mono",
                      "Segoe UI Mono", "Source Code
                      Pro", "Roboto Mono", Hack,
                      "Liberation Mono", Menlo, Monaco,
                      Consolas, monospace, monospace; font-size: 12px;
                      font-style: normal; font-variant-ligatures:
                      normal; font-variant-caps: normal; font-weight:
                      400; letter-spacing: normal; orphans: 2;
                      text-align: start; text-indent: 0px;
                      text-transform: none; white-space: normal; widows:
                      2; word-spacing: 0px; -webkit-text-stroke-width:
                      0px; background-color: rgb(255, 255, 248);
                      text-decoration-thickness: initial;
                      text-decoration-style: initial;
                      text-decoration-color: initial; display: inline
                      !important; float: none;"><a
                        class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-debug.apk"
                        moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-debug.apk</a></span></li>
                </ul>
                <p>This adds a new API key authorization to both Intent
                  interfaces. The API key is automatically generated on
                  App launch, and can be viewed, copied and regenerated
                  from the general options page.</p>
                <p>It can be used for both command intents by passing in
                  as extra "apikey", allowing to omit the vehicle
                  password. The vehicle id is now also optional on both
                  interfaces, if omitted the current vehicle will be
                  used. To change the car you can either pass the
                  vehicle password or the apikey along with the vehicle
                  id.<br>
                </p>
                <div> So with am, you can now use:<br>
                </div>
                <div> </div>
                <ul>
                  <li><font face="monospace">am broadcast -a
                      com.openvehicles.OVMS.SendCommand -e apikey … -e
                      command "stat"</font></li>
                  <li><font face="monospace">am start -a
                      com.openvehicles.OVMS.action.COMMAND -e apikey …
                      -e command "stat"</font><br>
                  </li>
                </ul>
                <p>The second guarantees the activity is started, so the
                  response will be visible.<br>
                </p>
                <p>I'll probably restrict displaying the response to
                  action.COMMAND in the next build, so SendCommand will
                  be for background operations while action.COMMAND is
                  for interactive uses.<br>
                </p>
                <div> Android 10 (API 29) has a new limitation for
                  displaying results (starting UI activities) from a
                  service (<a class="moz-txt-link-freetext"
href="https://developer.android.com/guide/components/activities/background-starts"
                    moz-do-not-send="true">https://developer.android.com/guide/components/activities/background-starts</a>),
                  so that works only by chance now anyway.<br>
                  <br>
                  Regards,<br>
                  Michael<br>
                  <br>
                  <br>
                </div>
                <div class="moz-cite-prefix">Am 09.10.22 um 12:45
                  schrieb Chris van der Meijden:<br>
                </div>
                <div>
                  <meta http-equiv="content-type" content="text/html;
                    charset=UTF-8">
                </div>
                <div>Hi Michael,</div>
                <div><br>
                </div>
                <div>thank you for your response. As always of great
                  help :-)</div>
                <div><br>
                </div>
                <div>Good that you could find a possible security risc
                  concerning the credentials.</div>
                <div><br>
                </div>
                <div>Regards</div>
                <div><br>
                </div>
                <div>Chris</div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>Am Sonntag, dem 09.10.2022 um 10:53 +0200 schrieb
                  Michael Balzer:</div>
                <div> <br>
                </div>
                <div> <br>
                </div>
                <blockquote type="cite" style="margin:0 0 0 .8ex;
                  border-left:2px #729fcf solid;padding-left:1ex">
                  <div> Chris,<br>
                    <br>
                    AFAIK you need to have an adb connection or a rooted
                    Android to use "am", so not suitable as a general
                    way to call OVMS commands.<br>
                    <br>
                    With your (rooted) Lineageos you should be able to
                    use it like this:<br>
                    <br>
                    <font face="monospace">am broadcast -a
                      com.openvehicles.OVMS.SendCommand -e sel_vehicleid
                      xxx -e sel_server_password xxx -e msg_command
                      "7,stat"</font><br>
                    <br>
                    And I missed mentioning I also added support for
                    user command syntax to "SendCommand", so you can now
                    alternatively do<br>
                    <br>
                    <font face="monospace">am broadcast -a
                      com.openvehicles.OVMS.SendCommand -e sel_vehicleid
                      xxx -e sel_server_password xxx -e command "stat"</font><br>
                    <br>
                    Playing with am, I found out…<br>
                    <br>
                    <font face="monospace">am start -n
                      com.openvehicles.OVMS/.api.CommandActivity -a
                      com.openvehicles.OVMS.action.COMMAND -e command
                      "stat"</font><br>
                    <br>
                    …actually works to trigger the new command receiver.
                    I thought restricting the new receiver to
                    app-internal intents would be possible, but it
                    apparently isn't. That bothers me, it means any App
                    could issue a command without knowing the
                    credentials or an auth key and without a previous
                    explicit user interaction to allow this.<br>
                    <br>
                    So I need to add a credentials check to the new
                    action, which means you will need to reinstall all
                    bookmarks / shortcut assignments. Please wait with
                    complex setups until I've added that.<br>
                    <br>
                    Regards,<br>
                    Michael<br>
                    <br>
                    <br>
                    <br>
                  </div>
                  <div class="moz-cite-prefix">Am 08.10.22 um 19:30
                    schrieb Chris van der Meijden:<br>
                  </div>
                  <div>
                    <meta http-equiv="content-type" content="text/html;
                      charset=UTF-8">
                  </div>
                  <div>I have been playing with the "SH" function of
                    KWGT and tried to send a broadcast over the shell,
                    like adb:</div>
                  <div><br>
                  </div>
                  <div style="orphans: auto; widows: auto;"><span
                      style="font-family: inherit; font-size:
                      var(--fs-body1); font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-color); orphans: 2; widows:
                      2; background-color: var(--highlight-bg);">'am
                      broadcast -</span><span class="hljs-selector-tag"
                      style="font-family: inherit; font-size: 13px;
                      font-style: inherit; font-variant-caps: inherit;
                      white-space: inherit; color:
                      var(--highlight-keyword); orphans: 2; widows: 2;
                      margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">a</span><span
                      style="font-family: inherit; font-size:
                      var(--fs-body1); font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-color); orphans: 2; widows:
                      2; background-color: var(--highlight-bg);"> com</span><span
                      class="hljs-selector-class" style="font-family:
                      inherit; font-size: 13px; font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-keyword); orphans: 2;
                      widows: 2; margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">.whereismywifeserver</span><span
                      class="hljs-selector-class" style="font-family:
                      inherit; font-size: 13px; font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-keyword); orphans: 2;
                      widows: 2; margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">.intent</span><span
                      class="hljs-selector-class" style="font-family:
                      inherit; font-size: 13px; font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-keyword); orphans: 2;
                      widows: 2; margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">.TEST </span><span
                      class="hljs-attr" style="font-family: inherit;
                      font-size: 13px; font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-attribute); orphans: 2;
                      widows: 2; margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">--es</span><span
                      style="font-family: inherit; font-size:
                      var(--fs-body1); font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-color); orphans: 2; widows:
                      2; background-color: var(--highlight-bg);">
                      sms_body "test </span><span
                      class="hljs-selector-tag" style="font-family:
                      inherit; font-size: 13px; font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-keyword); orphans: 2;
                      widows: 2; margin: 0px; padding: 0px; border: 0px;
                      font-variant-ligatures: inherit;
                      font-variant-position: inherit;
                      font-variant-numeric: inherit;
                      font-variant-alternates: inherit;
                      font-variant-east-asian: inherit; font-stretch:
                      inherit; line-height: inherit; vertical-align:
                      baseline; box-sizing: inherit;">from</span><span
                      style="font-family: inherit; font-size:
                      var(--fs-body1); font-style: inherit;
                      font-variant-caps: inherit; white-space: inherit;
                      color: var(--highlight-color); orphans: 2; widows:
                      2; background-color: var(--highlight-bg);"> adb"'</span></div>
                  <div><br>
                  </div>
                  <div>That did not work, there where "rights" issues.</div>
                  <div><br>
                  </div>
                  <div>I took a look at the commands documentation. I
                    will play a bit with that.</div>
                  <div><br>
                  </div>
                  <div>Thanx for explaining!</div>
                  <div><br>
                  </div>
                  <div><br>
                  </div>
                  <div>Am Samstag, dem 08.10.2022 um 18:54 +0200 schrieb
                    Michael Balzer:</div>
                  <div> <br>
                  </div>
                  <div> <br>
                  </div>
                  <div> <br>
                  </div>
                  <blockquote type="cite" style="margin:0 0 0 .8ex;
                    border-left:2px #729fcf solid;padding-left:1ex">
                    <div> Chris,<br>
                      <br>
                      "com.openvehicles.OVMS.SendCommand" is the old
                      command action, it's still supported and should
                      work the same way as before, except there are some
                      new extras in the response intent.<br>
                      <br>
                      The "SendCommand" interface is raw MP function
                      level, that's why you need to prefix "7," for text
                      commands (7 = execute text command). Other MP
                      commands work just the same way as raw commands,
                      e.g. "20,<pin>" will lock the car if
                      supported. (<a class="moz-txt-link-freetext"
                        href="https://docs.openvehicles.com/en/latest/protocol_v2/commands.html"
                        moz-do-not-send="true">https://docs.openvehicles.com/en/latest/protocol_v2/commands.html</a>)<br>
                      <br>
                      The newly added command intent action is
                      "com.openvehicles.OVMS.action.COMMAND", it just
                      takes one extra "command", which takes the command
                      just as entered in the notification page. See help
                      there for the syntax, text commands can be given
                      as in the shell, to send the above MP lock
                      command, you'd enter "#20,<pin>". This
                      action currently always sends the command to the
                      currently selected vehicle.<br>
                      <br>
                      KWGT doesn't support sending intents, that's why
                      I've done all this.<br>
                      <br>
                      To call a stored command from KWGT, set a suitable
                      element's touch handler to "start shortcut". After
                      clicking on that action, you can open a selector.
                      It will show the list of shortcut providers
                      installed including the OVMS App now. Click on the
                      OVMS entry, then select the command from the list
                      of stored commands.<br>
                      <br>
                      Regards,<br>
                      Michael<br>
                      <br>
                      <br>
                    </div>
                    <div class="moz-cite-prefix">Am 08.10.22 um 17:54
                      schrieb Chris van der Meijden:<br>
                    </div>
                    <div>
                      <meta http-equiv="content-type"
                        content="text/html; charset=UTF-8">
                    </div>
                    <div>Hi Michael</div>
                    <div><br>
                    </div>
                    <div>I just installed the release apk on my
                      degoogled Lineageos 19.1.</div>
                    <div><br>
                    </div>
                    <div>Installation went without any troubles. I
                      tested the broadcast with my fireplace app via
                      webinent:</div>
                    <div><br>
                    </div>
                    <div>action: 'com.openvehicles.OVMS.SendCommand',</div>
                    <div>extras: { </div>
                    <div>   sel_vehicleid: vid,</div>
                    <div>   sel_server_password: pwd,</div>
                    <div>   msg_command: '7,climatecontrol on'</div>
                    <div> }</div>
                    <div><br>
                    </div>
                    <div>It works still fine and I can see the response
                      dialog in the OVMS app.</div>
                    <div><br>
                    </div>
                    <div>I don't understand the "MP function". Do you
                      have an example for for i.e. "climatecontrol on"
                      via Buttons in KWGT? I'd love to test that :-)</div>
                    <div><br>
                    </div>
                    <div>And do you know if there is a way to send
                      intent broadcasts with KWGT? I tried with a
                      "GLOBALE", but I could not get that to work.</div>
                    <div><br>
                    </div>
                    <div>Regards</div>
                    <div><br>
                    </div>
                    <div>Chris</div>
                    <div><br>
                    </div>
                    <div><br>
                    </div>
                    <div>Am Samstag, dem 08.10.2022 um 15:37 +0200
                      schrieb Michael Balzer:</div>
                    <div> <br>
                    </div>
                    <div> <br>
                    </div>
                    <div> <br>
                    </div>
                    <div> <br>
                    </div>
                    <blockquote type="cite" style="margin:0 0 0 .8ex;
                      border-left:2px #729fcf solid;padding-left:1ex">
                      <div> New test build:<br>
                      </div>
                      <div> </div>
                      <ul>
                        <li><span style="color: rgb(0, 0, 0);
                            font-family: ui-monospace, "Cascadia
                            Mono", "Segoe UI Mono",
                            "Source Code Pro", "Roboto
                            Mono", Hack, "Liberation
                            Mono", Menlo, Monaco, Consolas,
                            monospace, monospace; font-size: 12px;
                            font-style: normal; font-variant-ligatures:
                            normal; font-variant-caps: normal;
                            font-weight: 400; letter-spacing: normal;
                            orphans: 2; text-align: start; text-indent:
                            0px; text-transform: none; white-space:
                            normal; widows: 2; word-spacing: 0px;
                            -webkit-text-stroke-width: 0px;
                            background-color: rgb(255, 255, 248);
                            text-decoration-thickness: initial;
                            text-decoration-style: initial;
                            text-decoration-color: initial; display:
                            inline !important; float: none;"><a
                              class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk"
                              moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk</a></span></li>
                        <li><span style="color: rgb(0, 0, 0);
                            font-family: ui-monospace, "Cascadia
                            Mono", "Segoe UI Mono",
                            "Source Code Pro", "Roboto
                            Mono", Hack, "Liberation
                            Mono", Menlo, Monaco, Consolas,
                            monospace, monospace; font-size: 12px;
                            font-style: normal; font-variant-ligatures:
                            normal; font-variant-caps: normal;
                            font-weight: 400; letter-spacing: normal;
                            orphans: 2; text-align: start; text-indent:
                            0px; text-transform: none; white-space:
                            normal; widows: 2; word-spacing: 0px;
                            -webkit-text-stroke-width: 0px;
                            background-color: rgb(255, 255, 248);
                            text-decoration-thickness: initial;
                            text-decoration-style: initial;
                            text-decoration-color: initial; display:
                            inline !important; float: none;"><a
                              class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk"
                              moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk</a></span><span
                            style="color: rgb(0, 0, 0); font-family:
                            ui-monospace, "Cascadia Mono",
                            "Segoe UI Mono", "Source Code
                            Pro", "Roboto Mono", Hack,
                            "Liberation Mono", Menlo, Monaco,
                            Consolas, monospace, monospace; font-size:
                            12px; font-style: normal;
                            font-variant-ligatures: normal;
                            font-variant-caps: normal; font-weight: 400;
                            letter-spacing: normal; orphans: 2;
                            text-align: start; text-indent: 0px;
                            text-transform: none; white-space: normal;
                            widows: 2; word-spacing: 0px;
                            -webkit-text-stroke-width: 0px;
                            background-color: rgb(255, 255, 248);
                            text-decoration-thickness: initial;
                            text-decoration-style: initial;
                            text-decoration-color: initial; display:
                            inline !important; float: none;"></span></li>
                      </ul>
                      <div> <br>
                        This includes major extensions & code
                        rewrites, I think I'll bump the version to 4.0
                        when releasing this to Google Play.<br>
                        <br>
                        Main goal & outcome of this effort: command
                        bookmarks.<br>
                        <br>
                        The App now offers stored commands (see
                        notifications tab). Stored commands can be
                        pinned to the launcher and selected from third
                        party Apps like KWGT as shortcuts to execute on
                        triggers / actions.<br>
                        <br>
                        So this enabled custom widgets to include
                        buttons triggering car commands.<br>
                        <br>
                        Commands are given using the user syntax, i.e.
                        don't need the MP function prefix. You can still
                        call an MP function by using the user syntax,
                        i.e. "#…".<br>
                        <br>
                        Command responses are shown as a dialog with a
                        timeoout of 5 seconds unless you hold it by
                        touching or begin scrolling a long response. If
                        the App is paused it will be resumed and switch
                        to the notifications page (which keeps a record
                        of all commands & responses). If the App
                        isn't running, only the response dialog is shown
                        on the launcher.<br>
                        <br>
                        All this of course needs the service to be
                        enabled & allow commands to be sent.<br>
                        <br>
                        Command responses are also broadcasted now, so
                        KWGT et al can receive them -- but they will
                        currently need to know the command sent
                        previously and copy command responses if they
                        need to keep them, I don't know if KWGT can do
                        that (Automagic can). KWGT seems to only have a
                        simple variable storage model.<br>
                        <br>
                        I think about extending the ApiService to keep a
                        command queue so the broadcast can at least
                        carry the command, the response is supposedly
                        produced for. Unfortunately the MP API cannot
                        guarantee this, as it doesn't currently return a
                        copy of the original command or a command ID
                        reference with the response, so this would at
                        best be a guess. Not sure if users actually need
                        this.<br>
                        <br>
                        <br>
                        Note: I haven't pushed the code changes to
                        github yet, I'd first like to get some test
                        feedback. I've tested this on Android 6, 7, 11
                        & 13, but not on any degoogled Androids.<br>
                        <br>
                        Regards,<br>
                        Michael<br>
                        <br>
                        <br>
                      </div>
                      <div class="moz-cite-prefix">Am 26.09.22 um 17:26
                        schrieb Chris van der Meijden:<br>
                      </div>
                      <div>
                        <meta http-equiv="content-type"
                          content="text/html; charset=UTF-8">
                      </div>
                      <div>For an includable example it would be nice if
                        we could send the vehicle image from the OVMS
                        app to KWGT.</div>
                      <div><br>
                      </div>
                      <div>You can assign "Activities" to the "Touch"
                        event on an image. Would be cool if that works,
                        so we can start the remote climate control
                        similar to how I do that with my OVMS-Fireplace
                        app:</div>
                      <div><br>
                      </div>
                      <div><a
                          href="https://github.com/devmarxx/OVMS-Fireplace"
                          moz-do-not-send="true"
                          class="moz-txt-link-freetext">https://github.com/devmarxx/OVMS-Fireplace</a></div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div>Am Montag, dem 26.09.2022 um 13:56 +0200
                        schrieb Michael Balzer:</div>
                      <div> <br>
                      </div>
                      <div> <br>
                      </div>
                      <div> <br>
                      </div>
                      <div> <br>
                      </div>
                      <div> <br>
                      </div>
                      <blockquote type="cite" style="margin:0 0 0 .8ex;
                        border-left:2px #729fcf solid;padding-left:1ex">
                        <div> Nice, please go ahead if you want to
                          create an includable example widget :-)<br>
                          <br>
                          I've found out you can also use progress bars
                          to display values, enable formula input on the
                          "step" & set the formular to e.g.
                          $br(ovms, car_soc)$.<br>
                          <br>
                          Works, although I need to convert all car
                          model values to strings for KWGT. Btw, I also
                          need to unroll the TPMS arrays, they are split
                          into a "_cnt" & "_<n>" variables. I
                          need to add an info on this to the wiki.<br>
                          <br>
                          I haven't found out how to send a broadcast
                          from KWGT yet, is that possible? That would
                          enable creating command shortcuts &
                          buttons as with Automagic.<br>
                          <br>
                          Regards,<br>
                          Michael<br>
                          <br>
                          <br>
                          <br>
                        </div>
                        <div class="moz-cite-prefix">Am 26.09.22 um
                          12:13 schrieb Chris van der Meijden:<br>
                        </div>
                        <div>
                          <meta http-equiv="content-type"
                            content="text/html; charset=UTF-8">
                        </div>
                        <div>Correction:</div>
                        <div><br>
                        </div>
                        <div>$br(ovms, <span style="color: rgb(36, 41,
                            47); font-family: -apple-system,
                            BlinkMacSystemFont, "Segoe UI",
                            Helvetica, Arial, sans-serif, "Apple
                            Color Emoji", "Segoe UI
                            Emoji"; font-size: 16px; orphans: 2;
                            widows: 2; background-color: rgb(246, 248,
                            250);">sel_vehicle_label)$</span></div>
                        <div><br>
                        </div>
                        <div>Am Montag, dem 26.09.2022 um 12:05 +0200
                          schrieb Chris van der Meijden:</div>
                        <div> <br>
                        </div>
                        <div> <br>
                        </div>
                        <div> <br>
                        </div>
                        <div> <br>
                        </div>
                        <div> <br>
                        </div>
                        <div> <br>
                        </div>
                        <blockquote type="cite" style="margin:0 0 0
                          .8ex; border-left:2px #729fcf
                          solid;padding-left:1ex">
                          <div>I like the new KWGT Widget feature:</div>
                          <div><br>
                          </div>
                          <div><img
                              src="cid:part1.H9gIrSW7.Sa8hpPEL@expeedo.de"
                              class="" moz-do-not-send="true"
                              width="600px" height="492px"></div>
                          <div><br>
                          </div>
                          <div>Above is the Tesla Widget of our Model 3,
                            beneath that my OVMS KWGT widget of our VW
                            e-UP.</div>
                          <div><br>
                          </div>
                          <div>I had to allow "Passing data to other
                            apps". The syntax for getting the intent
                            variables to text in KWGT is i.e.</div>
                          <div><br>
                          </div>
                          <div>$br(ovms, car_sel_vehicle_label)$</div>
                          <div><br>
                          </div>
                          <div>Other variables can be found here:</div>
                          <div><a
href="https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-Intent-data"
                              moz-do-not-send="true"
                              class="moz-txt-link-freetext">https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-Intent-data</a></div>
                          <div><br>
                          </div>
                          <div>The image is local on the filesystem of
                            the phone and does not come by intent.</div>
                          <div><br>
                          </div>
                          <div><br>
                          </div>
                          <div>Am Sonntag, dem 25.09.2022 um 16:23 +0200
                            schrieb Michael Balzer:</div>
                          <div> No, icon can only be 0 from the else
                            branch, in that case it shall fall back to
                            the default image.<br>
                            <br>
                            But I've meanwhile found (I think) your
                            maps/track crash, commit is already in the
                            hub. The checkbox handler didn't check if
                            the map object is initialized.<br>
                            <br>
                          </div>
                          <div><a class="moz-txt-link-freetext"
href="https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicleApp/src/main/java/com/openvehicles/OVMS/ui/FragMap.java#L319"
                              moz-do-not-send="true">https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicleApp/src/main/java/com/openvehicles/OVMS/ui/FragMap.java#L319</a><br>
                            <br>
                            Regards,<br>
                            Michael<br>
                            <br>
                            <br>
                          </div>
                          <div class="moz-cite-prefix">Am 25.09.22 um
                            15:46 schrieb Chris van der Meijden:<br>
                          </div>
                          <div>
                            <meta http-equiv="content-type"
                              content="text/html; charset=UTF-8">
                          </div>
                          <div>Just guessing, but does </div>
                          <div><br>
                          </div>
                          <div>int icon;</div>
                          <div><br>
                          </div>
                          <div>in <a
title="OpenVehicleApp/src/main/java/com/openvehicles/OVMS/receiver/MyGcmListenerService.java"
                              class="Link--primary Truncate-text"
href="https://github.com/devmarxx/Open-Vehicle-Android/commit/3c13100a6a25257fe694be3050a1b76ca2b6fb44#diff-c13198cb33bb355f600c37f8889cedcb72346835dbb7e357c031c57aba424487"
                              style="box-sizing: border-box;
                              background-color: rgb(246, 248, 250);
                              min-width: 1ch; max-width: fit-content;
                              overflow: hidden; text-overflow: ellipsis;
                              white-space: nowrap; font-family:
                              ui-monospace, SFMono-Regular, "SF
                              Mono", Menlo, Consolas,
                              "Liberation Mono", monospace;
                              font-size: 12px; font-variant-ligatures:
                              normal; orphans: 2; widows: 2; color:
                              var(--color-accent-fg) !important;"
                              moz-do-not-send="true">MyGcmListenerService.java</a> at
                            line 132</div>
                          <div><br>
                          </div>
                          <div>not need to be initialized like</div>
                          <div><br>
                          </div>
                          <div>int icon = 0;</div>
                          <div><br>
                          </div>
                          <div>now you use</div>
                          <div><br>
                          </div>
                          <div>
                            <div><span style="color: rgb(36, 41, 47); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; background-color: rgb(230, 255, 236); text-decoration-thickness: initial;">.</span><span class="pl-en" style="box-sizing: border-box; color: var(--color-prettylights-syntax-entity); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; background-color: rgb(230, 255, 236); text-decoration-thickness: initial;">setSmallIcon</span><span style="color: rgb(36, 41, 47); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; background-color: rgb(230, 255, 236); text-decoration-thickness: initial;">(</span><span class="x x-first x-last" style="box-sizing: border-box; border-radius: 0.2em; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">(</span><span class="pl-s1" style="box-sizing: border-box; color: rgb(36, 41, 47); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; background-color: rgb(230, 255, 236); text-decoration-thickness: initial;">icon</span><span class="x x-first" style="box-sizing: border-box; border-top-left-radius: 0.2em; border-bottom-left-radius: 0.2em; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;"> != </span><span class="pl-c1 x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">0</span><span class="x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">) ? </span><span class="pl-s1 x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">icon</span><span class="x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;"> : </span><span class="pl-smi x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">R</span><span class="x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">.</span><span class="pl-s1 x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">drawable</span><span class="x" style="box-sizing: border-box; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">.</span><span class="pl-s1 x x-last" style="box-sizing: border-box; border-top-right-radius: 0.2em; border-bottom-right-radius: 0.2em; color: rgb(36, 41, 47); background-color: var(--color-diff-blob-addition-word-bg); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; text-decoration-thickness: initial;">map_car_default</span><span style="color: rgb(36, 41, 47); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 12px; font-variant-ligatures: normal; orphans: 2; white-space: pre; widows: 2; background-color: rgb(230, 255, 236); text-decoration-thickness: initial;">)</span></div>
                          </div>
                          <div><br>
                          </div>
                          <div>at line 150 now?</div>
                          <div><br>
                          </div>
                          <div>As the images and the Google stuff are
                            related to that integer it made me thinking
                            ...</div>
                          <div><br>
                          </div>
                          <div><br>
                          </div>
                          <div>Am Sonntag, dem 25.09.2022 um 11:52 +0200
                            schrieb Michael Balzer:</div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <div> <br>
                          </div>
                          <blockquote type="cite" style="margin:0 0 0
                            .8ex; border-left:2px #729fcf
                            solid;padding-left:1ex">
                            <div> Chris,<br>
                              <br>
                              that's not a crash log, that's just a
                              warning.<br>
                              <br>
                              On that warning: the App requests
                              android.permission.ACCESS_FINE_LOCATION by
                              it's manifest. Maybe with LineageOS you
                              need to manually give it that permission?<br>
                              <br>
                              A crash log has class "E" (error) and
                              includes an exception and a backtrace, for
                              an example see: <a
                                class="moz-txt-link-freetext"
                                href="https://issuetracker.google.com/issues/201308676#comment4"
                                moz-do-not-send="true">https://issuetracker.google.com/issues/201308676#comment4</a><br>
                              <br>
                              On the crash: maybe it's because you don't
                              have the Google components, not sure if
                              FragMap can handle that.<br>
                              <br>
                              The forum post relates to /e/OS … maybe I
                              need some emulator images running
                              alternative Androids now…<br>
                              <br>
                              Regards,<br>
                              Michael<br>
                              <br>
                              <br>
                            </div>
                            <div class="moz-cite-prefix">Am 25.09.22 um
                              11:40 schrieb Chris van der Meijden:<br>
                            </div>
                            <div>
                              <meta http-equiv="content-type"
                                content="text/html; charset=UTF-8">
                            </div>
                            <div>Hey Michael,</div>
                            <div><br>
                            </div>
                            <div>this is from logcat when I change
                              "Track vehicle" and the app crashes:</div>
                            <div><br>
                            </div>
                            <div>09-25 11:16:01.410 1710 1839 W
                              BroadcastQueue: Permission Denial:
                              receiving Intent {
                              act=android.intent.action.SERVICE_STATE
                              flg=0x1000010 (has extras) } to
                              ProcessRecord{8dcdd54
                              2053:com.android.systemui/u0a148}
                              (pid=2053, uid=10148) requires
                              android.permission.ACCESS_FINE_LOCATION
                              due to sender android (uid 1001)</div>
                            <div><br>
                            </div>
                            <div>I saw now, that this crash also happens
                              in the production app.</div>
                            <div><br>
                            </div>
                            <div>The widget is running well. I will keep
                              the app running for while and will see if
                              it stays stable.</div>
                            <div><br>
                            </div>
                            <div>Regards</div>
                            <div><br>
                            </div>
                            <div>Chris</div>
                            <div><br>
                            </div>
                            <div>Am Samstag, dem 24.09.2022 um 23:02
                              +0200 schrieb Michael Balzer:</div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <div> <br>
                            </div>
                            <blockquote type="cite" style="margin:0 0 0
                              .8ex; border-left:2px #729fcf
                              solid;padding-left:1ex">
                              <div> Chris,<br>
                                <br>
                                thanks for testing. A crash log would
                                help on any crashes you see. Btw, I
                                don't bump the revision until the actual
                                release build.<br>
                                <br>
                                Crashes related to the car image don't
                                occur immediately, it sometimes takes
                                hours of use before it happens. When it
                                does, clearing the App cache fixes the
                                crash for another random period.<br>
                                <br>
                                Speed optimization was one goal. What
                                about the widget?<br>
                                <br>
                                Thanks,<br>
                                Michael<br>
                                <br>
                                <br>
                              </div>
                              <div class="moz-cite-prefix">Am 24.09.22
                                um 22:43 schrieb Chris van der Meijden:<br>
                              </div>
                              <div>
                                <meta http-equiv="content-type"
                                  content="text/html; charset=UTF-8">
                              </div>
                              <div>Hey Michael,</div>
                              <div><br>
                              </div>
                              <div>I just installed the "release"
                                Version on LineageOS 19.1 (Android 12)
                                without Google components.</div>
                              <div><br>
                              </div>
                              <div>The vehicle setup was without any
                                troubles. I could select the yellow VW
                                e-UP image without crashing.</div>
                              <div><br>
                              </div>
                              <div>The App version is set wrong under
                                "Vehicle info" (3.19.1, 2021122401).</div>
                              <div><br>
                              </div>
                              <div>Everything seems to be faster than
                                before.</div>
                              <div><br>
                              </div>
                              <div>When I change the checkbox on "Track
                                vehicle" under "Position" the App
                                crashes. But after a new start of the
                                app the value of the checkbox has
                                changed.</div>
                              <div><br>
                              </div>
                              <div>Perhaps this first impression is of
                                some help.</div>
                              <div><br>
                              </div>
                              <div>Regards</div>
                              <div><br>
                              </div>
                              <div>Chris</div>
                              <div><br>
                              </div>
                              <div>Am Samstag, dem 24.09.2022 um 20:10
                                +0200 schrieb Michael Balzer:</div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <div> <br>
                              </div>
                              <blockquote type="cite" style="margin:0 0
                                0 .8ex; border-left:2px #729fcf
                                solid;padding-left:1ex">
                                <div> Everyone,<br>
                                  <br>
                                  I'm currently working on the next
                                  Android release including KustomWidget
                                  support and a native app widget based
                                  on the old Automagic gauge widget.<br>
                                  <br>
                                  Automagic has been dead for some time
                                  now, and it keeps crashing on Androids
                                  >= 7.<br>
                                  <br>
                                  My changes so far are in the hub, APK
                                  builds are available here:<br>
                                </div>
                                <div><br>
                                </div>
                                <div><br>
                                </div>
                                <div> </div>
                                <ul>
                                  <li><a class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk"
                                      moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk</a></li>
                                  <li>debug build for extended logging:
                                    <a class="moz-txt-link-freetext"
href="https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-debug.apk"
                                      moz-do-not-send="true">https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-debug.apk</a></li>
                                </ul>
                                <div> <br>
                                  There's an issue with the App related
                                  to Android >= 10 though, which I
                                  haven't found yet. It's been reported
                                  in the forum:<br>
                                </div>
                                <div><br>
                                </div>
                                <div><br>
                                </div>
                                <div> </div>
                                <ul>
                                  <li><a class="moz-txt-link-freetext"
                                      href="https://www.openvehicles.com/node/3410"
                                      moz-do-not-send="true">https://www.openvehicles.com/node/3410</a></li>
                                </ul>
                                <p>I could use some help with that, I've
                                  got no idea other than blaming
                                  Android.<br>
                                </p>
                                <div> I've seen the effect in my
                                  emulator tests, and it seems to occur
                                  more frequently with non-roadster
                                  images.<br>
                                  <br>
                                  Regards,<br>
                                  Michael<br>
                                  <br>
                                </div>
                                <pre><div>_______________________________________________</div></pre>
                                <pre><div>OvmsDev mailing list</div></pre>
                                <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                                <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                              </blockquote>
                              <div><br>
                              </div>
                              <div><span></span></div>
                              <div> <br>
                                <fieldset
                                  class="moz-mime-attachment-header"></fieldset>
                              </div>
                              <pre>_______________________________________________</pre>
                              <pre>OvmsDev mailing list</pre>
                              <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                              <pre><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>
                              <div> <br>
                              </div>
                              <pre><div>_______________________________________________</div></pre>
                              <pre><div>OvmsDev mailing list</div></pre>
                              <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                              <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                            </blockquote>
                            <div><br>
                            </div>
                            <div><span></span></div>
                            <div> <br>
                              <fieldset
                                class="moz-mime-attachment-header"></fieldset>
                            </div>
                            <pre>_______________________________________________</pre>
                            <pre>OvmsDev mailing list</pre>
                            <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                            <pre><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>
                            <div> <br>
                            </div>
                            <pre><div>_______________________________________________</div></pre>
                            <pre><div>OvmsDev mailing list</div></pre>
                            <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                            <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                          </blockquote>
                          <div><br>
                          </div>
                          <div><span></span></div>
                          <div> <br>
                            <fieldset class="moz-mime-attachment-header"></fieldset>
                          </div>
                          <pre>_______________________________________________</pre>
                          <pre>OvmsDev mailing list</pre>
                          <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                          <pre><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>
                          <div> <br>
                          </div>
                          <pre><div>_______________________________________________</div></pre>
                          <pre><div>OvmsDev mailing list</div></pre>
                          <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                          <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                          <div><br>
                          </div>
                          <div><span></span></div>
                          <div>_______________________________________________<br>
                          </div>
                          <div>OvmsDev mailing list<br>
                          </div>
                          <div><a
                              href="mailto:OvmsDev@lists.openvehicles.com"
                              moz-do-not-send="true"
                              class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
                          </div>
                          <div><a
                              href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                              moz-do-not-send="true"
                              class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
                          </div>
                        </blockquote>
                        <div><br>
                        </div>
                        <div><span></span></div>
                        <div> <br>
                          <fieldset class="moz-mime-attachment-header"></fieldset>
                        </div>
                        <pre>_______________________________________________</pre>
                        <pre>OvmsDev mailing list</pre>
                        <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                        <pre><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>
                        <div> <br>
                        </div>
                        <pre><div>_______________________________________________</div></pre>
                        <pre><div>OvmsDev mailing list</div></pre>
                        <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                        <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                      </blockquote>
                      <div><br>
                      </div>
                      <div><span></span></div>
                      <div> <br>
                        <fieldset class="moz-mime-attachment-header"></fieldset>
                      </div>
                      <pre>_______________________________________________</pre>
                      <pre>OvmsDev mailing list</pre>
                      <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                      <pre><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>
                      <div> <br>
                      </div>
                      <pre><div>_______________________________________________</div></pre>
                      <pre><div>OvmsDev mailing list</div></pre>
                      <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                      <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                    </blockquote>
                    <div><br>
                    </div>
                    <div><span></span></div>
                    <div> <br>
                      <fieldset class="moz-mime-attachment-header"></fieldset>
                    </div>
                    <pre>_______________________________________________</pre>
                    <pre>OvmsDev mailing list</pre>
                    <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                    <pre><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>
                    <div> <br>
                    </div>
                    <pre><div>_______________________________________________</div></pre>
                    <pre><div>OvmsDev mailing list</div></pre>
                    <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                    <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                  </blockquote>
                  <div><br>
                  </div>
                  <div><span></span></div>
                  <div> <br>
                    <fieldset class="moz-mime-attachment-header"></fieldset>
                  </div>
                  <pre>_______________________________________________</pre>
                  <pre>OvmsDev mailing list</pre>
                  <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                  <pre><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>
                  <div> <br>
                  </div>
                  <pre><div>_______________________________________________</div></pre>
                  <pre><div>OvmsDev mailing list</div></pre>
                  <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                  <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
                </blockquote>
                <div><br>
                </div>
                <div><span></span></div>
                <div> <br>
                  <fieldset class="moz-mime-attachment-header"></fieldset>
                </div>
                <pre>_______________________________________________</pre>
                <pre>OvmsDev mailing list</pre>
                <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
                <pre><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>
                <div> <br>
                </div>
                <pre><div>_______________________________________________</div></pre>
                <pre><div>OvmsDev mailing list</div></pre>
                <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a></div></pre>
                <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a></div></pre>
              </blockquote>
              <div><br>
              </div>
              <div><span></span></div>
              <div> <br>
                <fieldset class="moz-mime-attachment-header"></fieldset>
              </div>
              <pre>_______________________________________________</pre>
              <pre>OvmsDev mailing list</pre>
              <pre><a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a></pre>
              <pre><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>
              <div> <br>
              </div>
              <pre><div>_______________________________________________
</div></pre>
              <pre><div>OvmsDev mailing list
</div></pre>
              <pre><div><a href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a>
</div></pre>
              <pre><div><a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</div></pre>
            </blockquote>
            <div><br>
            </div>
            <div><span></span></div>
          </blockquote>
        </div>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" 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>
      <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
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>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
  </body>
</html>