@Tsuranim ik zal morgen eens mijn setup posten, dan kan je daarmee aan de slag. Hier in elk geval al de YAML voor de prijzen ophalen wat je in configuration.yaml kan plakken
code:
En bij de sensors de sensors1
2
3
4
5
6
7
8
9
10
11
12
13
| # This section handles the actual "fetching" of the data
command_line:
- sensor:
name: "Tennet Imbalance Prices"
unique_id: tennet_prices_master
command: >
curl -s 'https://services.tenergy.nl/public.aspx/actualimbalanceprices' | python3 -c "import sys,re,html,json; h=sys.stdin.read(); m=re.search(r'(<table[^>]*>.*?Feed.*?Take.*?</table>)', h, flags=re.S|re.I); t=m.group(1) if m else h; clean=lambda s: re.sub(r'\s+',' ',re.sub(r'<[^>]+>',' ',html.unescape(s))).strip(); rows=re.findall(r'<tr[^>]*>.*?</tr>', t, flags=re.S|re.I); num=r'-?\d+(?:[\.,]\d+)?'; data=[[clean(c) for c in re.findall(r'<t[dh][^>]*>(.*?)</t[dh]>', r, flags=re.S|re.I)] for r in rows]; row=next((r for r in data if len(r)>=3 and re.fullmatch(num, r[-1])), None); print(json.dumps({'sell': row[-2].replace(',','.'), 'buy': row[-1].replace(',','.')}) if row else '{}')"
scan_interval: 60
value_template: "{{ value_json.buy if value_json.buy is defined else 'unavailable' }}"
unit_of_measurement: "EUR/MWh"
json_attributes:
- sell
- buy |
code:
Rest komt morgen...
1
2
3
4
5
6
7
8
9
10
11
| # This section creates the "Buy" and "Sell" entities for your ApexCharts
- sensor:
- name: "Tennet Onbalans Prijs koop buy"
unique_id: onbalans_prijs_buy_final
unit_of_measurement: "EUR/MWh"
state: "{{ states('sensor.tennet_imbalance_prices') }}"
- name: "Tennet Onbalans Prijs verkoop sell"
unique_id: onbalans_prijs_sell_final
unit_of_measurement: "EUR/MWh"
state: "{{ state_attr('sensor.tennet_imbalance_prices', 'sell') }}" |