<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    I build from Android Studio, no special settings (should all be in
    the files).<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 09.10.22 um 20:22 schrieb Chris van
      der Meijden:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7a33e0a258df2c204fa32d2c98ebde9ed38cce45.camel@arachnon.de">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <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.wBqzXZFW.kbnekZiH@expeedo.de"
                        class="" 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>
      <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>