6 oktober 2026 13 min läsning

Anslut digitalSTROM till Home Assistant: lokal integration och automationer

En lokal Home Assistant-integration för digitalSTROM-servern, med rörelsebelysning, duschläge, musik med 4× tryckningar och automatisk bortgång via FRITZ!Box. Med de problem som uppstod i praktiken.

I digitalSTROM-installationer är lampor, persienner och andra förbrukare anslutna till klämmor i elcentralen och styrs via tryckknappar och en digitalSTROM-server (dSS20). När ytterligare system som Philips Hue, Sonos och en FRITZ!Box tillkommer är det naturligt att samla allt lokalt i Home Assistant, utan molnkonto och utan att lagra dSS-lösenordet i Home Assistant. För detta har jag skrivit en liten integration och publicerat den tillsammans med passande automationer som pfstr/ha-digitalstrom-local under MIT-licens.

Kort sammanfattat: dSS erbjuder ett användbart JSON-API med händelser. Den som använder det varsamt får tryckknappar, scener samt aktiviteterna Gå och Komma till Home Assistant utan fördröjning och kan därmed utlösa automationer som digitalSTROM inte känner till på egen hand.

Så fungerar integrationen

dSS tillhandahåller sitt API på port 8080 via HTTPS, med ett självsignerat certifikat. För program erbjuder digitalSTROM app-token: Programmet begär en token, användaren godkänner den i Configurator under System > Åtkomstbehörighet och programmet loggar sedan in med den. dSS-lösenordet stannar hos användaren.

DSS=https://dss.local:8080/json
curl -sk "$DSS/system/requestApplicationToken?applicationName=Home%20Assistant"
curl -sk "$DSS/system/loginApplication?loginToken=<APP-TOKEN>"
curl -sk "$DSS/event/subscribe?name=callScene&subscriptionID=42&token=<SESSION>"
curl -sk "$DSS/event/get?subscriptionID=42&timeout=30000&token=<SESSION>"
Förklaring av alternativen
AlternativFunktion
-singen förloppsindikator
-kacceptera dSS:s självsignerade certifikat
requestApplicationTokenskapar en app-token som måste godkännas i Configurator
loginApplicationbyter den godkända app-token mot en session-token
event/subscribeprenumererar på en händelse (callScene, stateChange, buttonClick …) under ett valfritt ID
event/get med timeoutväntar upp till 30 sekunder på nya händelser (long poll)

Integrationen håller en sådan long poll-anslutning öppen permanent. Varje scen som utlöses av en tryckknapp, appen eller Configurator kommer in som en händelse. Tillstånd som ”ljus på i rummet” eller närvaro finns i dSS:s cache under /usr/states och kan hämtas utan att belasta klämmorna.

Direkta frågor om utgångsvärden (device/getOutputValue) går däremot via dS485-bussen hela vägen till klämman och tar en halv till en sekund per värde. Många sådana frågor med korta intervall kan överbelasta mätarna. Integrationen läser därför endast persiennpositioner och Joker-utgångar direkt, var 15:e minut och ungefär en minut efter en körning.

PlattformInnehåll
lighten lampa per rum, styrd via rumsscener som tryckknapparna; ljusstyrka för dimrade klämmor, endast på/av för switchade
coverpersienner med upp, ned, stopp och position
scenestämningar namngivna i Configurator
buttonGå (scen 72) och Komma (scen 71)
binary_sensornärvaro, vindlarm, rörelsedetektorer, Joker-utgångar
sensortotal förbrukning

Dessutom rapporterar integrationen varje rumsscen samt Gå och Komma som händelsen digitalstrom_local_event till Home Assistant. Därmed kan 2× eller 4× tryckningar på en vanlig ljusknapp tilldelas fritt.

Automationer som Blueprints

Följande automationer ingår som Blueprints i repositoriet och kan läggas till i Home Assistant via importknappen i README.

Rörelsebelysning som inte släcker manuellt tänd belysning

Vid rörelse tänds ljuset och släcks igen efter en inställbar tid utan rörelse. Valfritt gäller detta endast under en ljusstyrketröskel, endast inom ett tidsfönster eller dämpat på natten. Om någon tänder ljuset med tryckknappen förblir det tänt. En hjälpbrytare (input_boolean) minns om automationen tände ljuset; endast då släcker den det också igen.

En detalj märks först under drift: Utlösaren ”detektorn har varit lugn i 2 minuter” är en räknare som Home Assistant förkastar vid varje omstart. Om detektorn senast registrerade rörelse före omstarten sker ingen ny övergång till ”lugn”, och ljuset förblir tänt. Blueprinten kontrollerar därför dessutom varje minut om ett ljus som den har tänt fortfarande lyser trots att detektorn har varit lugn tillräckligt länge.

Släck ljuset när rummet lämnas

Avstängningstiden för rörelsebelysningen är en kompromiss: Är den för kort släcks ljuset medan någon står stilla i rummet; är den för lång fortsätter det lysa i flera minuter efter att rummet lämnats. En annan Blueprint använder därför en andra detektor utanför rummet, vanligtvis i hallen. Om denna registrerar rörelse, detektorn i rummet nyligen (inom 30 sekunder) också har registrerat rörelse och det sedan förblir lugnt där, släcks ljuset i rummet omedelbart. Med Hue-detektorer, som rapporterar ”lugn” ungefär 10 sekunder efter den senaste rörelsen, blir det cirka 10 till 15 sekunder efter att man gått ut.

För att ingen ska sitta i mörkret gäller regeln endast under vissa villkor: Ljuset måste ha tänts av rörelseautomation, ett duschläge får inte vara aktivt och högst en person får vara hemma. Antalet personer avgörs av mobilerna som Home Assistant känner till som personer. 30-sekundersvillkoret skyddar dessutom mot fallet att någon står stilla i rummet under längre tid medan en annan person går genom hallen.

Duschläge med 2× tryckningar

I duschen registrerar en rörelsedetektor oftast ingen, och efter den inställda tiden blir det mörkt. 2× tryckningar på badrumsknappen utlöser stämning 2 (scen 17) i digitalSTROM. Automation känner igen denna scen i rummet och aktiverar ett duschläge som blockerar avstängning. Rörelser under de första 2 minuterna ignoreras (avklädning, att stiga in). Den första rörelsen därefter avslutar duschläget, och från då gäller åter den normala avstängningstiden. Efter en inställbar maximal tid (standard 20 minuter) avslutas det automatiskt.

4× tryckningar startar Sonos

När man trycker snabbt flera gånger på en knapp växlar digitalSTROM genom stämningarna i tur och ordning: scen 5, 17, 18 och 19 vid den fjärde tryckningen. Om scen 19 i Configurator ställs in på ”Ändra inte utgång” för alla lampor är den ledig för andra ändamål. En Blueprint reagerar på denna scen, släcker rummets ljus och startar Sonos-högtalaren i rummet eller, i rum utan högtalare, flera högtalare tillsammans.

Skriptet tar hänsyn till tre saker: Om en högtalare redan spelar läggs det nya rummet till i dess grupp så att uppspelningen förblir synkroniserad. Om inget kan återupptas spelas en radiostation från Radio Browser-katalogen. Och före varje start ställs samma startvolym in, annars spelar det ena rummet tyst och det andra lika högt som någon senast lyssnade på musik.

Gå och Komma via FRITZ!Box

Integrationen FRITZ!Box Tools rapporterar om en mobil är ansluten till WLAN; den utvärderar boxens enhetslista och täcker därmed 2,4 GHz-nät, 5 GHz-nät och LAN samtidigt. Om ingen längre är hemma och Gå inte har aktiverats utlöser en Blueprint Gå. När någon kommer hem följer Komma och, om det är mörkt, en välkomstbelysning.

Som komplement kan en automation släcka lampor i andra system (till exempel Hue) och pausa Sonos vid Gå. digitalSTROM-lamporna släcks av dSS självt.

Planritning som dashboard

En tydlig visning i Home Assistant är en planritning med det inbyggda kortet picture-elements. I varje rum ligger en transparent SVG över planen, som ersätts av en svagt gul när ljuset är tänt; ett tryck på rummet växlar ljuset. Lampor, högtalare, persienner och detektorer placeras som symboler på sina respektive platser. Instruktionerna med exempelkonfiguration finns i repositoriet under docs/floor-plan-dashboard.md.

Problem från praktiken

ProblemOrsakLösning
Gå-knappen har ingen effektdSS är inte ansluten till nätverket, aktiviteter över flera strömkretsar går via serverndSS:s nätverksanslutning återställdes
Persienner reagerar inteVindlarm var inställt på ”aktivt” trots att ingen vindsensor finnsScen 87 (”ingen vind”) utlöstes för alla rum
Persienner körs inte upp vid GåScen 72 är inställd på ”Ändra inte utgång” (dontCare)device/setSceneMode med dontCare=0; värdet false accepterades men ignorerades
Ljuset kan inte dimrasLysrör anslutet till en switchad klämma (utgångsläge 35)Integrationen identifierar switchade klämmor och erbjuder där endast på/av
Ljuset förblir tänt efter omstartRäknaren för ”lugn sedan X minuter” försvinner vid omstartytterligare kontroll varje minut
Mobilen räknas som frånvarandeiPhone använder en växlande privat WLAN-adress och kopplar kort bort WLAN i vilolägePrivat WLAN-adress inställd på ”Fast”, respittid 10 minuter
DECT sänder hela tiden”DECT Eco” är inte tillgängligt så snart en FRITZ!-smart-home-enhet är registreradavstå från DECT-uttag om DECT Eco önskas

En enhetssökning på Hue-bryggan lägger till alla enheter som just då är i parkopplingsläge. Kontrollera därefter i enhetslistan att endast dina egna lampor har lagts till.

Klämmornas scentabeller kan läsas ut och ändras via API:t, till exempel med device/getSceneMode och device/saveScene. Vart och ett av dessa anrop går via bussen. Säkerhetskopiera de gamla värdena före ändringar, exempelvis i en CSV-fil, så att de kan återställas vid behov.

Källor

  1. pfstr/ha-digitalstrom-local

    Integration och Blueprints från denna artikel, MIT-licens.

    https://github.com/pfstr/ha-digitalstrom-local
  2. digitalSTROM: Handbok för användning och inställning

    Aktiviteten Gå (håll inne i 3 sekunder), inställningen ”Ändra inte utgång” i kapitel 3.5.2.

    https://www.digitalstrom.com/wp-content/uploads/2021/08/AHB_DE_A1121D001V013_neu.pdf
  3. digitalSTROM: Dokumentation för klämmornas knappar
  4. digitalSTROM: Bruksanvisningar

    Översikt över handböcker, planerings- och installationsunderlag.

    https://www.digitalstrom.com/bedienungsanleitungen/
  5. Home Assistant: FRITZ!Box Tools

    Närvarodetektering, WLAN-brytare, integrationsalternativ.

    https://www.home-assistant.io/integrations/fritz/
  6. Home Assistant: Picture Elements card
  7. Home Assistant: Blueprints
  8. FRITZ! kunskapsdatabas: FRITZ!-uttag tappar anslutningen
  9. Radio Browser

    Fri katalog över radioströmmar, integrerad som mediekälla i Home Assistant.

    https://www.radio-browser.info/

Kommentarer

Kommentarerna hämtas från GitHub / Giscus.