ein alter Homematic-Veteran benötigt mal wieder eure Hilfe, ich komme grad irgendwie nicht weiter.
Ich habe das Dutycycle Skript von Alchy in der Version 1.2 am Laufen, welches bei mir u.A. 4 Variablen befüllt, welche den Verbindungszustand zu meinen Langateways angeben (2 Zustände, Typ Logik, "online" oder "offline")
Die 4 Variablen lauten:
Connection-HomematicRepeaterGarageNeubau
Connection-HomematicRepeaterKeller
Connection-VordachStall
ConnectionCCU
Die ersten 3 möchte ich nun mittels einem Programm überwachen, d.h. wenn sie auf "offline" gehen, möchte ich eine Telegrammnachricht erhalten, genauso wenn sie wieder auf "online" gehen.
Dazu habe ich 2 Programme erstellt. "Gateway offline" und "Gateway online"
Wenn nun ein Gateway offline geht, werden sofort BEIDE Programme ausgeführt. Wenn ein Gateway wieder online geht, nur das "Gateway online" Programm.
Der Fehler ist repruzierbar: ich kann die Variable manuell auf "offline" setzen und es werden sofort beide Programme ausgeführt, die Variable ist aber unverändert auf "offline" und wird nicht in der Zwischenzeit von irgendeinem anderen Programm auf "online" gesetzt.
Gateway offline:
Skript
Code: Alles auswählen
! Gateway down Alarm per Telegram verschicken
! Systemvariablen in lokale Variablen einlesen
string VordachStall= dom.GetObject('Connection-VordachStall').Value().ToString();
string Keller= dom.GetObject('Connection-HomematicRepeaterKeller').Value().ToString();
string GarageNeubau= dom.GetObject('Connection-HomematicRepeaterGarageNeubau').Value().ToString();
string stderr;
string stdout;
string url="\"https://api.telegram.org/botXXXXXX/sendMessage?chat_id=XXXX&text=Alarmlevel=3\n*Gateway down!*\nEines der HomematicGateways ist down!\nHier der Status der jeweiligen Gateways:\n\nVordach Stall: "#VordachStall#"\nKeller: "#Keller#"\nGarageNeubau: "#GarageNeubau#"&parse_mode=markdown\"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);
Gateway online:
Skript
Code: Alles auswählen
! Gateway down Alarm per Telegram verschicken
! Systemvariablen in lokale Variablen einlesen
string VordachStall= dom.GetObject('Connection-VordachStall').Value().ToString();
string Keller= dom.GetObject('Connection-HomematicRepeaterKeller').Value().ToString();
string GarageNeubau= dom.GetObject('Connection-HomematicRepeaterGarageNeubau').Value().ToString();
string stderr;
string stdout;
string url="\"https://api.telegram.org/botXXXX/sendMessage?chat_id=XXXX&text=Alarmlevel=3\n*Gateway wieder online!*\nDie Gateways sind wieder online\nHier der Status der jeweiligen Gateways:\n\nVordach Stall: "#VordachStall#"\nKeller: "#Keller#"\nGarageNeubau: "#GarageNeubau#"&parse_mode=markdown\"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);
Kann mir irgendwer den entscheidenden Denkanstoß geben, wo da der Hund begraben liegt?
Dankeschön!
Grüße
Andreas
#Edit 27.04.2021: Bild direkt ins Forum hochgeladen