@@ -227,29 +227,77 @@ export class MultiGeigerApp {
227227 hvWarning . classList . toggle ( 'hidden' , ! data . hv_error ) ;
228228 }
229229
230- const hasEnv = data . has_thp ;
230+ // Environment fields
231+ const temp = data . temperature ;
232+ const humidity = data . humidity ;
233+ const pressure = data . pressure ;
234+ const gas = data . gas ?? data . gas_resistance ;
235+ const hasTemp = temp !== undefined && temp !== null ;
236+ const hasHumidity = humidity !== undefined && humidity !== null ;
237+ const hasPressure = pressure !== undefined && pressure !== null ;
238+ const hasGas = gas !== undefined && gas !== null ;
239+ const hasEnv = hasTemp || hasHumidity || hasPressure || hasGas || data . has_thp ;
240+
231241 const envCard = qs ( 'envCard' ) ;
232242 if ( envCard ) {
233243 envCard . classList . toggle ( 'hidden' , ! hasEnv ) ;
234244 }
235245
236- if ( hasEnv ) {
237- this . updateText ( 'temperature' , clampDecimals ( Number ( data . temperature ) , 1 ) ) ;
238- this . updateText ( 'humidity' , clampDecimals ( Number ( data . humidity ) , 1 ) ) ;
239- this . updateText ( 'pressure' , clampDecimals ( Number ( data . pressure ) , 1 ) ) ;
246+ if ( hasTemp ) {
247+ this . updateText ( 'temperature' , clampDecimals ( Number ( temp ) , 1 ) ) ;
248+ qs ( 'temperature' ) ?. parentElement ?. classList . remove ( 'hidden' ) ;
249+ } else {
250+ qs ( 'temperature' ) ?. parentElement ?. classList . add ( 'hidden' ) ;
251+ }
252+
253+ if ( hasHumidity ) {
254+ this . updateText ( 'humidity' , clampDecimals ( Number ( humidity ) , 1 ) ) ;
255+ qs ( 'humidity' ) ?. parentElement ?. classList . remove ( 'hidden' ) ;
256+ } else {
257+ qs ( 'humidity' ) ?. parentElement ?. classList . add ( 'hidden' ) ;
258+ }
259+
260+ if ( hasPressure ) {
261+ this . updateText ( 'pressure' , clampDecimals ( Number ( pressure ) , 1 ) ) ;
262+ qs ( 'pressure' ) ?. parentElement ?. classList . remove ( 'hidden' ) ;
263+ } else {
264+ qs ( 'pressure' ) ?. parentElement ?. classList . add ( 'hidden' ) ;
240265 }
241266
242- if ( this . statusBadge ) {
243- this . statusBadge . textContent = 'Live' ;
267+ const gasItem = qs ( 'gasItem' ) ;
268+ if ( hasGas && gasItem ) {
269+ gasItem . classList . remove ( 'hidden' ) ;
270+ this . updateText ( 'gasValue' , clampDecimals ( Number ( gas ) , 0 ) ) ;
271+ } else if ( gasItem ) {
272+ gasItem . classList . add ( 'hidden' ) ;
244273 }
274+
275+ const sensorBadge = qs ( 'sensorBadge' ) ;
276+ if ( sensorBadge ) {
277+ const sensorName = this . resolveSensorName ( { hasGas, hasHumidity, hasPressure, hasTemp } ) ;
278+ if ( sensorName ) {
279+ sensorBadge . textContent = sensorName ;
280+ sensorBadge . classList . remove ( 'hidden' ) ;
281+ } else {
282+ sensorBadge . classList . add ( 'hidden' ) ;
283+ }
284+ }
285+
286+ }
287+
288+ resolveSensorName ( { hasGas, hasHumidity, hasPressure, hasTemp } ) {
289+ if ( hasGas ) return 'BME680' ;
290+ if ( hasHumidity && hasPressure && hasTemp ) return 'BME280' ;
291+ if ( hasPressure && hasTemp ) return 'BMP280' ;
292+ if ( hasTemp ) return 'Temp sensor' ;
293+ return null ;
245294 }
246295
247296 setConnectionState ( online ) {
248- const stateEl = qs ( 'connectionState ' ) ;
297+ const stateEl = qs ( 'statusText ' ) ;
249298 const dot = qs ( 'connectionDot' ) ;
250299 if ( stateEl ) {
251300 stateEl . textContent = online ? 'Online' : 'Offline' ;
252- stateEl . style . color = online ? 'var(--text)' : 'var(--muted)' ;
253301 }
254302 if ( dot ) {
255303 dot . classList . toggle ( 'online' , online ) ;
0 commit comments