Skip to content

Commit

Permalink
Logging
Browse files Browse the repository at this point in the history
  • Loading branch information
markxroberts authored Aug 18, 2024
1 parent ac80147 commit c1e8a30
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions src/lib/risco-mqtt-local.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ export function riscoMqttHomeAssistant(userConfig: RiscoMQTTConfig) {
level: config.log || 'info',
transports: [
new transports.Console(),
new transports.File({ filename: 'risco.log' })
],
});

Expand Down Expand Up @@ -376,6 +377,10 @@ export function riscoMqttHomeAssistant(userConfig: RiscoMQTTConfig) {
removeSocketListeners()
reconnecting = true;
}
} else if (topic === `${config.risco_mqtt_topic}/logging`) {
const logging = message.toString()
logger.info(`[RML] Message received via MQTT to change logging level to ${logging}`);
changeLoggingLevel(logging);
}
});

Expand Down Expand Up @@ -606,6 +611,12 @@ export function riscoMqttHomeAssistant(userConfig: RiscoMQTTConfig) {
logger.verbose(`[Panel => MQTT] Published system tamper state ${system.BoxTamper}`);
}

function changeLoggingLevel(logging) {
logger.configure({
level: logging,
})
}

function partitionStatus(partition: Partition) {
if (partition.Ready) {
return {
Expand Down Expand Up @@ -853,6 +864,28 @@ export function riscoMqttHomeAssistant(userConfig: RiscoMQTTConfig) {
logger.info(`[Panel => MQTT][Discovery] Published System message sensor, HA name = ${systemPayload.name}`);
logger.verbose(`[Panel => MQTT][Discovery] System message payload\n${JSON.stringify(systemPayload, null, 2)}`);

const loggingPayload = {
name: `Logging level`,
object_id: `${config.risco_mqtt_topic}-logging-level`,
state_topic: `${config.risco_mqtt_topic}/alarm/logginglevel`,
unique_id: `${config.risco_mqtt_topic}-logging-level`,
availability_mode: 'all',
availability: [
{topic: `${config.risco_mqtt_topic}/alarm/status`},
{topic: `${config.risco_mqtt_topic}/alarm/button_status`}],
options:
[info,verbose,debug,error],
command_topic: `${config.risco_mqtt_topic}/logging`,
entity_category: 'diagnostic',
device: getDeviceInfo(),
};

mqttClient.publish(`${config.ha_discovery_prefix_topic}/select/${config.risco_mqtt_topic}/logginglevel/config`, JSON.stringify(loggingPayload), {
qos: 1, retain: true,
});
logger.info(`[Panel => MQTT][Discovery] Published logging selector, HA name = ${loggingPayload.name}`);
logger.verbose(`[Panel => MQTT][Discovery] System logging payload\n${JSON.stringify(loggingPayload, null, 2)}`);

const systemBatteryPayload = {
name: `System battery`,
object_id: `${config.risco_mqtt_topic}-system-battery`,
Expand Down Expand Up @@ -1510,6 +1543,9 @@ export function riscoMqttHomeAssistant(userConfig: RiscoMQTTConfig) {
mqttClient.subscribe(outputTopic);
}
mqttClient.subscribe(`${config.risco_mqtt_topic}/republish`);
logger.info(`[RML] Subscribing to ${config.risco_mqtt_topic}/republish topic`);
mqttClient.subscribe(`${config.risco_mqtt_topic}/logging`);
logger.info(`[RML] Subscribing to ${config.risco_mqtt_topic}/logging topic`);

publishPanelStatus(panelReady);
logger.info(`[RML] Subscribing to panel partitions events`);
Expand Down

0 comments on commit c1e8a30

Please sign in to comment.