Count sent messages at send time; implement first-contact greeting

- 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>
This commit is contained in:
claude
2026-07-22 19:28:26 +03:00
parent 3be19028b1
commit 9ae6bb09c4
7 changed files with 32 additions and 12 deletions

View File

@@ -103,7 +103,10 @@ will answer.
> select that agent here.
- **Reply to any sender** / **Allowed sender addresses** restrict who Assist
will answer.
- **Default recipient** address used by the `notify.reticulum` entity.
- **Default recipient** address the `notify.reticulum_send_message` entity
sends to (see Entities below).
- **Greeting** optional message sent automatically the first time each sender
contacts Home Assistant (once per sender, reset on restart). Blank = disabled.
- **Default delivery method** `direct`, `opportunistic`, or `propagated`.
- **Announce interval** periodic re-announce (seconds; `0` disables).
- **Propagation node** + **sync interval** optional store-and-forward node so
@@ -127,7 +130,7 @@ will answer.
| `binary_sensor.reticulum_connected` | Whether the TCP interface is online |
| `button.reticulum_announce` | Announce now |
| `button.reticulum_sync_propagation_node` | Pull queued messages now |
| `notify.reticulum_message` | Send a message to the default recipient |
| `notify.reticulum_send_message` | `notify` entity that sends an LXMF message to the **default recipient** set in options — use it in automations/scripts (`action: notify.send_message`) or the Developer Tools; for arbitrary addresses use the `reticulum.send_message` service |
The telemetry sensors read from the outbound interface. RX/TX bytes and bitrate
work for the TCP link. **RSSI, SNR and link quality only carry data when the