create or replace view pv_power_v as
  select time, 
         cast(values->'PowerActive'->>'value' as float) as power,
         values->'Status'->>'status' as status,
         device
    from measurements
    where application = 'PV';

create or replace view pv_total_import_v as
  select time,
         cast(values->'Power'->>'value' as float) as power,
         device
    from measurements
    where application = 'Power' and
          device = 'Total' and
          attributes->>'Status' = 'Ok';

create or replace view power_v as
  select time,
         cast(values->'Power'->>'value' as float) as power,
         device
    from measurements
    where application = 'Power' and
          attributes->>'Status' = 'Ok';

create or replace view temperature_heating_v as
  select time,
         cast(values->'Value'->>'value' as float) as temperature,
         device
    from measurements
    where application = 'Temperature Heating';

create or replace view gas_v as
  select time,
         cast(values->'Volume'->>'value' as float) as volume,
         device
    from measurements
    where application = 'Gas' and
          attributes->>'Status' = 'Ok';

create or replace view temperature_v as
  select time,
         cast(values->'Value'->>'value' as float) as temperature,
         device
    from measurements
    where application in ('Temperature Multisensor', 'Temperature Shelly Plus HT');

create or replace view temperature2_v as
  select time,
         cast(values->'Value'->>'value' as float) as temperature,
         device
    from measurements
    where application = 'Temperature Wago';

create or replace view humidity_v as
  select time,
         cast(values->'Value'->>'value' as float) as humidity,
         device
    from measurements
    where application in ('Humidity Multisensor');

create or replace view soil_v as
  select time,
         cast(values->'Water'->>'value' as float) as water,
         cast(values->'Conductance'->>'value' as float) as conductance,
         cast(values->'Temperature'->>'value' as float) as temperature,
         device
    from measurements
    where application = 'de-hottis-app01' and attributes->>'DeviceType' = 'dragino-lse01';

create or replace view co2_v as
  select time,
         cast(m.values->'CO2concentration'->>'value' as float) as co2concentration,
         cast(m.values->'Humidity'->>'value' as float) as humidity,
         cast(m.values->'Temperature'->>'value' as float) as temperature,
         m.device as device,
         d.attributes->>'Label' as label 
    from measurements m, devices d
    where m.application = 'de-hottis-app01' and 
          m.attributes->>'DeviceType' = 'hottis-scd30' and
          m.device = d.label;

create or replace view locative_v as
  select time,
         device as person,
         values->'Location'->>'value' as location,
         values->'Trigger'->>'value' as direction
    from measurements
    where application = 'Locative';

create or replace view router_v as
  select time,
         device,
         cast(values->'wan-in'->>'value'  as int) as wanInOctetsPerSeconds,
         cast(values->'wan-out'->>'value'  as int) as wanOutOctetsPerSeconds
    from measurements
    where application = 'SNMP' and device = '172.16.3.1';
