Skip to content

Commit

Permalink
feat(mqtt): Introduce autoconfigured home assistant buttons for AutoE…
Browse files Browse the repository at this point in the history
…mpty manual trigger and locate capabilities
  • Loading branch information
Hypfer committed May 28, 2023
1 parent ac06012 commit 246d655
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
@@ -1,6 +1,9 @@
const CapabilityMqttHandle = require("./CapabilityMqttHandle");
const Command = require("../common/Commands");
const Commands = require("../common/Commands");
const ComponentType = require("../homeassistant/ComponentType");
const DataType = require("../homie/DataType");
const InLineHassComponent = require("../homeassistant/components/InLineHassComponent");
const PropertyMqttHandle = require("../handles/PropertyMqttHandle");

class AutoEmptyDockManualTriggerCapabilityMqttHandle extends CapabilityMqttHandle {
Expand All @@ -27,6 +30,23 @@ class AutoEmptyDockManualTriggerCapabilityMqttHandle extends CapabilityMqttHandl
setter: async (value) => {
await this.capability.triggerAutoEmpty();
}
}).also((prop) => {
this.controller.withHass((hass) => {
prop.attachHomeAssistantComponent(
new InLineHassComponent({
hass: hass,
robot: this.robot,
name: this.capability.getType(),
friendlyName: "Trigger Auto Empty Dock",
componentType: ComponentType.BUTTON,
autoconf: {
command_topic: `${prop.getBaseTopic()}/set`,
payload_press: Commands.BASIC.PERFORM,
icon: "mdi:delete-restore"
}
})
);
});
}));
}
}
Expand Down
23 changes: 23 additions & 0 deletions backend/lib/mqtt/capabilities/LocateCapabilityMqttHandle.js
@@ -1,6 +1,10 @@
const CapabilityMqttHandle = require("./CapabilityMqttHandle");
const Command = require("../common/Commands");
const Commands = require("../common/Commands");
const ComponentType = require("../homeassistant/ComponentType");
const DataType = require("../homie/DataType");
const EntityCategory = require("../homeassistant/EntityCategory");
const InLineHassComponent = require("../homeassistant/components/InLineHassComponent");
const PropertyMqttHandle = require("../handles/PropertyMqttHandle");

class LocateCapabilityMqttHandle extends CapabilityMqttHandle {
Expand All @@ -27,6 +31,25 @@ class LocateCapabilityMqttHandle extends CapabilityMqttHandle {
setter: async (value) => {
await this.capability.locate();
}
}).also((prop) => {
this.controller.withHass((hass) => {
prop.attachHomeAssistantComponent(
new InLineHassComponent({
hass: hass,
robot: this.robot,
name: this.capability.getType(),
friendlyName: "Play locate sound",
componentType: ComponentType.BUTTON,
autoconf: {
command_topic: `${prop.getBaseTopic()}/set`,
payload_press: Commands.BASIC.PERFORM,
icon: "mdi:map-marker-question",
enabled_by_default: false,
entity_category: EntityCategory.DIAGNOSTIC
}
})
);
});
}));
}
}
Expand Down

0 comments on commit 246d655

Please sign in to comment.