diff --git a/dbt_jardiner/models/jardiner/intermediate/solar_events_ephem/int_plantmonitordb_solarevent__generous.sql b/dbt_jardiner/models/jardiner/intermediate/solar_events_ephem/int_plantmonitordb_solarevent__generous.sql index fbab8e2d..bfd25351 100644 --- a/dbt_jardiner/models/jardiner/intermediate/solar_events_ephem/int_plantmonitordb_solarevent__generous.sql +++ b/dbt_jardiner/models/jardiner/intermediate/solar_events_ephem/int_plantmonitordb_solarevent__generous.sql @@ -2,13 +2,13 @@ select - plant_uuid, - day, - sunrise_real, - sunset_real, - sunrise_generous, - sunset_generous, - solar_hours_real, - solar_hours_minimum -from {{ ref("raw_plantmonitordb_solarevent__generous") }} -left join {{ ref("raw_plantmonitor_plants") }} using(plant_id) \ No newline at end of file + plantmonitor_plant.plant_uuid, + solarevent.day, + solarevent.sunrise_real, + solarevent.sunset_real, + solarevent.sunrise_generous, + solarevent.sunset_generous, + solarevent.solar_hours_real, + solarevent.solar_hours_minimum +from {{ ref("raw_plantmonitordb_solarevent__generous") }} as solarevent +left join {{ ref("raw_plantmonitor_plants") }} as plantmonitor_plant using(plant_id) diff --git a/dbt_jardiner/models/jardiner/raw/plantmonitor_erp/raw_plantmonitor_plants.sql b/dbt_jardiner/models/jardiner/raw/plantmonitor_erp/raw_plantmonitor_plants.sql index 196464b9..d94549cd 100644 --- a/dbt_jardiner/models/jardiner/raw/plantmonitor_erp/raw_plantmonitor_plants.sql +++ b/dbt_jardiner/models/jardiner/raw/plantmonitor_erp/raw_plantmonitor_plants.sql @@ -1,10 +1,10 @@ {{ config(materialized='view') }} -SELECT +select plant.id as plant_id, plant.name as plant_name, plant.codename as plant_codename, plant.description as plant_description, - device_uuid as plant_uuid -FROM {{source('plantmonitor_legacy','plant')}} + plant.device_uuid as plant_uuid +from {{ source('plantmonitor_jardiner','plant') }} as plant where plant.description != 'SomRenovables' diff --git a/dbt_jardiner/models/legacy/alarms/alarm_inverter_zero_power_at_daylight.sql b/dbt_jardiner/models/legacy/alarms/alarm_inverter_zero_power_at_daylight.sql index 8ee877c0..9d662a3c 100644 --- a/dbt_jardiner/models/legacy/alarms/alarm_inverter_zero_power_at_daylight.sql +++ b/dbt_jardiner/models/legacy/alarms/alarm_inverter_zero_power_at_daylight.sql @@ -14,7 +14,7 @@ with sub_ir as ( solar.sunrise_generous as daylight_start, solar.sunset_generous as daylight_end FROM {{ref('inverterregistry_clean')}} as ir - left join {{ref('raw_plantmonitordb_solarevent__generous')}} as solar on ir.time::date = solar.day and ir.plant_id = solar.plant_id + left join {{ref('plantmonitordb_solarevent__generous')}} as solar on ir.time::date = solar.day and ir.plant_id = solar.plant_id window w as (PARTITION BY ir.inverter_id ORDER By time ROWS BETWEEN 11 PRECEDING AND current row) ) @@ -32,4 +32,4 @@ select from sub_ir -{# TODO A from-to table can be made downstream if they want it #} \ No newline at end of file +{# TODO A from-to table can be made downstream if they want it #} diff --git a/dbt_jardiner/models/legacy/alerts/alert_inverter_zero_power_at_daylight.sql b/dbt_jardiner/models/legacy/alerts/alert_inverter_zero_power_at_daylight.sql index 0306ba14..6ecb598a 100644 --- a/dbt_jardiner/models/legacy/alerts/alert_inverter_zero_power_at_daylight.sql +++ b/dbt_jardiner/models/legacy/alerts/alert_inverter_zero_power_at_daylight.sql @@ -14,7 +14,7 @@ with sub_ir as ( solar.sunrise_generous as daylight_start, solar.sunset_generous as daylight_end FROM {{ref('alert_inverterregistry_clean_last_hour')}} as ir - left join {{ref('raw_plantmonitordb_solarevent__generous')}} as solar on ir.time::date = solar.day and ir.plant_id = solar.plant_id + left join {{ref('plantmonitordb_solarevent__generous')}} as solar on ir.time::date = solar.day and ir.plant_id = solar.plant_id window w as (PARTITION BY ir.inverter_id ORDER By time ROWS BETWEEN 11 PRECEDING AND current row) ), sub_alarm as ( select @@ -42,4 +42,4 @@ where (time,plant_id, inverter_name) in from sub_alarm group by plant_id, inverter_name ) -- get last row for each plant and deivce -order by plant_id, inverter_name desc \ No newline at end of file +order by plant_id, inverter_name desc diff --git a/dbt_jardiner/models/legacy/alerts/alert_meter_zero_energy.sql b/dbt_jardiner/models/legacy/alerts/alert_meter_zero_energy.sql index 0c850360..ab9b4189 100644 --- a/dbt_jardiner/models/legacy/alerts/alert_meter_zero_energy.sql +++ b/dbt_jardiner/models/legacy/alerts/alert_meter_zero_energy.sql @@ -36,7 +36,7 @@ meterregistry_daylight as ( solar.sunset_generous as daylight_end from meterregistry_last_readings as mr left join {{ ref('meters_with_thresholds') }} as m on m.meter_id = mr.meter_id - left join {{ ref('raw_plantmonitordb_solarevent__generous') }} as solar on mr.time::date = solar.day and m.plant_id = solar.plant_id + left join {{ ref('plantmonitordb_solarevent__generous') }} as solar on mr.time::date = solar.day and m.plant_id = solar.plant_id ), meter_registry_hourly_raw as ( @@ -117,4 +117,4 @@ select alarm_zero_energy as is_alarmed FROM meter_registry_group as mrg inner join {{ ref('som_plants') }} as plants using(plant_id) -left join {{ ref('alert_meter_newest_reading') }} as nr on nr.meter_id = mrg.meter_id \ No newline at end of file +left join {{ ref('alert_meter_newest_reading') }} as nr on nr.meter_id = mrg.meter_id diff --git a/dbt_jardiner/models/legacy/alerts/stage/alert_meter_zero_energy_by_now.sql b/dbt_jardiner/models/legacy/alerts/stage/alert_meter_zero_energy_by_now.sql index be06d227..8d5dc3d8 100644 --- a/dbt_jardiner/models/legacy/alerts/stage/alert_meter_zero_energy_by_now.sql +++ b/dbt_jardiner/models/legacy/alerts/stage/alert_meter_zero_energy_by_now.sql @@ -23,7 +23,7 @@ meterregistry_daylight as ( solar.sunset_generous as daylight_end from meterregistry_last_readings as mr left join {{ ref('meters_with_thresholds') }} as m on m.meter_id = mr.meter_id - left join {{ ref('raw_plantmonitordb_solarevent__generous') }} as solar on mr.time::date = solar.day and m.plant_id = solar.plant_id + left join {{ ref('plantmonitordb_solarevent__generous') }} as solar on mr.time::date = solar.day and m.plant_id = solar.plant_id ), meter_registry_hourly_raw as ( @@ -96,4 +96,4 @@ select END as is_alarmed FROM meter_registry_group as mrg inner join {{ ref('som_plants') }} as plants using(plant_id) -left join {{ ref('alert_meter_newest_reading') }} as nr on nr.meter_id = mrg.meter_id \ No newline at end of file +left join {{ ref('alert_meter_newest_reading') }} as nr on nr.meter_id = mrg.meter_id diff --git a/dbt_jardiner/models/legacy/datasets/plant_production_hourly.sql b/dbt_jardiner/models/legacy/datasets/plant_production_hourly.sql index e5a9cfc2..9c32e56d 100644 --- a/dbt_jardiner/models/legacy/datasets/plant_production_hourly.sql +++ b/dbt_jardiner/models/legacy/datasets/plant_production_hourly.sql @@ -32,7 +32,7 @@ with on satellite_readings.plant_id = spine.plant_id and satellite_readings.start_hour = spine.start_hour left join - {{ ref("raw_plantmonitordb_solarevent__generous") }} as solar_events + {{ ref("plantmonitordb_solarevent__generous") }} as solar_events on solar_events.plant_id = spine.plant_id and solar_events.day = spine.start_hour::date left join diff --git a/dbt_jardiner/models/legacy/operational/external_data/_raw_meteologica__sources.yaml b/dbt_jardiner/models/legacy/operational/external_data/_raw_meteologica__sources.yaml new file mode 100644 index 00000000..8858821c --- /dev/null +++ b/dbt_jardiner/models/legacy/operational/external_data/_raw_meteologica__sources.yaml @@ -0,0 +1,8 @@ +version: 2 + +sources: + - name: meteologica_legacy + schema: public + tables: + - name: forecast + - name: forecastmetadata diff --git a/dbt_jardiner/models/legacy/operational/external_data/_raw_solar_events_ephem__sources.yaml b/dbt_jardiner/models/legacy/operational/external_data/_raw_solar_events_ephem__sources.yaml new file mode 100644 index 00000000..a57144f6 --- /dev/null +++ b/dbt_jardiner/models/legacy/operational/external_data/_raw_solar_events_ephem__sources.yaml @@ -0,0 +1,12 @@ +version: 2 + +sources: + - name: plantmonitor_legacy + schema: public + tables: + - name: solarevent + columns: + - name: id + - name: plant + - name: sunrise + - name: sunset diff --git a/dbt_jardiner/models/legacy/operational/external_data/energy_forecasts__denormalized_from_plantmonitordb.sql b/dbt_jardiner/models/legacy/operational/external_data/energy_forecasts__denormalized_from_plantmonitordb.sql new file mode 100644 index 00000000..0368087c --- /dev/null +++ b/dbt_jardiner/models/legacy/operational/external_data/energy_forecasts__denormalized_from_plantmonitordb.sql @@ -0,0 +1,29 @@ +{{ config( + materialized = 'view' +) }} + +WITH forecast_denormalized AS ( + + SELECT + forecast.time AS "time", + forecastmetadata.plant AS plant_id, + forecastmetadata.forecastdate AS forecastdate, + ROUND( + forecast.percentil50 / 1000.0, + 2 + ) AS energy_kwh + FROM + {{ source( + 'meteologica_legacy', + 'forecast' + ) }} + LEFT JOIN {{ source( + 'meteologica_legacy', + 'forecastmetadata' + ) }} + ON forecastmetadata.id = forecast.forecastmetadata +) +SELECT + * +FROM + forecast_denormalized diff --git a/dbt_jardiner/models/legacy/operational/external_data/forecasts_hourly.sql b/dbt_jardiner/models/legacy/operational/external_data/forecasts_hourly.sql index ac03ed8a..aa95b583 100644 --- a/dbt_jardiner/models/legacy/operational/external_data/forecasts_hourly.sql +++ b/dbt_jardiner/models/legacy/operational/external_data/forecasts_hourly.sql @@ -16,7 +16,7 @@ FROM ORDER BY forecastdate DESC) AS ranking FROM - {{ ref('raw_energy_forecasts__denormalized_from_plantmonitordb') }} + {{ ref('energy_forecasts__denormalized_from_plantmonitordb') }} ) forecast WHERE ranking = 1 diff --git a/dbt_jardiner/models/legacy/operational/external_data/plantmonitordb_solarevent__generous.sql b/dbt_jardiner/models/legacy/operational/external_data/plantmonitordb_solarevent__generous.sql new file mode 100644 index 00000000..bd975f47 --- /dev/null +++ b/dbt_jardiner/models/legacy/operational/external_data/plantmonitordb_solarevent__generous.sql @@ -0,0 +1,13 @@ +{{ config(materialized='view') }} + + +select + plant as plant_id, + date_trunc('day', sunrise) as day, + sunrise as sunrise_real, + sunset as sunset_real, + sunrise + interval '2 hours' as sunrise_generous, + sunset - interval '2 hours' as sunset_generous, + round(EXTRACT(EPOCH FROM (sunset - sunrise))::numeric/3600,2) as solar_hours_real, + round(EXTRACT(EPOCH FROM (sunset - interval '2 hours') - (sunrise + interval '2 hours'))::numeric/3600,2) as solar_hours_minimum +from {{source('plantmonitor_legacy', 'solarevent')}}