Teslamate - tutorial

Tak jak obiecałem dawno temu, wreszcie umieszczam :)

Instalację, którą tutaj opisałem wykonujecie na własną odpowiedzialność, dopiero po napisaniu tej instrukcji zdałem sobie sprawę, że jednak jest to trochę roboty, jeśli nie czujecie się na siłach to polecam poprosić jakiegoś zaprzyjaźnionego informatyka ;).
Raczej nic nie można uszkodzić ale nigdy nie wiadomo :). Według mnie wymagane do instalacji są przede wszystkim dobre chęci i obycie z komputerem, doświadczenie z linuxem bądź odgrzebanie wspomnień o MS-DOS również może się przydać.

1) Zakup odpowiedniego sprzętu

Aby móc używać Teslamate wymagany jest oodpowiedni hardware, w tym przypadku możemy wykorzystać np. stary laptop, lub zakupić Raspberry Pi koniecznie w wersji co najmniej 3B+, 4 (z dowolną ilościa pamięci), linki do aukcji:​
To tylko przykładowa aukcja, dziś zobaczyłem co się dzieje na rynku i widzę, że ceny skoczyły prawie o 100% więc jeśli znajdziecie taki sprzęt taniej to jak najbardziej polecam zakup. Ważnym jest aby dokupić zasilacz z odpowiednimi parametrami (certyfikat RoHS powinien wystarczyć) oraz kartę micro SD minimum 32GB.​
Istnieje również możliwość zainstalowania Teslamate w Dokerze w chmurze np. Google Cloud Platform, dla chętnych odsyłam tutaj (wersja Angielska: https://www.teslaev.co.uk/how-to-setup-and-run-teslamate-for-free-on-google-cloud/ ).​
Nie stosowałem takiego rozwiązania i nie speclajnie polecam bo oddajemy nasze dane firmie zewnętrznej tracąc wygodę korzystania z aplikacji firmy zewnętrznej.​
Nie będę również opisywał rozwiązania gdzie używamy starego laptopa ponieważ należy pamiętać, że teslamate musi być cały czas włączone i podpięte do internetu a stary laptop zżera troszkę więcej prądu niż RaspberryPi.​
Dla chętnych mogę powiedzieć, że jedyną różnicą będzie potrzeba instalacji jakiegoś systemu operacyjnego np. Ubuntu wraz z Dockerem, komendy niczym się nie różnią więc jak najbardziej możecie je wykorzystać.​
Do instalacji będzie nam potrzebny komputer stacjonarny/laptop bądź MAC z wejściem na kartę microSD lub SD - wtedy potrzebujemy adaptera.​


2) Instalacja Rasbpiana na karcie MicroSD:

a) Ściągamy i instalujemy program RaspberryPI Imager ze strony tutaj: https://www.raspberrypi.com/software/
b) Wkładamy kartę SD do komputera​
c) Uruchamiamy program RaspberryPi Imager​
d) Wybieramy opcję "Choose OS" następnie wybieramy opcję "Raspberry PI OS (Other)" i "RasberryPI OS Lite"

Zrzut ekranu 2022-01-27 231630.jpg

e) Wybieramy opcję "Choose SD Card" i z listy wybieramy nasza kartę SD​
f) Klikamy Write i czekamy aż system się zapisze​
g) Po całej procedurze wyciągamy i wkładamy kartę ponownie, w tym momencie w naszym systemie powinny pojawić się dwie partycje jedna opisana jak Boot (Drugiej pod żadnym pozorem nie ruszamy), wchodzimy w partycję Boot​
h) Musimy utworzyć dwa pliki tekstowe, bardzo ważne abyśmy w nazwach usunęli rozszerzenie .txt :​

Zrzut ekranu 2022-01-27 232144.jpg

  • pierwszy pusty nazwany "ssh" pozwoli nam na późniejszy dostęp do konsoli naszego małego komputerka
  • drugi nazwany "wpa_supplicant.conf" jeśli będziemy podpinać komputerek do naszej sieci WiFi, chociaż polecam podpiąć do routera po kablu.
  • plik "wpa_supplicant.conf" edytujemy np. w notatniku i dodajemy do niego następującą treść (zmieniając odpowiednio HASLO_DO_WIFI i NAZWA_SIECI_WIFI):
Code:
                  country=PL
                  ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
                  update_config=1

                  network={
                        ssid="NAZWA_SIECI_WIFI"
                        scan_ssid=1
                        psk="HASLO_DO_WIFI"
                        key_mgmt=WPA-PSK
                  }
i) nasz system jest gotowy teraz wyciągamy kartę z czytnika i wkładamy bezpośrednio do RaspberryPI (wyłączonego)​

2) Uruchomienie RaspberryPi i odnalezienie go w sieci

a) uruchamiamy nasze raspberryPi podłączone po kablu do router bądź ze skonfigurowanym Wifi jak powyżej. Teraz najważniejszą cześcią jest uzyskanie zdalnego dostępu do maszynki, aby to zrobić potrzebujemy:​
1) domeny do jakiej mamy się podłączyć​
2) narzędzia do połączeń przez SSH​
b) Raspberry pi jeśli jest jedno w sieci powinno być dostępne pod domeną raspberrypi.local, jeśli mamy jakieś inne w sieci to wtedy raspberrypi-[numer_raspberry].local. Zakładam, że nie mamy i używamy adresu "raspberrypi.local"​
c) W przypadku różnych systemów operacyjnych potrzebne są nam różne narzędzia do połączenia przez ssh​
  • Windows 10: uruchamiamy Powershell, uruchamiając przycisk start i zaczynając wpisywac Powershell, następnie wpisujemy w konsoli:

Zrzut ekranu 2022-01-27 234434.jpg

Code:
ssh raspberrypi.local -l pi
  • MacOS X: uruchamiamy Terminal i wpisujemy:
Code:

Zrzut ekranu 2022-01-27 234357.jpg

d) Możliwe, że pojawią się ostrzeżenia odnośnie Host key, w terminalach na windows 10 i Mac wpisujemy yes w przypadku Putty klikamy Yes. W puty zostaniemy poproszeni o login (pi) oraz we wszystkich przypadkach o hasło, wpisujemy domyślne: "raspberry".​
e) Powinniśmy uzyskać dostęp do terminala naszego komputerka a linia w której wpisujemy dane powinna zmienić się na coś podobnego:​

Zrzut ekranu 2022-01-28 000017.jpg

3) Instalacja Dockera i Teslamate

Teraz już powinno pójść z górki, KAŻDA NOWA LINIA TO NOWA KOMENDA DO WPISANIA W TERMINALU, niektóre chwilę trwają:​
a) zmieniamy hasło dla bezpieczeństwa (nie przejmujcie się, że kursor stoi w miejscu), zostaniemy poproszeni o nie dwukrotnie:​
Code:
passwd
b) Aktualizujemy nasz system​
Code:
 sudo apt-get update
sudo apt-get -y upgrade

c) Instalujemy Dockera:
Code:
curl -sSL https://get.docker.com | sh
usermod -aG docker pi
sudo apt-get install -y libffi-dev libssl-dev
sudo apt-get install -y python3 python3-pip
sudo apt-get remove python-configparser
sudo pip3 install docker-compose
d) instalujemy specjalny patch który pozwoli uruchomić najnowszą wersję teslamate:​
Code:
 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
 echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
sudo apt install libseccomp2 -t buster-backports
e) instalujemy Teslamate, w tym celu należy uruchomić bardzo prosty edytor teksu nano:​
Code:
  nano docker-compose.yml
f) wklejamy treść dostępną pod tym linkiem w czarnej ramce o nazwie docker-compose.yml: https://docs.teslamate.org/docs/installation/docker/
g) zapisujemy naciskając Ctrl+O , Enter i wychodzimy Ctrl+X​
h) I wreszcie uruchamiamy ostatnią komendę:​
Code:
 docker-compose up -d
i) Chwilę to potrwa i jesli wszystko pójdzie ok to pod dwoma adresami: http://raspberrypi.local:4000 i http://raspberrypi.local:3000 powinniśmy mieć dostępne teslamate oraz grafanę. Teraz tylko zalogować się, w ustawieniach zmienić jednostki i cieszyć się z Teslamate :).​
j) opuszczamy konsolę:​
Code:
exit
k) zamykamy Powershell/termina/putty​

4) Późniejsze aktualizacje systemu i teslamate
a) Łączymy się do naszego komputerka tak jak to opisałem w punkcie 2.c​
b) uruchamiamy aktualizację systemu jak w punkcje 3.b​
c) aktualizujemy teslamate:​
Code:
docker-compose pull
 docker-compose up -d

5) Zadanie z gwiazdką czyli kopia zapasowa
Nauczony doświadczeniem posiadania 5 raspberryPi polecam raz na jakiś czas robić kopię zapasową karty w tym celu odłączamy RaspberryPi od prądu. Wyciągamy kartę, wkładamy ją do komputera i za pomocą odpowiednich narzedzi zrobić kopię karty: https://raspberryexpert.com/how-to-backup-raspberry-pi/
Nie będę już tego procesu opisywał ale polecam się zapoznać.
 
Last edited:

cooler

Pionier e-mobilności
Ja mam ustawione dla wszystkich kontenerów cpu usage unlimited i memory tez unlimited. Mam w qnapie intel xeon i 128gb ramu, najwięcej co widziałem to 45% ramu miałem zajęte, a cpu to tak max do 35%
Ja mam TeslaMate na RPI4 4GB i żadnych problemów, 800MB zajęte włącznie z X-ami i GUI. A tam są 4 core ARM, więc na 2 spokojnie pójdzie.
 

ypl

Pionier e-mobilności
Ile tych vm’ek? Na gcp 1g ram i działa ok.
Vmek jest 5 więc nie dużo, ale ten qnap służy mi głównie jako magazyn na zdjęcia i filmy z wyjazdów, jest świetna apka qumagie, która indeksuje po twarzach osób na zdjęciach, jest transkodowanie filmów w locie tylko GPU nvidii warto mieć, fajny interfejs webowy i apka na androida jest do przeglądania zdjęć, no i najważniejsze, że działa to ultra szybko przy aktualnie 18,5 terabajta zdjęć i filmów, aczkolwiek mam cache z dysków ssd, to napewno dużo też daje. Można przesunąć suwak na dowolny rok, miesiąc, dzień, i po sekundzie miniaturki się pojawiają, jak otwieram zdjęcie to też bez laga się pojawia w pełnej rozdzielczości. Filmy jak się otwiera to ze 2 albo 3 sekundy buforuje zanim zacznie odtwarzać.
 

ypl

Pionier e-mobilności
o kurka. To jakiś potwór. Pewnie że 20 dysków i kilka interfejsów.
Ja mam maleństwo T251/8GB jednak na Celeronie (tak samo ekonomiczny jak Arm). Na razie nie limitowałem, bo dopiero zbieram dane - ale i tak nie widzę dużego użycia.
Mój to ts h886
 

Dyzio

Zadomawiam się
Postawiłem docker razem homeassistant i teslamate , co ciekawe w nowej wersji wypalania systemu raspbery jest opcja od razu ustawić sobie użytkownika i hasło oraz dane sieci wifi bez .

Postawiłem na raspbery pi 3+

Zbiera wszystkie dane poza konsumpcją. Dopiero raz go ładowałem to ma znaczenie czy gdzieś indziej szukać błędu ?
 

daniel

Señor Meme Officer
Zbiera wszystkie dane poza konsumpcją. Dopiero raz go ładowałem to ma znaczenie czy gdzieś indziej szukać błędu ?
Raczej jeździć i obserwować. Z pustego i Salomon nie naleje. Masz to ładowanie zapisane w Charges?
 

Dyzio

Zadomawiam się
Raczej jeździć i obserwować. Z pustego i Salomon nie naleje. Masz to ładowanie zapisane w Charges?
Wczoraj się naprawiło :) Ciekawostka na przyszłość , muszą być wykonane 2 osobne ładowania aby zaczął liczyć konsumpcję , teraz już liczy wszystko
 

cwireq

Posiadacz elektryka
Postawiłem docker razem homeassistant i teslamate , co ciekawe w nowej wersji wypalania systemu raspbery jest opcja od razu ustawić sobie użytkownika i hasło oraz dane sieci wifi bez .

Postawiłem na raspbery pi 3+

Zbiera wszystkie dane poza konsumpcją. Dopiero raz go ładowałem to ma znaczenie czy gdzieś indziej szukać błędu ?
Jak dołożyć teslamate jak mam zainstalowanego i uruchomionego Home Assistanta. Ogólnie jestem nowy w temacie i dużo nauki przede mną.
 

Dyzio

Zadomawiam się
Jak dołożyć teslamate jak mam zainstalowanego i uruchomionego Home Assistanta. Ogólnie jestem nowy w temacie i dużo nauki przede mną.
Jeżeli masz na raspbery os na dockerze home assistant to logujesz się i robisz wedle początku instrukcji , jeżeli masz tylko home assistant bez zewnętrznego systemu na raspbery to musisz zrobić instalacje na nowo jak w tej instrukcji najpierw docker , potem teslamate a potem zapytaj najlepiej przez czat gpt jak doinstalować homeassistant i on poda Ci wszystkie komendy jakie masz wklepac przez terminal.
 

cwireq

Posiadacz elektryka
Jeżeli masz na raspbery os na dockerze home assistant to logujesz się i robisz wedle początku instrukcji , jeżeli masz tylko home assistant bez zewnętrznego systemu na raspbery to musisz zrobić instalacje na nowo jak w tej instrukcji najpierw docker , potem teslamate a potem zapytaj najlepiej przez czat gpt jak doinstalować homeassistant i on poda Ci wszystkie komendy jakie masz wklepac przez terminal.
Ok czyli równolegle będzie działać teslamate i HA? Bo widzę jeszcze jakąś opcje dodania teslamate wraz z grafana do Home Assistant jako dodatek. Tyle tylko że mi to nie działa.

Ale powalcze najpierw wspólnie z chatgpt - dzięki.
 

Dyzio

Zadomawiam się
Ok czyli równolegle będzie działać teslamate i HA? Bo widzę jeszcze jakąś opcje dodania teslamate wraz z grafana do Home Assistant jako dodatek. Tyle tylko że mi to nie działa.

Ale powalcze najpierw wspólnie z chatgpt - dzięki.
Chyba nie ma takiej opcji ,

1) wypalasz radpberyy os lite 64 bit i edytujesz ustawienia chyba ctrl + x gdzie możesz ustawić wifi login pi i hasło

2) tworzysz pusty plik SSL

3) łączysz się z Windowsa przez powershell z raspbery

4) wklepujesz linijki kodu jakie tam trzeba - zwróć uwagę na login czy jest taki jaki ustalales, będziesz też ręcznie wklepywsc hasła do bazy danych teslamate itd

5) czasem komenda może nie działać bo np jest docker-compose w instrukcji a działa docker compose bez myślnika

6)po wykonaniu czynności dockera , homeassistant i teslamate przez edytor tekstowy generujesz zapytanie o kod API do przeglądarki i potem to wklejasz w teslamate

7) wygrywasz kopie zapasową z homeassistant

8) teslapy musiałem instalować w wirtualnym środowisku : na końcu jak


10) najlepiej chat GPT i poprowadzi za rączkę i krok po kroku rozwiąże każdy problem

Aby zainstalować Home Assistant w Dockerze na Raspberry Pi, postępuj zgodnie z poniższymi krokami:


---

1. Upewnij się, że Docker działa poprawnie

Sprawdź, czy Docker jest poprawnie zainstalowany i działa:

docker --version
docker compose version

Jeśli Docker Compose nie jest jeszcze zainstalowany, zainstaluj go:

sudo apt-get install docker-compose-plugin


---

2. Utwórz katalog na dane Home Assistant

Home Assistant wymaga miejsca na przechowywanie danych (konfiguracji, logów itp.). Utwórz katalog:

mkdir -p ~/homeassistant


---

3. Pobierz obraz Home Assistant

Home Assistant ma obraz zoptymalizowany dla systemów ARM, takich jak Raspberry Pi. Możesz go uruchomić za pomocą Dockera.

Oto komenda do pobrania i uruchomienia kontenera:

docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Europe/Warsaw \
-v ~/homeassistant:/config \
--network=host \
ghcr.io/home-assistant/home-assistant:stable

--name homeassistant – nazwa kontenera.

--privileged – wymaga uprawnień, aby uzyskać dostęp do niektórych funkcji systemowych.

--restart=unless-stopped – automatyczny restart kontenera w razie restartu systemu.

-e TZ=Europe/Warsaw – ustawienie strefy czasowej.

-v ~/homeassistant:/config – ścieżka do katalogu na dane Home Assistant.

--network=host – tryb sieciowy hosta (Home Assistant wymaga dostępu do portów na urządzeniu).



---

4. Sprawdź, czy Home Assistant działa

Po uruchomieniu możesz uzyskać dostęp do Home Assistant w przeglądarce pod adresem:

http://<IP_Raspberry_Pi>:8123

Zamień <IP_Raspberry_Pi> na adres IP swojego Raspberry Pi. Na przykład:



---

5. Opcjonalne: Uruchamianie za pomocą Docker Compose

Jeśli chcesz zarządzać Home Assistant przy użyciu Docker Compose, utwórz plik docker-compose.yml:

nano ~/homeassistant/docker-compose.yml

Wklej następującą konfigurację:

version: "3.8"
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ./config:/config
environment:
- TZ=Europe/Warsaw
network_mode: host
restart: unless-stopped

Zapisz plik i uruchom kontener:

docker compose up -d


---

6. Zarządzanie Home Assistant

Aby zobaczyć logi:

docker logs -f homeassistant

Aby zatrzymać Home Assistant:

docker stop homeassistant

Aby usunąć Home Assistant:

docker rm -f homeassistant



---
To taki wykaz z chatgpt


Błąd, który otrzymałeś, wynika z mechanizmu ochrony wprowadzonego w niektórych dystrybucjach Linuksa (PEP 668), który uniemożliwia instalowanie pakietów Pythona w systemowej wersji Pythona bezpośrednio za pomocą pip. Można to obejść bez ryzyka uszkodzenia systemu, korzystając z wirtualnego środowiska lub instalując pakiet w systemie za pomocą --break-system-packages.

Oto, jak to rozwiązać:


---

1. Instalacja w wirtualnym środowisku (zalecana metoda)

Korzystanie z wirtualnego środowiska jest najbezpieczniejszym sposobem instalacji pakietów Pythona:

1. Zainstaluj narzędzia do tworzenia środowisk wirtualnych: Upewnij się, że masz zainstalowane wymagane pakiety:

sudo apt install python3-venv python3-pip


2. Utwórz nowe środowisko wirtualne:

python3 -m venv teslapy-env


3. Aktywuj środowisko wirtualne:

source teslapy-env/bin/activate


4. Zainstaluj teslapy w środowisku wirtualnym:

pip install teslapy


5. Uruchom skrypt w środowisku wirtualnym: Teraz możesz uruchomić swój skrypt:

python your_script.py


6. Dezaktywuj środowisko po zakończeniu pracy:

deactivate




---

2. Instalacja z wymuszeniem w systemowej wersji Pythona (alternatywa)

Jeśli wirtualne środowisko nie jest opcją, możesz zainstalować pakiet globalnie, wymuszając pip na instalację w systemowym Pythonie:

1. Wymuś instalację z flagą --break-system-packages:

pip install teslapy --break-system-packages


2. Sprawdź, czy teslapy zostało zainstalowane poprawnie:

pip show teslapy




---

3. Użycie apt do instalacji pakietu (jeśli dostępne w repozytorium)

Niektóre pakiety Pythona mogą być dostępne w systemowym menedżerze pakietów apt. Możesz sprawdzić, czy teslapy jest dostępne:

sudo apt search python3-teslapy

Jeśli pakiet istnieje, zainstaluj go za pomocą:

sudo apt install python3-teslapy


---

Podsumowanie

Metoda z wirtualnym środowiskiem (opcja 1) jest zalecana, ponieważ nie wpływa na systemowy Python i unika potencjalnych konfliktów w pakietach. Jeśli napotkasz jakiekolwiek problemy z instalacją lub uruchomieniem, daj znać! 😊
 
Top