Seite 1 von 1

Logik häufig getriggert - wegen Container Recreate und falscher CRON Einstellung

Verfasst: Sa Jan 11, 2020 10:29 pm
von koend
Hallo,

eine Logik die eigentlich nur durch einen cronjob getriggert werden sollte, hat sich heute Abend mehrmals verselbständigt.
Der Cronjob triggert über eine GA ein wiregate script, das wiederum eine Mail versendet.

Anstatt keiner Mail habe ich sechs Stück erhalten:
- 4x um 21:20
- 2x um 21:38

Ich war mit verschiedenen Admintätigkeiten beschäftigt (Cometvisu container bauen und neustarten, reverse proxy, Cometvisu einrichten), weiss aber nicht mehr was ich zu den Zeitpunkten getan habe.

Was passiert hier?

Vielen Dank für die Hilfe und viele Grüße

Koen

Code: Alles auswählen

{
  "levels": [
    "CRONTRIGGER_1_1",
    "CRONTRIGGER_2_1",
    "$VAR<In>0",
    "$Out"
  ],
  "modules": [
    [
      "Cron",
      "CRONTRIGGER_1_1",
      0,
      0,
      "CRONTRIGGER_2_1"
    ],
    [
      "Break",
      []
    ],
    [
      "And",
      [
        "$VAR<In>0"
      ],
      "$Out"
    ]
  ],
  "inputPorts": [],
  "outputPorts": [
    {
      "name": "Output",
      "description": "OUT",
      "mnemonic": "$Out",
      "triggerType": "t",
      "type": "boolean",
      "optional": false,
      "multiple": false
    }
  ]
}

Code: Alles auswählen

{
  "Level": [
    true,
    "* 0 20 14,28 * *",
    true,
    false
  ],
  "LevelTypes": [
    "boolean",
    "string",
    "boolean",
    "boolean"
  ],
  "Module": [
    [
      "Cron",
      1,
      0,
      0,
      2
    ],
    [
      "Break",
      []
    ],
    [
      "And",
      [
        3
      ],
      4
    ]
  ],
  "Input": [],
  "Output": [
    [
      "Output",
      4,
      "t",
      "OUT"
    ]
  ],
  "mnemonicMap": {
    "CRONTRIGGER_1_1": {
      "mnemonic": "CRONTRIGGER_1_1",
      "dataType": "boolean",
      "initialValue": true,
      "index": 0
    },
    "CRONTRIGGER_2_1": {
      "mnemonic": "CRONTRIGGER_2_1",
      "dataType": "string",
      "initialValue": "* 0 20 14,28 * *",
      "index": 1
    },
    "$VAR<In>0": {
      "mnemonic": "$VAR<In>0",
      "dataType": "boolean",
      "initialValue": true,
      "index": 2
    },
    "$Out": {
      "mnemonic": "$Out",
      "dataType": "boolean",
      "initialValue": false,
      "index": 3
    }
  },
  "expandedCodePortsIn": [],
  "expandedCodePortsOut": [
    {
      "name": "Output",
      "description": "OUT",
      "mnemonic": "$Out",
      "triggerType": "t",
      "type": "boolean",
      "optional": false,
      "multiple": false
    }
  ]
}

Re: Logik wird "einfach so" getriggert

Verfasst: Sa Jan 11, 2020 11:02 pm
von gbglace
Bitte grundsätzlich die TWS-SW Version ergänzen?

Ansonsten meine Vermutung, die Du bitte nochmal in Grafana überprüfen müsstest.

Die TWS-Logik läuft durch den CRON-Trigger genau einmal und generiert ein Telegramm aus einem KNX-KO. Der TWS sendet gemäß KNX-Standard auf eine GA. Ich vermute das diese GA vom plug-In-Container nicht KNX-konform mit einem ACK beantwortet wird, daher sendet der TWS an seinem KNX-KO dieses Telegramm erneut. Dies führt auch in etwa zu insgesamt 6 Sendungen, bis das Telegramm endgültig als ungültig, weil nicht empfangen vom Bus interpretiert wird.

Re: Logik wird "einfach so" getriggert

Verfasst: So Jan 12, 2020 8:22 am
von Robert_Mini
Bitte mal im Busmonitor nach dieser GA filtern (Raw Modus) und hier posten. Könnte auch ein Read Request von einem anderen Gerät sein?

Lg
Robert

Re: Logik wird "einfach so" getriggert

Verfasst: So Jan 12, 2020 12:44 pm
von koend
Leute ihr seid klasse, danke für die schnelle Hilfe.

Es sind tatsächlich zwei Probleme:

1) "Irgendetwas" triggert die Logik

Der Grund hierfür ist noch nicht deutlich. Meine Vermutung: neuen Container bauen für die Cometvisu. Nachdem ich gepostet hatte musste ich den Cometvisu-Container noch einmal bauen und hatte wieder zwei Mails in der Inbox.

Das sagt der Busmonitor zu den zwei Mails:
Bild



2) Die GA wird mehr als einmal gesendet
Habe gerade mal die cronzeit angepasst und sehe im Busmonitor tatsächlich dass 60x in der entsprechende Minute gesendet wird (einmal pro Sekunde).

Was interessant ist, dass ich "nur" 50 Mails erhalte, über einen Zeitraum von 7 Minuten. Als ob der Wiregate-Container 10 Stück vergisst?
Eventuell hat das aber auch mit SMTP rate-limiting bei meinem Hoster zu tun...


Wie kann ich also mein Script so anpassen dass ein ACK gesendet wird? Oder ist das etwas was im Wiregate-Container selbst gelöst werden muss?


Vielen Dank und viele Grüße

Koen

Re: Logik wird "einfach so" getriggert

Verfasst: So Jan 12, 2020 12:59 pm
von Robert_Mini
Beim neu Bauen, frägt der eibd alle in der Visu verwendeten GAs vom Bus ab.
Daher kommt das read + response.

Bezüglich Cron:
"* 0 20 14,28 * *"

Hier muss der 1. "*" raus, sonst wird sekündlich getriggert.

Robert

Re: Logik häufig getriggert - wegen falscher CRON Einstellung

Verfasst: So Jan 12, 2020 2:17 pm
von StefanW
Ich habe mir erlaubt, den Thread umzubenennen, weil die Logik NICHT "einfach so" zu oft getriggert wurde

Ich hoffe der TE ist damit einverstanden

lg

Stefan

Re: Logik häufig getriggert - wegen falscher CRON Einstellung

Verfasst: Mo Jan 13, 2020 10:29 pm
von koend
Vielen Dank!

@StefanW: Der neue Titel passt etwas besser, aber noch nicht ganz.

Kannst du es bitte so anpassen:
Logik häufiger getriggert als erwartet - wg. wiregate Container-Neubau und falscher CRON Einstellung

Danke sehr, auch für die wieder einmal gute Hilfe!

Re: Logik häufig getriggert - wegen Container Recreate und falscher CRON Einstellung

Verfasst: Mo Jan 13, 2020 10:31 pm
von Robert_Mini
Erledigt.