Miner2MQTT
Доступ к вашему GPU майнеру через MQTT.
Изменения
1.0
- EXE файл для Windows
1.1
-
Управление вентиляторами видеокарт (Linux)
-
Упраление power limit видеокарт (требуется SU) (Linux)
Описание
Поддерживаемые ОС
- Linux
- Windows (не тестировалось)
Поддерживаемые майнеры
- T-Rex
Воможности:
- Публикация всей информации от майнера в MQTT
- Возможность выборочной публикации (
INCLUDE
иEXCLUDE
параметры вconfig.yaml
) - Обновление с указанным интервалом или по требованию (путем публикации
"ON"
вваш_топик/to_miner/refresh
)
Управление вентиляторами видеокарт
- Изменение скорости: публикация значения в процентах в топик
ваш_топик/to_miner/
, топик с текущими значениями в процентах/fan_speed ваш_топик/from_miner/
./fan_speed - Включение вентилятора: публикация значения
ON
в топикваш_топик/to_miner/
, топик с текущим состоянием/fan_state ваш_топик/from_miner/
./fan_state - Изменение режима auto/manual: публикация значения
auto
/manual
в топикваш_топик/to_miner/
, топик с текущим режимом/fan_mode ваш_топик/from_miner/
./fan_mode
Управление power limit видеокарт
- Изменение power limit: публикация значения в процентах в топик
ваш_топик/to_miner/
, топик с текущими значениями в процентах/power_limit ваш_топик/from_miner/
./power_limit - Для изменения power limit требуются права SU, необходимо либо вписать
SUDO_PASS
вconfig.yaml
либо запускатьm2m.py
с правами sudo.
Установка:
sudo apt install python3-setuptools
git clone https://github.com/bds89/miner2mqtt.git
cd miner2mqtt
sudo python3 setup.py install
gedit m2m/config.yaml #Редактируем config.yaml
Запуск:
python3 m2m/m2m.py
Обновление:
- Сохраните ваш config.yaml
cd miner2mqtt git pull origin
- Скопируйте ваш сохраненный
config.yaml
вminer2mqtt/m2m
Редактирование config.yaml:
MINER: Trex
#выбор GPU майнера, на данный моменр только T-rex
SUDO_PASS: pass
#пароль суперпользователя, для изменения power_limit
MQTT:
TOPIC: miner2mqtt/rig0
HOST: 192.168.0.120
USERNAME: user
PASS: pass
#Подключение к вашему MQTT
INTERVAL: 300
#интервал сбора и публикации информации в секундах
INCLUDE:
- active_pool
- gpus
EXCLUDE: {}
#фильтры по ключам из JSON словаря вашего майнера (поддерживаются только ключи первого уровня)
Примеры интеграции в Home Asistant:
Сборный сенсор GPU0
sensor:
- platform: mqtt
name: "GPU0"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "MH/s"
value_template: "{{ (value_json.gpus.0.hashrate_minute/1000000)|round(2) }}"
device_class: power
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
json_attributes_template: >
{ "name": "{{value_json.gpus.0.name}}",
"temperature": "{{value_json.gpus.0.temperature}}",
"fan_speed": "{{value_json.gpus.0.fan_speed}}",
"power": "{{value_json.gpus.0.power}}",
"efficiency": "{{value_json.gpus.0.efficiency}}" }
Отдельные сенсоры
sensor:
- platform: mqtt
name: "GPU0_hash"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "MH/s"
value_template: "{{ (value_json.gpus.0.hashrate_minute/1000000)|round(2) }}"
device_class: power
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
- platform: mqtt
name: "GPU0_name"
state_topic: "miner2mqtt/rig0"
value_template: "{{value_json.gpus.0.vendor|string + ' '|string + value_json.gpus.0.name|string}}"
json_attributes_topic: "miner2mqtt/rig0"
- platform: mqtt
name: "GPU0_temperature"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "°C"
value_template: "{{value_json.gpus.0.temperature}}"
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
- platform: mqtt
name: "GPU0_fan_speed"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "%"
value_template: "{{value_json.gpus.0.fan_speed}}"
device_class: power_factor
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
- platform: mqtt
name: "GPU0_power"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "kW/h"
value_template: "{{value_json.gpus.0.power}}"
device_class: power
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
- platform: mqtt
name: "GPU0_efficiency"
state_topic: "miner2mqtt/rig0"
unit_of_measurement: "kH/W"
value_template: "{{value_json.gpus.0.efficiency.split('kH/W')[0]|int}}"
device_class: power
expire_after: 660
json_attributes_topic: "miner2mqtt/rig0"
Кнопка обновить
switch:
- platform: mqtt
unique_id: m2m_refresh
name: "m2m_refresh"
state_topic: "miner2mqtt/rig0/to_miner/refresh"
command_topic: "miner2mqtt/rig0/to_miner/refresh"
payload_on: "ON"
payload_off: "OFF"
state_on: "ON"
state_off: "OFF"
Вентилятор
fan:
- platform: mqtt
name: "GPU0_fan"
state_topic: "miner2mqtt/rig0/from_miner/0/fan_state"
command_topic: "miner2mqtt/rig0/to_miner/0/fan_state"
percentage_state_topic: "miner2mqtt/rig0/from_miner/0/fan_speed"
percentage_command_topic: "miner2mqtt/rig0/to_miner/0/fan_speed"
preset_mode_state_topic: "miner2mqtt/rig0/from_miner/0/fan_mode"
preset_mode_command_topic: "miner2mqtt/rig0/to_miner/0/fan_mode"
preset_modes:
- "auto"
- "manual"
Power limit видеокарты (вариант light.)
light:
- platform: mqtt
name: "GPU0_power_limit"
state_topic: "miner2mqtt/rig0/from_miner/0/state"
command_topic: "miner2mqtt/rig0/to_miner/0/state"
icon: mdi:lightning-bolt-circle
brightness_scale: 240
max_mireds: 240
min_mireds: 100
brightness_state_topic: "miner2mqtt/rig0/from_miner/0/power_limit"
brightness_command_topic: "miner2mqtt/rig0/to_miner/0/power_limit"
Power limit видеокарты (вариант number.)
number:
- platform: mqtt
name: "GPU0_power_limit"
state_topic: "miner2mqtt/rig0/from_miner/0/power_limit"
command_topic: "miner2mqtt/rig0/to_miner/0/power_limit"
icon: mdi:lightning-bolt-circle
min: 100
max: 240
Планы
- Windows
- Управление майнером
- NBMiner