Waarom wordt computation in smart homes belangrijker naarmate het aantal sensoren toeneemt bij dezelfde bemonsteringsfrequentie?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Functieberekening wordt belangrijker naarmate er meer sensoren zijn, omdat datastromen met een vaste frequentie het werk per sample vermenigvuldigen en extra synchronisatie- en fusiere relaties creëren.

Bij één sample per seconde produceren 20 sensoren 1,7 miljoen waarnemingen per dag; 200 sensoren produceren er 17,3 miljoen. Het filteren van elke datastroom schaalt ongeveer mee met het aantal sensoren, terwijl correlaties op kamerniveau, aanwezigheidsfusie en overlappende vensters extra uitlijning en werk voor sensorparen toevoegen. De samplingfrequentie bleef gelijk, maar het totale aantal gebeurtenissen nam niet af tijdens het drukste automatiseringsvenster.

Werk per sensor schaalt met het aantal datastromen maal het aantal samples

Een functie zoals een voortschrijdend gemiddelde, variantie, helling of drempelstatus verwerkt elke binnenkomende waarde en bewaart de vensterstatus. Met N sensoren op frequentie f schaalt het basiswerk en de gebeurtenisverwerking ongeveer met N maal f wanneer het aantal functies constant blijft.

Een overzicht van sensorgegevensverwerking beschrijft filtering, aggregatie, functiextractie en fusie als afzonderlijke fasen. Elke fase kan plaatsvinden op apparaten, edge-nodes en servers.

Databasewrites, het parseren van berichten en tijdstempels kunnen eenvoudige rekenkundige bewerkingen overheersen. Tien keer meer sensoren kunnen daardoor tien keer meer plannings- en opslagoverhead veroorzaken, zelfs wanneer elke formule weinig kost.

Functies over meerdere sensoren kunnen sneller dan lineair groeien

Modellen voor aanwezigheid of afwijkingen kunnen meerdere sensoren binnen hetzelfde tijdvenster vergelijken. Correlatie tussen alle paren creëert ongeveer N kwadraat relaties; gegroepeerde fusie groeit mee met het aantal sensoren per ruimte en de vensterlengte. Klokafwijkingen en ontbrekende samples voegen joins en interpolatie toe.

Onderzoek naar functiextractie aan de edge beschouwt lokale functiextractie als een manier om het volume van upstreamgegevens met ordes van grootte te verminderen. De berekening verdwijnt niet; deze wordt dichter bij de bron uitgevoerd.

Ook de overlap van vensters is belangrijk. Het elke seconde opnieuw berekenen van een statistiek over 60 samples kost meer dan het bijhouden van een incrementele status. Dezelfde samplingfrequentie betekent niet dezelfde algoritmische werklast wanneer het aantal sensoren het aantal relaties verandert.

Wanneer het aantal sensoren niet de bottleneck is

Meer apparaten voegen mogelijk weinig kosten toe wanneer ze zelden rapporteren, functies gebeurtenisgestuurd zijn en berekeningen onafhankelijk en incrementeel plaatsvinden. Eén camera- of audiosensor met een hoge datasnelheid kan zwaarder wegen dan honderden temperatuursensoren.

Een overzicht van edge-analyticswerklasten benadrukt dat de plaatsing van de werklast en het gegevenstype bepalen hoeveel druk er op edge-resources ontstaat. Alleen apparaten tellen zonder bytes en bewerkingen mee te nemen is onvoldoende.

Dit mechanisme is ook niet van toepassing wanneer de vertraging in automatisering wordt veroorzaakt door nieuwe pogingen via de radio, databaselocks of retourtijden naar de cloud in plaats van door functies. Meer rekenkracht is niet automatisch de oplossing. Meet de wachtrijleeftijd en functieverwerking voordat je vertraging aan de schaal van het aantal sensoren toeschrijft.

Herhaal de sensorschaal voordat automatiseringen te laat reageren

Breng voor elke sensor de sampling- of gebeurtenisfrequentie, het aantal bytes per payload, het aantal functies, de vensterlengte en de fusiegroep in kaart. Herhaal één, twee, vijf en tien keer het huidige aantal datastromen en registreer de CPU-tijd per functie, de wachtrijleeftijd, het geheugen, databasewrites en de automatiseringslatentie.

Gebruik de onderscheidingen in het artikel over de context van sensormetingen om te voorkomen dat echte verschillen in de omgeving als een rekenfout worden behandeld. Houd de normalisatie van tijdstempels identiek in alle schaaltests.

Als CPU-gebruik en wachtrijleeftijd lineair stijgen, verlaag dan de overhead per gebeurtenis of groepeer writes in batches. Als ze versnellen, onderzoek dan joins tussen alle paren en overlappende vensters. Bereken incrementele samenvattingen vooraf, groepeer alleen gerelateerde sensoren en bewaar onbewerkte gegevens met een lagere frequentie wanneer ze geen expliciete beslissing ondersteunen.

Tech & AI HUB

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.