667 Commits

Author SHA1 Message Date
Wouter Hermans a3887390c1 feat: add optional dark mode feature (#5065)
* Add optional dark mode feature

This PR adds an optional dark mode to TeslaMate with three appearance options:
- Light (default): Always use light theme
- Follow System: Automatically match OS/browser dark mode preference
- Dark: Always use dark theme

Key features:
- Database-persisted theme preference in GlobalSettings
- Comprehensive dark mode styling for all UI components
- Monochrome map tiles in dark mode (Tesla-inspired aesthetic)
- Instant theme switching without page reload
- No flash of wrong theme on page load
- Defaults to light mode for existing users

Technical implementation:
- New theme_mode field in settings table (migration included)
- CSS custom properties for theme colors
- JavaScript theme detection and system preference monitoring
- LiveView hook for instant theme changes
- Inverted OSM map tiles with grayscale filter for dark mode

Maintains backward compatibility - existing installations will
default to light mode and users can opt-in to dark mode.

* Run treefmt to fix code formatting

* Extract translation strings for theme settings

* Add Dutch, French, and German translations for theme settings

- Dutch: Thema, Weergave, Licht, Donker, Volg systeem
- French: Thème, Apparence, Clair, Sombre, Suivre le système
- German: Design, Darstellung, Hell, Dunkel, Systemeinstellung folgen

* Address review feedback: default to system theme, add tests and documentation

* Fix white background showing at bottom in dark mode

* Make footer sticky at bottom of viewport

* Remove WARP.md from .gitignore

* Fix visibility of inverted light buttons in dark mode

Improved contrast for edit/delete buttons in Geo-Fences table
by adding proper dark mode styling for is-inverted is-light buttons.

Co-Authored-By: Warp <agent@warp.dev>

* Add icon color inheritance for inverted light buttons

Ensure edit (blue) and delete (red) button icons are colored properly.

Co-Authored-By: Warp <agent@warp.dev>

* CI: use master as default branch in reusable workflows

Fix paths-filter and PR triggers by replacing hardcoded 'main' with 'master'.

Co-Authored-By: Warp <agent@warp.dev>

* Revert CI branch changes per maintainer request

Restore 'main' references in reusable workflows. No CI changes in this PR.

Co-Authored-By: Warp <agent@warp.dev>

* Dark mode: hide empty table header background in car summary

Add .thead-transparent class to the summary table and override thead bg to match
card surface, avoiding the apparent 'divider' under the title in dark mode.

Co-Authored-By: Warp <agent@warp.dev>

* Dark mode: fix tabs hover/active styles for boxed tabs in Settings

Ensure hover doesn’t turn tabs white; use surface/surface-light colors and proper borders for .tabs.is-boxed.

Co-Authored-By: Warp <agent@warp.dev>

* Dark mode: override Bulma active navbar dropdown item background

Ensure .navbar-dropdown .navbar-item.is-active uses dark surface color instead of light-mode whitesmoke.

Co-Authored-By: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>
2026-01-22 11:20:50 +01:00
Matthias Wirtz 9dfc24b245 feat: use Logger instead of IO.puts in DB check (#5050)
* use Logger instead of IO.puts

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-12-01 10:52:15 +01:00
Matthias Wirtz 50423e3c82 feat: officially support postgres 18, add docs for volume mount change (#4890)
* officially support postgres 18, add docs for volume mount change

* docs: update changelog
2025-11-06 09:05:36 +01:00
jaypark0006 f31eab70d7 feat: support proxy for openstreet API (#4970)
* feat: support proxy for openstreet API

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>

* test: fix test

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>

* refactor: rename proxy name to nominatim_proxy

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>

* refactor: turning @pools into a function

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>

* docs: add NOMINATIM_PROXY for proxy OpenStreetMap api

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>

---------

Signed-off-by: jaypark0006 <163750793+jaypark0006@users.noreply.github.com>
2025-10-13 09:36:45 +02:00
Matthias Wirtz a3791ab2a3 anti join for short-circuit evaluation 2025-10-04 16:49:54 +02:00
Brian May 0179972653 sec: set tokens to private schema (#4968)
* fix: tokens to private schema

This change allows configuring grafana with a db user
that has restricted access rights to the database.

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-09-30 09:49:32 +02:00
JakobLichterfeld 9d94d7e8e8 feat(webview): update wording to View car location on Google Maps for clarity (#4875)
* feat(webview): update wording to View car location on Google Maps for clarity

* docs: update changelog

* test: update test according to new wording
2025-08-15 20:21:39 +02:00
Matthias Wirtz 261ff722e9 fix: set descent and ascent to 0 when out of bounds (> 32767 meters) (#4882)
* set descent and ascent to 0 when out of bounds (> 32767 meters)

* docs: add comments to clarify elevation gain and loss handling in migrations regarding smallint

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-08-15 18:30:14 +02:00
JakobLichterfeld b985ab2f45 ux: change Google Maps Button Link to icon to ensure a consistent UX (#4838)
* ux: change Google Maps Button Link to icon to ensure a consistent UX

* test: correct test for car location on Google Maps link

* docs: update changelog

* chore(i18n): update POT files

* docs: update changelog

* docs: update changelog
2025-07-21 13:56:33 +02:00
Matthias Wirtz 0eefeac20b feat: add total ascent & descent to the drive table, introduce slope-adjusted efficiency metric in drives dashboard (#4798)
* slope-adjusted efficiency

* docs: update changelog

* docs: include migration time in changelog

* docs: update changelog

* build: bump minor version

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-07-19 11:07:02 +02:00
jlestel c9e68ec433 feat: enhance HTTP limits for managing fleets with over 10 vehicles (#4607)
* feat: customize HTTP limits when a user manage more than 10 vehicles

* fix: syntax

* format code

* fix: miss commit

* revert

* doc: pool time in micro seconds

* style: linter findings

* docs: ordering of environment variables

* style: linter findings

* docs: update changelog

---------

Co-authored-by: Julien <julien@citio.digital>
Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-07-18 18:23:38 +02:00
Matthias Wirtz 8dd6e74360 feat(db-check): allow beta / rc PostgreSQL versions for testing (#4795) 2025-07-14 09:19:10 +02:00
Calvin Huang 97563e2175 feat(webview): add Google Maps link for car's current location (#4781)
* Add Google Maps link for car's current location

- Add Google Maps link in car summary view
- Link opens car's current location in new tab
- Follows existing external link patterns
- Uses consistent Bulma styling

Co-Authored-By: Calvin Huang <c@lvin.me>

* Fix HTML div structure in summary template

- Remove extra closing div that caused compilation error
- Properly nest card-content div structure

Co-Authored-By: Calvin Huang <c@lvin.me>

* Add test for Google Maps link in car summary view

- Test verifies link presence with correct coordinates
- Test validates href URL format and security attributes
- Test ensures proper CSS styling and link text
- Follows existing TeslaMate testing patterns with online_event() helper
- Uses Floki for HTML parsing and attribute verification

Co-Authored-By: Calvin Huang <c@lvin.me>

* style: linter findings

* Update POT files for translation

- Run mix gettext.extract --merge to update translation files
- Addresses PR comment feedback about updating pot files
- No new translatable strings added from Google Maps feature

Co-Authored-By: Calvin Huang <c@lvin.me>

* docs: update changelog

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-07-09 09:24:46 +02:00
allivshits 718ec1a4b1 feat(mqtt): always publish healthy status and disable retain to prevent stale healthy status via mqtt (#4817)
* Always publish and do not retain 'healthy' topic

* fix linter errors & explicitly cleanup retained messages for do_not_retain topics

* fix tests broken by change in healthy topic retantion strategy

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-07-08 18:46:17 +02:00
github-actions[bot] 3ba23da7a7 feat(nix): use nixos-25.05 and build(deps): update flake.lock (#4716)
* flake.lock: Update

Flake lock file updates:

• Updated input 'devenv':
    'github:cachix/devenv/6599a8c6d02c1d37fe5b7804f70a39c262298729?narHash=sha256-045veG11u/fdRjYI%2B9dc19/u/14j7UFitwKWisE11Iw%3D' (2025-04-18)
  → 'github:cachix/devenv/c7f2256ee4a4a4ee9cbf1e82a6e49b253c374995?narHash=sha256-tk2mRZAf8C5uOkMVJHemJ3ld09CYVp/z94/lHqsQ8ZA%3D' (2025-05-20)
• Updated input 'devenv/cachix':
    'github:cachix/cachix/a624d3eaf4b1d225f918de8543ed739f2f574203?narHash=sha256-D0gP8srrX0qj%2BwNYNPdtVJsQuFzIng3q43thnHXQ/es%3D' (2025-03-15)
  → 'github:cachix/cachix/8a60090640b96f9df95d1ab99e5763a586be1404?narHash=sha256-pb5aYkE8FOoa4n123slgHiOf1UbNSnKe5pEZC%2BxXD5g%3D' (2025-04-09)
• Updated input 'devenv/git-hooks':
    'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
  → 'github:cachix/git-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969?narHash=sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS%2BnoCWo%3D' (2025-05-06)
• Updated input 'devenv/nix':
    'github:domenkozar/nix/f3f44b2baaf6c4c6e179de8cbb1cc6db031083cd?narHash=sha256-E3j%2B3MoY8Y96mG1dUIiLFm2tZmNbRvSiyN7CrSKuAVg%3D' (2025-03-12)
  → 'github:domenkozar/nix/b455edf3505f1bf0172b39a735caef94687d0d9c?narHash=sha256-bYyjarS3qSNqxfgc89IoVz8cAFDkF9yPE63EJr%2Bh50s%3D' (2025-04-29)
• Updated input 'devenv/nixpkgs':
    'github:cachix/devenv-nixpkgs/7bd9e84d0452f6d2e63b6e6da29fe73fac951857?narHash=sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s%3D' (2024-12-06)
  → 'github:cachix/devenv-nixpkgs/c5208b594838ea8e6cca5997fbf784b7cca1ca90?narHash=sha256-zU2z0jlkJGWLhdNr/8AJSxqK8XD0IlQgHp3VZcP56Aw%3D' (2025-05-09)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/26d499fc9f1d567283d5d56fcf367edd815dba1d?narHash=sha256-FHlSkNqFmPxPJvy%2B6fNLaNeWnF1lZSgqVCl/eWaJRc4%3D' (2025-04-12)
  → 'github:NixOS/nixpkgs/2baa12ff69913392faf0ace833bc54bba297ea95?narHash=sha256-U4HaNZ1W26cbOVm0Eb5OdGSnfQVWQKbLSPrSSa78KC0%3D' (2025-05-21)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/8d404a69efe76146368885110f29a2ca3700bee6?narHash=sha256-aRmUh0AMwcbdjJHnytg1e5h5ECcaWtIFQa6d9gI85AI%3D' (2025-04-18)
  → 'github:numtide/treefmt-nix/020cb423808365fa3f10ff4cb8c0a25df35065a3?narHash=sha256-XgxghfND8TDypxsMTPU2GQdtBEsHTEc3qWE6RVEk8O0%3D' (2025-05-22)

* style: linter findings

* feat(nix): use nixos-25.05

* chore(nix): update treefmt-nix dependency

* feat(nix): use postgreSQL 17 in devenv

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-05-26 13:30:56 +02:00
Matthias Wirtz 54a4ee8b61 feat: check Postgres version on startup, require 16.7 / 17.3, update earthdistance extension (#4648)
* check postgres version on startup

* update earthdistance to 1.2

* detail postgres requirement

* align additional requirements

* 17 is available on nixpkgs now

* allow upcoming major as well but issue a warning

* style: linter findings

* ci: skip ghcr build for PRs from outside repo (#4660)

* ci: skip ghcr build for PRs from outside repo

* docs: update changelog

* ci: early exit if check paths triggers

* ci: improve ghcr check_if_pr_from_outside_repo logging

* feat:show tpms value to the low pressure tooltip in webview (#4654)

* Added the tpms value to the tooltip

* Update pot files

* mix format

* Revert "mix format"

This reverts commit bbfe5aaa9f.

* style: linter findings

* Update pot files

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
Co-authored-by: Nir Klinger <45952578+NirKli@users.noreply.github.com>
2025-04-15 10:53:38 +02:00
Nir Klinger 2837ebf7e3 feat:show tpms value to the low pressure tooltip in webview (#4654)
* Added the tpms value to the tooltip

* Update pot files

* mix format

* Revert "mix format"

This reverts commit bbfe5aaa9f.

* style: linter findings

* Update pot files

* docs: update changelog

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-04-15 10:29:32 +02:00
Jakob Lichterfeld 3762bbec5a feat: add conditions to enter Charging
Only goes to Charging when the car is plugged in (power < 0) and its not preconditioning or in dog mode.

changes from @micves from #3262
2025-01-07 08:06:22 +11:00
Jakob Lichterfeld 229ab1ecbe feat: cancel an ongoing suspended state/trying to sleep and go back to online
When power > 0.

power > 0 is when e.g. the climate is on which could be scheduled preconditioning or starting preheat from the app.

changes from @micves from #3262
2025-01-07 08:06:22 +11:00
Jakob Lichterfeld 1aa2d09984 feat: don't try to sleep if power > 0
power > 0 is when e.g. the climate is on which could be scheduled
preconditioning or starting preheat from the app.

This code will make sure it doesn't enter 'trying to sleep' (the internal state
suspended) when power > 0.

changes from @micves from #3262
2025-01-07 08:06:22 +11:00
Brian May e68893befc feat: improve logging messages (#4467)
changes from @micves from #3262

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2025-01-03 08:32:51 +01:00
Chris Wanja 4cf8acc521 feat: Update marketing name to recognize Model S LR+ (#4370)
Update marketing name to recognize Model S LR+
2024-11-12 16:56:12 +01:00
Matthias Wirtz dffbf3c1d0 perf: add ideal_battery_range_km as query condition (#4305)
* perf: add ideal_battery_range_km as query condition

* fix: add alias to select

* in case of min_id > 0 pass min_id to first query as well
2024-10-28 08:56:35 +01:00
JakobLichterfeld 2a922e321c feat: update to Phoenix HTML 4.1, bump dependencies (#4277)
* feat: update to Phenix HTML 4.1

* fix: updating to the new Gettext.Backend approach

* chore: update pot files ro locale version 45.0.0

* fix: downgrade cloack back to 1.1.2

* revert: merge of mix.lock

* fix: new syntax for field name generation for phx-feedback-for

* Revert "fix: new syntax for field name generation for phx-feedback-for"

This reverts commit 4d95e4f1c9.

* fix: downgrade floki back to 0.35.2

* Revert "fix: downgrade floki back to 0.35.2"

This reverts commit a4f0b6bf4b.

* fix: ensure floki nil is handled

* style: linter findings

* Revert "fix: ensure floki nil is handled"

* fix: new syntax for field name generation for phx-feedback-for

* debug: floki paramter error

* Revert "debug: floki paramter error"

This reverts commit 61920267ed.

* fix: Remove unnecessary code in settings_test.exs which breaks floki 0.36+
2024-10-27 08:17:49 +01:00
Matthias Wirtz 999e947464 tuple returned here (#4293) 2024-10-22 07:43:56 +02:00
Matthias Wirtz b582b0be8b limit positions to set elevation for to last 10 days (#4228) 2024-10-06 12:33:48 +02:00
jlestel c8fed077bb Fix 401 on direct Fleet API calls (#4095)
* 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

* fix: rebound variable issuer_url

* fix: compilation warning on the issuer_url variable

* fix: format code

* fix: issuer_url assignments

* feat: customize polling intervals

* typo

* update doc

* typo

* add online interval

* add POLLING_ONLINE_INTERVAL

* format

* add minimum interval

* Add minimum on fetch parameter

* typo

* format

* respect immediate fetch, add charging interval

* add log level

* Respect log_level

* format

* use LOG_LEVEL env var to facilitate debug

* revert on log_level

* format

* typo

* format again

* revert on default error intervals

* Add a note in MD about polling settings

* not let the user set intervals via env variables shorter than our defaults

* Fix 401 on direct Fleet API

* try to fix in prod context

* log test

* up

* up

* format

* revert on log

* Update refresh.ex

---------

Co-authored-by: Julien <julien@citio.digital>
2024-07-27 14:06:57 +02:00
JakobLichterfeld 1ee48c9547 feat: update breadcrumb links to use Phoenix path helpers (#4052)
* feat: update breadcrumb links to use Phoenix path helpers

fixes: #3905

* doc: update changelog
2024-07-07 11:19:34 +02:00
JakobLichterfeld 1e1ebffd3b style: fix single quoted string in car_live (#4049)
* style: fix single quoted string in car_live

* doc: update changelog
2024-07-06 16:22:08 +02:00
Martin Kolací 8192f12860 Add icon to summary when Sentry Mode is triggered and recording (#4043)
* Add icon to summary when Sentry Mode is triggered and recording

Signed-off-by: kolaCZek <mail@kolaczek.cz>

* Update pot files

* Update Chinese translation for "Sentry Mode recording"

---------

Signed-off-by: kolaCZek <mail@kolaczek.cz>
Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2024-07-06 15:44:31 +02:00
Martin Kolací 16e90899ca Update vehicle.ex with marketing name for Model Y SR (#4042)
Signed-off-by: kolaCZek <mail@kolaczek.cz>
2024-07-06 10:35:45 +02:00
Jakob Lichterfeld 00fdadcd06 feat: add LFP Battery setting for car settings (#4007) -> master 2024-07-05 19:11:12 +02:00
Atrox 21439f1a14 publish center_display_state to mqtt (#3813) 2024-07-05 16:55:03 +02:00
mark3-dev c90cde871d feat: Add ability to enable and disable data collection for cars (#3993)
* Add ability to enable and disable cars

* Add default value for enabled in car_settings.

* Fix unit tests.

* Fix formatting.

* Update text to be more descriptive

* Update lables.
2024-07-05 09:01:16 +02:00
Stefan Lange 272a99bf5f Update vehicle.ex with marketing name for Model Y Long Range RWD (#3989)
Add marketing name for Model Y LR RWD.
2024-07-03 15:58:44 +02:00
jlestel c8159cfc51 Customize intervals between vehicle_data calls (#3940)
* 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

* fix: rebound variable issuer_url

* fix: compilation warning on the issuer_url variable

* fix: format code

* fix: issuer_url assignments

* feat: customize polling intervals

* typo

* update doc

* typo

* add online interval

* add POLLING_ONLINE_INTERVAL

* format

* add minimum interval

* Add minimum on fetch parameter

* typo

* format

* respect immediate fetch, add charging interval

* add log level

* Respect log_level

* format

* use LOG_LEVEL env var to facilitate debug

* revert on log_level

* format

* typo

* format again

* revert on default error intervals

* Add a note in MD about polling settings

* not let the user set intervals via env variables shorter than our defaults

---------

Co-authored-by: Julien <julien@citio.digital>
2024-07-02 15:36:46 +02:00
jlestel 2c4639e32d feat: allow Fleet API users to change client_id (#3984)
Co-authored-by: Julien <julien@citio.digital>
2024-06-26 10:58:31 +02:00
Saswat Padhi 195433c319 Track open/close states for individual doors (#3962)
* feat: track open/close states for individual doors

* doc: add individual door open states
2024-06-19 10:28:19 +02:00
jlestel b900a98d08 feat: Respect Retry-After header on 429 response code (#3943)
* Respect 429 response code instructions

* format

* up

* up

---------

Co-authored-by: Julien <julien@citio.digital>
2024-06-07 10:10:35 +02:00
jlestel 4313409323 feat: Dynamic endpoints and token to use official Tesla API (self-hosted or from third party provider) (#3903)
* 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

* fix: rebound variable issuer_url

* fix: compilation warning on the issuer_url variable

* fix: format code

* fix: issuer_url assignments

---------

Co-authored-by: Julien <julien@citio.digital>
2024-05-27 11:03:23 +02:00
Wilfried Chauveau 0db778e06c feat: Update TeslaFi importer to accept newer export formats (#3431)
* Update TeslaFi importer to accept newer export formats

* Update documentation
2024-05-24 09:01:50 +02:00
Jakob Lichterfeld 10995a3ce5 Revert "Dynamic endpoints and token to use official Tesla API (self-hosted or from third party provider) (#3866)"
This reverts commit 263f207dc9.
2024-05-20 14:07:26 +02:00
jlestel 263f207dc9 Dynamic endpoints and token to use official Tesla API (self-hosted or from third party provider) (#3866)
* 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>
2024-05-20 13:11:13 +02:00
dyxyl 7a5625f09f fix: errors from Timex.Timezone.local() during switchover to DST. (#3848)
* Fix errors from Timex.Timezone.local() during switchover to DST.

* Update the gettext files to match.
2024-04-17 14:49:41 +02:00
Brian May c684252940 Publish extra active_route fields to mqtt output (#3789)
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
2024-04-05 17:29:00 +11:00
b1c1l1 97cfb79493 feat: Add URL_PATH environment variable for reverse proxy deployments (#3771)
* 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
2024-03-25 09:21:34 +01:00
Brian May 2b5cdbdffd Add nix flake (#3485)
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.
2024-03-19 09:37:17 +01:00
Brian May b5285d2ace Add location topic (lat and long in one json blob) (#3729)
* Add location topic

Fixes #3660.

* doc: update mqtt topics with new location topic

---------

Co-authored-by: Jakob Lichterfeld <jakob-lichterfeld@gmx.de>
2024-03-18 08:36:21 +01:00
Brian May cdd6298f55 Replace tortoise library with tortoise311 (#3697) 2024-03-16 11:55:04 +01:00
Michael Vestergaard 46b971070a Fix agressive switch to offline when stream gets offline message (#3672)
* Changed when stream reports offline to fetch data and let result decide the real state instead of switching directly to offline.

* Adjusted test
2024-03-16 11:52:55 +01:00