import { log } from "../logger"; import { ha } from "./globals"; /** * Example raw FIMP availaility (from evt.network.all_nodes_report) input: ```json { "address": "1", "hash": "TS0202", "power_source": "battery", "status": "UP", "wakeup_interval": "1" } ``` Output (assuming hub ID 123456): ``` topic: homeassistant/device/futurehome_123456_1/availability online ``` */ export function haUpdateAvailability(parameters: { hubId: string, deviceAvailability: any }) { const availabilityTopic = `homeassistant/device/futurehome_${parameters.hubId}_${parameters.deviceAvailability.address?.toString()}/availability` const availability = parameters.deviceAvailability?.status === "UP" ? "online" : "offline"; log.debug(`Publishing HA availability "${availabilityTopic}"`) ha?.publish(availabilityTopic, availability, { retain: true, qos: 2 }); }