Brovning / fronius

IP-Symcon (IPS) Modul für Fronius Inverter (Wechselrichter) und SmartMeter (Energiezähler) mit ModBus TCP Unterstützung (bspw. Galvo, Primo, Symo, Symo Hybrid,...).
16 stars 1 forks source link

Uncaught TypeError: deleteInstanceNotInUse() #18

Closed Brovning closed 2 years ago

Brovning commented 2 years ago

Describe the bug Ich habe leider seit gestern massive Probleme mit dem Modul. Erst wurde ein Wechselrichter gar nicht mehr abgefragt - nach einem Update im ModuleControl ist jetzt alles drunter und drüber. Komischerweise kann ich den ersten Wechselrichter anlegen. Sobald ich aber den Zweiten bzw. das Powermeter anlegen will, erscheint:

Fehler beim Übernehmen der Änderungen

Fatal error: Uncaught TypeError: Return value of Fronius::deleteInstanceNotInUse() must be of the type bool, int returned in C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php:179
Stack trace:
#0 C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php(337): Fronius->deleteInstanceNotInUse(22370, '{3CFF0FD9-E306-...')
#1 C:\ProgramData\Symcon\modules\fronius\fronius\module.php(563): Fronius->checkModbusGateway('192.168.1.112', 502, 2, 0)
#2 C:\Windows\System32\-(3): Fronius->ApplyChanges()
#3 {main}
  thrown in C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php on line 179
Abort Processing during Fatal-Error: Uncaught TypeError: Return value of Fronius::deleteInstanceNotInUse() must be of the type bool, int returned in C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php:179
Stack trace:
#0 C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php(337): Fronius->deleteInstanceNotInUse(22370, '{3CFF0FD9-E306-...')
#1 C:\ProgramData\Symcon\modules\fronius\fronius\module.php(563): Fronius->checkModbusGateway('192.168.1.112', 502, 2, 0)
#2 C:\Windows\System32\-(3): Fronius->ApplyChanges()
#3 {main}
  thrown
   Error in Script C:\ProgramData\Symcon\modules\fronius\libs\myFunctions.php on Line 179 (Code: -32603)

Und es werden massig neue Modbus Gateways angelegt. Alle Instanzen und Gateways bereits gelöscht…

source: https://community.symcon.de/t/modul-fronius-wechselrichter/51132/181?u=brovning

Brovning commented 2 years ago

Der Fehler war das "&=". Hierbei handelt es sich um einen Bitweisen Operator, welcher einen Integer zurückliefert! $foo = true; $foo &= false; // int(0) $foo = (bool)$foo; // bool(false)

Richtig: $foo = true; $foo = $foo && false; // bool(false)