Skip to content

Context

Tenim un pipe de transformació de dades que acaba en una serie de dashboards de superset que mostra dades de plantes des de el pipe de transformació de dades arribant del nostre proveïdor de dades.

Protocol d'alta d'una planta fotovoltaica

Per afegir una nova planta a la visualització, cal seguir un protocol documentat al Formulari d’inscripció de noves plantes a Superset

El equip de gestio d'actius ha d'omplir aquest formulari amb les dades de la planta i ens ho han de comunicar per a que puguem seguir amb el procés nosaltres.

Obres en curs amb jardiner-admin

Aquesta tasca està en procés de ser portada al jardiner-admin. Per tant, aquest protocol pot canviar en el futur.

Necessites permisos d'administrador

Aquesta tasca és per a desenvolupadors que treballen amb el pipe de transformació de dades. Si no ets un desenvolupador, no cal que facis aquesta tasca.

Aqui sota ens dediquem a documentar técnicament els passos a seguir des de la perspectiva de desenvolupament.

Checklist general per IT

Descripció de Dades

Mapeig de senyals de Planta

Per cada planta, GdA genera fitxers amb informació de la planta per la seva gestió. Aquests fitxers contenen informació de senyals, aparells, plantes, etc. però sense el context del pipe de Jardiner. Com IT, portem aquesta informació al fitxer de mapeig de senyals per a que el pipe de Jardiner pugui fer integrar les dades de la planta.

Un exemple d'aquest fitxer pot ser aquest.

Dades fixes de planta

Aquest fitxer conté dades fixes de la planta, com ara la potència de la planta, la seva ubicació, etc. Es trova a google drive i es transforma amb airbyte aqui

Info API SolarGIS

GdA ha de crear una entrada per la planta nova al fitxer excel per això

Rendiment de planta

Té un nom tipus "Càlcul Rendiment de Planta <nom planta>". El podeu buscar al cercador de drive.

Objectius de producció de planta

Es troba al fitxer de google sheets aqui i es transforma amb airbyte aqui.

Unificació Noms Projectes Generació

Conté els llistat de noms unificats en un sol fitxer. Ves a Unificació Noms Projectes Generació.

Modelos contadores_inversores_SCADAS

Modelos contadores_inversores_SCADAS

Descripció de tasques

Afegir dades al mapeig d'airbyte

Tenim un document on consolidem relacions entre UUIDs de senyals, aparells i plantes que inserim amb airbyte

Aquest mapeig es una traducció del fitxer de mapeigs.

Un cop heu acabat de fer el mapeig, cal engegar la tasca de sync de l'airbyte d'uuids per que les dades arribin a la base de dades. Heu de tenir especial cura d'omplir les columnes updated_at i aquelles que posen UUIDs, ja que amb elles se creuen les dades dins del pipe.

update_at s'actualitza automagicament

Al fitxer de google sheets hi ha un script que actualitza la columna updated_at quan hi ha hagut un canvi a nivell de fila. Es molt limitat i heu de supervisar que s'ha actualitzat correctament, ja que de vegades google sheets no ho fa. Podeu mirar a Extensions > Apps Script per veure el codi.

UUID són versió 4

Els senyals porten UUID4 (han de ser versio 4) únics al mapeig de la planta indicada. Es poden generar UUID4 amb https://www.uuidgenerator.net/ O ben vé amb un script de python que podeu afegir a ~/.bash_aliases:

#·function·to·genenerate·random·uuid4·using·python$
function pyuuid4() {
python -c "import uuid$
for _ in range(${N:-1}):
    print(uuid.uuid4())" ; }

i el podeu executar amb N=<n> pyuuid4 per a generar n UUID4.

$ N=10 pyuuid4
bf98707e-688c-471c-8700-9ffeaf436531
8f6bfcc0-48bf-4b7c-895f-0b2efa37dd63
ee5dcfd1-80ba-48fb-800d-5bc8c04d217f
d32b0a23-c479-4ae9-bb54-43390fedf8e4
eced945e-7a91-4451-bbd5-974a82c9c0d4
fbacbf3d-23f6-4361-b5ec-b48b390d9c09
b9c4ea66-672e-4dca-ad08-fddacdfb3627
ae3e242e-9a57-4359-a72b-313a72b48348
9e11a595-c32c-42e1-8549-a5161c0ea624
172061ed-96b4-4aa3-b5bd-0c66e850383b

Afegir planta per meteologica amb plantmonitor

Què és meteologica?

meteologica és un servei que ens permet tenir dades meteorològiques de les plantes fotovoltaiques. Aquest servei es comunica amb plantmonitor per a obtenir dades de les plantes. Es una API tipus SOAP i teniu la documentació disponible aqui.

Què és plantmonitor?

Tots els scripts en aquest apartat fan referència al repositori de github plantmonitor. És un projecte previ a jardiner que ens permet monitoritzar plantes fotovoltaiques quan l'obtenció de dades la gestionem nosaltres.

A plantmonitor tenim un script que ens permet afegir plantes noves. Aquest script s'ha de cridar amb un fitxer yaml que contingui les dades de la planta.

S'ha de crear la planta a la base de dades tant a la raspberrypi com a plantmonitor (no calen els dispositius, que els crea automàticament). Haureu d'afegir plantlocation, plantparameters i moduleparameters. Trobareu un exemple a plantmonitor

Un cop teniu el fitxer yaml, per exemple data/plant-nova.yaml, podeu cridar l'script addPlant.py amb el següent comandament:

PLANTMONITOR_MODULE_SETTINGS='conf.settings.prod' python addPlant.py data/plant-asomada.yaml

Haureu de tenir un fitxer .env.prod amb les variables d'entorn necessàries per a que l'script funcioni correctament. Mireu a la documentació de plantmonitor per a més informació.

De moment manualment cal afegir els registres de plantestimatedmonthlyenergy. L'any és irrellevant. Si tenim històrics d'energia objectiu, els podeu afegir.

INSERT INTO
 public.plantestimatedmonthlyenergy(plantparameters, "time", monthly_target_energy_kwh)
VALUES
 (33, '2022-01-01 00:00:00+01', 473630),
 (33, '2022-02-01 00:00:00+01', 453370),
 (33, '2022-03-01 00:00:00+01', 592040),
 (33, '2022-04-01 00:00:00+02', 617000),
 (33, '2022-05-01 00:00:00+02', 667210),
 (33, '2022-06-01 00:00:00+02', 648940),
 (33, '2022-07-01 00:00:00+02', 703030),
 (33, '2022-08-01 00:00:00+02', 644500),
 (33, '2022-09-01 00:00:00+02', 574580),
 (33, '2022-10-01 00:00:00+02', 524110),
 (33, '2022-11-01 00:00:00+01', 446490),
 (33, '2022-12-01 00:00:00+01', 442060);
  • Executar l’script d’alba i posta per a generar totes les albes i postes dels propers 10 anys

    python -m scripts.sun_events -p Alcolea -s 2021-12-13 -e 2021-12-14
    
  • Afegir les dades al diccionari de solargis (Veure com aqui). Quan deixi de ser hard-coded ja no caldrà aquest pas.

Afegir planta al script de SolarGIS

S'ha de modificar el codi de plantmonitor per incloure la nova planta. Podeu trobar un exemple de modificacions github

Amb la MR aprovada i fusionada, s'ha de fer git pull des de el servidor de producció i reiniciar el servei de plantmonitor.

ssh someone@somewhere.lan
source /home/<someone>/Envs/plantmonitor/bin/activate
cd /home/<someone>/somenergia/plantmonitor
git pull
python -m scripts.solargis --help
python -m scripts.solargis [OPTIONS] DBAPI SOLARGIS_API_KEY FROM_DATE TO_DATE [PLANT_IDS]
sudo supervisorctl restart plantmonitor

Aqui, someone és el nom de l'usuari que té accés a somewhere.lan, i PLANT_IDS són els ids de les plantes que vau afegir a l'API de SolarGIS amb la PR anterior. Demaneu accés a somewhere.lan a l'equip de dades.

La API de SolarGIS requereix un token d'accés i es crida remotament amb supervisord, amb codi al repositori de plantmonitor.

L'API de SolarGIS és SOAP

L'API es del tipus SOAP i no REST. És a dir, demana un XML amb les dades de la planta. Podeu trobar informació sobre com cridar-la a la seva documentació d'usuari.

Dades requerides per aparells

Afegir Comptadors a l'ERP

Les lectures a l'ERP són necessaries mentre metelogica faci servir les lectures de comptadors que plantmonitor copia de l'ERP. També són necessàries per al generationkwh. Per això cal agafar les dades de Modelos contadores_inversores_SCADAS i afegir-les a l'erp Infrastructura -> Registradors -> tots els registradors.

  • ip lan, port, porta d’enllaç i contrasenya
  • telèfon, si s'escau

Serveis de SomEnergia addicionals

nagios

Preguntar a Gestió d'Actius si encara fan servir el nagios. Si si, afegir-la al nagios o modificar-la en cas de canvi d’ip pública

opendata

Cal afegir la info de la nova planta a taula literal que es fa servir a somenergia-opendata/som_opendata/queries/plantpower.sql. Un cop aquesta info estigui a plantmonitor, l’opendata podrà agafar-la directament per sql i no caldrà fer aquest pas.

generationkwh

Si la planta està inclosa al generation, és important afegir-la a l’erp abans de la mitja nit del dia de posada a producció. Si no, cal descartar càlculs de drets del generation per a que incloguin els resultats. Si, a més, els drets s’han començat a gastar (15 dies de marge de facturació), cal reperfilar els nous drets amb la producció afegida perquè no superi els drets ja atorgats.

La nova planta es crea fent servir l’script a somenergia-generationkwh/scripts/genkwh_plants.py

Un exemple complert de com afegir una planta amb aquest script el podeu trobar a https://github.com/Som-Energia/somenergia-generationkwh/blob/master/scripts/genkwh_migrate_plantmeter_1_7_0_newplant.sh

Es recomana provar primer a un ERP de testing o local, i, després aplicar-ho a producció.

Reperfilació de dades

Un exemple d’script de migració en la que vam haver de reperfilar: https://github.com/Som-Energia/somenergia-generationkwh/blob/master/scripts/genkwh_migrate_plantmeter_1_7_2_fontivsolarfix.sh