Skip to content

Latest commit

 

History

History
218 lines (161 loc) · 13.2 KB

README-uk.md

File metadata and controls

218 lines (161 loc) · 13.2 KB

Ecoflow MQTT to SvitloBot

GitHub release Docker Image Version Docker Pulls GitHub license GitHub last commit GitHub issues GitHub pull requests

Про проект

Цей проєкт інтегрує брокер MQTT від Ecoflow з API СвітлоБота для моніторингу та звітування про наявність або відсутність вхідної змінної напруги на пристрої Ecoflow.

Функції

  • Підключення до брокера MQTT від Ecoflow;
  • Підписка на теми MQTT для моніторингу параметрів вхідної змінної напруги;
  • Журналювання та звітування про зміни статусу вхідної змінної напруги через API СвітлоБота.

Вимоги

  • Пристрій Ecoflow: протестовано з Ecoflow DELTA Pro. Має працювати з іншими пристроями Ecoflow, які підтримують MQTT. (Будь ласка, зверніться до EcoFlow to Prometheus exporter).
  • Встановлений Node.js або Docker.
  • Пристрій Ecoflow (серійний номер) та ключ доступа з секретним ключом або облікові дані розробника з EcoFlow Developer Platform.
  • Зареєстрований канал SvitloBot та ключ каналу.

Встановлення

Встановлення Docker образу

docker pull petrovoronov/ecoflow-mqtt-to-svitlobot

Встановлення Node.js з вихідного коду

  1. Клонуйте репозиторій:

    git clone https://github.com/PetroVoronov/ecoflow-mqtt-to-svitlobot.git
    cd ecoflow-mqtt-to-svitlobot
  2. Встановіть залежності:

    npm install

Передача базових параметрів конфігурації

Базові параметри конфігурації, включно з обліковими даними Ecoflow і СвітлоБота, можуть передаватися як змінні середовища:

export ECOFLOW_USERNAME=your_ecoflow_username
export ECOFLOW_PASSWORD=your_ecoflow_password
export ECOFLOW_DEVICE_SN=your_ecoflow_device_sn
export SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key

або

export ECOFLOW_ACCESS_KEY=your_ecoflow_access_key
export ECOFLOW_SECRET_KEY=your_ecoflow_secret_key
export ECOFLOW_DEVICE_SN=your_ecoflow_device_sn
export SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key

або ви можете пропустити цей крок, і програма попросить вас ввести їх інтерактивно.

Після першого запуску ці параметри будуть збережені в каталозі config і будуть використовуватися для наступних запусків. Таким чином, вас попросять ввести параметри лише один раз (або ви повинні передати їх як змінні середовища лише під час першого запуску).

Важливе зауваження: якщо ви хочете змінити параметри, вам потрібно знову передати їх як змінні середовища в будь-який час.

Опції командного рядка

Програму можна налаштувати за допомогою таких параметрів командного рядка:

Опція Скорочення Опис Тип За замовчуванням Обов'язково
--api-url -a URL API Ecoflow Рядок https://api.ecoflow.com Ні
--svitlobot-update-interval -i Оновлювати статус SvitloBot кожні X секунд Число 60 Ні
--keep-alive -k Перевіряти, чи клієнт MQTT живий кожні Y інтервали оновлення Число 3 Ні
--log-ping Логувати статус "ping" API SvitloBot Булевий false Ні
--log-alive-status-interval -l Логувати статус живого клієнта MQTT кожні Z хвилин Число 0 Ні
--errors-count-max -e Максимальна кількість помилок для ping SvitloBot Число 5 Ні
--auth-via-access-key Використовувати ключ доступу для аутентифікації API Ecoflow Булевий false Ні
--auth-via-username-password Використовувати ім'я користувача та пароль для аутентифікації API Ecoflow Булевий false Ні
--test-only -t Запускати без надсилання повідомлень до API SvitloBot Булевий false Ні
--debug -d Рівень налагодження логування Булевий false Ні

Запуск програми

Node.js

Приклад з усіма можливими параметрами командного рядка:

node src/index.js -i 60 -k 3 -l 60 -d true

Docker

За замовчуванням програма запускається без додаткових параметрів командного рядка.

Через обмеження Docker-середовища програма не зможе інтерактивно запитувати відсутні параметри конфігурації. Саме тому необхідно виконати перший запуск у інтерактивному режимі, щоб надати відсутні параметри.

Об'єми Docker

Необхідно змонтувати каталог даних програми в контейнер:

  • /app/config - для даних програми, включаючи конфігурації. Обов'язково для монтування! Ви можете змонтувати будь-який локальний каталог на хост-системі або об'єм Docker.

Перше запускання Docker

Отже, перше запускання має виглядати як одне з наведеного нижче:

  • для роботи і встановлення всіх основних параметрів конфігурації в інтерактивному режимі, однак за додатковими параметрами командного рядка:

    docker run -it --name ecoflow-mqtt-to-svitlobot \
        -v /path/to/your/config:/app/config \
        petrovoronov/ecoflow-mqtt-to-svitlobot:latest\
        --svitlobot-update-interval 60 --keep-alive 3 --log-alive-status-interval 60
  • для роботи і встановлення основних параметрів конфігурації через змінні середовища для аутентифікації за ім'ям користувача та паролем:

    docker run -d --name ecoflow-mqtt-to-svitlobot \
        -v /path/to/your/config:/app/config \
        -e ECOFLOW_USERNAME=your_ecoflow_username \
        -e ECOFLOW_PASSWORD=your_ecoflow_password \
        -e ECOFLOW_DEVICE_SN=your_ecoflow_device_sn \
        -e SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key \
        petrovoronov/ecoflow-mqtt-to-svitlobot:latest
  • для роботи і встановлення основних параметрів конфігурації через змінні середовища для аутентифікації за ключем доступу:

    docker run -d --name ecoflow-mqtt-to-svitlobot \
        -v /path/to/your/config:/app/config \
        -e ECOFLOW_ACCESS_KEY=your_ecoflow_access_key \
        -e ECOFLOW_SECRET_KEY=your_ecoflow_secret_key \
        -e ECOFLOW_DEVICE_SN=your_ecoflow_device_sn \
        -e SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key \
        petrovoronov/ecoflow-mqtt-to-svitlobot:latest

Важлива примітка: вкажіть усі потрібні пізніше параметри командного рядка під час першого запуску!

Після першого запуску застосунок збереже параметри конфігурації та додаткову інформацію - будь ласка, зупиніть контейнер, натиснувши Ctrl+C, і запустіть його знову за допомогою команд із наступного розділу.

Наступні запуски Docker

Після першого запуску ви можете запускати застосунок із тими самими параметрами конфігурації, що й під час попереднього запуску, без додаткових параметрів командного рядка.

Щоб запустити застосунок, виконайте наступну команду:

docker start ecoflow-mqtt-to-svitlobot

Щоб зупинити застосунок, виконайте наступну команду:

docker stop ecoflow-mqtt-to-svitlobot

Docker Compose

Щоб запустити застосунок за допомогою Docker Compose, створіть файл docker-compose.yml з наступним вмістом:

  • для аутентифікації за ім'ям користувача та паролем:

    version: '3'
    services:
        ecoflow-mqtt-to-svitlobot:
            image: petrovoronov/ecoflow-mqtt-to-svitlobot:latest
            volumes:
                - /path/to/your/config:/app/config
            environment:
                - ECOFLOW_USERNAME=your_ecoflow_username
                - ECOFLOW_PASSWORD=your_ecoflow_password
                - ECOFLOW_DEVICE_SN=your_ecoflow_device_sn
                - SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key
            command: --svitlobot-update-interval 60 --keep-alive 3 --log-alive-status-interval 60
  • для аутентифікації за ключем доступу:

    version: '3'
    services:
        ecoflow-mqtt-to-svitlobot:
            image: petrovoronov/ecoflow-mqtt-to-svitlobot:latest
            volumes:
                - /path/to/your/config:/app/config
            environment:
                - ECOFLOW_ACCESS_KEY=your_ecoflow_access_key
                - ECOFLOW_SECRET_KEY=your_ecoflow_secret_key
                - ECOFLOW_DEVICE_SN=your_ecoflow_device_sn
                - SVITLOBOT_CHANNEL_KEY=your_svitlobot_channel_key
            command: --svitlobot-update-interval 60 --keep-alive 3 --log-alive-status-interval 60

Замініть /path/to/your/config на фактичний шлях на вашій системі, де ви хочете зберігати дані застосунку.

Потім виконайте наступну команду для запуску застосунку:

docker-compose up -d

Це запустить застосунок зі вказаними параметрами конфігурації.

Ліцензія

Цей проект ліцензовано за ліцензією MIT – див. файл LICENSE для деталей.