homebridge-am43-blinds-bluez
Version:
A homebridge plugin to control AM43 based shade motors in HomeKit. These include the A OK and Zemismart bluetooth based motors. This plugin requires a Homebridge host that supports Bluetooth 4.0
26 lines (25 loc) • 1.38 kB
JavaScript
import React, { useState, useCallback } from "react";
import MotorIcon from "./motorIcon";
const DeviceList = ({ onSelect }) => {
const [devices, setDevices] = useState([]);
const scanForDevices = useCallback(() => {
setDevices([]);
homebridge.showSpinner();
homebridge
.request("/scan_for_devices", { scan_time: 10e3 })
.then((scanResults) => {
homebridge.hideSpinner();
setDevices(scanResults);
});
}, []);
return (React.createElement("div", { className: "card-body" },
React.createElement("ol", { className: "list-group" }, devices.map(({ address, name }) => (React.createElement("button", { className: "list-group-item list-group-item-action d-flex flex-row", key: address, onClick: () => onSelect(address) },
React.createElement("div", { className: "mr-4" },
React.createElement(MotorIcon, { small: true })),
React.createElement("div", null,
React.createElement("h5", null, name),
React.createElement("p", null, address)))))),
React.createElement("div", { className: "d-flex flex-column align-items-center" },
React.createElement("button", { type: "button", className: "btn btn-primary w-100", onClick: scanForDevices }, "Scan For Devices"))));
};
export default DeviceList;