Skip to content

Commit 31a3347

Browse files
committed
Add a publish method to Observer
1 parent 764238b commit 31a3347

File tree

4 files changed

+12
-0
lines changed

4 files changed

+12
-0
lines changed

dist/src/HomieObserver.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ type HomieEvent = HomieDeviceEvent | HomieNodeEvent | HomiePropertyEvent;
4040
interface MqttMessageHandler {
4141
handleMessage(topic: string, message: Buffer): void;
4242
subscribe(topic: string): void;
43+
publish(topic: string, message: string | Buffer): void;
4344
}
4445
declare class MqttClient implements MqttMessageHandler {
4546
private client;
@@ -49,6 +50,7 @@ declare class MqttClient implements MqttMessageHandler {
4950
homiePrefix?: string | undefined;
5051
} | undefined, messageCallback: (event: HomieEvent) => void);
5152
subscribe(pattern: string): void;
53+
publish(topic: string, message: string | Buffer): void;
5254
private getSubscriptionTopic;
5355
handleMessage(topic: string, message: Buffer): void;
5456
private handleDeviceState;

src/HomieObserver.ts

+5
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ type HomieEvent = HomieDeviceEvent | HomieNodeEvent | HomiePropertyEvent;
5050
interface MqttMessageHandler {
5151
handleMessage(topic: string, message: Buffer): void;
5252
subscribe(topic: string): void;
53+
publish(topic: string, message: string | Buffer) : void;
5354
}
5455

5556
// MQTT Client class
@@ -71,6 +72,10 @@ class MqttClient implements MqttMessageHandler {
7172
this.client.subscribe(subscriptionTopic);
7273
}
7374

75+
public publish(topic: string, message: string | Buffer) : void {
76+
this.client.publish(this.homiePrefix+"/"+topic, message);
77+
}
78+
7479
private getSubscriptionTopic(pattern: string): string {
7580
return pattern.startsWith(this.homiePrefix) ? pattern : `${this.homiePrefix}/${pattern}`;
7681
}

test/HomieObserver.test.ts

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ class MockMqttClient implements MqttMessageHandler {
3636
subscribe(topic: string): void {
3737
// no-op - mock implementation
3838
}
39+
40+
publish(topic: string, message: string | Buffer): void {
41+
// no-op - mock implementation
42+
}
3943
}
4044

4145
describe('HomieObserver', () => {

test/HomiePropertyBuffer.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class MockMqttClient implements MqttMessageHandler {
1919
}
2020

2121
subscribe(topic: string): void {}
22+
publish(topic: string, message: string | Buffer): void {}
2223
}
2324

2425
describe('HomiePropertyBuffer', () => {

0 commit comments

Comments
 (0)