Vehicle

시놀로지 NAS에 Teslamate 설치하기

로볼키 2024. 12. 26. 00:30

안녕하세요. 

 

크리스마스 특집! 

시놀로지 NAS에 테슬라메이트를 설치했습니다.

 

몇 가지 난관이 있었으나... 꾸역꾸역 설치를 했구요.

 

참고 한 링크들은 다음과 같습니다.

 

https://docs.teslamate.org/docs/installation/docker (공식)

https://blog.koriel.kr/synology-nasro-teslamate-unyeonghago-jeongica-raipeu-manreb-jjiggi-gunggeugyi-teslamate-gaideu-feat-weonhwa-ibryeog-oebu-jeobsog-tokeun-seoljeong/

https://mariushosting.com/how-to-install-teslamate-on-your-synology-nas/

https://www.clien.net/service/board/lecture/14940245

https://github.com/adriankumpf/tesla_auth?tab=readme-ov-file

 

 

저는 DS220+ 를 쓰고 있고, 설치를 위해 했던 일은 다음과 같습니다.

 

1. Container Manager 설치

 

2. File Station 에서 폴더 생성하기

docker 에 teslamate 폴더 생성, 그 안에 5개 폴더 생성

 

 import, mosquito-data, mosquitto-conf, teslamate-db, teslamate-grafana-data 

 

 

3. Container Manager - 프로젝트 - 생성

 

여기서 원본: 에 업로드 말고 생성 있거든요, 생성으로 누르고 

https://docs.teslamate.org/docs/installation/docker#instructions 

 

Docker install | TeslaMate

This document provides the necessary steps for installation of TeslaMate on any system that runs Docker. For a walkthrough that provides the necessary steps for manual installation see Manual installation.

docs.teslamate.org

여기 나오는 내용을 붙여 넣고, 

# 붙어있는 부분을 수정해야합니다. 

 

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=secretkey #이 키를 이용해 암호화를 합니다. 키를 아무거나 바꿔주세요
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password # teslamate 기본 서비스에 사용될 비밀번호입니다. 바꿔줍니다.
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:17
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=password # postgres (데이터베이스) 에 사용될 비밀번호입니다. 바꿔줍니다.
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=password # grafana (뷰어) 에 사용될 비밀번호입니다. 바꿔줍니다.
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    # ports:
    #   - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:

 

빨간거 세개는 같은걸로 바꿔줘야 한다는 글을 봤는데 확실한지는 모르겠네요. 그냥 설정만 잘 해주면 되지 않나... 

아무튼 위 yml을 입력하고 다음을 누르면, 

Web Station이 필요하다고 뜹니다.(이미 설치되어 있으면 안 뜰 수도 있어요)

 

 

설치해주고...

 

잘 생성 되었다고 하는군요. 

뒤이어 Web Station에도 뭔가 생성버튼을 눌러주고요.

 

바로 안 떠서 다시 빌드하고, 웹 스테이션이 뜨는데 약간 시간이 걸린다고 하네요.

1~2분 기다리고, 

웹브라우저에서 시놀로지 주소:4000 포트로 접속을 하면, 

 

이렇게 액세스 토큰과 리프레시 토큰을 넣으라고 뜹니다.

 

 

4. 토큰 얻기 

 

이 두 개의 토큰은 아래 인증 프로그램으로 얻을 수 있는데요, 

 

https://github.com/adriankumpf/tesla_auth?tab=readme-ov-file

 

GitHub - adriankumpf/tesla_auth: Securely generate API tokens for third-party access to your Tesla.

Securely generate API tokens for third-party access to your Tesla. - adriankumpf/tesla_auth

github.com

 

제 3자가 만든 프로그램에 로그인을 하는게 조금 위험할 수는 있으나...

일단 teslamate 측에서 공식으로 안내하는 곳이고, 오픈소스이니... 

감수하고 다운받고 실행을 합니다.

 

저는 macOS 버전을 받았고요, tar.gz 압축을 풀면 tesla_auth 실행파일이 나옵니다.

./tesla_auth 했는데...

 

오. 맞지. 

위험성을 잘 감지하고 있습니다.

 

그러나 저는 알고 실행을 하려고 하는 상황이라, 시스템에서 막지 말라고 해야 하는데요, 

 

 

 

macOS에서는 extended attributes 라는 항목으로 권한 제어를 한다고 하고요,

그래서 이를 없애주는 xattr -d 라는 명령을 사용,

그 후 ./tesla_auth 해주면 실행이 됩니다.

 

https://stackoverflow.com/questions/57815025/running-an-executable-on-mac-without-giving-permissions-to-all-unidentified-deve

 

Running an executable on Mac without giving permissions to all Unidentified Developers

Mac does not allow users to run files from Unidentified Developer to save the users. But now if you know that it was built by your colleague then you can run it. One of the ways to do this would b...

stackoverflow.com

 

여기를 참고했어요.

 

 

그러면 창이 뜨고 테슬라 웹사이트에 로그인을 하도록 안내하고요. 

아이디 비밀번호 넣으면 아래와 같이 Access Token과 Refresh Token이 뜹니다.

 

 

 

5. 토큰값을 이용한 로그인

 

3의 마지막에서 봤던 Teslamate 웹사이트에 가서

4의 Access Token / Refresh Token 을 붙여넣어주고 로그인합니다.

 

 

 

그럼 이렇게 차량 위치와 현재 차량 상태를 볼 수 있습니다.

(기본적으로 테슬라 앱에서 볼 수 있는 내용들이지만 좀 더 상세하게 볼 수 있죠.)

 

 

 

설정창 대부분 건드릴 필요가 없고, 제 차는 LFP 배터리를 탑재한 모델이기에 LFP Battery만 추가로 켰습니다. 

 

대시보드에서 이런저런 항목을 볼 수 있는데요,

 

 

들어가면 grafana 로그인 창이 뜹니다.

아무리 아이디 비번을 넣어도 안돼서 찾아보니...

일단 기본 아이디 비밀번호

admin / admin

...

 

을 넣고 들어가면 비밀번호 재설정 페이지가 뜨며, admin 비밀번호를 변경한 후 grafana 에서 데이터를 볼 수 있습니다.

 

아마 여러 차량을 같이 볼 수 있는 상황을 가정했는지 VIN에 따라 차량별 데이터를 볼 수 있네요.

일단 현재는 teslamate 첫 설정이므로, 가운데 SOC (State of Charge, 배터리 현재 상태) 말고는 대부분 no data로 뜨는데요,

주행하면서 그리고 충전하면서 데이터가 쌓인다고 하니 재밌게 써볼 예정입니다. 

 

 

저는 그동안 메모장에 이런 식으로 배터리 %, 잔여 주행거리, 주행/충전 이력을 정리했습니다.

물론 마이클(차계부 앱)도 같이 쓰고요.

 

teslamate에 충전 기록도 설정 잘 하면 연동이 잘 된다고 하는데, 

점차 이것저것 해보면서 수동으로 기록할 일이 없으면 편하겠네요 :) 

 

 

시놀로지 나스는 옛날부터 쓰고 있었고, 테슬라메이트 얘기는 듣긴 했지만 그동안 설정을 안 했는데,

테슬라 구매 6개월만에 크리스마스 맞이 ㅋㅋ 테슬라메이트 설치기 마무리합니다. 

 

아 참고로 테슬라메이트는 시놀로지 뿐만 아니라 라즈베리파이나 일반 컴퓨터 등에도 설치 가능하다고 합니다.

다만 이런저런 세팅의 번거로움이 있을거에요... 

728x90