Nach Update auf 7.0 Fehlermeldungen in Wetterstation von Fonzo

Hallo,
seit ich das Update auf 7.0 installiert habe, bekomme ich viele Fehler von dem Wetter-Modul.

13.11.2023, 16:11:22 | TimerPool | WeatherStation (AmbientWeatherTimerUpdate):
Fatal error: Uncaught TypeError: str_replace(): Argument #3 ($subject) must be of type array|string, float given in C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php:1035
Stack trace:
#0 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1035): str_replace(‚,‘, ‚.‘, 8.5000140896)
#1 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1008): WeatherStation->FormatFloat(8.5000140896)
#2 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(998): WeatherStation->GetParametersAmbientWeatherCloud()
#3 C:\ProgramData\Symcon\scripts__generated.inc.php(819): WeatherStation->Update_AmbientWeatherCloud()
#4 C:\Windows\System32-(1): WeatherStation_Update_AmbientWeatherCloud(34600)
#5 {main}
thrown in C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php on line 1035
PHP-Error-Error: Uncaught TypeError: str_replace(): Argument #3 ($subject) must be of type array|string, float given in C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php:1035
Stack trace:
#0 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1035): str_replace(‚,‘, ‚.‘, 8.5000140896)
#1 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1008): WeatherStation->FormatFloat(8.5000140896)
#2 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(998): WeatherStation->GetParametersAmbientWeatherCloud()
#3 C:\ProgramData\Symcon\scripts__generated.inc.php(819): WeatherStation->Update_AmbientWeatherCloud()
#4 C:\Windows\System32-(1): WeatherStation_Update_AmbientWeatherCloud(34600)
#5 {main}
thrown
Error in Script C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php on Line 1035Abort Processing during Fatal-Error: Uncaught TypeError: str_replace(): Argument #3 ($subject) must be of type array|string, float given in C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php:1035
Stack trace:
#0 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1035): str_replace(‚,‘, ‚.‘, 8.5000140896)
#1 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(1008): WeatherStation->FormatFloat(8.5000140896)
#2 C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php(998): WeatherStation->GetParametersAmbientWeatherCloud()
#3 C:\ProgramData\Symcon\scripts__generated.inc.php(819): WeatherStation->Update_AmbientWeatherCloud()
#4 C:\Windows\System32-(1): WeatherStation_Update_AmbientWeatherCloud(34600)
#5 {main}
thrown
Error in Script C:\ProgramData\Symcon\modules.store\fonzo.ipsymconweatherstation\WeatherStation\module.php on Line 1035

da ich mich nicht mit PHP auskenne, komme ich nicht weiter. Kann mir jemand helfen?

Viele Grüße aus Soltau
Detlev

In der entsprechenden Zeile wird etwas wie:

$wert = substr(‚,‘, ‚.‘, $alterwert);

stehen.

$wert = substr(‚,‘, ‚.‘, (string)$alterwert);

könnte das Problem schon lösen. Die Frage ist jedoch, warum wird hier ein Float mit substr bearbeitet.

Nicht substr, sondern str_replace.
Idee war wohl die Lokalisierung welche bei dem Cast von einem Float entsteht (also das Komma) durch den Punkt zu ersetzen.
Besser wäre da eh, wenn man überhaupt benötigt, number_format.

Aber da ich noch nicht einmal das Modul hier im Forum gefunden habe, vermute ich dass es gar nicht mehr gepflegt wird.
Michael
Edit: Doch noch gefunden:

Aber dort auch nix neues mehr.

Eine etwas übertriebene Verwendung von str_replace. Müsste man im Grunde vollständig umbauen. Oder halt an allen notwendigen Stellen - im Zweifel alle die, die PHP/Symcon anmeckert - ein explizites Cast zu string einbauen.

Hallo,

Super das hat geklappt. Habe an allen notwendigen Stellen ein string eingebaut und schaue da, die Fehlermeldungen sind weg. Danke für die schnelle Hilfe.

Gruß aus Soltau

Detlev

1 „Gefällt mir“

Hallo habe das selbe Proble, könntest du mir schicken wo du überall ein String eingebaut hast

Hallo, habe auch das selbe Problem. Kann jemand unterstützen. Bekomme das mit der Anpassung leider nicht hin. Besten Dank.