Strompreise von Nordpool und Sunny Island

Begonnen von privat58, 21 Mai 2022, 14:46:17

Vorheriges Thema - Nächstes Thema

privat58

Hallo,
da ich nur noch eine Strompreisbindung bis Ende des Jahres habe, bin ich am überlegen das ganze auf stündliche Ablesung umzustellen.
Eine PV Anlage mit SMA Wechselrichter und eine 12kWh Batterie an einem Sunny Island ist vorhanden.
Der Gedanke geht dahin, die stündlichen Preise von Nordpool zu nehmen und den Sunny Island per Modbus dazu zu bringen, das er in den billigeren Nachtstunden die Batterie lädt und in den teuren Tagstunden "dagegen" hält.
Nordpool stellt über eine API die Strompreise für viele Länder bereit, auch für Deutschland.
Ich denke mal, das ich nicht der Einzige bin, der sich darüber Gedanken macht und würde hiermit gern Eure Gedanken dazu lesen.
Danke

ch.eick

Zitat von: privat58 am 21 Mai 2022, 14:46:17
Hallo,
da ich nur noch eine Strompreisbindung bis Ende des Jahres habe, bin ich am überlegen das ganze auf stündliche Ablesung umzustellen.
Eine PV Anlage mit SMA Wechselrichter und eine 12kWh Batterie an einem Sunny Island ist vorhanden.
Der Gedanke geht dahin, die stündlichen Preise von Nordpool zu nehmen und den Sunny Island per Modbus dazu zu bringen, das er in den billigeren Nachtstunden die Batterie lädt und in den teuren Tagstunden "dagegen" hält.
Nordpool stellt über eine API die Strompreise für viele Länder bereit, auch für Deutschland.
Ich denke mal, das ich nicht der Einzige bin, der sich darüber Gedanken macht und würde hiermit gern Eure Gedanken dazu lesen.
Danke
Hallo,
mit den Steuerungsmöglichkeiten, die ich für Kostal implementiert habe wäre das denkbar.
Für die Schweiz habe ich auch eine Tarif Steuerung drin, bei der der Speicher im Winter zum günstigen Nachttarif gesperrt wird und zum teueren Tagesttarif zum entladen aktiviert wird.
Die Steuerung erfolgt über Zeiten, die man dynamisch überschreiben kann.
Das Laden des Speichers aus dem Netz ist dort jedoch verboten.

Für Wartungsarbeiten könnte ich den Speicher am Plenticore mit einer Leistungsangabe für DC_Power_Abs zwangs laden/entladen, was dann in Abhängigkeit verfügbarer PV-Lesistung mit dem Rest aus dem Netz erfolgt. In der Nacht wäre das dann natürlich komplett aus dem Netz und sieht dann wie das Laden eines E-Autos im Verbrauch aus.

Für aWATTar gibt es ja auch bereits eine Abfrage Möglichkeit, aus der ich mir einen Trigger für billigen Strom gemacht habe. Leider sind die Basis Kosten so hoch, dass ich bei meinem Stromverbrauch diese nicht raus bekommen kann, geschweige denn einen finanziellen Effekt daraus bekomme. Da wir das E-Auto jetzt auch erst seit November haben wäre es nochmal zu überlegen das mit aWATTar für den Winter zu koppeln. Im Sommer habe ich bei unserer Fahrleistung genügend Überschuss, da wir den Luxus haben Tagsüber zuhause zu sein. Bei Vielfahrern und Pendlern sieht das natürlich anders aus.

Ist Nordpool ein EVU, bei dem man in Deutschland Strom beziehen kann?

Gruß
   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

privat58

Hallo und vielen Dank erst einmal, wenn ich das für Kostal sehe erschlägt es mich erst einmal.  :-[ Hut ab!
Nordpool ist eine Strombörse, die über eine API die stündlichen Preise für viele europäische Länder (z.Bsp. Deutschland und Österreich) zur Verfügung stellt. Soweit ich gelesen habe leider nicht für die Schweiz. Da ich die Preise für Schweden (SE3) brauche ist das die einzige Möglichkeit für mich.
Die Preise sind  im Dezember 2021 in Schweden regelrecht explodiert, so das viele Haushalte sehr oft eine Rechnung über 900,-€ und mehr für diesen Monat hatten.
Es gibt die Möglichkeit in Schweden einen festen kWh Preis mit Bindungszeit, einen beweglichen börsenabhängigen Tagespreis oder eine stündliche Abrechnung (nach Spotpreis +kleinen Aufschlag) zu nutzen. Es ist hier nicht üblich irgendwelche Abschlagszahlungen zu haben, sondern man rechnet spätestens jeden zweiten Monat ab.
Die festen kWh-Preise werden in Zukunft wegfallen und es wird eine Orentierung am Spotpreis angestrebt. Die Zähler werden hier in den nächsten Jahren gewechselt, das die Grundlage dafür gegeben ist.
Die Zeitfenster eines Stromtarifes können im SMA HomeManager fest hinterlegt werden, genau so wie die Batterieladezeiten. Dies ist aber bei den schwankenden Preisen zu unflexibel.
Ein Laden der Batterie in der Nacht ist kein Problem und ein steuern des SunnyIsland per Modbus sollte auch funktionieren.
Bisher habe ich, da ich eine Strompreisbindung habe, den SunnyIsland die Batterie tagsüber per PV laden lassen und in der Nacht hat der SunnyIsland den Verbrauch auf 0 gegen gesteuert. Das war für mich bisher ok. Nun ist es aber besser, den PV-Strom zu den teuren Tagestarifen dem Netz zur Verfügung zu stellen wenn er gebraucht wird und nachts das Netz zu entlasten indem man die Batterie lädt.
Ein E-Auto ist hier leider etwas Utopie, da meine Hausanschlußsicherung 16A hat. :-)
mvh Steffen

ch.eick

Zitat von: privat58 am 22 Mai 2022, 22:59:22
Hallo und vielen Dank erst einmal, wenn ich das für Kostal sehe erschlägt es mich erst einmal.  :-[ Hut ab!
Nordpool ist eine Strombörse, die über eine API die stündlichen Preise für viele europäische Länder (z.Bsp. Deutschland und Österreich) zur Verfügung stellt. Soweit ich gelesen habe leider nicht für die Schweiz. Da ich die Preise für Schweden (SE3) brauche ist das die einzige Möglichkeit für mich.
Die Preise sind  im Dezember 2021 in Schweden regelrecht explodiert, so das viele Haushalte sehr oft eine Rechnung über 900,-€ und mehr für diesen Monat hatten.
Es gibt die Möglichkeit in Schweden einen festen kWh Preis mit Bindungszeit, einen beweglichen börsenabhängigen Tagespreis oder eine stündliche Abrechnung (nach Spotpreis +kleinen Aufschlag) zu nutzen. Es ist hier nicht üblich irgendwelche Abschlagszahlungen zu haben, sondern man rechnet spätestens jeden zweiten Monat ab.
Die festen kWh-Preise werden in Zukunft wegfallen und es wird eine Orentierung am Spotpreis angestrebt. Die Zähler werden hier in den nächsten Jahren gewechselt, das die Grundlage dafür gegeben ist.
Hallo Steffen,
als erstes solltes Du dann alle Informations und Steuerungs Geräte in FHEM anbinden.
An welcher Stelle hast Du denn bedarf für Hilfe?
In der Kostal Speicher Steuerung habe ich darmals noch ein reading als Trigger integriert, das ist jedoch bis jetzt noch nie genutz worden.

Gruß
   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

privat58

#4
Hatte heute die Antwort von Nordpool, Die API war mal kostenlos nutzbar. Heute pro Jahr 900€. Daher ist es für mich nicht nutzbar.
Es gibt eine schwedische Seite, wo ich mir die Daten jetzt mit HTTPMOD hole.
elbruk.se
Internals:
   .Content-Type  text/html; charset=UTF-8
   .LASTSEND  1653337010.81857
   .LastUpdate 1653337010.81696
   .TRIGGERTIME 1653337190.81696
   .bodyCharset UTF-8
   .getList   
   .setList   interval reread:noArg stop:noArg start:noArg clearCookies:noArg upgradeAttributes:noArg storeKeyValue
   .updateRequestHash 1
   BUSY       0
   DEF        https://www.elbruk.se/timpriser-se3-stockholm 180
   FUUID      628b6c3b-f33f-7b6c-b085-e36ad8a253d9e55b
   Interval   180
   MainURL    https://www.elbruk.se/timpriser-se3-stockholm
   ModuleVersion 4.1.12 - 19.4.2022
   NAME       elbruk
   NOTIFYDEV  global
   NR         1195
   NTFY_ORDER 50-elbruk
   STATE      137.91
   TYPE       HTTPMOD
   value     
   .attraggr:
   .attrminint:
   .readingParseList:
     01
     02
     03
     04
     05
     06
     07
     08
     09
     10
     11
     12
     13
     14
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.elbruk.se:443
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.elbruk.se/timpriser-se3-stockholm
     header     
     host       www.elbruk.se
     httpheader HTTP/1.0 200 OK
Connection: close
content-type: text/html; charset=UTF-8
content-encoding: gzip
vary: Accept-Encoding,User-Agent
date: Mon, 23 May 2022 20:16:51 GMT
server: LiteSpeed
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
alt-svc: h3=":443"; ma=2592000, h3-29=":443"; ma=2592000, h3-Q050=":443"; ma=2592000, h3-Q046=":443"; ma=2592000, h3-Q043=":443"; ma=2592000, quic=":443"; ma=2592000; v="43,46"
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /timpriser-se3-stockholm
     protocol   https
     redirects  0
     timeout    2
     url        https://www.elbruk.se/timpriser-se3-stockholm
     sslargs:
   OLDREADINGS:
   QUEUE:
   READINGS:
     2022-05-23 22:16:51   00-01           156.83
     2022-05-23 22:16:51   02-03           122.09
     2022-05-23 22:16:51   04-05           133.00
     2022-05-23 22:16:51   05-06           173.86
     2022-05-23 22:16:51   06-07           182.74
     2022-05-23 22:16:51   07-08           213.71
     2022-05-23 22:16:51   08-09           241.85
     2022-05-23 22:16:51   09-10           232.33
     2022-05-23 22:16:51   10-11           222.88
     2022-05-23 22:16:51   11-12           194.42
     2022-05-23 22:16:51   12-13           190.16
     2022-05-23 22:16:51   13-14           180.56
     2022-05-23 22:16:51   14-15           180.45
     2022-05-23 22:16:51   15-16           178.67
     2022-05-23 22:16:51   16-17           179.83
     2022-05-23 22:16:51   17-18           185.43
     2022-05-23 22:16:51   18-19           186.04
     2022-05-23 22:16:51   19-20           183.56
     2022-05-23 22:16:51   20-21           180.58
     2022-05-23 22:16:51   21-22           177.67
     2022-05-23 22:16:51   22-23           137.91
     2022-05-23 22:16:51   23-24           49.32
     2022-05-23 22:16:51   Tagespreis      172.48
     2022-05-23 22:16:51   aktPreis        137.91
     2022-05-23 22:16:51   maxDiff         192.53
     2022-05-23 22:16:51   maxPreis         241.85
     2022-05-23 22:16:51   minPreis         49.32
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.elbruk.se/timpriser-se3-stockholm
   defptr:
     readingBase:
       00-01      reading
       02-03      reading
       04-05      reading
       05-06      reading
       06-07      reading
       07-08      reading
       08-09      reading
       09-10      reading
       10-11      reading
       11-12      reading
       12-13      reading
       13-14      reading
       14-15      reading
       15-16      reading
       16-17      reading
       17-18      reading
       18-19      reading
       19-20      reading
       20-21      reading
       21-22      reading
       22-23      reading
       23-24      reading
       Tagespreis reading
       aktPreis   reading
       högsta timpris reading
       lägsta timpris reading
       maxDiff    reading
       maxPreis   reading
       minPreis   reading
       reading29  reading
     readingNum:
       00-01      04
       02-03      05
       04-05      07
       05-06      08
       06-07      09
       07-08      10
       08-09      11
       09-10      12
       10-11      13
       11-12      14
       12-13      16
       13-14      17
       14-15      18
       15-16      19
       16-17      20
       17-18      21
       18-19      22
       19-20      23
       20-21      24
       21-22      25
       22-23      26
       23-24      27
       Tagespreis 28
       aktPreis   29
       högsta timpris 01
       lägsta timpris 02
       maxDiff    03
       maxPreis   01
       minPreis   02
       reading29  29
     readingOutdated:
     requestReadings:
       update:
         00-01      reading 04
         02-03      reading 05
         04-05      reading 07
         05-06      reading 08
         06-07      reading 09
         07-08      reading 10
         08-09      reading 11
         09-10      reading 12
         10-11      reading 13
         11-12      reading 14
         12-13      reading 16
         13-14      reading 17
         14-15      reading 18
         15-16      reading 19
         16-17      reading 20
         17-18      reading 21
         18-19      reading 22
         19-20      reading 23
         20-21      reading 24
         21-22      reading 25
         22-23      reading 26
         23-24      reading 27
         Tagespreis reading 28
         aktPreis   reading 29
         högsta timpris reading 01
         lägsta timpris reading 02
         maxDiff    reading 03
         maxPreis   reading 01
         minPreis   reading 02
         reading29  reading 29
Attributes:
   reading01Name maxPreis
   reading01Regex högsta timpris är([^0-9]+[0-9\.]+)
   reading02Name minPreis
   reading02Regex Lägsta timpris är([^0-9]+[0-9\.]+)
   reading03Name maxDiff
   reading03Regex prisskillnad på ([¨0-9]+[0-9\.]+)
   reading04Name 00-01
   reading04Regex 00&nbsp;-&nbsp;01<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading05Name 02-03
   reading05Regex 02&nbsp;-&nbsp;03<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading06Name 03-04
   reading06Regex 02&nbsp;-&nbsp;04<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading07Name 04-05
   reading07Regex 04&nbsp;-&nbsp;05<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading08Name 05-06
   reading08Regex 05&nbsp;-&nbsp;06<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading09Name 06-07
   reading09Regex 06&nbsp;-&nbsp;07<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading10Name 07-08
   reading10Regex 07&nbsp;-&nbsp;08<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading11Name 08-09
   reading11Regex 08&nbsp;-&nbsp;09<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading12Name 09-10
   reading12Regex 09&nbsp;-&nbsp;10<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading13Name 10-11
   reading13Regex 10&nbsp;-&nbsp;11<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading14Name 11-12
   reading14Regex 11&nbsp;-&nbsp;12<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading16Name 12-13
   reading16Regex 12&nbsp;-&nbsp;13<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading17Name 13-14
   reading17Regex 13&nbsp;-&nbsp;14<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading18Name 14-15
   reading18Regex 14&nbsp;-&nbsp;15<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading19Name 15-16
   reading19Regex 15&nbsp;-&nbsp;16<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading20Name 16-17
   reading20Regex 16&nbsp;-&nbsp;17<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading21Name 17-18
   reading21Regex 17&nbsp;-&nbsp;18<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading22Name 18-19
   reading22Regex 18&nbsp;-&nbsp;19<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading23Name 19-20
   reading23Regex 19&nbsp;-&nbsp;20<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading24Name 20-21
   reading24Regex 20&nbsp;-&nbsp;21<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading25Name 21-22
   reading25Regex 21&nbsp;-&nbsp;22<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading26Name 22-23
   reading26Regex 22&nbsp;-&nbsp;23<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading27Name 23-24
   reading27Regex 23&nbsp;-&nbsp;00<\Wtd><td>([¨0-9]+[0-9\.]+)
   reading28Name Tagespreis
   reading28Regex Dagspris</span>\n<span class=\Winfo-box-number\W>([¨0-9]+[0-9\.]+)
   reading29Name aktPreis
   reading29Regex Aktuellt pris</span>\n<span class=\Winfo-box-number\W>([¨0-9]+[0-9\.]+)
   room       Energie
   stateFormat {ReadingsVal($name,"aktPreis",0)}
   verbose    0

Damit habe ich erst einmal die Strompreise nach Stunden als Reading. Dazu noch ein min, max, Differenz und aktuell.
Die nächsten Tage werde ich mir den SunnyIsland mit der Modbus-Geschichte anschauen und versuchen wie ich die Readings zum laden nutzen kann.
Vielen Dank auf jedem Fall für das Hilfsangebot.
mvh Steffen

ch.eick

Zitat von: privat58 am 23 Mai 2022, 22:41:35
Damit habe ich erst einmal die Strompreise nach Stunden als Reading. Dazu noch ein min, max, Differenz und aktuell.
Die nächsten Tage werde ich mir den SunnyIsland mit der Modbus-Geschichte anschauen und versuchen wie ich die Readings zum laden nutzen kann.
Vielen Dank auf jedem Fall für das Hilfsangebot.
mvh Steffen
Hallo Steffen,

schau Dir auch mal im FHEM den Thread von aWATTar an. Ich habe mir z.B. einen Trigger für die günstigsten Stunden eingebaut. Darauf kann man dann mir dem Laden des Speichers reagieren.
Mit dieser Berechnung bekomme ich ein schönes Fenster.

round((([EVU_awattar:MedianPreis] - [EVU_awattar:NiedrigerPreis])/2 + [EVU_awattar:NiedrigerPreis]) ,1)

Ich hätte da auch ein DOIF, was jedoch mangels Verwendung noch nicht so schön ausprogrammiert ist.

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

privat58

Hallo Christian,
bin leider des programierens nicht so richtig kundig, beiße mich da durch, kann aber andere Sachen :-)
Ich lese mich in den awattar-fred mal rein. Das dauert aber etwas, im Moment sind die Bienen wichtiger (brauchen auch keinen Strom  ;D)
Der nächste Schritt ist erst einmal der Sunny Island, den per modbus einbinden klappt ja schon. Die ganzen Register anlegen dauert.
Wichtig ist auch, wie der reagiert bei Stromausfall, da ich eine Insel bilden kann. Wir haben leider immer mal wieder solche Fälle.
Die ganze Geschichte kann man ja dann über den Status des Sunny-Island (Status-Stromversorgung) deaktivieren, das der ganz normal die Insel bedient und danach wieder umgeschalten wird.
Gut Ding brauch halt Zeit
mvh Steffen

privat58

Hallo,
der Sommer war lang und die Zeit ist nur so dahin geflogen.
Da es langsam kälter wird, habe ich mich wieder des Problems angenommen.
Die aktuellen Strompreise beziehe ich jetzt von entsoe und rechne mir diese auch geich in schwedische Kronen um. das klappt ohne Probleme.
Ich habe nach dem Beispiel des Kostal-Beitrages langsam rangetastet und scheitere nun an der Sache, das ich nicht nur täglich rechnen möchte, sondern ab 14 Uhr die letzten Stunden des Tages mit dem nächsten Tag kombinieren möchte, um einem eventuellen Preisanstieg vorzubeugen. Dies geschieht immer mal am Wochenende (da ist der Strom abends günstiger als Montags früh).
Auch werden zwei unterschiedliche Triggerpreise berechnet, da ich noch nicht weiß, wie ich mit dem laden hinkomme, 12kWh müssen ja auch erst einmal geladen werden.
Ich scheitere am DOIF, was den Triggerpreis berechnet und den Trigger setzt.
Der Trigger sollte einmal zeitversetzt nach 0Uhr laufen, da erst die Strompreise gelesen werden und danach jede volle Stunde. Dies aber unterschiedlich von 1-13Uhr und von 14-00Uhr.


([00:00:12]) ## jeden Tag 12sek nach 0Uhr
   (
    ## schreibe den aktuellen Preis
    setreading $SELF entsoe_price_now {( round([entsoe_price_today:entsoe_price_now] ,2) )},
## rechne den Bruttopreis
    setreading $SELF entsoe_price_now_brutto   {( round(([entsoe_price_today:entsoe_price_now]+[$SELF:eon_Eloverforing]+[$SELF:eon_Energiskatt])*1.25  ,2)) },

##Trigger berechnen gültig den ganzen Tag
## berechne Trigger1
    setreading $SELF entsoe_Triggerpreis1   {( round( ((([Stromkosten_rechnen_DOIF:entsoe_price_today_avg]) - ([Stromkosten_rechnen_DOIF:entsoe_price_today_min]))/3 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_min])) ,2) )},
##berechne Trigger2
setreading $SELF entsoe_Triggerpreis2   {( round( ((([Stromkosten_rechnen_DOIF:entsoe_price_today_avg]) - ([Stromkosten_rechnen_DOIF:entsoe_price_today_min]))/2 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_min])) ,2) )},

## wenn Triggerpreis groesser/gleich akt.Preis Trigger ein
    { if ([$SELF:entsoe_Triggerpreis1] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger1 1") }
      else
        { fhem("setreading $SELF entsoe_Trigger1 0") }},
{ if ( [$SELF:entsoe_Triggerpreis2] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger2 1") }
  else
    { fhem("setreading $SELF entsoe_Trigger2 0") }},
    {Log 1, "Strom_Kosten_DOIF_entsoe : Trigger 0 Uhr aktualisiert"}
   )

DOELSEIF

   ##([:00] and [00:59-13:30]) ## jeden Tag 3sek nach um zwischen 00:59 und 14:00 Uhr
   ## jeden tag zwischen 1-14Uhr jede volle Stunde
   ([01:00-14:00,+:60])
   (
    ## schreibe den aktuellen Preis
    setreading $SELF entsoe_price_now {( round([entsoe_price_today:entsoe_price_now] ,2) )},
## rechne den Bruttopreis
    setreading $SELF entsoe_price_now_brutto   {( round(([entsoe_price_today:entsoe_price_now]+[$SELF:eon_Eloverforing]+[$SELF:eon_Energiskatt])*1.25  ,2)) },

##Trigger berechnen gültig den ganzen Tag
## berechne Trigger1
    setreading $SELF entsoe_Triggerpreis1   {( round( ((([Stromkosten_rechnen_DOIF:entsoe_price_today_avg]) - ([Stromkosten_rechnen_DOIF:entsoe_price_today_min]))/3 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_min])) ,2) )},
##berechne Trigger2
setreading $SELF entsoe_Triggerpreis2   {( round( ((([Stromkosten_rechnen_DOIF:entsoe_price_today_avg]) - ([Stromkosten_rechnen_DOIF:entsoe_price_today_min]))/2 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_min])) ,2) )},

## wenn Triggerpreis groesser/gleich akt.Preis Trigger ein
    { if ([$SELF:entsoe_Triggerpreis1] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger1 1") }
      else
        { fhem("setreading $SELF entsoe_Trigger1 0") }},
{ if ( [$SELF:entsoe_Triggerpreis2] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger2 1") }
  else
    { fhem("setreading $SELF entsoe_Trigger2 0") }},
    {Log 1, "Strom_Kosten_DOIF_entsoe : Trigger 1-14 Uhr aktualisiert"}
   )


DOELSEIF

    ##([:00] and [13:59-00:00]) ## jeden Tag 3sek nach um zwischen 13:59 und 00:00 Uhr
    ##jeden Tag zwischen 14-00Uhr jede volle Stunde
   ([14:00-00:00,+:60])
   (
    ## schreibe den aktuellen Preis
    setreading $SELF entsoe_price_now {( round([entsoe_price_today:entsoe_price_now] ,2) )},
## rechne den Bruttopreis
    setreading $SELF entsoe_price_now_brutto   {( round(([entsoe_price_today:entsoe_price_now]+[$SELF:eon_Eloverforing]+[$SELF:eon_Energiskatt])*1.25  ,2)) },

##Trigger berechnen gültig heute ab 14Uhr und morgen, um eventuelle Erhöhungen vorzubeugen
## berechne Trigger3
    setreading $SELF entsoe_Triggerpreis3   {( round( (([Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_avg] - [Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_min])/3 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_min])) ,2) )},
##berechne Trigger4
setreading $SELF entsoe_Triggerpreis4   {( round( (([Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_avg] - [Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_min])/2 + ([Stromkosten_rechnen_DOIF:entsoe_price_today_tomorrow_min])) ,2) )},

    ## wenn Triggerpreis groesser/gleich akt.Preis Trigger ein
    { if ([$SELF:entsoe_Triggerpreis3] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger1 1") } ##erst war das Trigger3
      else
        { fhem("setreading $SELF entsoe_Trigger1 0") }},
{ if ( [$SELF:entsoe_Triggerpreis4] >= [$SELF:entsoe_price_now] )
        { fhem("setreading $SELF entsoe_Trigger2 1") } ##erst war das Trigger4
  else
        { fhem("setreading $SELF entsoe_Trigger2 0") }},
    {Log 1, "Strom_Kosten_DOIF_entsoe : Trigger 14-00 Uhr aktualisiert"}
   )

Wenn ich das so schreiben möchte, wird mir mitgeteilt, das eine Klammer fehlt. Ich kann den Fehler aber nicht finden.
Strom_Kosten_entsoe_DOIF DOIF: no left bracket of condition:
Eventuell hat da jemand einen Tip für mich.
mvh Steffen