Fehlermeldung beim Abruf "api.corrently.io"

Hallo Leute,
seit ca. 7 Tagen bleibt mein Symcon-System immer wieder hängen.

Zuerst hatte ich es auf das Update 21H1 geschoben, weil dort nach dem Reboot ein „Bestätigungsfenster“ offen war.
Aber seit dem hängt das Symcon-System immer wieder…zum Teil mehrmals am Tag.
Im Eventviewer ist nur die Nachricht, dass der Dienst „ips.exe“ nicht beendet werden konnte.
Erst mit einem Reboot klappt es dann wieder eine weile.

Meine Konstellation:
IPS 6.2 auf einem WIN10 PC (lief die letzten Jahre ziemlich problemfrei)

Frage: Wo finde ich ein auswertbares Logfile, das mir Hilfe zum Consolenfehler bringt?

oder
Was kann ich prüfen um dem Fehler auf die spur zu kommen.

Danke
Joe

Du kannst versuchsweise beim Server mal die IPv6 Funktion deaktivieren, vielleicht hilft es.

1 „Gefällt mir“

Hast du mal die Logfiles dir angesehen? Die findest du unter C:\ProgramData\Symcon\logs. Bleiben die einfach stehen? Oder läuft alles an automatismen weiter?

paresy

Servus @paresy ,
das System bleibt „einfach“ stehen, obwohl der Symcon-Dienst weiter läuft.

Es gibt aber insofern neue Erkenntnisse, dass ein paar Minuten vor dem Ausfall ein Skript auf einen Fehler läuft.
Dieses Skript wird stündlich aufgerufen und beim dritten Aufruf kommt ein Speicherfehler.
Es handelt sich um das Skript „Tarifinfo“ von StromDAO. Ich habe heute Morgen Herrn Zörnert kontaktiert und er hat auch schon geantwortet.
Anscheinend blockt der Server von StromDAO meine Abfrage der aktuellen Daten.
Eine manuelle Abfrage über den Browser klappt.

Also insofern kannst Du mir aktuell nicht helfen. Sobald ich wieder Hilfe brauche melde ich mich.

Bis dahin würde ich „das hier“ gerne noch offen halten.

Danke für die schnelle Reaktion.
Joe Berneder

Für das Protokoll…das Ende des Logfiles:

> 12/06/2022 23:00:32 | 59519 | WARNING | ScriptEngine         | Result for Event 16444
> 
> 
> 
> 12/06/2022 23:00:34 | 27986 | ERROR   | ScriptEngine         | Result for Event 57896
> FEHLER: Letzter Wert im Grünstromindex zu alt (3600 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (3600 Sekunden)
> FEHLER: Letzter Wert im Grünstromindex zu alt (1 Sekunden)
>  .....
> FEHLER: Letzter Wert im Grünstromindex zu alt (34 Sekunden)
> Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts\27986.ips.php on line 48
> 
> Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php on line 114

`

Blockzitat

`

12/06/2022 23:18:34 | 00000 | WARNING | Kernel | Service Shutdown requested!
12/06/2022 23:18:34 | 00000 | MESSAGE | Kernel | Uninitializing…
12/06/2022 23:18:34 | 00000 | MESSAGE | ScriptEngine | Waiting for all script threads to terminate…
12/06/2022 23:18:39 | 11360 | WARNING | Client Socket | Error reading: End of file
12/06/2022 23:18:44 | 40306 | WARNING | Client Socket | Error reading: End of file
12/06/2022 23:18:45 | 14046 | WARNING | Client Socket | Error reading: End of file

Servus @paresy ,
ich habe mal den Titel angepasst, da die Fehlerquelle nun zwar ermittelt, aber eine Lösung noch nicht in Sicht ist.
Nochmal die aktuelle Problembeschreibung:

Ein Skript holt sich (stündlich) regionale Stromdaten und schreibt die JSON-Daten in eine Text-Variable.

$signal_raw=file_get_contents("https://api.corrently.io/core/gsi?plz=83352");

SetValueString(52253,$signal_raw);

Ein Folgeskript holt sich die Rohdaten und wertet diese aus.
Spätestens beim dritten Aufruf läuft das Folgeskript 27986 auf Fehler:
27986.txt (3,9 KB)

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts.ips.php on line 48
→ hier werden die Rohdaten abgerufen

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php on line 114
@paresy was passiert hier?

Ich bin auch mit dem Entwickler des Folgeskript @zoernert in Kontakt,
Er analysiert

Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden

aber es gibt noch kein „heisse Spur“.

Wie kann ich den Fehler weiter eingrenzen (bis vor 4 Wochen lief das Skript einwandfrei; geändert hat sich seit dem vieles aber nichts wesentliches)

Danke
JoeB

…und hier nochmals die komlette Fehlermelddung des Skript 27986:

MissingFEHLER: Letzter Wert im Grünstromindex zu alt (1059 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1060 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1060 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1060 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1061 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1061 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1061 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1061 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1061 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1062 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1062 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1062 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1062 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1063 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1063 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1063 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1063 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1064 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1064 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1064 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1064 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1065 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1065 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1065 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1065 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1066 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1066 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1066 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1066 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1067 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1067 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1067 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1067 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1068 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1068 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1068 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1068 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1069 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1069 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1069 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1069 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1069 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1070 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1070 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1070 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1070 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1071 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1071 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1071 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1071 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1071 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1072 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1072 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1072 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1072 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1072 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1073 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1073 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1073 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1073 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1074 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1074 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1074 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1074 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1075 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1075 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1075 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1075 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1076 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1076 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1076 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1076 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1077 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1077 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1077 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1077 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1078 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1078 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1078 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1078 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1079 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1079 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1079 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1079 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1080 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1080 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1080 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1080 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1081 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1081 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1081 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1081 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1082 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1082 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1082 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1082 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1083 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1083 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1083 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1083 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1084 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1084 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1084 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1084 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1085 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1085 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1085 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1085 Sekunden)
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
in C:\ProgramData\Symcon\scripts\27986.ips.php on line 83
MissingFEHLER: Letzter Wert im Grünstromindex zu alt (1086 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1086 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1086 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1087 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1087 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1087 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1087 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1087 Sekunden)
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
in C:\ProgramData\Symcon\scripts\27986.ips.php on line 83
MissingFEHLER: Letzter Wert im Grünstromindex zu alt (1088 Sekunden)FEHLER: Letzter Wert im Grünstromindex zu alt (1088 Sekunden)
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\scripts\27986.ips.php on line 48
Abort Processing during Fatal-Error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes)
Error in Script C:\ProgramData\Symcon\scripts\27986.ips.php on Line 48

Servus @Senior,
ich habe IPV6 deaktiviert.
Danach konnte keine Verbindung mehr zum Server „api.corrently.io“ aufgebaut werden.

Ich habe daher das Protokoll wider aktiviert…IPV6 ist aber offensichtlich Teil der Kommunikation.

Vg
Joe

Servus,
da das Kernproblem anscheinend eine Zeitabweichung ist, habe ich nun an zwei Stellen die Zeitzone fest gelegt.
date_default_timezone_set(‚Europe/Berlin‘);

Ergänzt

  • function processSignal() in Zeile 48
  • function fetchSignal($plz) in Zeile 85

Das Ergebnis kann eventuell @zoernert bewerten:

FEHLER: Letzter Wert im Grünstromindex zu alt (0 Sekunden)
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 502 Proxy Error

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
Missing
Warning: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable

 in C:\ProgramData\Symcon\scripts\27986.ips.php on line 86
MissingAbort Processing during exceed of maximal ErrorCount: file_get_contents(https://api.corrently.io/core/gsi?plz=83352): failed to open stream: HTTP request failed! HTTP/1.1 503 Service Unavailable


   Error in Script C:\ProgramData\Symcon\scripts\27986.ips.php on Line 86

Hast du denn herausgefunden wie der Zusammenhang ist, sodass IP-Symcon am Ende steht? Bleiben PHP Threads „stecken“?

paresy

Servus,
der „Stillstand“ äußerte sich darin, dass ich keine Webfront mehr öffnen konnte, keine Daten mehr aufgezeichnet wurden und keine Skripte mehr ausgeführt wurden.
Ich denke, dass die Speicherverletzung der Grund für den Ausfall war.

Inzwischen kann ich aber „Entwarnung“ geben, ich habe das Skript neu eingespielt und es läuft nun seit 24h stabil.
@paresy Entschuldigung für den „Alarm“, vermutlich habe ich am Skript etwas verändert, das den Fehler ausgelöst hat.

Danke
Joe

Servus @zoernert ,
offensichtlich hat sich etwas an den Rohdaten geändert.
Aktuell erhalte ich über „Tarifinfo“ keine Daten sondern Fehlermeldungen.

Missing
Notice: Trying to get property 'forecast' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 57

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\27986.ips.php on line 57

Notice: Trying to get property 'forecast' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 58

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\27986.ips.php on line 58

Notice: Trying to get property 'forecast' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 59

Notice: Trying to access array offset on value of type null in C:\ProgramData\Symcon\scripts\27986.ips.php on line 59

Notice: Trying to get property 'forecast' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 61

Warning: Invalid argument supplied for foreach() in C:\ProgramData\Symcon\scripts\27986.ips.php on line 61

Notice: Trying to get property 'epochtime' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 68

Notice: Trying to get property 'epochtime' of non-object in C:\ProgramData\Symcon\scripts\27986.ips.php on line 71
FEHLER: Letzter Wert im Grünstromindex zu alt (1655830736 Sekunden)Abort Processing during exceed of maximal ErrorCount: Trying to get property 'epochtime' of non-object
   Error in Script C:\ProgramData\Symcon\scripts\27986.ips.php on Line 40

Aktuell läuft folgendes Skript:

> <?
> 
> /**
> 
>  Strompreis Abfrage für dynamische Tarife
> 
>  ============================================================================
> 
>  Dieses Script ruft die dynamischen Tarife von https://stromhaltig.de/
> 
>  durch Änderung der Abruffunktion "fetchSignal" kann allerdings auch jeder
> 
>  andere Anbieter von dynamischen Tarifen verwendet werden.
> 
>  Idee des Scripts ist es, zu zeigen, wie man Strompreise in einer
> 
>  Automatisierung verwenden kann, um Schaltzeiten zu optimieren.
> 
>  Selbstverstöndlich kann dieses Script auch für eigene Versuche getestet
> 
>  werden, auch wenn man selbst keinen dynamischen Stromtarif hat.
> 
>  Limitierungen:
> 
>  Signatur wird nicht geprüft! D.h. über die Tarifapi wird ein Angebot
> 
>  abgerufen, aber nicht geprüft ob dieses Angebot tatsächlich vom
> 
>  Stromanbieter stammt. Da wir bei https Abrufen vertrauen darauf, dass
> 
>  der Inhaber der Domain gültig ist, ist dies auch nicht zwingend notwendig
> 
>  Fragen und Anregungen:
> 
>  Bitte bei Fragen direkt an thorsten.zoerner@stromdao.com schreiben, oder
> 
>  per PM im Symcon-Forum Benutzername: zoernert
> 
> */
> 
> //neu eingerichtet 20.6.2022 17:09Uhr
> 
> function setUpdateSchedule() {
> 
>     if(!IPS_GetEventIDByName("Verarbeite GSI",$_IPS['SELF'])) {
> 
>         $EreignisID=IPS_CreateEvent ( 1 );
> 
>         IPS_SetParent($EreignisID, $_IPS['SELF']);
> 
>         IPS_SetEventActive($EreignisID, true);
> 
>         IPS_SetName($EreignisID,"Verarbeite GSI");
> 
>         IPS_SetEventCyclic ($EreignisID, 0,0,0,0,3,1);
> 
>     }
> 
> }
> 
> function setSlots($indicator,$values) {
> 
>       SetValue(getVariableID($indicator." Zeitpunkt",3), date("d.m.y H:i",$values->epochtime));
> 
>       SetValue(getVariableID($indicator." Unix Time",1),$values->epochtime);
> 
>       SetValue(getVariableID($indicator." Grünstromindex",1),$values->eevalue);
> 
>       SetValue(getVariableID($indicator." Arbeitspreis (Cent)",2),$values->energyprice);
> 
>       SetValue(getVariableID($indicator." CO2 (EE)",1),$values->co2_g_oekostrom);   //ergänzt 20.6.2022 17:15Uhr
> 
>       SetValue(getVariableID($indicator." Solar (EE)",1),$values->ensolar);         //ergänzt 20.6.2022 17:15Uhr
> 
> }
> 
> function processSignal() {
> 
>   $signal=json_decode(GetValue(getVariableID("raw_signal",3)));
> 
>   if(!isset($signal->forecast)) {
> 
>     echo "Missing";
> 
>     print_r($signal);
> 
>      fetchSignal(GetValueString(getVariableID("Postleitzahl",3)));
> 
>      processSignal();
> 
>   }
> 
>   $ts=time();
> 
>   $current=$signal->forecast[0];
> 
>   $best=$signal->forecast[0];
> 
>   $worst=$signal->forecast[0];
> 
>   $i=0;
> 
>   foreach($signal->forecast as $o) {
> 
>         if($o->epochtime<$ts) {  $current=$o; $i++; } else {
> 
>             if($o->eevalue>$best->eevalue) $best=$o;
> 
>             if($o->eevalue<$worst->eevalue) $worst=$o;
> 
>         }
> 
>   }
> 
>   if($i>6) fetchSignal(GetValueString(getVariableID("Postleitzahl",3)));
> 
>   if(time()<$current->epochtime+7200) {
> 
>         setSlots("Aktuell",$current);
> 
>   } else {
> 
>       echo "FEHLER: Letzter Wert im Grünstromindex zu alt (".(time()-($current->epochtime+7200))." Sekunden)";
> 
>       SetValue(getVariableID("Aktuell Zeitpunkt",3), "-");
> 
>       SetValue(getVariableID("Aktuell Unix Time",1),0);
> 
>       SetValue(getVariableID("Aktuell Grünstromindex",1),50);
> 
>       fetchSignal(GetValueString(getVariableID("Postleitzahl",3)));
> 
>       processSignal();
> 
>   }
> 
>   setSlots("Grün",$best);
> 
>   setSlots("Grau",$worst);
> 
> }
> 
> function fetchSignal($plz) {
> 
>   $signal_raw=file_get_contents("https://api.corrently.io/core/gsi?plz=".$plz);
> 
>   SetValueString(getVariableID("raw_signal",3),$signal_raw);
> 
> }
> 
> function getVariableID($name,$type) {
> 
>    $id=0;
> 
>    if(!IPS_GetObjectIDByName($name,$_IPS['SELF'])) {
> 
>       $id=IPS_CreateVariable($type);
> 
>       IPS_SetName($id,$name);
> 
>       IPS_SetParent($id,$_IPS["SELF"]);
> 
>    } else {
> 
>     $id=IPS_GetObjectIDByName($name,$_IPS['SELF']);
> 
>    }
> 
>    return $id;
> 
> }
> 
> // Generelle Aktualisierungs Logik
> 
> $plz=GetValueString(getVariableID("Postleitzahl",3));
> 
> if(strlen($plz)!=5) {
> 
>     $plz="83352";
> 
>     SetValueString(getVariableID("Postleitzahl",3),$plz);
> 
> }
> 
> setUpdateSchedule();
> 
> processSignal();
> 
> ?>

Servus @zoernert ,
aktuell (die letzten 18h) passt der Abruf mittels „Tarifinfo“ und die extrahierten Werte.
Was auch immer passiert ist, es hat geholfen.

Danke
Joe B

Aktueller Status:
Der Abruf der Daten läuft die letzten Tage „ruhig, korrekt und störungsfrei“.

Was letztendlich die Ursache war, kann ich nicht sagen…im Zweifelsfall war es ein „Fehler 40“ :unamused:

Danke an die Unterstützer!!!
JoeB