UTF8_encode / UTF8_decode is deprecated bei IPS 7

Hallo,

habe gerade eben das Update (Beta 0.2) für IPSLogger installiert.

Seit dem erhalte ich tausende Fehlermeldungen dass UTF8_encode und UTF8_decode benutzt wird und dies ab der aktuellen PHP Version (PHP 8.2.0) nicht mehr zulässig ist, da veraltet.

Meldungen erhalte ich u.a. bei den Modulen:

  • openWB
  • Shelly
  • HomeMaticExtended
  • IOLink

Grüße
Proxima

Du hast vermutlich den deprecatedCompatiblity Spezialschalter aktiviert. Kann das sein?

Oder das Update vom Logger passt nicht und dein error Level ist weiter auf E_ALL

paresy

@Proxima

Ich hab den Logger gerade nochmals angepasst :wink:

Habe den Spezialschalter CompatiblityDeprecations aktiviert und auch das neueste Update eingespielt. Danach einen Neutstart ausgeführt. Leider noch immer ca. 300 Fehler pro Sekunde …

P.S: Der Spezialschalter CompatibilitySloppyUTF8 ist auch aktiviert

Kannst du den Logger mal Test weise deaktivieren um diesen auszuschließen?

paresy

Meintest Du mit deaktivieren, die 3 Variablen „LastMessage LogLevel“, „Messages LogLevel“ und „Symcon LogLevel“ auf Disabled zu stellen ???

Außerdem habe ich in der _autoload.php die IPSLogger auskommentiert und den Dienst neu gestartet:

Trotzdem noch immer mehrere hundert Fehlermeldungen pro Sekunde:

OK, das ist jetzt komisch. Ich habe den IPSLogger mit Hilfe des Stores entfernt und trotzdem die gleichen UTF8-Fehlermeldungen …

Was läuft denn hier falsch ???

Hast du selber ein eigenes Script welches z.B. error_reporting oder ini_set benutzt?
Über die Konsole man in allen Scripten suchen.
Michael

Oder läuft es unter Windows? Schau mal bitte in die php.ini. Steht in der ersten Zeile ein =

paresy

@Nall-chan: error_reporting oder ini_set wird in keinem Script benutzt.

@paresy: So sieht meine php.ini unter Windows aus:

Pcre=
[PHP]
max_execution_time=0
register_globals=off
error_reporting=E_ALL
memory_limit=128M
auto_prepend_file="C:\\Program Files\\Symcon\\scripts\\__autoinclude.inc.php"
short_open_tag=1
curl.cainfo="C:\\Program Files\\Symcon\\cacert.pem"
openssl.cafile="C:\\Program Files\\Symcon\\cacert.pem"
disable_functions="setlocale, set_time_limit"
include_path=".;C:\\ProgramData\\Symcon\\scripts"
ips.output_buffer=1048576
html_errors=0
user_agent="IP-Symcon/7.0 Revision/a7bfa952 Platform/Windows"
extension="php_curl.dll"
extension="php_exif.dll"
extension="php_ftp.dll"
extension="php_gd.dll"
extension="php_gmp.dll"
extension="php_mbstring.dll"
extension="php_mysqli.dll"
extension="php_openssl.dll"
extension="php_soap.dll"
extension="php_sockets.dll"
extension="php_sodium.dll"
extension="php_zip.dll"
zend_extension="php_opcache.dll"
extension_dir="C:\\Program Files\\Symcon\\ext"
[DATE]
date.timezone="Europe/Berlin"
[Session]
session.save_handler=files
session.save_path="C:\\ProgramData\\Symcon\\session"
session.auto_start=0
session.name=pt
[opcache]
opcache.revalidate_freq=0

Muss die erste Zeile weg ???

Versuch dies mal bitte. Ich denke das wird das Problem sein.

paresy

Die ist auch falsch.
Dienst beenden, PHP.ini löschen und Dienst starten sollte das Problem beheben.
Eventuell anschließend noch einmal den Dienst beenden und das

wieder anpassen, wenn du wirklich 128MB für die PHP brauchst.
Michael

Also, habe den Dienst beendet, die php.ini gelöscht und den Dienst wieder gestartet:

Die erste Zeile ist weg, aber was muss ich beim error_reporting statt E-ALL eintragen ???

Das bedeutet dass der DeprecatedCompatibility Spezialschalter falsch ist.

paresy

ALso, der „DeprecatedCompatibility“ - Spezialschalter ist jetzt deaktiviert (Standard) und in der php.ini steht damit:

error_reporting=E_ALL^E_DEPRECATED

Die Fehler sind damit weg.

V I E L E N D A N K ! ! !

1 „Gefällt mir“

Hallo guten Abend,
ich schreibe mal hier weiter, weil ich bei meinem Problem noch keine Lösung gefunden habe und das Problem im Ursprung identisch ist.

Meldungen erhalte ich u.a. bei den Modulen:

  • Shelly
  • Sonos
  • Harmony

            //Für MQTT Fix in IPS Version 6.3
            if (IPS_GetKernelDate() > 1670886000) {
                $Buffer->Payload = utf8_decode($Buffer->Payload);

Dienst gestoppt php.ini gelöscht … gestartet … keine Besserung

Spezialschalter:

PHP.ini

[PHP]
error_reporting=E_ALL^E_DEPRECATED
html_errors=0
memory_limit=32M
short_open_tag=1
max_execution_time=0
user_agent="IP-Symcon/7.0 Revision/46a9cbf7 Platform/Windows"
disable_functions="setlocale, set_time_limit"
auto_prepend_file="C:\\Program Files\\Symcon\\scripts\\__autoinclude.inc.php"
include_path=".;C:\\ProgramData\\Symcon\\scripts"
curl.cainfo="C:\\Program Files\\Symcon\\cacert.pem"
openssl.cafile="C:\\Program Files\\Symcon\\cacert.pem"
ips.output_buffer=1048576
extension="php_curl.dll"
extension="php_exif.dll"
extension="php_ftp.dll"
extension="php_gd.dll"
extension="php_gmp.dll"
extension="php_mbstring.dll"
extension="php_mysqli.dll"
extension="php_openssl.dll"
extension="php_soap.dll"
extension="php_sockets.dll"
extension="php_sodium.dll"
extension="php_zip.dll"
zend_extension="php_opcache.dll"
extension_dir="C:\\Program Files\\Symcon\\ext"
[Session]
session.save_handler=files
session.save_path="C:\\ProgramData\\Symcon\\session"
session.auto_start=0
session.name=pt
[DATE]
date.timezone="Europe/Berlin"
[opcache]
opcache.revalidate_freq=0

Habt ihr noch eine Idee für mich…

Grüße Daniel

Könnte das Problem selber lösen. Hatte noch
Patami Frameworks am laufen. Das hätte man wohl schon vor ein paar Jahren löschen können.

Wer sucht der findet, Schande auf mein Haupt.
Grüße Daniel

1 „Gefällt mir“

Das hatte einen eigenen Error Handler und dieser respektiert die die error_reporting Einstellung nicht.

paresy

1 „Gefällt mir“

Wie hast Du Patami entfernt ? Ich habe das Framework auch noch, weiss auch nicht wo es vor Jahren herkam

Unter Webhooks sollte es versteckt sein. Danach kannst du die Module löschen.
Grüße Daniel

1 „Gefällt mir“