Add setting for enabling debug log

This commit is contained in:
Adrian Jagielak 2025-07-27 01:50:10 +02:00
parent 2a7f27a81f
commit aa9cb0f12a
No known key found for this signature in database
GPG Key ID: 0818CF7AF6C62BFB
17 changed files with 47 additions and 3 deletions

View File

@ -1,5 +1,9 @@
<!-- https://developers.home-assistant.io/docs/add-ons/presentation#keeping-a-changelog --> <!-- https://developers.home-assistant.io/docs/add-ons/presentation#keeping-a-changelog -->
## 0.1.7 (26.07.2025)
- Added setting for enabling debug log.
## 0.1.6 (26.07.2025) ## 0.1.6 (26.07.2025)
- Improved MQTT components interfaces. - Improved MQTT components interfaces.

View File

@ -1,6 +1,6 @@
# https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config # https://developers.home-assistant.io/docs/add-ons/configuration#add-on-config
name: Futurehome name: Futurehome
version: "0.1.6" version: "0.1.7"
slug: futurehome slug: futurehome
description: Local Futurehome Smarthub integration description: Local Futurehome Smarthub integration
url: "https://github.com/adrianjagielak/home-assistant-futurehome" url: "https://github.com/adrianjagielak/home-assistant-futurehome"
@ -20,11 +20,13 @@ options:
username: "" username: ""
password: "" password: ""
demo_mode: false demo_mode: false
show_debug_log: false
schema: schema:
hub_ip: "str?" hub_ip: "str?"
username: "str?" username: "str?"
password: "str?" password: "str?"
demo_mode: "bool?" demo_mode: "bool?"
show_debug_log: "bool?"
image: "ghcr.io/adrianjagielak/{arch}-home-assistant-futurehome" image: "ghcr.io/adrianjagielak/{arch}-home-assistant-futurehome"

View File

@ -9,6 +9,7 @@ export FH_HUB_IP=$(bashio::config 'hub_ip')
export FH_USERNAME=$(bashio::config 'username') export FH_USERNAME=$(bashio::config 'username')
export FH_PASSWORD=$(bashio::config 'password') export FH_PASSWORD=$(bashio::config 'password')
export DEMO_MODE=$(bashio::config 'demo_mode') export DEMO_MODE=$(bashio::config 'demo_mode')
export SHOW_DEBUG_LOG=$(bashio::config 'show_debug_log')
export MQTT_HOST=$(bashio::services mqtt "host") export MQTT_HOST=$(bashio::services mqtt "host")
export MQTT_PORT=$(bashio::services mqtt "port") export MQTT_PORT=$(bashio::services mqtt "port")

View File

@ -1,5 +1,5 @@
import { connectHub, connectHA, RetainedMessage } from './client'; import { connectHub, connectHA, RetainedMessage } from './client';
import { log } from './logger'; import { log, setupLogger } from './logger';
import { FimpResponse, sendFimpMsg, setFimp } from './fimp/fimp'; import { FimpResponse, sendFimpMsg, setFimp } from './fimp/fimp';
import { haCommandHandlers, setHa, setHaCommandHandlers } from './ha/globals'; import { haCommandHandlers, setHa, setHaCommandHandlers } from './ha/globals';
import { CommandHandlers, haPublishDevice } from './ha/publish_device'; import { CommandHandlers, haPublishDevice } from './ha/publish_device';
@ -13,12 +13,17 @@ import { delay } from './utils';
const hubUsername = process.env.FH_USERNAME || ''; const hubUsername = process.env.FH_USERNAME || '';
const hubPassword = process.env.FH_PASSWORD || ''; const hubPassword = process.env.FH_PASSWORD || '';
const demoMode = (process.env.DEMO_MODE || '').toLowerCase().includes('true'); const demoMode = (process.env.DEMO_MODE || '').toLowerCase().includes('true');
const showDebugLog = (process.env.SHOW_DEBUG_LOG || '')
.toLowerCase()
.includes('true');
const mqttHost = process.env.MQTT_HOST || ''; const mqttHost = process.env.MQTT_HOST || '';
const mqttPort = Number(process.env.MQTT_PORT || '1883'); const mqttPort = Number(process.env.MQTT_PORT || '1883');
const mqttUsername = process.env.MQTT_USER || ''; const mqttUsername = process.env.MQTT_USER || '';
const mqttPassword = process.env.MQTT_PWD || ''; const mqttPassword = process.env.MQTT_PWD || '';
setupLogger({ showDebugLog });
// 1) Connect to HA broker (for discovery + state + availability + commands) // 1) Connect to HA broker (for discovery + state + availability + commands)
log.info('Connecting to HA broker...'); log.info('Connecting to HA broker...');
const { ha, retainedMessages } = await connectHA({ const { ha, retainedMessages } = await connectHA({

View File

@ -4,13 +4,17 @@ function getTimestamp(): string {
return new Date().toISOString(); return new Date().toISOString();
} }
let shouldShowDebugLog = false;
function _log(level: LogLevel, ...args: unknown[]): void { function _log(level: LogLevel, ...args: unknown[]): void {
const timestamp = getTimestamp(); const timestamp = getTimestamp();
const prefix = `[${timestamp}] [${level.toUpperCase()}]`; const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
switch (level) { switch (level) {
case 'debug': case 'debug':
if (shouldShowDebugLog) {
console.debug(prefix, ...args); console.debug(prefix, ...args);
}
break; break;
case 'info': case 'info':
console.info(prefix, ...args); console.info(prefix, ...args);
@ -32,3 +36,7 @@ export const log = {
error: (...args: unknown[]) => _log('error', ...args), error: (...args: unknown[]) => _log('error', ...args),
fatal: (...args: unknown[]) => _log('fatal', ...args), fatal: (...args: unknown[]) => _log('fatal', ...args),
}; };
export function setupLogger({ showDebugLog }: { showDebugLog: boolean }): void {
shouldShowDebugLog = showDebugLog;
}

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demotilstand name: Demotilstand
description: Brug en optaget tilstand fra en ægte Futurehome Smarthub til at simulere enheder. description: Brug en optaget tilstand fra en ægte Futurehome Smarthub til at simulere enheder.
show_debug_log:
name: Vis fejllog

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demomodus name: Demomodus
description: Verwende einen aufgezeichneten Zustand von einem echten Futurehome Smarthub, um Geräte zu simulieren. description: Verwende einen aufgezeichneten Zustand von einem echten Futurehome Smarthub, um Geräte zu simulieren.
show_debug_log:
name: Debug-Log anzeigen

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demotilstand name: Demotilstand
description: Brug en optaget tilstand fra en ægte Futurehome Smarthub til at simulere enheder. description: Brug en optaget tilstand fra en ægte Futurehome Smarthub til at simulere enheder.
show_debug_log:
name: Vis fejllog

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demo Mode name: Demo Mode
description: Use a sample recorded state from a real Futurehome Smarthub to simulate devices. description: Use a sample recorded state from a real Futurehome Smarthub to simulate devices.
show_debug_log:
name: Show debug log

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demotila name: Demotila
description: Käytä tallennettua esimerkkitilaa oikeasta Futurehome Smarthubista laitteiden simuloimiseen. description: Käytä tallennettua esimerkkitilaa oikeasta Futurehome Smarthubista laitteiden simuloimiseen.
show_debug_log:
name: Näytä vianmääritysloki

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Sýnishamur name: Sýnishamur
description: Notaðu skráða stöðu úr raunverulegum Futurehome Smarthub til að líkja eftir tækjum. description: Notaðu skráða stöðu úr raunverulegum Futurehome Smarthub til að líkja eftir tækjum.
show_debug_log:
name: Sýna aflúsunarskrá

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demomodus name: Demomodus
description: Bruk et forhåndsopptatt eksempel fra en ekte Futurehome Smarthub for å simulere enheter. description: Bruk et forhåndsopptatt eksempel fra en ekte Futurehome Smarthub for å simulere enheter.
show_debug_log:
name: Vis feillogg

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demomodus name: Demomodus
description: Bruk eit førehandsopptak frå ein ekte Futurehome Smarthub for å simulere einingar. description: Bruk eit førehandsopptak frå ein ekte Futurehome Smarthub for å simulere einingar.
show_debug_log:
name: Vis feillogg

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demomodus name: Demomodus
description: Bruk et forhåndsopptatt eksempel fra en ekte Futurehome Smarthub for å simulere enheter. description: Bruk et forhåndsopptatt eksempel fra en ekte Futurehome Smarthub for å simulere enheter.
show_debug_log:
name: Vis feillogg

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Tryb demo name: Tryb demo
description: Użyj przykładowego zapisanego stanu z prawdziwego Futurehome Smarthub, aby symulować urządzenia. description: Użyj przykładowego zapisanego stanu z prawdziwego Futurehome Smarthub, aby symulować urządzenia.
show_debug_log:
name: Pokaż dziennik debugowania

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demoläge name: Demoläge
description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter. description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter.
show_debug_log:
name: Čájet divrrodagaslogu

View File

@ -11,3 +11,5 @@ configuration:
demo_mode: demo_mode:
name: Demoläge name: Demoläge
description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter. description: Använd ett inspelat exempel från en riktig Futurehome Smarthub för att simulera enheter.
show_debug_log:
name: Visa felsökningslogg