Skip to content

Webbaseret UI til registrering af IoT-målere i OS2IoT samt eksport af data til EnergyKey.

License

Notifications You must be signed in to change notification settings

Randers-Kommune-Digitalisering/admin-iot-devices

Repository files navigation

admin-iot-devices README.md

Formål | Beskrivelse | Afhængigheder

Formål

Det primære formål med applikationen er at håndtere registrering samt overvågning af IoT-målere opsat i kommunale bygninger og institutioner via OS2IoT.

Herudover har applikationen til formål at konvertere og eksportere målerdata til KMD EnergyKey jf. EnergyKey format EK109.

OBS: Målerdata lagres med sekundær applikation: import-iot-data.

%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#3c3c3c',
      'primaryTextColor': '#fff',
      'primaryBorderColor': '#3c3c3c',
      'lineColor': '#F8B229',
      'secondaryColor': '#616161',
      'tertiaryColor': '#616161',
      'tertiaryTextColor': '#fff'
    }
  }
}%%

%% Upload af data %%
flowchart LR
	subgraph G1["Kubernetes miljø"]
        direction LR
	    subgraph SG2["admin-iot-devices"]
	    A["Administrationspanel"] 
	        subgraph SG20 [ ]
	            style SG20 stroke-dasharray: 0 1  
	            subgraph SG21["Node-RED back-end"]
	            
	                M1("
	                Håndtering af metadata
	                for målere i Node-RED
	                ")
	            end
	        end
	    end
        M2[(MariaDB)]
	end
	subgraph G2["KMD"]
        direction LR
	    subgraph SG3["OS2IoT"]
	        C[("Metadata")] 
	    end
    end
    A<-->M1
    M1<-->M2
	M1<-->C
Loading

Beskrivelse

Håndtering af målere, målerskabeloner og målepunkter

Applikationen udstiller et web-baseret administrationspanel til at registrere, overvåge og håndtere målere, målerskabeloner og målepunkter.

Målere der registreres via applikationen lagres som metadata i SQL-database (MariaDB) og registreres derefter automatisk i OS2IoT via API. Applikationen håndterer ligeledes registrering af målerne på et specificeret OS2IoT data target.

Efter automatisk registrering af målere i OS2IoT, skubbes data fra målere til HTTP-endpoint udstillet af import-iot-data, som derefter håndterer lagring af målerdata fra registrerede målere.

Målerskabeloner er en redskab til nemt at registrere flere målere af samme type. Målere som er registreret med en skabelon nedarver målepunkter, energiart, dekoder og enhedsprofil fra skabelonen.

Målepunkter kan registreres på både skabeloner og målere. Målepunkter peger på en bestemt type data som måles af enheden, som f.eks. temperatur eller luftfugtighed måles af en indeklimamåler.

Data eksporteres automatisk fra registrerede målepunkter til KMD EnergyKey. Data eksporteres via SFTP én gang i timen, og metadata for seneste eksportering registreres for målepunkterne.


Datatræk

Applikationen henter via GET-requests én gang dagligt nye payload decoders fra OS2Iot API som er registeret med Randers [2] i navnet.

Ligeledes hentes enhedsprofiler (device profiles) med specificeret organisations-id én gang dagligt.

OBS: Enhedsprofiler er skjulte i nuværende version, da denne kun understøtter registrering med Lora 1.0.3 OTAA Class A. Vær derfor opmærksom på at enhedsprofil pt. er prædefineret med UID.


API

Applikationen udstiller et API som overholder NGSIv2 standarder for IoT-metadata. API'et benyttes af administrationspanelet til at håndtere applikationsdata, men kan også tilgås manuelt eller af andet system.

API'et udstiller blandt andet følgende endpoints under URL'en /api/

Endpoint Beskrivelse
[GET] devices Liste over alle registrerede skabeloner og enheder
[GET] devices/{{uid}} Metadata for måler med uid {{uid}}
[PUT] devices/{{uid}} Redigér skabelon eller enhed med uid {{uid}}
[POST] devices Registrer ny skabelon eller enhed
[GET] devices/{{uid}}/dimensions Datatyper målt af enhed {{uid}}
[GET] devices/{{uid}}/measurements Liste over alle registerede målepunkter for enhed med uid {{uid}}
[POST] devices/{{uid}}/measurements Registrer nyt målepunkt på enhed med uid {{uid}}
[PUT] measurements/{{uid}} Redigér målepunkt med uid {{uid}}
[GET] measurements/{{uid}} Metadata for målepunkt med uid {{uid}}
[GET] devices/{{d_uid}}/measurements/{{uid}}/now Seneste datapunkt for målepunkt med uid {{uid}}
[GET] devices/{{d_uid}}/measurements/{{uid}}/data Datapunkter siden seneste dataeksport for målepunkt med uid {{uid}}
[GET] decoders Payload decoders
[GET] deviceprofiles Enhedsprofiler

Afhængigheder

⚙️ | Vue 3.3.4, Express.js 4.18.2 (+cors, +http-proxy-middleware), Vite 4.4.9, Axios 1.5.1, Node.js 18, Node-RED 3.0.2, Node-RED modul: node-red-mysql-r2

☁️ | Adgang til applikationens administrationspanel (Port 3000), Netværksadgang til OS2IoT API, Adgang til SQL-database

💲 | Miljøvariabler for database: DB_HOST, DB_PORT, DB_DATABASE, DB_USER, DB_PASS, for OS2IoT API: OS2IOT_API_KEY, OS2IOT_API_URL, OS2IOT_APP_ID, OS2IOT_DATATARGET_ID, OS2IOT_SERVICEPROFILE_ID, OS2IOT_DECODER_IDENTIFIER, OS2IOT_DEVICEPROFILE_IDENTIFIER

About

Webbaseret UI til registrering af IoT-målere i OS2IoT samt eksport af data til EnergyKey.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published