if (response == rnd)
{
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Der Wert ist korrekt - alles in Ordnung")
}
else
{
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Der Wert ist falsch korrekt - Verbindung wird zurückgesetzt")
val mailActions = getActions("mail","mail:smtp:srv1")
mailActions.sendMail("egal-wer@egal-wo.de", "OpenHAB-Cloud", "Achtung: Der WatchDog hat einen Fehler gemeldet. Binding wird neu gestartet.")
Binding_Restart_OpenHABCloud.sendCommand(ON)
}
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Ende")
Display More
Ralph erstmal Danke für Deinen CloudWatcher
Ich habe ein kleines Problem mit Deiner Regel.
Bei mir springt die Regel immer in den Else Zweig und startet den Cloud-Service jede 15 Minuten neu. obwohl die Werte gleich sind.
Ich habe über die UI eine Rule erstellt die folgendermaßen aussieht:

When: Cron der alle 20 Sek nach vollen 15 Minuten ausgeführt wird.
Then: Von Dir übernommenes Skript in einer DSL-Rule
//Dem WatchDog-Item wird ein Zufallswert zugewiesen
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Start")
var rnd = (Math.random() +1).toString //Zufallswert generiert
OpenHABCloud_WatchDog.postUpdate(rnd) //Zufallswert der Variable rnd an OpenHABCloud_WatchDog übergeben
Thread::sleep(20000) //Damit ich als langsamer Mensch auch das Update zwischen Pi und Cloud nachvollziehen kann, habe ich die Zeitverzögerung auf 20 Sekunden hoch geschraubt. Ergebnis: Werte sind gleich zw. lokal und Cloud im browser!
Bis hierher funktioniert es problemlos
//Jetzt wird der eben gesetzte Wert über die Cloud abgerufen
val headers = newHashMap("Authorization" -> "Basic xxxxxxx") //was passiert hier? token für Cloudzugriff genutzt?
var response = sendHttpGetRequest('https://myopenhab.org/rest/items/OpenHABCloud_WatchDog/state', headers, 3000); //aus der cloud wird der Zufallswert aus OpenHABCloud_WatchDog ausgelesen und in der Variable "response" vorgehalten
if (response == rnd) //wird immer als Falsch interpretiert und springt in den Else Zweig ggf. könntest Du einmal aushelfen und den Wert der beiden Variablen "response" und "rnd" im Log anzeigen.
{
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Der Wert ist korrekt - alles in Ordnung")
}
else
{
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Der Wert ist falsch - Verbindung wird zurückgesetzt")
SchalterCloudOff.sendCommand(ON) //Meinen eigenen Schalter mit die Restart des CloudConnectors
}
logInfo( "OpenHABCloud", "OpenHAB-Cloud WatchDog: Ende")
Hier das zugehörige bisschen Log:
