feat(environment): add 1-Wire multi-thermometer (DS18B20) display support

Add charting, detail card display, and CSV export for up to 8 1-Wire
temperature sensor channels from the environment_metrics.one_wire_temperature
repeated field.

- EnvironmentMetricsState: ONE_WIRE_TEMP_1..8 enum entries with getOrNull()
  access (safely returns null when firmware does not populate the field)
- EnvironmentCharts: LEGEND_DATA_4 with per-channel labels and distinct colours
- CommonCharts: LegendData.labelOverride for per-instance legend labels
- EnvironmentMetrics: OneWireTemperatureDisplay composable in the detail card
- EnvironmentMetrics component: inline 1-Wire chip display with temp formatting
- MetricsViewModel: Fahrenheit conversion for one_wire_temperature in CSV export

No version gating needed — the proto field defaults to an empty list on older
firmware, so the UI elements are naturally hidden when no data is reported.
This commit is contained in:
James Rich 2026-04-14 12:35:23 -05:00
parent 099aea2d81
commit e3a78f1afe
8 changed files with 160 additions and 7 deletions

View file

@ -748,6 +748,7 @@
<string name="rainfall_24h">Rain (24h)</string>
<string name="weight">Weight</string>
<string name="radiation">Radiation</string>
<string name="one_wire_temperature">1-Wire Temp</string>
<string name="store_forward_config"><![CDATA[Store & Forward Config]]></string>
<string name="indoor_air_quality_iaq">Indoor Air Quality (IAQ)</string>
<string name="url">URL</string>