Everyone, some new fixes & optimizations, and I've added a "latest" directory to the hub, so the latest builds are easy to reach for anyone interested: https://github.com/openvehicles/Open-Vehicle-Android/tree/master/latest The builds are "officially" signed, so can be installed over an existing play store release and vice versa. Regards, Michael Am 16.10.22 um 19:16 schrieb Chris van der Meijden:
Hi Michael
I compiled the new code without any troubles (again on the commandline with -x lint).
Features and Parameters are working perfect now. My Fireplace app can send its "web intent" and my (simple) KWGT widget also does what it has to do.
Everything seems fine for me. Many thanks, again.
Regards
Chris
Am Sonntag, dem 16.10.2022 um 17:53 +0200 schrieb Michael Balzer:
New builds:
* https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-release.apk * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22101601-debug.apk
This also fixes the feature & parameter bug, but major change is the command activity & service rework.
Command shortcuts now also work without the service enabled, i.e. start the service on demand. This even works reasonably fast.
I've removed all UI activities from the service, so this should now basically work the same way on all Android versions.
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.
Command intent extras for action com.openvehicles.OVMS.action.COMMAND are now:
* 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"
Changes are on github, tests & feedback are welcome.
If you've added command bookmarks somewhere before, you may need to delete and recreate them to see the title in the UI.
Regards, Michael
Am 09.10.22 um 22:11 schrieb Michael Balzer:
Am 09.10.22 um 20:40 schrieb van der Meijden, Chris:
Features and Parameters are not showing. Clicking there brings me to Messages. Oops, yes, confirmed.
Starting in landscape and then turning to portrait is fixed :-)
Nothing changed with the old ScaleLayout, it's on my list, but with low priority.
So I don't think it's fixed, was working sometimes before.
Am 9. Oktober 2022 20:22:50 MESZ schrieb Chris van der Meijden <chris@arachnon.de>:
It compiled and runs without troubles, but I needed to build with
gradlew build -x lint
Am Sonntag, dem 09.10.2022 um 19:16 +0200 schrieb Michael Balzer:
Chris, Michael, thanks for tests & feedback.
Code changes so far are now in the hub: https://github.com/openvehicles/Open-Vehicle-Android/commit/c23b3dbd772bdae7...
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.
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.
Regards, Michael
Am 09.10.22 um 17:09 schrieb Chris van der Meijden: I tested the new build. Everything is working fine for me.
I think it is a good idea to restrict the respond to only action.COMMAND and leave SendCommand for background operation.
Am Sonntag, dem 09.10.2022 um 16:05 +0200 schrieb Michael Balzer:
Chris, Michael,
new builds with the announced new security scheme:
* https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-release.apk * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-debug.apk
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.
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.
So with am, you can now use:
* am broadcast -a com.openvehicles.OVMS.SendCommand -e apikey … -e command "stat" * am start -a com.openvehicles.OVMS.action.COMMAND -e apikey … -e command "stat"
The second guarantees the activity is started, so the response will be visible.
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.
Android 10 (API 29) has a new limitation for displaying results (starting UI activities) from a service (https://developer.android.com/guide/components/activities/background-starts), so that works only by chance now anyway.
Regards, Michael
Am 09.10.22 um 12:45 schrieb Chris van der Meijden: Hi Michael,
thank you for your response. As always of great help :-)
Good that you could find a possible security risc concerning the credentials.
Regards
Chris
Am Sonntag, dem 09.10.2022 um 10:53 +0200 schrieb Michael Balzer:
> Chris, > > 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. > > With your (rooted) Lineageos you should be able to use it like this: > > am broadcast -a com.openvehicles.OVMS.SendCommand -e > sel_vehicleid xxx -e sel_server_password xxx -e msg_command "7,stat" > > And I missed mentioning I also added support for user command > syntax to "SendCommand", so you can now alternatively do > > am broadcast -a com.openvehicles.OVMS.SendCommand -e > sel_vehicleid xxx -e sel_server_password xxx -e command "stat" > > Playing with am, I found out… > > am start -n com.openvehicles.OVMS/.api.CommandActivity -a > com.openvehicles.OVMS.action.COMMAND -e command "stat" > > …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. > > 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. > > Regards, > Michael > > > > Am 08.10.22 um 19:30 schrieb Chris van der Meijden: > I have been playing with the "SH" function of KWGT and tried to > send a broadcast over the shell, like adb: > > 'am broadcast -acom.whereismywifeserver.intent.TEST --essms_body > "test fromadb"' > > That did not work, there where "rights" issues. > > I took a look at the commands documentation. I will play a bit > with that. > > Thanx for explaining! > > > Am Samstag, dem 08.10.2022 um 18:54 +0200 schrieb Michael Balzer: > > > > >> Chris, >> >> "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. >> >> 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. >> (https://docs.openvehicles.com/en/latest/protocol_v2/commands.html) >> >> 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. >> >> KWGT doesn't support sending intents, that's why I've done all >> this. >> >> 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. >> >> Regards, >> Michael >> >> >> Am 08.10.22 um 17:54 schrieb Chris van der Meijden: >> Hi Michael >> >> I just installed the release apk on my degoogled Lineageos 19.1. >> >> Installation went without any troubles. I tested the broadcast >> with my fireplace app via webinent: >> >> action: 'com.openvehicles.OVMS.SendCommand', >> extras: { >> sel_vehicleid: vid, >> sel_server_password: pwd, >> msg_command: '7,climatecontrol on' >> } >> >> It works still fine and I can see the response dialog in the >> OVMS app. >> >> 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 :-) >> >> 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. >> >> Regards >> >> Chris >> >> >> Am Samstag, dem 08.10.2022 um 15:37 +0200 schrieb Michael Balzer: >> >> >> >> >> >>> New test build: >>> >>> * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk >>> * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk >>> >>> >>> This includes major extensions & code rewrites, I think I'll >>> bump the version to 4.0 when releasing this to Google Play. >>> >>> Main goal & outcome of this effort: command bookmarks. >>> >>> 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. >>> >>> So this enabled custom widgets to include buttons triggering >>> car commands. >>> >>> 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. "#…". >>> >>> 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. >>> >>> All this of course needs the service to be enabled & allow >>> commands to be sent. >>> >>> 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. >>> >>> 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. >>> >>> >>> 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. >>> >>> Regards, >>> Michael >>> >>> >>> Am 26.09.22 um 17:26 schrieb Chris van der Meijden: >>> For an includable example it would be nice if we could send >>> the vehicle image from the OVMS app to KWGT. >>> >>> 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: >>> >>> https://github.com/devmarxx/OVMS-Fireplace >>> >>> >>> Am Montag, dem 26.09.2022 um 13:56 +0200 schrieb Michael Balzer: >>> >>> >>> >>> >>> >>> >>>> Nice, please go ahead if you want to create an includable >>>> example widget :-) >>>> >>>> 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)$. >>>> >>>> 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. >>>> >>>> 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. >>>> >>>> Regards, >>>> Michael >>>> >>>> >>>> >>>> Am 26.09.22 um 12:13 schrieb Chris van der Meijden: >>>> Correction: >>>> >>>> $br(ovms, sel_vehicle_label)$ >>>> >>>> Am Montag, dem 26.09.2022 um 12:05 +0200 schrieb Chris van >>>> der Meijden: >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>> I like the new KWGT Widget feature: >>>>> >>>>> >>>>> Above is the Tesla Widget of our Model 3, beneath that my >>>>> OVMS KWGT widget of our VW e-UP. >>>>> >>>>> I had to allow "Passing data to other apps". The syntax for >>>>> getting the intent variables to text in KWGT is i.e. >>>>> >>>>> $br(ovms, car_sel_vehicle_label)$ >>>>> >>>>> Other variables can be found here: >>>>> https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-I... >>>>> >>>>> The image is local on the filesystem of the phone and does >>>>> not come by intent. >>>>> >>>>> >>>>> Am Sonntag, dem 25.09.2022 um 16:23 +0200 schrieb Michael >>>>> Balzer: >>>>> No, icon can only be 0 from the else branch, in that case it >>>>> shall fall back to the default image. >>>>> >>>>> 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. >>>>> >>>>> https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicle... >>>>> >>>>> Regards, >>>>> Michael >>>>> >>>>> >>>>> Am 25.09.22 um 15:46 schrieb Chris van der Meijden: >>>>> Just guessing, but does >>>>> >>>>> int icon; >>>>> >>>>> in MyGcmListenerService.java >>>>> <https://github.com/devmarxx/Open-Vehicle-Android/commit/3c13100a6a25257fe694be3050a1b76ca2b6fb44#diff-c13198cb33bb355f600c37f8889cedcb72346835dbb7e357c031c57aba424487> at >>>>> line 132 >>>>> >>>>> not need to be initialized like >>>>> >>>>> int icon = 0; >>>>> >>>>> now you use >>>>> >>>>> .setSmallIcon((icon!= 0) ? icon: R.drawable.map_car_default) >>>>> >>>>> at line 150 now? >>>>> >>>>> As the images and the Google stuff are related to that >>>>> integer it made me thinking ... >>>>> >>>>> >>>>> Am Sonntag, dem 25.09.2022 um 11:52 +0200 schrieb Michael >>>>> Balzer: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>> Chris, >>>>>> >>>>>> that's not a crash log, that's just a warning. >>>>>> >>>>>> 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? >>>>>> >>>>>> A crash log has class "E" (error) and includes an exception >>>>>> and a backtrace, for an example see: >>>>>> https://issuetracker.google.com/issues/201308676#comment4 >>>>>> >>>>>> On the crash: maybe it's because you don't have the Google >>>>>> components, not sure if FragMap can handle that. >>>>>> >>>>>> The forum post relates to /e/OS … maybe I need some >>>>>> emulator images running alternative Androids now… >>>>>> >>>>>> Regards, >>>>>> Michael >>>>>> >>>>>> >>>>>> Am 25.09.22 um 11:40 schrieb Chris van der Meijden: >>>>>> Hey Michael, >>>>>> >>>>>> this is from logcat when I change "Track vehicle" and the >>>>>> app crashes: >>>>>> >>>>>> 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) >>>>>> >>>>>> I saw now, that this crash also happens in the production app. >>>>>> >>>>>> The widget is running well. I will keep the app running for >>>>>> while and will see if it stays stable. >>>>>> >>>>>> Regards >>>>>> >>>>>> Chris >>>>>> >>>>>> Am Samstag, dem 24.09.2022 um 23:02 +0200 schrieb Michael >>>>>> Balzer: >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> Chris, >>>>>>> >>>>>>> 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. >>>>>>> >>>>>>> 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. >>>>>>> >>>>>>> Speed optimization was one goal. What about the widget? >>>>>>> >>>>>>> Thanks, >>>>>>> Michael >>>>>>> >>>>>>> >>>>>>> Am 24.09.22 um 22:43 schrieb Chris van der Meijden: >>>>>>> Hey Michael, >>>>>>> >>>>>>> I just installed the "release" Version on LineageOS 19.1 >>>>>>> (Android 12) without Google components. >>>>>>> >>>>>>> The vehicle setup was without any troubles. I could select >>>>>>> the yellow VW e-UP image without crashing. >>>>>>> >>>>>>> The App version is set wrong under "Vehicle info" (3.19.1, >>>>>>> 2021122401). >>>>>>> >>>>>>> Everything seems to be faster than before. >>>>>>> >>>>>>> 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. >>>>>>> >>>>>>> Perhaps this first impression is of some help. >>>>>>> >>>>>>> Regards >>>>>>> >>>>>>> Chris >>>>>>> >>>>>>> Am Samstag, dem 24.09.2022 um 20:10 +0200 schrieb Michael >>>>>>> Balzer: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Everyone, >>>>>>>> >>>>>>>> I'm currently working on the next Android release >>>>>>>> including KustomWidget support and a native app widget >>>>>>>> based on the old Automagic gauge widget. >>>>>>>> >>>>>>>> Automagic has been dead for some time now, and it keeps >>>>>>>> crashing on Androids >= 7. >>>>>>>> >>>>>>>> My changes so far are in the hub, APK builds are >>>>>>>> available here: >>>>>>>> >>>>>>>> >>>>>>>> * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk >>>>>>>> * debug build for extended logging: >>>>>>>> https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-debug.apk >>>>>>>> >>>>>>>> >>>>>>>> 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: >>>>>>>> >>>>>>>> >>>>>>>> * https://www.openvehicles.com/node/3410 >>>>>>>> >>>>>>>> I could use some help with that, I've got no idea other >>>>>>>> than blaming Android. >>>>>>>> >>>>>>>> I've seen the effect in my emulator tests, and it seems >>>>>>>> to occur more frequently with non-roadster images. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Michael >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> OvmsDev mailing list >>>>>>>> OvmsDev@lists.openvehicles.com >>>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> OvmsDev mailing list >>>>>>> OvmsDev@lists.openvehicles.com >>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>>>> >>>>>>> _______________________________________________ >>>>>>> OvmsDev mailing list >>>>>>> OvmsDev@lists.openvehicles.com >>>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> OvmsDev mailing list >>>>>> OvmsDev@lists.openvehicles.com >>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>>> >>>>>> _______________________________________________ >>>>>> OvmsDev mailing list >>>>>> OvmsDev@lists.openvehicles.com >>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>> >>>>> >>>>> _______________________________________________ >>>>> OvmsDev mailing list >>>>> OvmsDev@lists.openvehicles.com >>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>> >>>>> _______________________________________________ >>>>> OvmsDev mailing list >>>>> OvmsDev@lists.openvehicles.com >>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>>> >>>>> _______________________________________________ >>>>> OvmsDev mailing list >>>>> OvmsDev@lists.openvehicles.com >>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>> >>>> >>>> _______________________________________________ >>>> OvmsDev mailing list >>>> OvmsDev@lists.openvehicles.com >>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>>> >>>> _______________________________________________ >>>> OvmsDev mailing list >>>> OvmsDev@lists.openvehicles.com >>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>> >>> >>> _______________________________________________ >>> OvmsDev mailing list >>> OvmsDev@lists.openvehicles.com >>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >>> >>> _______________________________________________ >>> OvmsDev mailing list >>> OvmsDev@lists.openvehicles.com >>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >> >> >> _______________________________________________ >> OvmsDev mailing list >> OvmsDev@lists.openvehicles.com >> http://lists.openvehicles.com/mailman/listinfo/ovmsdev >> >> _______________________________________________ >> OvmsDev mailing list >> OvmsDev@lists.openvehicles.com >> http://lists.openvehicles.com/mailman/listinfo/ovmsdev > > > _______________________________________________ > OvmsDev mailing list > OvmsDev@lists.openvehicles.com > http://lists.openvehicles.com/mailman/listinfo/ovmsdev > > _______________________________________________ > OvmsDev mailing list > OvmsDev@lists.openvehicles.com > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26