Smart #1 API / Smart Home Integration

  • Sadly I had to remove the widget from my iPhone as I kept hearing the car every 10 minutes or so. the sound the car usually makes when we lock it.


    After stopping the widget the sounds stopped. After adding it back on my iPhone one hour later, the sound came back immediately.


    The weirdest part is that all along the widget was on iPad too and there is no problem there

  • Wie oft aktualisiert das Widget den die Daten?

    Das gibt das Betriebssystem vor, man hat keinen Einfluss drauf. Pi mal Daumen alle 5-7 Minuten. Hängt aber auch vom Akkustand deines iPhones ab, ob du im Energiesparmodus bist oder nicht, ob das iPhone gerade rum liegt (standby) oder benutzt wird usw.

  • I kept hearing the car every 10 minutes or so. the sound the car usually make when we lock it.

    That was a known bug or let‘s say strange behaviour on older Software versions of the Smart #1 (before 1.2.0 EU).

    I had it for some time as well as soon as my real key was or came in the range of the car (5-10 meters). In my case this was completely unrelated to the App (widget didn‘t even exist).


    I can hardly believe this is related to the widget. Once it is logged in, all it does is calling a single api endpoint to get the latest car data. It’s a reading request (http GET). Should be completely unrelated. And all things it does at all are exactly the same as within the App. That‘s where I got all api calls from in the first place.

  • chriscat
    And now it makes perfectly sense. I forgot to remove line 73 of the script where I already tested successfully to lock/unlock the car! That's why it makes noises when you have it set up on your phone. It was hard coded to always lock the car. Controlling the car only works at all if the device is connected via Bluetooth to your car and the digital key is active. That's why it didn't happen on your iPad. Please remove line 73 of the script or download the complete updated script again from github.


    An alle, die das Skript bereits installiert haben:
    Bitte in Scriptable Zeile 73 löschen. Sorry dafür!

    const lockIt = await lockCar(credentials.apiAccessToken);

    Alternativ das komplette Skript neu bei Github runterladen.


    Die Steuerung für's Auto will ich - wenn überhaupt - erst später einbauen. Das Problem ist, dass der Smart ständig den Digital Key verliert (zumindest bei mir), so dass das nicht zuverlässig funktioniert. So viele Bugs bei Smart. Echt frustrierend!

  • Indeed. All makes perfect sense. I suppose it’s also why I got the message my 12V battery was low and I should start the car. I never had such a message from hello smart before.

    battery draining by locking the car every few minutes and maintaining the Bluetooth connection from next room.


    All seems to work now. I even tested successfully the location today.


    Thank you


    Is the temperature useful for you? It never gets updated for me. It stayed tonight at 24 and update to 17 only when I started the car

  • marco79cgn : Danke für das tolle Skript! Inzwischen läuft es auch bei mir auf einem iPhone 6s. Am Anfang hatte ich noch das Problem beim Login mit dem neu angelegten Account:

    Error on line 432:45: TypeError: undefined is not an object (evaluating 'loginResult.sessionInfo.login_token'),

    das hat sich dann ein Tag später von selbst behoben.


    Aktuell habe ich noch ein täglich wiederkehrendes Problem, dass die Datei "hashes.js" nicht gefunden wird. Es erscheint immer wieder das Wolkensymbol dahinter und dann lade ich die Datei runter und das Skript läuft wieder. Anscheinend gibt es die Option "Speicher optimieren", die das auslösen soll, das finde ich aber nur am Mac. Da muss ich nochmal suchen.


    Den Standort hat er bei mir nur beim ersten Aufruf angezeigt und dann sind nach und nach Ort, PLZ und Straße verschwunden. Das gleiche Problem habe ich aber auch bei der App, hat also nichts mit dem Skript zu tun.

    #1 Premium Cyber Silver Metallic / Auslieferung 16.03.23 / SmartOS 1.4.0 EU

    KDMs: (EVCC Steuergerät getauscht / 4 Türen Winterproblem behoben / Notrufsystem)

  • chriscat
    Thanks for verification. The temperature is from the inside of the car. It changes here all the time, especially at night (7 degrees last night). If you start the air condition from the app, it should definetly change. That's one reason why I put it there. In a future update, I was thinking about starting the air condition from within the widget (bigger size).


    MySmart

    Dein iPhone scheint relativ voll belegt zu sein, was den Speicher angeht. Dann fängt iOS an und räumt Dateien weg, die seiner Ansicht nach nicht zwingend gebraucht werden. Ich teste mal, ob ich vorher prüfen kann, ob das File noch auf dem Gerät ist und falls nicht, den erneuten Download erzwingen kann. Ich könnte die abhängigen Dateien theoretisch auch im internen Speicher der App ablegen, dann ist es nach außen hin nicht transparent. Werde ich in einem künftigen Update berücksichtigen.

  • chriscat
    Thanks for verification. The temperature is from the inside of the car. It changes here all the time, especially at night (7 degrees last night). If you start the air condition from the app, it should definetly change. That's one reason why I put it there. In a future update, I was thinking about starting the air condition from within the widget (bigger size).

    I see, it will be handy in winter.

    I made it work for 2 cars with this small change https://github.com/marco79cgn/ios-scriptable-widgets/pull/3


    I had to use 2 different users. A given user can access only the latest car that was accessed in the App.


    I also noticed that if a user wasn't used in too long, I have to login with it in the Hello Smart app to make the widget work. Did you notice the same thing with a dedicated API user? needing to logon with hello smart if you haven't used it in too long.



    Next step: I will change the image for each car to be able to recognise them. 2 are blacks, and I will mirror one to make it the UK one

    IMG_1835 2.jpg

    Also, with the address format in France, number would come first. but I'm not bothered by it.