IPS 7.0 und IPSLibrary

Das kann ich nicht sagen.

Ich sehe gerade, dass es auch bei der Verwaltung der Library zu Problemen kommt. Z.B. kann ich mir nicht mehr anzeigen lassen, welche Module der Library alles im Einsatz sind :frowning:

Ich vermute, das gibt eine größere Baustelle. Zumal es zum Beispiel für IPSWatering und IPSHighCharts meines Wissens nach keinen Ersatz gibt.

Da müsste @Brownson etwas zu sagen, ob die Library 7.0 unterstützen wird. Ich befürchte aber, dass wenn nicht, der Abschied von der Library für viele eine große Hürde sein wird beim Umstieg auf 7.0

1 „Gefällt mir“

Hi,
Hatte das gleiche Problem siehe im Beta Bereich,

Habe die komplette Library entfernt.
Danach sind in anderen Modulen umfangreiche weitere Fehler aufgetaucht.

Bin dann wieder zurüc auf die 6.4

OhOh, das sind ja keine gute Aussichten. :unamused:
Ich setze das Bewässerungsmodul für das es kein Ersatz gibt.

Moin Bumaas,

ich schätze das ist das selbe Problem wie z.B. bei str_replace, d.h. automatic type conversion scheint meistens/immer nicht mehr zu gehen. Ich vermute mit strval($val) geht es.

Ralf

In dem Fall wurde in PHP 7automatisch in Integer gewandelt. Also

if (isset($serie['ReplaceValues'][(int) $val]))

ginge auch.

Ich bin soeben auf die 7.0 umgestiegen und bekomme die folgende Fehlermeldung:

27.05.2023, 20:14:15 | FlowHandler          | Kann Daten nicht zur Instanz #26811 weiterleiten: 
Fatal error: Uncaught ArgumentCountError: Too few arguments to function IPSLogger_PhpErrorHandler(), 4 passed in D:\Daten\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPlug\module.php on line 34 and exactly 5 expected in D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php:24
Stack trace:
#0 D:\Daten\ProgramData\Symcon\modules\.store\info.schnittcher.ips.shelly\ShellyPlug\module.php(34): IPSLogger_PhpErrorHandler(8192, 'Function utf8_d...', 'D:\\Daten\\Progra...', 34)
#1 C:\Windows\System32\-(3): ShellyPlug->ReceiveData('{"DataID":"{7F7...')
#2 {main}
  thrown in D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php on line 24

Fatal error: Uncaught ArgumentCountError: Too few arguments to function IPSLogger_PhpErrorHandler(), 4 passed in D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Output.inc.php on line 91 and exactly 5 expected in D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php:24
Stack trace:
#0 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Output.inc.php(91): IPSLogger_PhpErrorHandler(8192, 'Function utf8_d...', 'D:\\Daten\\Progra...', 91)
#1 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Output.inc.php(506): IPSLogger_OutLog4IPS(1, 'Error', 'PHP', 'Error: Uncaught...')
#2 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_Output.inc.php(39): IPSLogger_invokeLoggers(1, 'Error', 'PHP', 'Error: Uncaught...', '\n  137 in D:\\Da...', 0)
#3 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php(137): IPSLogger_Out(1, 'Error', 'PHP', 'Error: Uncaught...')
#4 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(33): IPSLogger_Err('PHP', 'Error: Uncaught...')
#5 D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php(121): IPSLogger_PhpErrorHandler(1, 'Uncaught Argume...', 'D:\\Daten\\Progra...', 24, NULL)
#6 [internal function]: IPSLogger_PhpFatalErrorHandler()
#7 {main}
  thrown in D:\Daten\ProgramData\Symcon\scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php on line 24

Wobei es sich hier um MQTT Instanzen handelt.
Was werden hier noch für Infos benötigt ?

Du solltest die im ersten Post genannten Anpassungen in der IPSLogger_PhpErrorHandler.inc.php machen. Das sind die Ursachen für deine Fehlermeldungen.

1 „Gefällt mir“

Du bist der Beste - und das am Samstag Abend !
Schöne Grüße aus Linz !

Ich hab das erstmal so geloest :
function IPSLogger_PhpErrorHandler ($ErrType, $ErrMsg, $FileName, $LineNum=false, $Vars=false)

$Vars= false geht auch. Macht aber weniger Sinn, da $Vars gar nicht genutzt wird - weder beim Aufruf, noch bei der Verarbeitung.

Nur auf die Schnelle. Ohne zu checken ob nicht ein anderes Programm doch nicht einen 5 Parameter schickt.

Ich hatte leider noch keine Zeit mich mit der 7.0 und den Änderungen in PHP zu beschäftigen :open_mouth:

Nehme aber PULL Requests gerne entgegen :slight_smile:

1 „Gefällt mir“

Kurze Frage an diejenigen, die die Library unter 7.0 nutzen. Funktioniert Sie unter 7.0 mit Anpassungen? Hat jemand das Bewässerungsmodul und läuft es unter 7.0.
Vielleicht kann jemand Licht ins Dunkle bringen :slight_smile:

Die notwendigen Anpassungen habe ich im ersten Beitrag beschrieben.
Im Bewässerungsmodul waren keine Anpassungen notwendig.

1 „Gefällt mir“

Danke für die Info. Dann werde ich mal testen :slight_smile:

Hallo Burkhard,
Bei mir wirft er ein UTF-8 Fehler aus, wenn ich das Skript öffnen will.

Edit: Hat sich erledigt, habe das mit dem Utils Control die UTF-8 Fehler korrigiert.

ICh bekomme bei den Highcharts noch diesen Fehler

03.07.2023, 18:50:00 | ScriptEngine         | Result for Event 33193

Fatal error: Uncaught TypeError: sizeof(): Argument #1 ($value) must be of type Countable|array, bool given in C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php:1176
Stack trace:
#0 C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php(1161): AC_GetLoggedValuesCompatibility(54833, 40140, 1688076000, 1688421599, 0)
#1 C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php(1094): ReadAndAddToLoggedData(Array, 54833, 40140, -1, 1688076000, 1688421599, 'Value', Array)
#2 C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php(782): ReadDataFromDBAndCreateDataArray(Array, Array)
#3 C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php(711): CreateArrayForSeries(Array)
#4 C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php(196): GetHighChartsCfgFile(Array)
#5 C:\ProgramData\Symcon\scripts\HighChartsConfigStrom(318): CreateConfigString(Array)
#6 {main}
  thrown in C:\ProgramData\Symcon\scripts\IPSLibrary\app\modules\Charts\IPSHighcharts\IPSHighcharts.inc.php on line 1176


Das hat meiner Meinung nach eine andere Ursache. Prüfe mal bitte, ob für deine Variable 40140 das Logging auch aktiviert ist.

Oder führe mal den folgenden Test durch:

var_dump(AC_GetLoggedValues(54833, 40140, 1688076000, 1688421599, 0));

Sollte sie eigentlich. Ich habe da nichts dran geändert. Kann ich aber erst heute nach der Arbeit klären, wenn ich wieder zu Hause bin.