* feat: endpoints by env
* fix: typo
* fix: useless env
* fix: format
* fix: distinct auth domain and url
* format
* fix: force issuer url if needed
* feat: new streaming based on vin
* fix refresh
* revert
* up
* feat: no need for access token / refresh token if the TOKEN env var is present
* feat: update login if token env var exists
* feat: add ENV var to allow insecure wss
* fix: remove TESLA_CN
* fix(naming): TESLA_API_URL to TESLA_API_DOMAIN
* feat: add an env var to allo invalid certs on WSS
* doc: add API domains env vars description
* fix: typo
* feat: add env var to change log level
* fix: APP_LOG_LEVEL
* feat: add TOKEN documention and wording
* fix: refacto insecure param
* feat: naming and doc
* fix: missing env var usage
---------
Co-authored-by: Julien <julien@citio.digital>
This refactors the existing code to make it more maintainable.
Nil values are published as "nil" string. This ensures that they will
get published, and ensures that MQTT doesn't drop the retained data.
Fixes#3748
* Add URL_PATH environment variable for reverse proxy deployments
For example, this can be used to run TeslaMate behind a reverse proxy, using a
URL path such as "/teslamate".
* gettext: update pot and po files
Generated using:
mix gettext.extract --merge
* web: run mix format
* gettext: update pot and po files
Re-generating gettext files after running mix format.
Generated using:
mix gettext.extract --merge
This will add support for nix flakes. Which really helps with my
development on nixos. This has two basic parts:
1. DEVELOPMENT
After this you can use the following commands on computer with nix and a
patched version of direnv:
direnv allow
devenv up
And it will automatically start and instance of postgresql and mosquitto
for development.
And the environment variables are already configured for teslamate.
So then can start teslamate with:
npm install --prefix ./assets && npm run deploy --prefix ./assets
iex -S mix phx.server
This part is all working as designed. And pretty simple and straight
forward.
2. NIX PACKAGE OF TESLA
This is 99% complete, but some pain points I haven't addressed yet.
Because I don't yet know of good solutions.
* There are two checksums in flake.nix that needs to be updated whenever
mix.lock or package-lock.json changes.
* Upgrade to phoenix 1.7.0
The minimal changes necessary to compile the application
* Import Phoenix.Component instead of LiveView
* Fix compilation warnings
* mix format
* Update tests to trim newline characters
* mix gettext.extract --merge
* style: correct linting
* rebuild gettext
* fix: correct spacing before unit for energy added
* fix: use unicode character for whitespace
* fix: spacing with witespace
* fix: use numeric value for charge_energy_added in charging test
* fix: avoid warning about unsued function, which is actually used in plug
* fix: use whitespace in test before charge_energy_added
---------
Co-authored-by: JakobLichterfeld <jakob-lichterfeld@gmx.de>
* fix: use product api endpoint to fetch vehicles
* feat: add handle_response function in Vehicle module to filter for only vehicles in products api endpoint
* style: correct linting
* Added expected finish charging localtime to teslamate site
* format text
* fixing indentation
* fixing indentation
* format text
* Remove UTC timezone and use the local timezone
* Fix an issue when car is could enter sleep mode while dog mode is enabled.
* Update pot files
* revert change
* Fix tests
* Fix tests and issue when try to sleep was not showing
* Fix lint issue
some tools, e.g. Garmin Basecamp, expect a proper namespace
definition in the xml root element and are more sensitive to
xml schema violations.
Track point elevation is specified to be an element of type
xsd:decimal in the gpx schema. But Teslamate renders an
empty element <ele></ele> when no elevation data is present.
This fix does not render an <ele> element when no elevation
is present
Also the gpx schema requires a "creator" attribute on the
gpx root element.
This is required because the default value is "" which tells the mqtt
server to delete the retained value.
This in turn means that applications that care about when the car is in
a unknown location will not get the retained value.
This is a bit different from all of the other values in
`@always_published`. For them "" is only published if the value is
unknown or an error occurred. So it makes sense to delete the retained
value.
In this case however, a value of "" generally means "the car is outside
any known geofence" which is a valid condition it itself, and it should
be retained.
There was speculation this might affect the shift_state, but
unfortunately this was not followed up with any evidence or details. #1912
There are any number of solutions that could be deployed here. The
advantage of this solution however is it is not going to break anything
unless you specifically define the TESLAMATE_DEFAULT_GEOFENCE variable.
Fixes: #1336
Store API tokens encrypted in the database.
During the database migration a randomly generated key will be used encrypt the tokens if no ENCRYPTION_KEY environment variable was provided.
If the application is started without the presence of an ENCRYPTION_KEY (or if the key failed to decrypt the existing tokens), the UI will display a warning with further instructions.
* Update summary.html.heex
Create a link on the summary page to link to Not a Tesla App release notes page per discussion request #2367
Full disclosure - not proficient in Elixir, but understand HTML and capable of digging through other code and comparing. Just not sure how the `@summary.version` is going to be treated in the link text.
* Fix string interpolation
* Update tests
Co-authored-by: Adrian Kumpf <8999358+adriankumpf@users.noreply.github.com>