FHEM Forum

FHEM - Energiemanagement und Energieerzeugung => Verbrauchsmessung => Thema gestartet von: ch.eick am 30 Juli 2025, 15:26:34

Titel: HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen
Beitrag von: ch.eick am 30 Juli 2025, 15:26:34
Hallo zusammen,
das Thema kommt bereits in anderen Threads vor, ist jedoch nie weiter voran gegangen.
Ich habe mir erlaubt es nun hier nochmals zu öffnen.

Die nächste Stufe in diesem generischen Device wäre dann die Preisberchnung für die jeweiligen Wiederverkäufer, also aWATTar und Tibber.
Somit könnte man in einem Device generisch auf epexspot für die PV-Anlagen Betreiber reagieren und zusätzlich die Preise für die Wiederverkäufer abbilden.
Äquivalent zu meinen beiden Beispielen von EVU_aWATTar_connect und EVU_Tibber_connect würde man dann noch die max/min Preise und Trigger Fenster mit abbilden können.

Andere Threads:
Tibber & Tibber Pulse (https://forum.fhem.de/index.php?topic=130407.0)
aWATTar in Deutschland verfügbar (https://forum.fhem.de/index.php?topic=98991.0)


Um bei der Strompreis Frage direkt die Börsenpreise zu bekommen, ohne sich an Tibber oder aWATTar zu hängen möchte ich mal diesen Link ins Rennen werfen.
epexspot Part of EEX Group (https://www.epexspot.com/en/market-results?market_area=DE-LU&auction=MRC&trading_date=2025-07-30&delivery_date=2025-07-31&underlying_year=&modality=Auction&sub_modality=DayAhead&technology=&data_mode=table&period=&production_period=)
Das sieht für mich nach der Quelle der Börsenpreise aus.
Mit etwas HTTPMOD und regex bekommt man dort die Basis Preise für den aktuellen und den nächsten Tag.

Aufgerufen mit dem aktuellen Datum und nochmals mit dem Datum des Folgetages

delivery_date=2025-07-30
https://www.epexspot.com/en/market-results?market_area=DE-LU&auction=MRC&trading_date=2025-07-29&delivery_date=2025-07-30&underlying_year=&modality=Auction&sub_modality=DayAhead&technology=&data_mode=table&period=&production_period=


^.*<td>(\d+\.\d\d)<\/td>\n.*<\/tr>Ein Ausschnitt der Seite
<div class="custom-tables 60min">
    <div class="fixed-column js-table-times">
        <span class="fixed-head-column">Hours</span>
        <ul>
                                           
                                                            <li class="child  no-children"><a href="#">00 - 01</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">01 - 02</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">02 - 03</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">03 - 04</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">04 - 05</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">05 - 06</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">06 - 07</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">07 - 08</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">08 - 09</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">09 - 10</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">10 - 11</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">11 - 12</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">12 - 13</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">13 - 14</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">14 - 15</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">15 - 16</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">16 - 17</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">17 - 18</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">18 - 19</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">19 - 20</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">20 - 21</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">21 - 22</a></li>
                                                                               
                                                            <li class="child  no-children"><a href="#">22 - 23</a></li>
                                                                               
                                                            <li class="child impair no-children"><a href="#">23 - 24</a></li>
                                                        </ul>
    </div>
    <div class="js-table-values">
                    <table data-head="31.07.25" class="table-01 table-length-1">
                <thead>
               
                <tr class="white">
                    <th style="height:30px;" colspan="8"></th>
                </tr>

                                                                            <tr>
                                                            <th><div class="msk">Index</span></div></th>
                                                            <th><div class="msk">Price <br /><span>(€/MWh)</span></div></th>
                                                    </tr>
                                                                <tr class="flex-row white">
                            <th>Baseload</th>
                            <th>
                                <div class="flex day-1">
                                    <span>85.52</span>
                                </div>
                            </th>
                        </tr>
                                            <tr class="flex-row ">
                            <th>Peakload</th>
                            <th>
                                <div class="flex day-2">
                                    <span>74.36</span>
                                </div>
                            </th>
                        </tr>
                   
                    <tr class="white">
                        <th style="height:30px;" colspan="8"></th>
                    </tr>
                               
                <tr>
                                            <th>Buy Volume<br /><span>(MWh)</span></th>
                                            <th>Sell Volume<br /><span>(MWh)</span></th>
                                            <th>Volume<br /><span>(MWh)</span></th>
                                            <th>Price<br /><span>(€/MWh)</span></th>
                                    </tr>
                </thead>
                <tbody>
                                    <tr class="child ">
                                                                                    <td>23,099.6</td>
                                                            <td>18,950.4</td>
                                                            <td>23,099.6</td>
                                                            <td>88.93</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>24,126.0</td>
                                                            <td>19,595.7</td>
                                                            <td>24,126.0</td>
                                                            <td>82.11</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>23,931.6</td>
                                                            <td>20,025.3</td>
                                                            <td>23,931.6</td>
                                                            <td>79.00</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>23,874.7</td>
                                                            <td>19,953.6</td>
                                                            <td>23,874.7</td>
                                                            <td>77.27</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>24,133.1</td>
                                                            <td>19,459.7</td>
                                                            <td>24,133.1</td>
                                                            <td>78.51</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>24,589.7</td>
                                                            <td>19,024.1</td>
                                                            <td>24,589.7</td>
                                                            <td>85.43</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>25,273.5</td>
                                                            <td>18,546.6</td>
                                                            <td>25,273.5</td>
                                                            <td>98.14</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>26,838.6</td>
                                                            <td>20,687.2</td>
                                                            <td>26,838.6</td>
                                                            <td>100.46</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>29,825.2</td>
                                                            <td>22,822.4</td>
                                                            <td>29,825.2</td>
                                                            <td>94.09</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>31,294.3</td>
                                                            <td>25,892.7</td>
                                                            <td>31,294.3</td>
                                                            <td>88.91</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>32,706.4</td>
                                                            <td>28,762.1</td>
                                                            <td>32,706.4</td>
                                                            <td>74.17</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>35,475.1</td>
                                                            <td>31,458.2</td>
                                                            <td>35,475.1</td>
                                                            <td>70.04</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>35,768.2</td>
                                                            <td>33,463.3</td>
                                                            <td>35,768.2</td>
                                                            <td>61.15</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>35,079.4</td>
                                                            <td>34,255.8</td>
                                                            <td>35,079.4</td>
                                                            <td>48.05</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>34,328.9</td>
                                                            <td>34,332.6</td>
                                                            <td>34,332.6</td>
                                                            <td>35.06</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>34,064.1</td>
                                                            <td>33,364.6</td>
                                                            <td>34,064.1</td>
                                                            <td>55.07</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>33,072.7</td>
                                                            <td>30,866.0</td>
                                                            <td>33,072.7</td>
                                                            <td>72.43</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>31,141.2</td>
                                                            <td>27,142.0</td>
                                                            <td>31,141.2</td>
                                                            <td>84.56</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>30,058.3</td>
                                                            <td>24,311.1</td>
                                                            <td>30,058.3</td>
                                                            <td>96.90</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>28,776.4</td>
                                                            <td>21,491.7</td>
                                                            <td>28,776.4</td>
                                                            <td>111.92</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>27,862.8</td>
                                                            <td>20,213.6</td>
                                                            <td>27,862.8</td>
                                                            <td>128.27</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>27,061.7</td>
                                                            <td>19,947.4</td>
                                                            <td>27,061.7</td>
                                                            <td>125.11</td>
                                                                        </tr>
                                    <tr class="child ">
                                                                                    <td>24,824.9</td>
                                                            <td>19,010.5</td>
                                                            <td>24,824.9</td>
                                                            <td>114.16</td>
                                                                        </tr>
                                    <tr class="child impair">
                                                                                    <td>23,882.1</td>
                                                            <td>18,008.9</td>
                                                            <td>23,882.1</td>
                                                            <td>102.79</td>
                                                                        </tr>
                                </tbody>
            </table>
            </div>
</div>
       
            <div class="footnote-text-block">
        We would like to inform you that we expect a display issue on our website, which may impact the Market Results display for all instruments on the Long Clock Change day. Therefore, we highly recommend referring to the Market Results as published on the Market Data sftp server.
    </div>

Und man bekommt 24 readings mit dem Preis in €/MWh zurück.

Mit der Abfrage für Intraday bekommt man ebenso die 15 Minuten Preise für den aktuellen Tag, jedoch nicht für den nächsten.
https://www.epexspot.com/en/market-results?market_area=DE-LU&auction=IDA1&trading_date=2025-07-30&delivery_date=2025-07-30&underlying_year=&modality=Auction&sub_modality=Intraday&technology=&data_mode=table&period=&production_period=

VG  Christian
Titel: Aw: HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen
Beitrag von: Wolle02 am 31 Juli 2025, 12:20:43
Ich habe den Code von hier genommen: https://forum.fhem.de/index.php?msg=1336809 (https://forum.fhem.de/index.php?msg=1336809)

Ich bekomme dann Readings mit den Preisen für jede Stunde.

energy.todayHours.12.hour 12 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.0.priceExcludingVat 0.089 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.0.priceIncludingVat 0.1058 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.0.type taxes 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.1.priceExcludingVat 0.0612 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.1.priceIncludingVat 0.0728 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.1.type power 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.2.priceExcludingVat 0.11 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.2.priceIncludingVat 0.1309 2025-07-31 07:00:10
energy.todayHours.12.priceComponents.2.type grid 2025-07-31 07:00:10
energy.todayHours.12.priceExcludingVat 0.2601 2025-07-31 07:00:10
energy.todayHours.12.priceIncludingVat 0.3095 2025-07-31 07:00:10

Preiskomponente 0 sind wohl die Steuern.
Preiskomponente 2 sind wohl die Netzentgelte
Preiskomponente 1 sind scheinbar die reinen Strompreise an der EEX in €/kWh inklusive und exklusive der Mehrwertsteuer.

Ich nehm dann für die Weiterverarbeitung der Preis "including VAT".
Titel: Aw: HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen
Beitrag von: ch.eick am 31 Juli 2025, 17:19:46
Zitat von: Wolle02 am 31 Juli 2025, 12:20:43Ich habe den Code von hier genommen: https://forum.fhem.de/index.php?msg=1336809 (https://forum.fhem.de/index.php?msg=1336809)
Das wäre die Afrage von Tibber und nicht die Quelle für die epexspot Preise.
Hier würde ich gerne die Quelle der Daten abfragen und die Preise von Tibber und aWATTar dann als zusatz mit den Endpreisen berechnen wollen.
Also am Besten nur ein Device für den Börsenpreise und die Wiedeverkäufer dann zum Auswählen.
Titel: Aw: HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen
Beitrag von: Wolle02 am 31 Juli 2025, 18:15:31
Zitat von: ch.eick am 31 Juli 2025, 17:19:46Das wäre die Afrage von Tibber und nicht die Quelle für die epexspot Preise.

Bist du sicher?
Wenn ich deinen Link von oben nehme:
https://www.epexspot.com/en/market-results?market_area=DE-LU&auction=MRC&trading_date=2025-07-30&delivery_date=2025-07-31&underlying_year=&modality=Auction&sub_modality=DayAhead&technology=&data_mode=table&period=&production_period=
dann wird mir für die Stunde 12 (also 12-13 Uhr) ein Preis von 61,15 €/MWh angezeigt; also 0,06115 €/kWh.
Das entspricht nach Rundung exakt meinem Reading für die Stunde 12.
energy.todayHours.12.priceComponents.1.priceExcludingVat 0.0612 2025-07-31 07:00:10

Was verstehe ich grade nicht?
Titel: Aw: HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen
Beitrag von: ch.eick am 01 August 2025, 11:40:18
Zitat von: Wolle02 am 31 Juli 2025, 18:15:31
Zitat von: ch.eick am 31 Juli 2025, 17:19:46Das wäre die Afrage von Tibber und nicht die Quelle für die epexspot Preise.
Was verstehe ich grade nicht?
In Deiner Abfrage gehst Du auf Tibber (https://tibber.com/de/api/lookup/price-overview?postalCode=12345), die sich letztendlich die Preise auch von epexspot holen. Leider hat jeder Wiederverkäufer wie Tibber oder aWATTar so seine Eigenheiten und die volle Leistung bekommt man erst als Kunde. Das ist der Grund, warum ich gerne die Preise direkt von der Quelle beziehen und die Wiederverkäufer als zusätzliche Berechnung ins Device aufnehme möchte. EVUs hat man auch schon kommen und gehen sehen.
Für die reinen PV-Anlagen Betreiber ist der epexspot Preis auch ohne EVU mit Stunden Tarif relevant.
Momentan frage ich auch mit meinem EVU_Tibber_connect (https://svn.fhem.de/fhem/trunk/fhem/contrib/ch.eick/Stromb%c3%b6rse/EVU_Tibber/) ab, jedoch bin ich kein Kunde und das rechnet sich auch seit Jahren nicht für mich.

VG   Christian