Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,10 @@ jobs:
# --ignore-scripts prevents build on Windows (only for unix-dgram, so doesn't matter, others have pre-builds)
run: pnpm i --frozen-lockfile ${{ matrix.os == 'windows-latest' && '--ignore-scripts' || '' }}

- name: Build zigbee-herdsman (Windows only)
if: matrix.os == 'windows-latest'
run: pnpm --filter zigbee-herdsman run build

- name: Build
run: pnpm run build

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,4 @@ data-bench

# commit-user-lookup.json
scripts/commit-user-lookup.json
.claude/
2 changes: 1 addition & 1 deletion biome.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://biomejs.dev/schemas/2.4.10/schema.json",
"$schema": "https://biomejs.dev/schemas/2.4.12/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
Expand Down
6 changes: 6 additions & 0 deletions lib/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,12 @@ export class Controller {
this.extensions.add(new HomeAssistant(...this.extensionArgs));
}

if (settings.get().prometheus_exporter.enabled) {
const {PrometheusExporter} = await import("./extension/prometheusExporter.js");

this.extensions.add(new PrometheusExporter(...this.extensionArgs));
}

this.state.start();

if (abortSignal.aborted) {
Expand Down
8 changes: 8 additions & 0 deletions lib/eventBus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ interface EventBusMap {
exposesChanged: [data: eventdata.ExposesChanged];
deviceLeave: [data: eventdata.DeviceLeave];
deviceMessage: [data: eventdata.DeviceMessage];
deviceMessageFailed: [data: eventdata.DeviceMessageFailed];
mqttMessage: [data: eventdata.MQTTMessage];
mqttMessagePublished: [data: eventdata.MQTTMessagePublished];
publishEntityState: [data: eventdata.PublishEntityState];
Expand Down Expand Up @@ -177,6 +178,13 @@ export default class EventBus {
this.on("deviceMessage", callback, key);
}

public emitDeviceMessageFailed(data: eventdata.DeviceMessageFailed): void {
this.emitter.emit("deviceMessageFailed", data);
}
public onDeviceMessageFailed(key: ListenerKey, callback: (data: eventdata.DeviceMessageFailed) => void): void {
this.on("deviceMessageFailed", callback, key);
}

public emitMQTTMessage(data: eventdata.MQTTMessage): void {
this.emitter.emit("mqttMessage", data);

Expand Down
Loading