EnOcean Gateway Reconnect

Ich hab schon eine Weile ein wiederkehrendes Problem mit meinem EnOcean Gateway. Nach einer gewissen Zeit, verliert Symcon (auch schon die frührere Home Automation Lösung) die Serielle Verbindung zu Symcon was sich auch mit einem Log Eintrag äußert:

06.03.2025, 08:36:14 | TimerPool | EnOcean Gateway ESP30 (KeepAlive): Zeitüberschreitung beim Warten auf Antwort

Gibt es eine möglichkeit auf diese Fehlermeldung zu reagieren und die Schnittstelle einmal zu trennen und wieder zu aktivieren?

Du könntest versuchen den Status der Instanz abzufragen. Wenn sie denn als fehlerhaft im Objektbaum markiert ist.

Alles was größer als 200 ist, ist ein Fehler.
Mit IPS_SetProperty

kannst du sie vielleicht de- und dann wieder aktivieren.
Ich habe das z.b. bei mir so

	IPS_SetProperty($id, "Active", false);
	IPS_ApplyChanges($id);
	IPS_SetProperty($id, "Active", true);
	IPS_ApplyChanges($id);
1 „Gefällt mir“

Danke für die Inspiration.
Deine Hinweise in Verbindung mit ChatGPT haben das Problem fix gelöst :slight_smile:

<?php

$id = 59425; // ID der I/O-Instanz "Serial Port ESP30 COM6"

// Instanz-Informationen abrufen
$instance = IPS_GetInstance($id);
$status = $instance['InstanceStatus'];

// Überprüfen, ob der Wert über 200 liegt
if ($status > 200) {
    IPS_LogMessage("I/O Monitor - Serial Port ESP30 COM6", "Status zu hoch ($status), führe Reconnect durch");
    
    // Deaktivieren der Instanz
    IPS_SetProperty($id, "Open", false);
    IPS_ApplyChanges($id);
    
    // Kurze Pause, um den Reconnect zu ermöglichen
    IPS_Sleep(1000);
    
    // Aktivieren der Instanz
    IPS_SetProperty($id, "Open", true);
    IPS_ApplyChanges($id);
    
    IPS_LogMessage("I/O Monitor - Serial Port ESP30 COM6", "Reconnect abgeschlossen");
} else {
    IPS_LogMessage("I/O Monitor - Serial Port ESP30 COM6", "Status in Ordnung ($status)");
}

?>
1 „Gefällt mir“

Zu früh gefreut.
Das Script funktionier an sich, allerdings geht die Instanz nicht auf Fehler. Aktuell tritt dir Störung auf, aber die Instanz hat den Status 102. Jemand ein Idee was man hier machen kann?


Hier sieht man um 15:55:20 den Fehler, um :32 läuft das Script und meldet Status 102 alles iO.

@paresy Siehst du eine Möglichkeit wie Ich den Fehler abfangen und ein reconnect erwirken kann?

Was ist das für ein Gerät und wie ist es angeschlossen? Es reicht also wirklich den I/O zu öffnen/schließen?

paresy

Es handelt sich um folgendes Gerät:
RS232 - EnOcean Gateway für myHomeControl® - Gebäudeautomation

Es ist via RS232toUSB direkt an dem Rechner angeschlossen auf dem Symcon läuft und dort über ein COM Port erreichbar.
Wenn der Fehler Auftritt deaktiviere Ich den Port im I/O, danach geht wieder alles.

Okey. USB ist leider nicht mein Freund :slight_smile: Was hast du da für einen USB nach RS232 Konverter in Benutzung? Hast du ja ggf. mal etwas mit FTDIChip als Alternative da?

paresy

FTDI hab ich nichts da.
Das was ich verwende ist ein Prolific Serial-to-USB. Ich hab eben gesehen dass es ein neueren Treiber gibt, den hab ich installiert. Vielleicht hilft dass ja auch schon.

1 „Gefällt mir“