Scheijgrond.com

Ik Google mijzelf

Update Februari 2025

KQL en Tracked Properties

De tracked properties in logic apps zijn fantastisch voor het loggen en bijhouden van relevante gegevens voor functioneel beheer om te tonen in workbooks. Het kan nog wel wat gedoe zijn om alle tracked properties op naam te tonen waar ieder in een eigen kolom staat. Met onderstaande query is het mogelijk om iedere tracked property zijn eigen kolom te geven zonder dat de properties op naam bekend moeten zijn bij het schrijven van de query.

let trackedProps = requests
| where cloud_RoleName =~ LogicApp
| extend category = tostring(customDimensions["Category"])
| where category == "Workflow.Operations.Actions" and operation_Name=~ WorkflowName
| extend actionType=customDimensions["actionType"], trackedProperties=customDimensions["trackedProperties"]
| where not(isnull(trackedProperties) or trackedProperties=='""')
| extend tp = parse_json(tostring(trackedProperties))
| where tp <> "" 
| mv-apply tp on(
extend key = tostring(bag_keys(tp)[0])
 | project key, value = tp[key])
 | mv-expand value
;
let newcolProperties = trackedProps
| evaluate pivot(key, any(value))
;

Homelab

Oplaadpalen sensor in HomeAssistant

Een van mijn volgende projecten is het tonen van de status van de oplaadpalen in de buurt in HomeAssistant zodat ik in de gaten kan houden als ze beschikbaar zijn om mijn auto op te kunnen laden. Dat is helaas nog niet gelukt.

De site oplaadpalen.nl gebruikt iedere dag een nieuwe external_reference dus het ophalen van de status van de oplaadpalen moet in twee stappen. Eerst de external reference bepalen op basis van locatie en dan de status van de laadpalen.

In Home Assistant kan je een nieuwe sensor op basis van een rest aanroep aanmaken, maar de output hiervan vervolgens hergebruiken bij een andere sensor is me nog niet gelukt.

sensor:
  - platform: rest
    name: Laadpalen Kopenhagen9 external Reference attr
    resource: "https://www.oplaadpalen.nl/wms?REQUEST=GetFeatureInfo&SERVICE=WMS&SRS=EPSG%3A4326&VERSION=1.1.1&INFO_FORMAT=application%2Fjson&BBOX=4.506036043167115%2C51.849193702528545%2C4.512140750885011%2C51.85193080189687&HEIGHT=826&WIDTH=1138&LAYERS=eco%3Arta_and_clusters&QUERY_LAYERS=eco%3Arta_and_clusters&X=569&Y=393"
    method: GET
    value_template: "OK"
    json_attributes_path: $.features[0].properties
    json_attributes:
      - external_reference
    scan_interval: 3600
    unit_of_measurement: ""
  - platform: rest
    name: Laadpalen Kopenhagen9 attr
    resource: "https://oplaadpalen.nl/api/map/location/{{ state_attr('sensor.laadpalen_kopenhagen9_external_reference_attr', 'external_reference') }}"
    value_template: >
      {% set statuses = value_json.data.evses | groupby('status') %}
      {%- for status, items in statuses -%}
        {{ status }}: {{ items | map(attribute='connectors') | map('length') | sum }}
        {%- if not loop.last %}, {% endif %}
      {%- endfor -%}
    scan_interval: 360