- messages_sent now increments when a message is queued (async_send_message), not only when a delivery proof returns. LXMessage's delivery callback only fires on a returned proof (LXMessage.py ~566), which many peers/methods never send, so the "Messages sent" sensor was stuck at 0 for messages that were actually delivered. The delivery callback now only emits the event. - Implement the previously-inert "greeting" option: send it automatically the first time each sender contacts HA (tracked per sender in RuntimeData). - Clarify the notify entity (rename to "Send message" / "Отправить сообщение") and document greeting + notify in strings/translations/README. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
166 lines
8.3 KiB
JSON
166 lines
8.3 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Подключение к Reticulum",
|
||
"description": "Home Assistant запустит экземпляр Reticulum и подключится к вашему стеку Reticulum по TCP (на соседней машине должен быть настроен TCPServerInterface).",
|
||
"data": {
|
||
"target_host": "Хост",
|
||
"target_port": "Порт",
|
||
"display_name": "Отображаемое имя",
|
||
"interface_name": "Название интерфейса"
|
||
},
|
||
"data_description": {
|
||
"target_host": "Имя хоста или IP-адрес машины с TCP-сервером Reticulum.",
|
||
"target_port": "TCP-порт TCPServerInterface Reticulum (по умолчанию 4242).",
|
||
"display_name": "Имя, анонсируемое другим узлам Reticulum для этого Home Assistant.",
|
||
"interface_name": "Метка соединения в конфигурации Reticulum."
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Не удалось подключиться к TCP-серверу Reticulum по указанному адресу и порту."
|
||
},
|
||
"abort": {
|
||
"already_configured": "Reticulum уже настроен.",
|
||
"single_instance_allowed": "Допускается только один экземпляр Reticulum."
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Параметры Reticulum",
|
||
"data": {
|
||
"enable_assist": "Направлять входящие сообщения в Assist",
|
||
"assist_agent": "Агент Assist (id сущности/агента, пусто = по умолчанию)",
|
||
"assist_language": "Язык Assist (пусто = язык системы)",
|
||
"allow_all_senders": "Отвечать любому отправителю",
|
||
"allowed_identities": "Разрешённые адреса отправителей",
|
||
"default_recipient": "Адрес получателя по умолчанию (для сущности notify)",
|
||
"greeting": "Приветствие при первом обращении",
|
||
"delivery_method": "Способ доставки по умолчанию",
|
||
"announce_interval": "Интервал анонсов",
|
||
"propagation_node": "Адрес узла ретрансляции (propagation node)",
|
||
"sync_interval": "Интервал синхронизации с узлом ретрансляции",
|
||
"loglevel": "Уровень логирования Reticulum (0-7)"
|
||
},
|
||
"data_description": {
|
||
"enable_assist": "Если включено, входящие сообщения LXMF обрабатываются агентом Assist, а ответ отправляется обратно через Reticulum.",
|
||
"allowed_identities": "По одному адресу в строке (или через запятую). Используется только если «Отвечать любому отправителю» выключено.",
|
||
"default_recipient": "16-байтовый hex-адрес LXMF, на который отправляет сущность notify.reticulum.",
|
||
"greeting": "Отправляется автоматически при первом сообщении от каждого отправителя (один раз на отправителя до перезапуска). Оставьте пустым, чтобы отключить.",
|
||
"announce_interval": "Как часто (в секундах) анонсировать наш адрес. 0 отключает периодические анонсы.",
|
||
"propagation_node": "Необязательный узел ретрансляции LXMF для доставки по принципу store-and-forward.",
|
||
"sync_interval": "Как часто (в секундах) забирать сообщения из очереди узла ретрансляции. 0 отключает."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"sensor": {
|
||
"lxmf_address": { "name": "Адрес LXMF" },
|
||
"messages_received": { "name": "Сообщений получено" },
|
||
"messages_sent": { "name": "Сообщений отправлено" },
|
||
"messages_failed": { "name": "Сообщений не доставлено" },
|
||
"peers": { "name": "Известные узлы" },
|
||
"last_message": { "name": "Последнее сообщение" },
|
||
"last_message_time": { "name": "Время последнего сообщения" },
|
||
"rx_bytes": { "name": "Принято" },
|
||
"tx_bytes": { "name": "Передано" },
|
||
"bitrate": { "name": "Битрейт" },
|
||
"rssi": { "name": "RSSI" },
|
||
"snr": { "name": "SNR" },
|
||
"link_quality": { "name": "Качество канала" }
|
||
},
|
||
"binary_sensor": {
|
||
"connected": { "name": "Подключено" }
|
||
},
|
||
"button": {
|
||
"announce": { "name": "Анонсировать" },
|
||
"sync": { "name": "Синхронизировать узел ретрансляции" }
|
||
},
|
||
"notify": {
|
||
"message": { "name": "Отправить сообщение" }
|
||
}
|
||
},
|
||
"selector": {
|
||
"delivery_method": {
|
||
"options": {
|
||
"direct": "Прямая (установить канал)",
|
||
"opportunistic": "Оппортунистическая (один пакет)",
|
||
"propagated": "Через ретрансляцию (store-and-forward)"
|
||
}
|
||
}
|
||
},
|
||
"device_automation": {
|
||
"trigger_type": {
|
||
"message_received": "Получено сообщение",
|
||
"message_delivered": "Сообщение доставлено",
|
||
"message_failed": "Сбой доставки сообщения",
|
||
"announce_received": "Получен анонс (услышан узел)"
|
||
}
|
||
},
|
||
"services": {
|
||
"send_message": {
|
||
"name": "Отправить сообщение",
|
||
"description": "Отправить сообщение LXMF узлу Reticulum.",
|
||
"fields": {
|
||
"destination": {
|
||
"name": "Получатель",
|
||
"description": "16-байтовый hex-хэш адреса LXMF получателя."
|
||
},
|
||
"content": {
|
||
"name": "Текст",
|
||
"description": "Тело сообщения."
|
||
},
|
||
"title": {
|
||
"name": "Заголовок",
|
||
"description": "Необязательный заголовок/тема сообщения."
|
||
},
|
||
"method": {
|
||
"name": "Способ",
|
||
"description": "Используемый способ доставки."
|
||
},
|
||
"fields": {
|
||
"name": "Поля",
|
||
"description": "Необязательный словарь расширенных полей LXMF."
|
||
}
|
||
}
|
||
},
|
||
"announce": {
|
||
"name": "Анонсировать",
|
||
"description": "Анонсировать адрес LXMF этого Home Assistant в сети."
|
||
},
|
||
"request_path": {
|
||
"name": "Запросить маршрут",
|
||
"description": "Запросить у сети маршрут до узла.",
|
||
"fields": {
|
||
"destination": {
|
||
"name": "Получатель",
|
||
"description": "Хэш адреса, до которого нужно найти маршрут."
|
||
}
|
||
}
|
||
},
|
||
"set_propagation_node": {
|
||
"name": "Задать узел ретрансляции",
|
||
"description": "Задать исходящий узел ретрансляции LXMF.",
|
||
"fields": {
|
||
"destination": {
|
||
"name": "Получатель",
|
||
"description": "Хэш адреса узла ретрансляции."
|
||
}
|
||
}
|
||
},
|
||
"sync_propagation": {
|
||
"name": "Синхронизировать узел ретрансляции",
|
||
"description": "Забрать сообщения из очереди настроенного узла ретрансляции.",
|
||
"fields": {
|
||
"max_messages": {
|
||
"name": "Макс. сообщений",
|
||
"description": "Максимальное число сообщений для получения."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|