HTTPMOD: Aktueller Strompreis EEX Strombörse Leipzig abfragen

Begonnen von ch.eick, 30 Juli 2025, 15:26:34

Vorheriges Thema - Nächstes Thema

ch.eick

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
aWATTar in Deutschland verfügbar


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
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
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Wolle02

Ich habe den Code von hier genommen: 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".

ch.eick

Zitat von: Wolle02 am 31 Juli 2025, 12:20:43Ich habe den Code von hier genommen: 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.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Wolle02

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?