Ich habe Mosquitto als Broker für Zigbee-Fensterkontakte auf einem Raspi mit Mosquitto Broker.
Wenn der Raspi längere Zeit down ist, geht in Symcon der MQTT-Client auf Fehler “Diese Instanz ist fehlerhaft”.
Wenn der Raspi dann wieder Online ist, bleibt der MQTT-Client aber auf Fehler.
Wenn ich ihn inaktiv dann aktiv schalte geht er wieder online und ich bekomme wieder Nachrichten.
Meine Frage, kann ich das z.b. alle 2 Minuten machen per Script, wenn der Raspi Offline war?
So in der Art:
$MQTT_CLIENT_ID = 16531; // ID des MQTT Clients (Splitter)
$RZ_IP = ‚192.168.2.2‘;
$RZ_PORT = 1883;
$TIMEOUT_SEC = 1.0;
// ====================
// 1) Prüfen, ob Broker erreichbar ist
$fp = @fsockopen($RZ_IP, $RZ_PORT, $errno, $errstr, 1.0);
if ($fp === false) {
// Broker noch down → nichts tun
IPS_LogMessage(‚Z2M_WATCHDOG‘, ‚Broker nicht erreichbar‘);
return;
}
fclose($fp);
// 2) Reconnect erzwingen (idempotent & sicher)
IPS_LogMessage(‚Z2M_WATCHDOG‘, ‚Broker erreichbar → MQTT Client reinitialisieren‘);
IPS_ApplyChanges($MQTT_CLIENT_ID);
bzw. wie schaffe ich es automatisch wieder mit dem Broker zu verbinden?

