· 4 years ago · May 14, 2021, 03:56 PM
1# -*- coding: utf-8 -*-
2"""
3Created on Thu Apr 29 17:35:25 2021
4
5@author: syver
6"""
7
8import requests
9import pandas as pd
10from datetime import datetime as dt
11import time
12import json
13
14###############################################################################
15#Verdier som kan endres
16
17VaerAvlesning_minuttDelay = 10 # i minutter
18MainLoopintervall = 60 # i sekunder
19ArealSolPanel = 30 # m^2
20EffektSolpanel = 200 # Typisk 200W/m2
21OvnEffekt = 1200 # effekt i Watt
22LysEffekt = 30 # effekt i Watt
23
24Strompris_sone = 'NO3'
25
26###############################################################################
27
28SolcellepanelMaxEffekt = ArealSolPanel * EffektSolpanel #Teoretisk max effekt fra solcellepanel
29prislisteTotal = []
30prislisteSyver = []
31prislisteChris = []
32prislisteFossum = []
33prislisteTorMartin = []
34prislisteTobias = []
35
36client_id = 'b762baee-f291-4057-8b61-cb1b7acb3779' # Bruker ID for Frost API
37endpoint = 'https://frost.met.no/observations/v0.jsonld' # Endpoint for Frost API
38
39parameters = {
40 'sources': 'SN68860',
41 'elements': 'air_temperature',
42 'referencetime': 'latest',
43} # Parametre for Frost API
44
45EndpointSky = 'http://api.openweathermap.org/data/2.5/onecall?' # Endpoint for OpenWeather API
46ParametersSky = {
47 'lat': '63.418827',
48 'lon': '10.402732',
49 'appid':'d5096354ca109ffda086dba72e7735b9',
50 'exclude': 'hourly,minutely,daily,alerts',
51 'units': 'metric'} # Parametre for OpenWeather API
52
53Chris_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1NTIzIn0.dJWqc8A6CuM6C1PH9XF51Fm-cYKOKjseqZu-q_PPQnY' # Bruker: 19esp.A
54Chris_ovn_key = '28642'
55Chris_lys_key = '17789'
56Chris_strompris_key = '27587'
57Chris_temp_ute_key = '32499'
58Chris_vind_ute_key = '5357'
59
60Syver_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1NTI0In0.HMd7y-hVnXAyXwa3iw4mg6mx_pIMPH6mG-SxA3XguSw' #Bruker: 19esp.B
61Syver_ovn_key = '4956'
62Syver_lys_key = '20084'
63Syver_strompris_key = '20975'
64Syver_temp_ute_key = '26048'
65Syver_vind_ute_key = '9827'
66
67Fossum_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1NTI1In0.35WCAAoyYW-6_mlary9G3l2V3WcduFQfrIKMGgUTrhU' #Bruker: 19esp.C
68Fossum_ovn_key = '5302'
69Fossum_lys_key = '30747'
70Fossum_strompris_key = '17601'
71Fossum_temp_ute_key = '31834'
72Fossum_vind_ute_key = '28753'
73
74Tor_Martin_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1NTI2In0.oiJfnponTjMnbeD5tZVVM7n561DkRJ_ovNLtrB9xbOE' #Bruker: 19esp.D
75Tor_Martin_ovn_key = '31770'
76Tor_Martin_lys_key = '31191'
77Tor_Martin_strompris_key = '11937'
78Tor_Martin_temp_ute_key = '24672'
79Tor_Martin_vind_ute_key = '11424'
80
81Tobias_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2MTA1In0.05tsq5uv49kNs_WNj9EOnJ8Usr2Bc160PMl4socXt8M' #Bruker: 19esp.E
82Tobias_ovn_key = '10681'
83Tobias_lys_key = '23023'
84Tobias_strompris_key = '13980'
85Tobias_temp_ute_key = '24587'
86Tobias_vind_ute_key = '1756'
87
88Home_token = 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI1NTIyIn0.y0VQUSFF4uJe5FUobIRMUxSZvA7O_AYxMIOt1sl58OM' #Bruker: 19esp.CTRL
89Home_totalEffekt_key ='9735'
90Home_StromprisTotal_key = '31159'
91Home_TemperaturUte_key = '14230'
92Home_VindUte_key = '21036'
93
94
95Chris_ovn = {'Key': Chris_ovn_key ,
96 'Token': Chris_token
97 } # Parametre til Chris ovn
98
99Chris_Lys = {'Key': Chris_lys_key ,
100 'Token': Chris_token
101 } # Parametre til Chris lys
102
103Syver_ovn = {'Key': Syver_ovn_key ,
104 'Token': Syver_token
105 } # Parametre til Syver ovn
106
107Syver_Lys = {'Key': Syver_lys_key ,
108 'Token': Syver_token
109 } # Parametre til Syver lys
110
111Fossum_ovn = {'Key': Fossum_ovn_key ,
112 'Token': Fossum_token
113 } # Parametre til Fossum ovn
114
115Fossum_Lys = {'Key': Fossum_lys_key ,
116 'Token': Fossum_token
117 } # Parametre til Fossum lys
118
119Tor_Martin_ovn = {'Key': Tor_Martin_ovn_key ,
120 'Token': Tor_Martin_token
121 } # Parametre til Tor Martin ovn
122
123Tor_Martin_Lys = {'Key': Tor_Martin_lys_key ,
124 'Token': Tor_Martin_token
125 } # Parametre til Tor Martin lys
126
127Tobias_ovn = {'Key': Tobias_ovn_key ,
128 'Token': Tobias_token
129 } # Parametre til Tobias ovn
130
131Tobias_Lys = {'Key': Tobias_lys_key ,
132 'Token': Tobias_token
133 } # Parametre til Tobias lys
134
135###############################################################################
136
137# Funksjoner
138
139def HentTemp(endpoint, parameters, client_id):
140
141 r = requests.get(endpoint, parameters, auth=(client_id,'')) #Hent ut data fra nettsiden med endpoint, parametre og autentifikasjon
142
143 json = r.json() # Gjør om dataen til json format
144
145 data = json['data'] # Lagrer kun verdiene fra 'data'
146
147 df = pd.DataFrame() # Lager en dataframe
148 for i in range(len(data)):
149 row = pd.DataFrame(data[i]['observations'])
150 row['referenceTime'] = data[i]['referenceTime']
151 row['sourceId'] = data[i]['sourceId']
152 df = df.append(row) # Legger til dataene i forskjellige kategorier
153
154 df = df.reset_index() # Resetter indeks så man kan indeksere med tall
155 temp = float(df['value'].iloc[0]) # Henter kun ut den ene verdien som er tatt ved 5m høyde
156 return temp # Returnerer temperaturen
157
158def strompris(Zone):
159
160 link = 'https://norway-power.ffail.win/?' # Endpoint til nettsiden som leverer strømpriser
161
162 date = dt.now() # Henter ut datoen nå
163 date = date.strftime('%Y-%m-%d') # formaterer datoen til YYYY-MM-DD Format
164
165 priser = requests.get(link, params = {'zone': Zone, 'date': date}) # Henter ut data fra nettsiden med sone parameter, samt datoen i dag som vi definerte ovenfor
166
167 json = priser.json() # Gjør om return funksjonen til json format
168
169 df = pd.DataFrame.from_dict(json) # Gjør om til dataframe
170 df = df.transpose() # Fikser dataframen til å stå riktig vei
171 df = df.drop(columns= ["valid_from", "valid_to"] ) # Fjerner unødvendige kolonner
172 df = df.reset_index() # Resetter indeks, slik at dataframen kan indekseres med tall, fremor datoer
173 df = df.rename(columns = {'index': 'Real_Time'}) # Gir nytt navn til den tidligere index kolonnen
174
175 return df #returnerer et dataframe med indeks 0-23 og strømpriser for hver time
176
177def pris_naa(Dataframe):
178 Hour = int(dt.now().strftime('%H')) # Henter ut hvilken time av døgnet vi er i
179
180 price_Now = Dataframe.loc[Hour, 'NOK_per_kWh'] # Velger verdi fra dataframe med indeks gitt fra hvilken time av døgnet vi er i
181
182 return price_Now # Returnerer prisen
183
184def Skydekke(Endpoint, Parameters):
185 request = requests.get(Endpoint, Parameters) # Henter data fra endpoint og parametre
186 request = request.json() # Gjør om return verdiene til json format
187 Skydekke = (request['current'])['clouds'] # Henter ut % skydekke
188 Soloppgang = (request['current'])['sunrise'] # Henter ut tid for soloppgang i time.time() format (sekunder siden 1970)
189 Solnedgang = (request['current'])['sunset'] # Henter ut tid for solnedgang i time.time() format (sekunder siden 1970)
190 VindHastighet = (request['current'])['wind_speed'] # HEnter ut vindhastigheten i m/s
191 Liste = [Skydekke, Soloppgang, Solnedgang, VindHastighet] # Legger alle verdier i en liste som kan indekseres
192 return Liste # Returnerer listen
193
194def CoT_Verdi(Parameters):
195 response = requests.get('https://circusofthings.com/ReadValue', Parameters) # Enkel funksjon for å hente ut verdier av signaler fra CoT
196 response = json.loads(response.content) # Gjør om svaret til json format
197 value = response.get('Value') # Velger verdien vi skal ha
198 return value # Returnerer verdien
199
200def CoT_Write_Verdi(Token, Key, Value):
201 headers = {'Content-Type': 'application/json'} # Definerer headersene
202 data = {'Key': Key,
203 'Token': Token,
204 'Value': Value
205 } # Definerer dataen
206 response = requests.put('https://circusofthings.com/WriteValue', data = json.dumps(data), headers = headers) # Sender verdier til CoT signal
207
208Sollys = False # Setter sollys til false til å begynne med
209hour_last = int(dt.now().strftime('%H')) # Definerer timen av døgnet
210Day_last = int(dt.now().strftime('%d')) # Definerer dagen det er
211Week_last = int(dt.now().strftime('%W')) # Definerer ukenummeret
212Tids_Delay_Strompriser = round(time.time()) # Setter punkt for start av nedtelling før strømprisene skal oppdateres
213Tids_Delay_VaerInnhenting = round(time.time()) # Setter punkt for start av nedtelling før været skal oppdateres
214Tids_Delay_MainLoop = time.time() # Setter punkt for start av nedtelling før hoved-loopen skal kjøre
215Effektavlesning_start = time.time() # Setter punkt for start av nedtelling før effektavlesningen skal oppdateres
216Tids_Delay_VaerInnhenting_2 = time.time() # Setter punkt for start av nedtelling før været skal hentes inn fra OpenWeather API
217
218temp = HentTemp(endpoint, parameters, client_id) # Henter ut temperaturen fra Frost API
219CoT_Write_Verdi(Chris_token, Chris_temp_ute_key, temp) #Skriver temperaturen til alle brukerenes Temperatur-Sgnal
220CoT_Write_Verdi(Syver_token, Syver_temp_ute_key, temp)
221CoT_Write_Verdi(Fossum_token, Fossum_temp_ute_key, temp)
222CoT_Write_Verdi(Tor_Martin_token, Tor_Martin_temp_ute_key, temp)
223CoT_Write_Verdi(Tobias_token, Tobias_temp_ute_key, temp)
224pris = strompris(Strompris_sone) # Henter ut døgnets strømpris
225price_Now = pris_naa(pris) # Henter ut timens strømpris
226pris.plot(grid = True, figsize = (15,10)) # Plotter døgnets strømpris
227
228VaerData = Skydekke(EndpointSky, ParametersSky) # Henter ut data
229SkydekkeProsent = VaerData[0] # definerer hva som er skydekke
230Soloppgang = VaerData[1] # definerer hva som er tid for soloppgang
231Solnedgang = VaerData[2] # definerer hva som er tid for solnedgang
232VindHastighet = VaerData[3] # definerer vindhastigheten ute
233
234with open('Ukespriser.csv', "a") as file:
235 file.write('Uke'+','+'Chris'+','+'Syver'+','+'Fossum'+','+'Tor_Martin'+','+'Tobias') # Starter en CSV fil der strømprisene for alle brukerene, samt totalen oppdateres en gang i uken
236
237while(True): # Starter loopen som skal kjøre kontinuerlig
238 if((time.time() - Effektavlesning_start) > 10): # Sjekker om det er lengre enn 10 sekunder siden siste effektavlesning
239 Effektavlesning_start = time.time() # Resetter timeren for funksjonen
240 Syver_ovn_Effekt = OvnEffekt * (CoT_Verdi(Syver_ovn)/100) #Regner ut effekten for brukerenes utstyr
241 Syver_lys_Effekt = LysEffekt * CoT_Verdi(Syver_Lys)
242 Chris_ovn_Effekt = OvnEffekt * (CoT_Verdi(Chris_ovn)/100)
243 Chris_lys_Effekt = LysEffekt * CoT_Verdi(Chris_Lys)
244 Fossum_ovn_Effekt = OvnEffekt * (CoT_Verdi(Fossum_ovn)/100)
245 Fossum_lys_Effekt = LysEffekt * CoT_Verdi(Fossum_Lys)
246 Tor_Martin_ovn_Effekt = OvnEffekt * (CoT_Verdi(Tor_Martin_ovn)/100)
247 Tor_Martin_lys_Effekt = LysEffekt * CoT_Verdi(Tor_Martin_Lys)
248 Tobias_ovn_Effekt = OvnEffekt * (CoT_Verdi(Tobias_ovn)/100)
249 Tobias_lys_Effekt = LysEffekt * CoT_Verdi(Tobias_Lys)
250 EffektUtSyver = Syver_ovn_Effekt + Syver_lys_Effekt #regner ut brukerenes totale effekt
251 EffektUtChris = Chris_ovn_Effekt + Chris_lys_Effekt
252 EffektUtFossum = Fossum_ovn_Effekt + Fossum_lys_Effekt
253 EffektUtTorMartin = Tor_Martin_ovn_Effekt + Tor_Martin_lys_Effekt
254 EffektUtTobias = Tobias_ovn_Effekt + Tobias_lys_Effekt
255 EffektUt = EffektUtSyver + EffektUtChris + EffektUtFossum + EffektUtTorMartin + EffektUtTobias # Regner ut total effekt
256
257 if((time.time() - Tids_Delay_Strompriser) > 30): # Sjekker om det er lengre enn 30 sekunder siden siste godkjenning av strømprisene
258 Tids_Delay_Strompriser = time.time() # Resetter timeren
259 Day_now = int(dt.now().strftime('%d')) # sjekker på nytt hvilken dag det er i dag
260 Hour_now = int(dt.now().strftime('%H')) # Sjekker på nytt hvilken time det er nå
261 if (Day_now != Day_last): # Sjekker om dagen den leste av nå er ulik dagen den leste av sist
262 pris = strompris(Strompris_sone) # Hent inn nye dagspriser
263 Day_last = int(dt.now().strftime('%d')) # Oppdater dagen
264 print('Nye Dagspriser')
265 if (Hour_now != hour_last): # Sjekker om timen nå var ulik timen den leste av sist
266 price_Now = pris_naa(pris) # Oppdaterer timesprisen
267 hour_last = int(dt.now().strftime('%H')) # Oppdater hvilken time det er
268 print('Ny pris på: ')
269 print(price_Now)
270
271
272 if((time.time() - Tids_Delay_VaerInnhenting) > VaerAvlesning_minuttDelay * 60): # Sjekker om det har gått lenger enn VaerAvlesning_minuttDelay Antall minutter siden sist loopen kjørte
273 Tids_Delay_VaerInnhenting = time.time() # Oppdater timeren på loopen
274 temp = HentTemp(endpoint, parameters, client_id) # Hent ut temperaturen fra Frost API
275 CoT_Write_Verdi(Chris_token, Chris_temp_ute_key, temp) # Skriv temperaturen til de forskjellige brukerene
276 CoT_Write_Verdi(Syver_token, Syver_temp_ute_key, temp)
277 CoT_Write_Verdi(Fossum_token, Fossum_temp_ute_key, temp)
278 CoT_Write_Verdi(Tor_Martin_token, Tor_Martin_temp_ute_key, temp)
279 CoT_Write_Verdi(Tobias_token, Tobias_temp_ute_key, temp)
280 CoT_Write_Verdi(Home_token, Home_TemperaturUte_key, temp)
281
282
283
284 if ((time.time() - Tids_Delay_VaerInnhenting_2) > 120): # Sjekker om det er lengere enn 120 sekunder siden siste gang loopen kjørte
285 Tids_Delay_VaerInnhenting_2 = time.time() # oppdater timeren på loopen
286 VaerData = Skydekke(EndpointSky, ParametersSky) # Henter ut data
287 SkydekkeProsent = VaerData[0] # definerer hva som er skydekke
288 Soloppgang = VaerData[1] # definerer hva som er tid for soloppgang
289 Solnedgang = VaerData[2] # definerer hva som er tid for solnedgang
290 VindHastighet = VaerData[3] # definerer hva som er vindhastigheten ute
291 CoT_Write_Verdi(Home_token, Home_VindUte_key, VindHastighet) # Skriver vindhastigheten til de forskjellige brukerene
292 CoT_Write_Verdi(Tobias_token , Tobias_vind_ute_key , VindHastighet)
293 CoT_Write_Verdi(Tor_Martin_token , Tor_Martin_vind_ute_key , VindHastighet)
294 CoT_Write_Verdi(Fossum_token, Fossum_vind_ute_key , VindHastighet)
295 CoT_Write_Verdi(Syver_token, Syver_vind_ute_key , VindHastighet)
296 CoT_Write_Verdi(Chris_token, Chris_vind_ute_key , VindHastighet)
297 print(SkydekkeProsent)
298
299 if((time.time() - Tids_Delay_MainLoop) > MainLoopintervall): # Sjekker om det har gått lengre tid enn "MainLoopIntervall" Sekunder siden sist loopen kjørte
300 Tids_Delay_MainLoop = time.time() # Resetter Intervallet
301 if((time.time() > Soloppgang) and (time.time() < Solnedgang)): # Sjekker om tiden nå er innenfor tiden definert mellom soloppgang og solnedgang
302 Sollys = True #Sier det er sollys ute dersom solen er mellom oppgang og nedgangstid
303 EffektInn = SolcellepanelMaxEffekt * (1 - (SkydekkeProsent/100)) # Reduserer Effekten til solcellepanelene basert på Skydekke
304 effektDelta = EffektUt - EffektInn
305 # vi har effekt, antar at den er samme alle 60 sekundene mellom avlesning.
306 effektDeltakWh = effektDelta/(1000 * 60) # Delta effekt gitt i W. delt på 1000 for å få Kw. avlesning hvert minutt git verdier på kWm, deler på 60 for å få kWh
307 effektSyverDeltakWhPris = ((EffektUtSyver - (EffektInn/5)) / (1000 * 60)) * price_Now
308 effektChrisDeltakWhPris = ((EffektUtChris - (EffektInn/5)) / (1000 * 60)) * price_Now
309 effektFossumDeltakWhPris = ((EffektUtFossum - (EffektInn/5)) / (1000 * 60)) * price_Now
310 effektTorMartinDeltakWhPris = ((EffektUtTorMartin - (EffektInn/5)) / (1000 * 60)) * price_Now
311 effektTobiasDeltakWhPris = ((EffektUtTobias - (EffektInn/5)) / (1000 * 60)) * price_Now
312 effektDeltakWhPris = effektDeltakWh * price_Now # Lagrer delta pris
313 prislisteTotal.append(effektDeltakWhPris) # Skriver til brukerenes prisliste
314 prislisteSyver.append(effektSyverDeltakWhPris)
315 prislisteChris.append(effektChrisDeltakWhPris)
316 prislisteFossum.append(effektFossumDeltakWhPris)
317 prislisteTorMartin.append(effektTorMartinDeltakWhPris)
318 prislisteTobias.append(effektTobiasDeltakWhPris)
319
320 if((time.time() < Soloppgang) or (time.time() > Solnedgang)): # Sjekker om solen har gått ned
321 Sollys = False #Sier at sollyset er borte dersom solen har gått ned
322 EffektUtkWh = EffektUt/(1000 * 60) # Fjerner Solcellepanelet som et element dersom solen er nede
323 EffektUtkWhPris = EffektUtkWh * price_Now
324 effektSyverDeltakWhPris = (EffektUtSyver / (1000* 60)) * price_Now # Oppdaterer brukerenes strømpris
325 effektChrisDeltakWhPris = (EffektUtChris / (1000* 60)) * price_Now
326 effektFossumDeltakWhPris = (EffektUtFossum / (1000* 60)) * price_Now
327 effektTorMartinDeltakWhPris = (EffektUtTorMartin / (1000* 60)) * price_Now
328 effektTobiasDeltakWhPris = (EffektUtTobias / (1000* 60)) * price_Now
329 prislisteTotal.append(EffektUtkWhPris) # Skriver strømprisen til brukerene
330 prislisteSyver.append(effektSyverDeltakWhPris)
331 prislisteChris.append(effektChrisDeltakWhPris)
332 prislisteFossum.append(effektFossumDeltakWhPris)
333 prislisteTorMartin.append(effektTorMartinDeltakWhPris)
334 prislisteTobias.append(effektTobiasDeltakWhPris)
335
336 if (len(prislisteTotal) > 60): # Sjekker om listen med strømpriser har overskredet 60 elementer, gjort for å spare plass
337 listeforkortelse = sum(prislisteTotal) # Summerer listen
338 prislisteTotal.clear() # Tømmer listen
339 prislisteTotal.append(listeforkortelse) # Skriver inn verdien vi summerte
340 listeforkortelseSyver = sum(prislisteSyver)
341 prislisteSyver.clear()
342 prislisteSyver.append(listeforkortelseSyver)
343 listeforkortelseChris = sum(prislisteChris)
344 prislisteChris.clear()
345 prislisteChris.append(listeforkortelseChris)
346 listeforkortelseFossum = sum(prislisteFossum)
347 prislisteFossum.clear()
348 prislisteFossum.append(listeforkortelseFossum)
349 listeforkortelseTorMartin = sum(prislisteTorMartin)
350 prislisteTorMartin.clear()
351 prislisteTorMartin.append(listeforkortelseTorMartin)
352 listeforkortelseTobias = sum(prislisteTobias)
353 prislisteTobias.clear()
354 prislisteTobias.append(listeforkortelseTobias)
355
356 if (int(dt.now().strftime('%W')) != Week_last): # Sjekker om uken den leser av nå er ulik fra forrige uke
357 Week_last = int(dt.now().strftime('%W')) # Oppdaterer Uken det er nå
358 # Resetter prislisten ved ukesskifte. sender også regning til CSV fil
359 with open('Ukespriser.csv', "a") as file: #Skriv til CSV.
360 file.write( dt.now().strftime('%W') +','+ str(sum(prislisteChris))+','+ str(sum(prislisteSyver)) +','+ str(sum(prislisteFossum)) +','+ str(sum(prislisteTorMartin)) +','+ str(sum(prislisteTobias)) +','+str(sum(prislisteTotal)))
361
362 print('Denne månedens totale strømpris ble: ')
363 print(sum(prislisteTotal)) # Printer Månedsprisen for strøm
364 print('Syvers strømpris ble: ')
365 print(sum(prislisteSyver)) # Printer Månedsprisen for strøm
366 print('Chris strømpris ble: ')
367 print(sum(prislisteChris)) # Printer Månedsprisen for strøm
368 print('Fossums strømpris ble: ')
369 print(sum(prislisteFossum)) # Printer Månedsprisen for strøm
370 print('Tor Martins strømpris ble: ')
371 print(sum(prislisteTorMartin)) # Printer Månedsprisen for strøm
372 print('Tobias strømpris ble: ')
373 print(sum(prislisteTobias)) # Printer Månedsprisen for strøm
374 prislisteTotal.clear() # Resetter listene til beboerene
375 prislisteSyver.clear()
376 prislisteChris.clear()
377 prislisteFossum.clear()
378 prislisteTorMartin.clear()
379 prislisteTobias.clear()
380
381
382 prissum = sum(prislisteTotal) # Oppdaterer beboerenes prissum
383 prissumSyver = sum(prislisteSyver)
384 prissumChris = sum(prislisteChris)
385 prissumFossum = sum(prislisteFossum)
386 prissumTorMartin = sum(prislisteTorMartin)
387 prissumTobias = sum(prislisteTobias)
388 print (prissum)
389 CoT_Write_Verdi(Chris_token, Chris_strompris_key, prissumChris) # Skriver prissummen til alle beboerenes dashbord
390 CoT_Write_Verdi(Syver_token, Syver_strompris_key, prissumSyver)
391 CoT_Write_Verdi(Fossum_token, Fossum_strompris_key, prissumFossum)
392 CoT_Write_Verdi(Tor_Martin_token, Tor_Martin_strompris_key, prissumTorMartin)
393 CoT_Write_Verdi(Tobias_token, Tobias_strompris_key, prissumTobias)
394 CoT_Write_Verdi(Home_token, Home_totalEffekt_key , EffektUt)
395 CoT_Write_Verdi(Home_token, Home_StromprisTotal_key, prissum)
396