PHP Version 8 Achtung!

Alles was mit der Solaranzeige Image Installation und Betrieb zu tun hat. Einfache Konfiguration mit einem Gerät.

Moderator: Ulrich

Benutzeravatar
Ulrich
Administrator
Beiträge: 6580
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 164 Mal
Danksagung erhalten: 918 Mal

PHP Version 8 Achtung!

Beitrag von Ulrich »

Bitte die Solaranzeige noch nicht auf PHP 8.2 erhöhen. Es gibt noch kein funktionierendes PHP-Mosqoitto Modul. Deshalb würde alles, was mit MQTT zu tun hat, nach dem Upgrade auf PHP 8.2 nicht mehr funktionieren. Falls jemand es geschafft hat, das PHP-Mosquitto Modul auf PHP 8.2 zu kompilieren, bitte melden. Ich habe bis jetzt noch kein Erfolg gehabt. Vielleicht gibt es ja einen Trick. Deshalb ist in Bookworm auch noch PHP 7.4 installiert.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

denmek
Beiträge: 41
Registriert: Di 26. Okt 2021, 20:35

Re: PHP Version 8 Achtung!

Beitrag von denmek »

Servus Ulrich,

ist das Problem eventuell noch da ?
Ich habe die aktuelle 6.1 32Bit installiert und bekomme keine MQTT messages, die Fehelrmeldung im php.log ist dazu noch strange, bzw könnten auf Fehler deuten, oder habe ich ein anderes Problem ?

Danke

[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $Prefix in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $TopicPosition in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $Payload in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $TopicPosition in /var/www/html/sonoff_mqtt.php on line 553
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $Prefix in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $TopicPosition in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:58:01 Europe/Berlin] PHP Warning: Undefined variable $Payload in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:59:01 Europe/Berlin] PHP Warning: Undefined variable $Prefix in /var/www/html/sonoff_mqtt.php on line 173
[14-Oct-2024 14:59:01 Europe/Berlin] PHP Warning: Undefined variable $TopicPosition in /var/www/html/sonoff_mqtt.php on line 173
1.2kW Balkonsolar mit 2 x SUN1000
3kW Gartenanlage mit MPP 5048MGX und 48V LiFePo4

Benutzeravatar
Ulrich
Administrator
Beiträge: 6580
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 164 Mal
Danksagung erhalten: 918 Mal

Re: PHP Version 8 Achtung!

Beitrag von Ulrich »

Das Problem ist bei der Image Version 6.1.x nicht mehr vorhanden. In der Zwischenzeit gibt es den Treiber für MQTT-PHP Version 8
Wenn du das auf der Konsole eingibst, sollte kein Fehler mehr ausgegeben werden:
mosquitto_sub -h localhost -v -t +/#
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

denmek
Beiträge: 41
Registriert: Di 26. Okt 2021, 20:35

Re: PHP Version 8 Achtung!

Beitrag von denmek »

danke Dir, ich bin erstmal zum testen auf die 5.4 zurück, dann schauen wir mal.
1.2kW Balkonsolar mit 2 x SUN1000
3kW Gartenanlage mit MPP 5048MGX und 48V LiFePo4

ykfifocmsg
Beiträge: 9
Registriert: Mi 30. Mär 2022, 09:40
Hat sich bedankt: 4 Mal

Re: PHP Version 8 Achtung!

Beitrag von ykfifocmsg »

Hallo Ulrich,

gibt es den Treiber irgendwo manuell herunterzuladen?

Ich bin "offiziell" noch auf der 5.1. Ich habe so viel an den Scripten verändert (Wärmepumpe mit aufgenommen, weitere Messwerte und Statistiken), dass ich nicht mehr auf dem normalen Wege upgraden kann. Trotzdem würde ich gerne weiterhin die Automatisierung nutzen können.

Ich muss langsam das Debian (11) auf eine aktuelle Version bringen, jedoch scheitert es schon bei Version 12.

die beiden mosquitto-pakete sind installiert:
mosquitto is already the newest version (2.0.11-1.2+deb12u2).
mosquitto-clients is already the newest version (2.0.11-1.2+deb12u2).

mosquitto_sub -h localhost -v -t +/# läuft, ich sehe die mosquitto-statusmeldungen meiner geräte.

Die Automation läuft allerdings nicht mehr, sobald ich in der automation.web.php auf "Test" klicke, bekomme ich einen server error 500 (zudem aber kein Eintrag unter /var/log/lighthttpd/error.log erscheint)

Ebenso ist die per cronjob eingebundene automation nicht mehr lauffähig:
PHP Fatal error: Uncaught Error: Class "Mosquitto\Client" not found in /var/www/html/automation.php:262
Stack trace:
#0 {main}
thrown in /var/www/html/automation.php on line 262
ist es vielleicht nur eine einstellung in der php.ini, die sich von php version 7.4 auf 8.2 geändert hat? ich habe schonmal versucht zu suchen, aber ich konnte nichts finden aufgrund der schieren menge an optionen...

nachdem ich die php.ini von php7.2 in das verzeichnis für php8.2 kopiert habe, bin ich einen schritt weiter:
root@solaranzeige:~# /var/www/html/automation.php
PHP Warning: PHP Startup: Unable to load dynamic library 'mosquitto.so' (tried: /usr/lib/php/20220829/mosquitto.so (/usr/lib/php/20220829/mosquitto.so: cannot open shared object file: No such file or directory), /usr/lib/php/20220829/mosquitto.so.so (/usr/lib/php/20220829/mosquitto.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'mosquitto.so' (tried: /usr/lib/php/20220829/mosquitto.so (/usr/lib/php/20220829/mosquitto.so: cannot open shared object file: No such file or directory), /usr/lib/php/20220829/mosquitto.so.so (/usr/lib/php/20220829/mosquitto.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Fatal error: Uncaught Error: Class "Mosquitto\Client" not found in /var/www/html/automation.php:262
Stack trace:
#0 {main}
thrown in /var/www/html/automation.php on line 262

Benutzeravatar
Ulrich
Administrator
Beiträge: 6580
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 164 Mal
Danksagung erhalten: 918 Mal

Re: PHP Version 8 Achtung!

Beitrag von Ulrich »

PHP hat sich von Version 5 auf 8 grundlegend geändert. Auch die php.ini wurde angepasst. Es ist nicht so einfach auf ein uralt Debian ein PHP 8.x zu spielen. Auch darauf achten, dass für die Solaranzeige PHP Version 8.2 das Maximum ist. Ich würde dein Vorhaben erst gar nicht versuchen. Die Chance, dass es danach funktioniert, ist gering.
-----------------------------------------------------
Ulrich . . . . . . . . [ Admin ]

ykfifocmsg
Beiträge: 9
Registriert: Mi 30. Mär 2022, 09:40
Hat sich bedankt: 4 Mal

Re: PHP Version 8 Achtung!

Beitrag von ykfifocmsg »

Danke für den Hinweis mit php 8.2, gehe ich nicht weiter als debian 12.

Ich denke ich habe es hinbekommen, die Automation schaltet wieder meine Tasmota-Steckdose.

Falls sich nochmal jemand hier hin verirrt möchte ich noch kurz schreiben, wie ich es schlussendlich geschafft habe:

Ausgangssituation: Alt: Debian 11, php 7.2; neu: Debian 12, php 8.2

Problem: mosquitto client (php-erweiterung) mosquitto.so steht nicht zur verfügung.

auf https://github.com/ryco-dev/Mosquitto-PHP/tree/master habe ich eine mosquitto-php version gefunden, die mit php 8.2 läuft (@Ulrich, die hast du sicher auch für das aktuelle Projekt genommen?). Dort habe ich über Code => Download zip den Link herauskopiert (und für wget genutzt). Dann auf der commandline:

Code: Alles auswählen

printf "extension=mosquitto.so" | sudo tee /etc/php/8.2/mods-available/mosquitto.ini 1>&2; sudo phpenmod mosquitto
wget https://github.com/ryco-dev/Mosquitto-PHP/archive/refs/heads/master.zip
unzip master.zip
cd Mosquitto-PHP-master/
dann die Anleitung von https://github.com/ryco-dev/Mosquitto-P ... stallation genommen:

Code: Alles auswählen

phpize
./configure
make
make install
dann noch einmal lighthttpd durchstarten und es lief wieder

Zurück zu „Image Installation [ Single-Regler Version ]“

Wer ist online?

Mitglieder in diesem Forum: udo.wischolleck und 0 Gäste