import { useQuery } from "@tanstack/react-query"; import { Globe2, Network, RadioTower, ShieldCheck } from "lucide-react"; import { api } from "../api/client"; import type { Device, Page } from "../api/types"; import { Badge, Card, CardHeader, EmptyState, PageHeader } from "../components/ui"; import { useI18n } from "../lib/i18n"; const protocols = [ ["DDP", "UDP 4048", "Handmatig"], ["E1.31 / sACN", "UDP 5568", "Unicast / multicast"], ["Philips Hue", "HTTP + entertainment", "Bridge discovery"], ["Philips WiZ", "UDP 38899", "LAN discovery"], ["Nanoleaf", "HTTP + UDP", "Discovery / token"], ["LIFX", "UDP 56700", "LAN discovery"], ["Govee", "UDP 4001–4003", "Multicast"], ["Kasa", "TCP 9999", "LAN"], ["Yeelight", "TCP 55443", "LAN discovery"], ["Espurna", "HTTP/TCP", "Handmatig + API-key"], ["Elgato", "HTTP 9123", "mDNS / LAN"], ]; export function NetworkPage() { const { text } = useI18n(); const devices = useQuery({ queryKey: ["devices"], queryFn: () => api>("/api/v1/devices?limit=500") }); const networkDevices = devices.data?.items.filter((device) => device.ip_address || device.source !== "openrgb") ?? []; return <>
Dubbele aansturing wordt voorkomen

Kies per fysiek apparaat één eigenaar: OpenRGB, native connector, Home Assistant of onbeheerd.

Gevonden netwerkapparaten

Apparaten met een IP-adres of externe connectorbron.

{networkDevices.length ?
{networkDevices.map((device) =>

{device.alias || device.name}

{device.ip_address || device.source}

{device.owner}
)}
: }
{protocols.map(([name, transport, discovery]) => )}
FamilieTransportToevoegen
{name}{transport}{discovery}
; }