fix(mqtt): FR-017 – Discovery-Sensor Maschinenlaufzeit hinzugefuegt (v1.6.1)
This commit is contained in:
parent
7a09b4ac94
commit
1524a2a585
|
|
@ -23,6 +23,15 @@ Status: `[ ]` = offen · `[x]` = erledigt
|
|||
|
||||
## Erledigt
|
||||
|
||||
### Version 1.6.1
|
||||
|
||||
- [x] **FR-017** Bug: Maschinenlaufzeit ist in HA nicht verfügbar (MQTT Discovery Sensor fehlt) ✅
|
||||
- **Symptom**: Home Assistant zeigte die Maschinenlaufzeit (Gesamtbetriebszeit) nicht als eigenständigen Sensor an.
|
||||
- **Ursache**: In `publishDiscovery()` fehlte ein dedizierter numerischer Discovery-Sensor für `total_minutes`. Der bestehende Sensor #4 "Gesamtzeit" formatiert den Wert als hh:mm-String (kein numerischer HA-Sensor, keine Langzeitstatistik möglich).
|
||||
- **Fix**: Neuer Discovery-Sensor #6 "Maschinenlaufzeit" hinzugefügt: `value_template: {{ value_json.total_minutes }}`, `unit_of_measurement: min`, `state_class: total_increasing` → HA kann Statistiken und Diagramme erstellen. Anzahl publizierter Entities von 8 auf 9 erhöht.
|
||||
- **Betroffene Dateien**: `src/mqtt_client.cpp`
|
||||
- Commit: `f6dfdeb`
|
||||
|
||||
|
||||
### Version 1.6.0
|
||||
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ Ab **v1.5.0** meldet sich der ESP32 automatisch als vollständiges HA-Device an,
|
|||
|
||||
### Funktionsweise
|
||||
|
||||
Nach jedem (Re-)Connect publiziert der Client 8 retained JSON-Nachrichten an
|
||||
Nach jedem (Re-)Connect publiziert der Client 9 retained JSON-Nachrichten an
|
||||
`homeassistant/<typ>/lasercutter-display/<entity>/config`.
|
||||
Home Assistant erkennt das Device daraufhin automatisch und zeigt alle Entities gruppiert an.
|
||||
|
||||
|
|
@ -349,6 +349,7 @@ Home Assistant erkennt das Device daraufhin automatisch und zeigt alle Entities
|
|||
| `sensor` | Laserzeit Summe | `session_minutes_sum` (min) |
|
||||
| `sensor` | Laserzeit aktuell (s) | `session_seconds` (s) |
|
||||
| `sensor` | Gesamtlaufzeit | `total_minutes` → Jinja2 `hh:mm` |
|
||||
| `sensor` | Maschinenlaufzeit | `total_minutes` (min, `state_class: total_increasing`) |
|
||||
| `sensor` | Firmware | `firmware_version` (Diagnose) |
|
||||
| `switch` | Display | `display_on` → `ON`/`OFF` |
|
||||
| `button` | Session zurücksetzen | → `lasercutter/cmd` `{"reset_session_ram":true}` |
|
||||
|
|
|
|||
|
|
@ -298,7 +298,21 @@ void MqttClient::publishDiscovery() {
|
|||
_client->publish(t, p, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
|
||||
// ---- 6. switch – Display -----------------------------------------------
|
||||
// ---- 6. sensor – Maschinenlaufzeit (Gesamtbetriebszeit, numerisch) -----
|
||||
snprintf(t, sizeof(t), "%s/sensor/lasercutter-display/machine_runtime/config",
|
||||
MQTT_DISCOVERY_PREFIX);
|
||||
snprintf(p, sizeof(p),
|
||||
"{\"name\":\"Maschinenlaufzeit\","
|
||||
"\"unique_id\":\"lc_machine_runtime\","
|
||||
"\"state_topic\":\"" MQTT_TOPIC_STATUS "\","
|
||||
"\"value_template\":\"{{ value_json.total_minutes }}\","
|
||||
"\"unit_of_measurement\":\"min\","
|
||||
"\"state_class\":\"total_increasing\","
|
||||
"\"icon\":\"mdi:clock-time-eight\",%s,%s}", av, dev);
|
||||
_client->publish(t, p, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
|
||||
// ---- 7. switch – Display -----------------------------------------------
|
||||
// payload_on/off: das sind die MQTT-Payloads die HA bei Toggle sendet
|
||||
snprintf(t, sizeof(t), "%s/switch/lasercutter-display/display/config",
|
||||
MQTT_DISCOVERY_PREFIX);
|
||||
|
|
@ -316,7 +330,7 @@ void MqttClient::publishDiscovery() {
|
|||
_client->publish(t, p, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
|
||||
// ---- 7. button – Session zurücksetzen ----------------------------------
|
||||
// ---- 8. button – Session zurücksetzen ----------------------------------
|
||||
snprintf(t, sizeof(t), "%s/button/lasercutter-display/reset_session/config",
|
||||
MQTT_DISCOVERY_PREFIX);
|
||||
snprintf(p, sizeof(p),
|
||||
|
|
@ -329,7 +343,7 @@ void MqttClient::publishDiscovery() {
|
|||
_client->publish(t, p, true);
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
|
||||
// ---- 8. button – Neustart ----------------------------------------------
|
||||
// ---- 9. button – Neustart ----------------------------------------------
|
||||
snprintf(t, sizeof(t), "%s/button/lasercutter-display/reboot/config",
|
||||
MQTT_DISCOVERY_PREFIX);
|
||||
snprintf(p, sizeof(p),
|
||||
|
|
@ -341,7 +355,7 @@ void MqttClient::publishDiscovery() {
|
|||
"\"icon\":\"mdi:restart\",%s,%s}", av, dev);
|
||||
_client->publish(t, p, true);
|
||||
|
||||
LOG_I("MQTT", "HA Discovery: 8 Entities publiziert (retained)");
|
||||
LOG_I("MQTT", "HA Discovery: 9 Entities publiziert (retained)");
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user