https://github.com/mschlenstedt/LoxB...tags/0.9.6.zip
MQTT Collector:
- Changed: Single value topics have changed, optimized measurement/field structure
- Changed: / on the beginning of the topic is trimmed as Grafana has troubles with leading / in measurement
- Fixed: 0-values are not transmitted
MQTT Live/Collector:
- Added: CPU is monitored and on high load, mqttlive.php is slowed down
- Added: Logfile size is monitored and is self-shrinking about 20MB
- Added: PHP fwrite function has a bug leading to a permanent loop of phpMQTT library, that has a workaround now
- Added: mqttlive is monitoring the phpMQTT fwrite stream and will drop mqtt connection and sleep in case that fwrite cannot write to the mqtt socket.
Grafana integration:
- Fixed: "Unauthorized" on different actions in Grafana
Loxone integration:
- Added: VirtualOutCmd is now selectable in UI element selection
Potentielle Totalausfälle von LoxBerry (volles tmpfs) dürften mit einem Fehler in PHP (bis PHP 7.3, gefixt in PHP 7.4) der Funktion fwrite zusammenhängen, die einen Fehlerstatus falsch zurückgibt. Die von uns genutzte Bluerhinos/phpMQTT.php Library prüft auf diesen falsch gelieferten Fehlerstatus, und bei einem Verbindungsabbruch zum MQTT Server bleibt deswegen die Library in einer Dauer-Loop und voller CPU-Last hängen. Dabei schreibt sie auch das Log voll, was dann unweigerlich zu einer vollen RAM-Disk führt. Die Probleme schaukeln sich dann auf, Mosquitto und sonstiges am LoxBerry funktioniert nicht mehr.
Ich habe für Stats4Lox jetzt die Bluerhinos/phpMQTT.php Lib selbst übernommen und versucht, darin direkt den PHP-Bug zu workarounden, ich kann aber mangels Reproduktionsszenario nicht eindeutig feststellen, ob damit das Problem endgültig behoben ist.
Es kann auch andere Gründe geben, warum tmpfs voll werden kann. Das ist potenziell einer davon im Zusammenhang mit S4L.
Wenn ihr gerade genau solche Probleme habt (insbesondere tmpfs voll):
- Beendet - soweit noch möglich - im S4L Userinterface den MQTT Live Dienst.
- Dann ERST LoxBerry rebooten (damit die Ramdisk frei wird)
- Dann dieses Update einspielen
- Dann nochmal rebooten
- Dann MQTT Live im UI wieder starten.
Hoffe, es hilft.
lg, Christian
Kommentar