NEWS
[gelöst] Zeitplan mit ändernder Wiederholung erstellen
-
@paul53 Nein, leider nicht.
-
-
@asgothian
genial, funktioniert wunderbar... -
-
@paul53 Funktioniert einwandfrei, vielen Dank für eure rasche Hilfe.
-
@paul53 Du siehst obenstehend mein fertiges Blockly. Wenn ich nun z.B. 2 oder noch mehr IP-Adressen abfragen möchte, soll ich das Blockly kopieren oder die IP-Adresse variabel änderbar machen und mit einer Schleife arbeiten?
Denke vor allem an die Performance (Auslastung ioBroker). -
@kusi Wie oft willst du denn wie viele IP Adressen abfragen ?
Generell gibt es 2 unterschiedliche Situationen:
Situation 1:
Die Summe aller Abfragen dauert kürzer als das Abfrageintervall. Dann ist ein Cron-Job der alle Abfragen erledigt ok.Situation 2:
Die Summe aller Abfragen kann länger dauern als das Abfrageintervall. Dann ist es besser das in getrennten Zeitplänen laufen zu lassen.Der Zeitverlust der Abfrage ist in deinem Skript in dem "Request" Baustein hinterlegt.
Du solltest gut darüber nachdenken wie oft du welchen Wert wirklich abfragen musst damit alles so geht wie du das willst.
A.
-
@asgothian Der "noch funktionierende" Adapter fragt die Werte alle 5 Sekunden ab. Zur Zeit sind es 2 IP-Adressen, welche evtl. in nächster Zeit auf 4 steigen werden.
Momentan muss für jede IP-Adresse eine eigene Instanz installiert werden.
-
@kusi sagte in [gelöst] Zeitplan mit ändernder Wiederholung erstellen:
Der "noch funktionierende" Adapter fragt die Werte alle 5 Sekunden ab. Zur Zeit sind es 2 IP-Adressen, welche evtl. in nächster Zeit auf 4 steigen werden.
Momentan muss für jede IP-Adresse eine eigene Instanz installiert werden.Das sagt noch nicht viel aus.
Ich würde es nicht über einen Cron Job abbilden. Besser ist meiner Meinung nach eine Kette von Timeouts, die jedes mal nach einer erfolgreichen Abfrage weitergereicht wird. Damit ist sichergestellt das wenn ein Gerät mal nicht reagiert kein Haufen an unbeantworteten Requests entstehen kann.
Parallel dazu würde ich eine Liste mit den zu prüfenden Geräten aufbauen, und im Timeout immer ein Gerät abfragen, wenn das geantwortet hat den Timeout neu ansetzen um dann das nächste Gerät abzufragen. Auf die Art und weise kannst du das ganze einfach auf weitere Geräte erweitern ohne das am Skript selber viel getan werden muss.
A.
-
@asgothian ich werde dies versuchen umzusetzen und dich/euch auf dem Laufenden halten.