Erst mal zu dem Script: Da ist der Befehl sshpass eingebaut, was man natürlich so machen kann, es ist aber nicht die beste Art damit umzugehen.
Hintergrund: Das Passwort muss im Klartext angegeben werden.
Das ist übrigens der Grund, warum ssh selbst
keine Möglichkeit vorsieht, das Passwort per Parameter zu übergeben.
Die bessere Variante: Man erzeugt ein Schlüsselpaar und hinterlegt den Private Key im Ordner
.ssh/ im home-Verzeichnis. Den Public Key kopiert man in die Datei keys.properties im Ordner
$OPENHAB_USERDATA/etc/
Anschließend ruft man nicht mehr mit
sshpass auf, sondern
ssh -i <dateiname> ... wobei
<dateiname> der Name des Private Key ist.
Damit man für den Private Key kein Passwort eingeben muss, muss der Schlüssel natürlich ohne Passwort erzeugt werden.
Der Vorteil: Die Schlüsseldatei ist nur dem User openhab zugänglich, auch wenn jemand es schafft, die Konfiguration einzusehen (in der der Befehl drin steht) kann er mit dem erworbenen Wissen nichts anfangen.
Natürlich wird jemand, der schon den Aufruf analysieren konnte, keine großen Probleme damit haben, sich auch Zugang zum Private Key zu verschaffen, aber trotzdem...
Ansonsten ist der Restart eines Bundles keine große Sache und ist innerhalb von Sekunden erledigt. Eine Rule, die sich darum kümmert muss natürlich berücksichtigen, ob es sinnvoll ist, eine neue Verbindung aufzubauen.
Mein Tipp hierzu (ohne es selbst zu nutzen...): Gewöhnlich ist es ja nicht die myopenhab-Seite, die Probleme macht, sondern die Verbindung als solche. Ein Restart des Bundles sollte also fast unmittelbar zum Erfolg führen.
Die Frage ist nun vor allem, wie Du ermitteln kannst, dass das Binding gerade nicht korrekt funktioniert. Keine Ahnung wie man das sauber prüfen kann (solange das Thing nicht OFFLINE geht, wüsste ich spontan keinen direkten Trigger)