Beiträge von eiche

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Lol Micha, eher nein. Das überlasse ich gerne dir. ;)

    Evtl. kann ich den Part zum temporären Schedule Job dazu beitragen. 8)

    Edit:

    Es sollte einfacher gehen - aber mit diesem speziellen, temporären Schedule Job.

    Wenn sich das Skript mit beiden Endpoints selbst beendet, kann es nicht schalten.

    Dann muss vor dem Beenden der Schedule Job angelegt bzw. erneuert (update) werden.

    Dieser Job startet dann einfach das Skript drei Stunden später.

    Für ein vorzeitiges Beenden des Sperrens kann ein zweites Skript nach Eintreffen einer bestimmten Nachricht das erste starten.

    Was meinst du dazu?

    Hm, noch eine Idee - ohne Schedule Job und noch einfacher:

    Im zweiten Skript wird vom ersten Skript eine Funktion aufgerufen, die das erste Skript stoppt und einen Timer für 3h startet, an dessen Ende das erste Skript gestartet wird.

    ostfriese

    Zu #3

    Sorry Michael, aber den Input zu deaktivieren bringt nur etwas, wenn an diesem Eingang etwas elektrisch angeschlossen ist.

    Soweit ich es verstand, werden aber Nachrichten gesendet.

    Selbstverständlich können solche Nachrichten per Skript ignoriert werden und eine Nachricht ein solches Ignorieren für 3 Stunden starten.

    Dazu können im Skript, wie du mindestens so gut weißt wie ich, HTTP Endpoints eingesetzt werden.

    senoone

    Ich sehe derzeit nur eine Möglichkeit zur Implementation deines Anliegens - Cloud und Szenen ausgenommen, weil diese hier extrem suboptimal sind.

    Auf deinem Mini arbeitet ein Skript mit zwei HTTP Endpoints, d.h. es gibt zwei Empfänger (im Skript) für zwei unterschiedliche URL.

    Der eine URL (Nachricht 1) kommt von deinem mir unbekannten Bewegungsmelder, der andere URL (Nachricht 2) vom Blu Button.

    Trifft Nachricht 2 ein, wird eine Enable Variable auf false gesetzt und ein Timer für 3 Stunden gestartet, an dessen Ende Enable auf true gesetzt wird.

    Wenn innerhalb dieser 3 Stunden eine Nachricht 1 eintrifft, wird sie nicht verarbeitet, weil Enable auf false steht.

    Ich kann dir hierfür leider nichts anbieten, was ohne Skript auskommt. Auch den Einsatz eines übergeordneten Systems kann ich für diesen Einsatz nicht empfehlen.

    Den Blu Button an die Reinemachekraft alias "Putzfrau" auszuhändigen, erfordert viel Vertrauen. ;)

    Btw, es ist möglich, dieses Skript vorsichtshalber und zur Bewahrung einer gewissen Funktionssicherheit bspw. alle 2 Minuten zu starten - per Schedule Job.

    Ob all dies deinen Sicherheitsbedürfnissen gerecht wird, wirst du selbst entscheiden müssen.

    Edit:

    Deinen Hinweis auf ein Skript von @De kat habe ich jetzt erst gesehen. Dann kann evtl. meine Darlegung zur Funktion eines Skript ignoriert werden.

    Ich muss mich korrigieren, was den Schedule Job betrifft. Habe nicht sorgfältig genug nachgedacht. Das ist selbstverständlich Bullshit, weil dann die Timerfunktion weg ist ...

    Aber, was ich bisher noch nicht versuchte, es ist möglich, einen temporären Schedule Job so anzulegen, dass er 3h später eine Funktion auffruft, die Enable auf true setzt und diesen Schedule Job entfernt.

    Ja, mir ich bewusst, das bei Li-Akkus die Spannungskurve sehr flach ist, und das dadurch schlecht Rückschlüsse auf den SoC gemacht werden können, aber man sieht, wann der Akku voll oder leer ist.

    Gegenfrage in die Runde. Wären Z-Dioden in Reihe zum Spannungsteiler nicht dazu geeignet, den Teilungsfaktor zu verringern? Vermutlich ergibt das mehr Genauigkeit als mit einem simplen Spannungsteiler.

    Ich täte dies jedenfalls versuchen und glaube an den Vorteil.

    An vielleicht weniger Elektronikbehaftete: Z-Dioden subtrahieren praktisch eine gewisse Spannung (deren Z-Spannung) von einer Gesamtspannung. Manche sagen auch noch immer Zenerdiode dazu, obwohl nicht ausschließlich der Zenereffekt darin wirkt, je nach Z-Spannung mehr oder weniger.

    Und täglich grüßt die Cloud - in ihrem Schlepptau die Szene. Ihr gebt zu viel an Funktionalität an Andere, weniger Verlässliche ab!

    Warum UNBEDINGT nen UNI nehmen? Nen UNI hätte ich hier liegen, einen UNI Plus nicht.

    Je mehr das Gerät kann, desto weniger muss kommuniziert und desto unabhängiger von der Cloud können Lösungen gefunden werden. Ich weiß, ich weiß ... die Szenen sind ja so verlockend, wie die Loreley. 8o

    ich brauche die Bewegungserkennung zu genau einem bestimmten Zeitpunkt. Falls in den 30 sek zuvor schon eine Bewegung stattgefunden hat, würde ich ja einen falsch positiven Wert bekommen.

    Meinst du damit eine Retriggerung, welche du vermeiden möchtest? Genau dafür ist afaik die Blind time gedacht.

    Eine Bewegungserkennung zu einem bestimmten Zeitpunkt ergibt imho keinen Sinn, aber in einer festgelegten Zeitspanne durchaus. Vermutlich meinst du dieses.

    Frage: Könnte ich das auch lösen, indem ich die Bewegungserkennung grundsätzlich abschalte und nur zum gewünschten Zeitraum einschalte?

    Dazu könnte ich nur in einem meiner Motion (ohne Blu) nachsehen, ob dieses möglich ist. Ich werde es versuchen.

    Man kann aber auf einem Schalt-Shelly der zweiten Generation per Skript die Nachrichten vom Blu Motion ignorieren und nur für die gewünschte Zeitspanne wirken lassen.

    Edit:

    Mit jeder Szene steigt die Abhängigkeit eines Smart Home von der Cloud und einem ständigen Internetzugriff. Ich verstehe die Beliebtheit solcher Szenen nur sehr eingeschränkt.

    Ich habe nie eine CCU genutzt, weiß aber dass Homematic auch eine Node-RED (ich glaube dort heißt es Node-Matic(?)) Installation bereithält.

    Damit kann man einen sog. Flow erstellen, der die Daten per MQTT oder HTTP Request erhält. Ob und wie diese auf dem Raspberry Pi in einer Datei abgelegt werden können, entzieht sich meiner Detailkenntnis.

    Ich nutze dafür einen RPi, Mosquitto, Node-RED, InfluxDB und Grafana - also kein fertiges System. Damit geht so ziemlich alles.

    Für einen Freund habe ich eine persistente Speicherung auf einem Shelly Plus ... per Skript implementiert, welche nach Bedarf (spätestens nach 8 Tagen, aber abhängig von der Abtastrate) per MQTT abgerufen werden kann.

    Das habe ich auch dokumentiert.

    Es wäre bspw. so möglich, an die Daten zu kommen - zunächst ohne die CCU:

    per Web UI -> Scripts -> Script "data" (ist kein Skript, sondern eine Datei) öffnen -> per Copy & Paste die Daten in deine Verarbeitungsanwendung kopieren und schließlich per Homematic eine MQTT Nachricht senden, die die Aufzeichnung neu starten lässt.

    Eine Anpassung an das von dir benötigte Datenformat sollte leicht möglich sein.

    Was per Homematic dbzgl. ginge, weiß ich naheliegenderweise nicht.

    Edit:

    Obiger Datentransfer gelingt auch ganz ohne die CCU.

    Dazu kann man in der Web UI das Skript stoppen, das Nichtscript "data" löschen, das Skript starten - fertig, denn nun beginnt die Aufzeichnung von vorne.

    Dies ist bereits jetzt implementiert.

    Für eine Vermarktung ließe ich mir noch bessere Usability einfallen, deren Grundlage ich bereits kenne. ;)

    Nö, aber implementieren könnte ich so etwas. ;)

    Ok ok - etwas mehr Informationen.

    Per Shelly, möglichst Plus 1 oder Plus Uni, den Schließer schalten, was ggf. ein Eingriff in dessen Elektrik erfordert.

    Mit dem Starten des Lüftens auch eine Nachricht an den Shelly senden.

    Wie diese Nachricht zu gestalten ist, hängt von deinem genaueren Vorhaben und deinem Equipment ab.

    Der Shelly kann nach einer gewissen, parametrierbaren Dauer das Schließen einschalten.

    Eine einfache Nachricht zwecks einschalten (bzw. auch ausschalten) sieht so aus.

    Code
    http://<IP Adresse Shelly>/rpc/switch.set?id=0&on=true&toggle_after=1800

    Diese sorgt dafür, dass der Shelly den Ausgang einschaltet und nach 30 Minuten umschaltet, hier also aus.

    Falls du ausschalten und nach 30 Minuten einschalten lassen willst, ersetze einfach on=true durch on=false!

    Solltest Du eine Idee haben wie ich diese Info über WLAN abfragen kann, würde das bereits reichen.

    Ich habe dazu einige "Ideen". ;)

    Welche dir dazu am besten helfen könnte, hängt stark von der Anwendung ab, mit welcher du die Daten empfangen und verarbeiten lassen willst.

    Ein simples Beispiel ist den Status eines Ausgangs per Web Browser und passendem RPC (Remote Procedure Call) anzufordern.

    Code
    http://<IP Adresse Shelly>/rpc/switch.getstatus?id=0

    Falls du mehr über den gesamten Shelly-Status wissen willst, gelingt dies bspw. mit

    Code
    http://<IP Adresse Shelly>/rpc/shelly.getstatus

    Am besten im Edge- oder Firefox-Browser, weil diese die Antwort übersichtlich darstellen. Wie dies Safari tut, weiß ich nicht.

    Mein Vorschlag:

    Sieh dir mal die beiden Antworten genauer an und gewinne einen Eindruck, was du damit anstellen möchtest.

    Danach können wir vielleicht weitersehen.

    Es gibt dafür verschiedene Implementationsmöglichkeiten. Am flexibelsten ist hier immer, auch ein Skript zu verwenden.

    Ich skizziere mal zwei Varianten, die jeweils ein geeignetes Skript im zusammenwirken mit zwei Schedule Jobs nutzen.

    Vatriante 1

    Das Skript stellt zwei Funktionen zur Verfügung, ich nenne sie sunset() und sunrise().

    Diese werden per zweier Schedule Jobs mit der Methode Script.Eval aufgerufen, der eine Job ruft sunset() auf, der andere sunrise().

    Einen EventHandler brauchst du zunächst nicht dazu.

    sunset() und sunrise() schalten jeweils "ihre primären" Ausgänge, starten jeweils einen Timer, welcher nach 2000ms eine Funktion abarbeitet, die den anderen Ausgang passend schaltet.

    Mit dieser Implementation brauchst du die von dir verdrahtete Rückkopplungen nicht.

    Ein geeigneter Schedule Job kann wie folgt angelegt werden:

    http://<IP Adresse Shelly>/rpc/schedule.create?timespec="@sunset * * *"&calls=[{"method":"script.eval","params":{"id":<Script Id>,"code":"sunset()"}}]

    Variante 2

    Du kannst selbstverständlich auch die Rückkopplungen zusammen mit einem EventHandler einsetzen.

    Der EventHandler reagiert selektiv auf die Änderungen an den Eingängen wie folgt.

    Er startet einen Timer, der nach 2000ms den gewünschten Ausgang ausschaltet. Die Wartezeit ist aber nur erforderlich, wenn nicht sofort nach eintreffen des Eingangsänderungs-Ereignisses geschaltet werden soll.

    Die beiden Schedule Jobs brauchen dann nicht wie in Variante 1 die Methode Script.Eval sondern die Methode Switch.Set mit der Ausgangs ID und on=true.
    Ein solcher Schedule Job kann wie folgt angelegt werden:

    http://<IP Adresse Shelly>/rpc/schedule.create?timespec="@sunset * * *"&calls=[{"method":"switch.set","params":{"id":<Ausgangs Id>,"on":true}}]

    Das Senden

    Bei Variante 1 kannst du per RPC Methode die Daten anfordern und in der callback Funktion senden lassen.

    Bei Variante 2 kann der EventHandler die eintreffenden Informationen senden.

    In beiden Fällen sollten die Daten mit JSON.stringify(Daten) vorher in einen String umgewandelt werden.

    Oder ähnlich, falls dies nicht ganz zu deinem Anliegen passen sollte.

    Auch kannst du Daten regelmäßig senden lassen, wozu ein weiterer Schedule Job empfehlenswert ist ,,,

    Falls du konkreteres wünschst, empfehle ich zunächst meine Skripteinführung.

    Es sollte zumindest deutlich geworden sein, dass dein Anliegen implementierbar ist.

    Edit:

    Notfalls gelingt dein Vorhaben vermutlich auch ohne Skript und ausschließlich mit vier Schedule Jobs - zwei zum sunrise und zwei zum sunset.

    zum sunrise:

    Ein Job lässt bei @sunrise Ausgang 0, der andere Job (versuchsweise) bei @sunrise+2s Ausgang 1 schalten.

    Damit ist aber noch kein senden von Daten verbunden. Ob dies ohne Skript brauchbar gelingen kann, vermute ich, weiß ich aber derzeit nicht.

    Für die beiden @sunset(+2s) Jobs gilt entsprechendes.

    Wechsle den "Fachmann"!

    13A bei derart kleinen Kontakten als Dauerstromstärke ist völlig inakzeptabel.

    Allenfalls eine kurze Spitzenstromstärke dürfte in solche Regionen aufsteigen.

    Und ja, ein solches Bewerben ist mit Vorsicht zu genießen. Das tun andere aber auch ...

    Wenn der SHELLY diese Last, die deutlich unter der maximal beworbenen Last liegt, nicht für 10 Minuten sicherstellen kann, ist das schwer verständlich.

    "deutlich" ist hier Ansichtssache.

    Wenn das für dich und vielleicht deinen Fachmann schwer verständlich ist, dann kannst du bzw. könnt ihr hier bei Offenheit und einer gewissen Ausdauer besseres erfahren.

    In aller Freundschaft :)

    Du solltest jemanden hinzuziehen, der sich mit elektrischen Dingen auskennt.

    Dieser wird sehr schnell erkennen, dass

    1. ein Klicken auf ein Relais hinweist, das so klein ist, dass es eine solche Leistung nicht schalten sollte.
    2. eine Temperatur von über 90°C auf der Halbleiteroberfläche kritisch ist und den Chip zerstören kann.
    3. maximale Werte keine Betriebswerte sein dürfen.

    Schreibt die 3EM so was in ein Log, dass über WLAN auslesbar ist?


    Wenn das geht, seit bitte so nett und postet den Code, mit dem man des Strom und auch den Betriebszustand auslesen kann.

    Ich besitze keinen 3EM um dies zu prüfen.

    Du kannst dich aber durch die Dokumentation arbeiten und experimentieren: Doku zum 3EM

    Jedenfalls wird es möglich sein, die Daten zu holen - vermutlich werden die Daten im Shelly nicht protokolliert.

    Es bleiben folgende Fragen.

    1. Was soll mit dem Shelly kommunizieren?
      Cloud (weniger empfehlenswert, aber möglich), übergeordnetes System (ioBroker, Home Assistant, OpenHAB, Node-RED, ...) , MQTT Broker ?
    2. Was willst du mit diesen Daten anstellen?
      Nur aktuelle Werte anzeigen? In eine Datei schreiben? In eine Datenbank schreiben? Per Grafik als Zeitfunktion anzeigen?

    Es muss sicher gestellt sein, dass die WP die Pumpe sofort einschalten kann.

    Da gibt es afaik keine absolute Sicherheit, weil der Shelly per Kommunikation (Browser, Cloud, App -> Shelly) auch ausgeschaltet werden kann und afaik die Firmware keine Möglichkeit bietet, dies zu verhindern. Deshalb auch die Geräte-Empfehlungen von apreick.

    Wie lange dauert es, wenn die Shelly Plus Plug S an 230V gelegt wird (Pumpe wurde von WP eingeschaltet) bis die Shelly über das WLAN Daten liefern kann?

    Der Shelly sollte ca. 1 bis 2 Minuten nach dem Reboot Daten liefern (können). In einem Skript ist dies der Fall, per WLAN Übertragung ist das Gleiche zu erwarten.

    Hannes.st

    Vergiss an dieser Stelle am besten die App. Nimm stattdessen einen Web Browser!

    Vorher versuche, dein Endgerät (Notebook, Smartphone, Tablet) per WLAN mit dem Shelly zu verbinden, dessen SSID beginnt mit shelly ...

    Dann gib in der Adresszeile des Browsers die Standard Shelly Access Point IP Adresse ein: 192.168.33.1

    Dies teilte dir apreick bereits mit, ich versuche nur noch etwas eindeutiger zu beschreiben.

    Wenn du ganz sicher bist, dass dein Endgerät mit dem Access Point des Shelly mini verbunden ist UND du im Browser mit der Adresse 192.168.33.1 keine Website vom Shelly erhältst, solltest du einen Factory Reset vornehmen.

    Danach das Gleiche noch einmal versuchen - noch immer OHNE diese App!

    Falls auch das keinerlei Erfolg bringt, d.h. du im Browser keine Website erhältst, dann kannst du dem Verdacht nachgehen, dass die Shelly mini defekt sind.

    Ja, so begann ich im ersten Versuch zu diesem Thread, weil ich bereits mit solchen Schedule Jobs arbeitete.

    Da aber "params" nicht wie erwartet funktionierte, und ich nach meiner Erinnerung irgend etwas stattdessen per "config" las oder herausbekam (?), ersetzte ich "params" durch "config".

    Es bleibt nach wie vor leicht widersprüchlich, weil bspw. id und enable nach dem RPC von Input.GetConfig in der Response auf der gleichen und einzigen Stufe notiert sind.

    Code
    {"id":0,"name":null,"type":"switch","enable":true,"invert":false,"factory_reset":true}

    Deshalb war das Naheliegende, den "calls" Eintrag so zu gestalten. --- !funktioniert nicht! ---

    Code
    http://<IP Adresse Shelly>/rpc/Schedule.Create?timespec="@sunrise * * *"&calls=[{"method":"Input.SetConfig","params":{"id":0,"enable":false}}]

    Die eigentliche Schwierigkeit besteht darin, die funktionierende Objekt-Struktur bzw. dessen erforderlichen Einträge herauszufinden, da afaik solches nicht in der API-Dokumentation zu finden ist. Dazu hilft nur zielgerichtetes "Trial and Error" - am leichtesten per Skript. Sobald die Transformation der Shelly.call() Parameter in ein HTTP GET gekonnt ist, stellt diese Übertragung kein Problem mehr dar.

    Wäre die Antwort von RPC Input.Config bspw. wie folgt, läge die richtige Syntax von Schedule.Create nahe und wäre leichter verständlich.

    Code
    {"id":0,"config":{"name":null,"type":"switch","enable":true,"invert":false,"factory_reset":true}}

    ! Obige Response ist nur zwecks Darlegung einer zielführenden Darstellung gedacht, sie kommt so nicht. !

    Ich habe wieder etwas dazugelernt bzw. bin in zielführenden Versuchen etwas sicherer geworden.

    Deshalb gilt mein Dank dir peru_19, weil du drangeblieben bist. :sekt:

    Nach diesem Beispiel in der Doku kann man es ahnen und in zwei Schritten hin zum Schedule.Create übertragen, allerdings gehört dazu viel Sicherheit im interpretieren der API Dokumentation.

    peru_19

    Heureka, ich fand die richtige Syntax. 8)

    Zuerst habe ich festgestellt, dass ich per Web UI in der Input (0) Konfiguration nachsehen kann.

    Hier die funktionierende Syntax:

    Code
    http://<IP Adresse Shelly>/rpc/Schedule.Create?timespec="@sunrise * * *"&calls=[{"method":"Input.SetConfig","params":{"id":0,"config":{"enable":false}}}]

    Auf die Spur dieser Syntax kam ich per Experimente in einem simplen Skript.

    Code
    Shelly.call("Input.SetConfig", {id:0, config:{enable:false}});

    Da es damit funktionierte, brauchte ich diese Parameterstruktur nur auf den Schedule Job zu übertragen - in JSON, die keys in Anführungszeichen.

    Im nachhinein betrachtet ist es auch folgerichtig.

    id=0&config={"enable":false} sind die Parameter der Methode Input.SetConfig.

    Die Parameter werden im Schedule Job per "params"-Objekt (bzw. Struktur) festgelegt.

    Somit lautet der einzige call: {"method":"Input.SetConfig","params":{"id":0,"config":{"enable":false}}}

    Zur Freigabe des Input (0) lautet dann der call entsprechend: {"method":"Input.SetConfig","params":{"id":0,"config":{"enable":true}}}

    Mit der aktuellen Firmware 1.2.2 lässt sich per Web UI, ohne Fehlerhinweis, der timespec Eintrag mit Klicks ... festlegen.

    Damit ist es leicht, sunrise und sunset statt alle 15 Minuten einzustellen.

    Vielleicht interessiert dich in diesem Zusammenhang mein Artikel Mächtige Schedule Jobs, den ich vorhin überarbeitete.

    peru_19

    Ich bin gespannt auf deine Erkenntnisse.

    Ich bin derzeit für voraussichtlich Wochen unterwegs und kann nicht mal eben einen Shelly zum testen greifen. Nur meine laufenden Shelly kann ich per VPN erreichen und damit ein wenig experimentieren. Da ich nun keinen Schalter betätigen kann (habe es versäumt, hierfür einen fernbedienbaren Shelly als Taster an einen anderen Shelly zu klemmen ;)), kann ich letztlich derzeit die Funktionalität des Schedule Jobs nicht testen.

    Somit wünsche ich dir viel Ausdauer und Kreativität. Ich werde interessiert deine Berichte lesen.

    Edit:

    "data": "shos_rpc_inst.c:230 Input.SetConfig via loopback "

    Ich nutze die Diagnostics Protokolle sehr selten und bin in deren Interpretation nicht standfest.

    "loopback" begegnete mir bisher im Zusammenhang von Skripten, die einen RPC auslösten.

    Wenn diese Quelle auch für Schedule Jobs gilt, ist das bedauerlich, weil nicht hinreichend differenzierend.

    Du wirst vermutlich bessere Möglichkeiten haben, dies genauer zu prüfen ...

    In diesem Sinne - viel Erfolg!

    was passiert wenn der sich mal "aufhängt" oder nen Reset gemacht hat?

    Unabhängig davon, dass Hardware zwecks sicherheitsrelevanter Abschaltungen immer redundant zweckmäßig bis erforderlich sind, gibt es Möglichkeiten solche Situationen zu berücksichtigen.

    Beispiel: Nur zur Verdeutlichung, ggf. zweckmäßige Erweiterungen habe ich nur erwähnt.

    Es gibt einen Schedule Job, der im Sekundentakt den Antrieb ausschaltet und zeitgleich eine Skriptfunktion f() aufruft.

    Steht das Skript (abgebrochen ...), dann läuft der Aufruf von f() in's Leere.

    Arbeitet das Skript, kann f() den Antrieb einschalten, um dem Ausschalten entgegenzuwirken. Evtl. kann per Elektronik mit Integrierglied das Ausschalten analog geringfügig verzögert werden.

    Das endgültige Ausschalten geschieht somit automatisch, wenn f() nicht mehr einschaltet, weil bspw. das Erreichen einer Endposition erkannt wurde.

    Auf eine solche Weise ist auch mehr Sicherheit eingebaut, die rein softwaretechnisch realisiert ist.

    Falls der Shelly hängt, d.h. nicht regulär (ohne Skriptlauf) arbeitet, kann ein Hardware basierter Watchdog ergänzt werden, der von einem zweiten Ausgang (Shelly Plus 2) regelmäßig "gefüttert" wird.

    Für Letzteres ist ein weiterer Schedule Job geeignet.

    Es gibt also durchaus einige Möglichkeiten für Sicherheitsaspekte, die zumindest teilweise per Software abgedeckt werden können.

    Noch zum Reset: Das kann superleicht konfiguriert werden, indem der Shelly den Ausgang zum Antrieb nach Reset auf OFF stellt.

    Nachtrag:

    Ich habe den UNI gar nicht erwähnt weil das Risiko weiter durch Nutzung von Wlan steigt.

    Das tut es nicht, wenn man den Shelly Plus Uni autark macht, wozu Schedule Jobs, Skript und Zusatzhardware geeignet sind.

    Edit:

    Btw, ein alter Analog-Timer wie der 555 sollte vermutlich als retriggerbarer Hardware-Watchdog geeignet sein. Dessen Einsatz liegt bei mir Jahrzehnte zurück, weshalb ich nicht ad hoc mit einer Schaltung dienen kann - und sicher auch nicht muss. ;)

    Edit 2:

    Vielleicht tut es bereits eine digitale Schaltung mit CMOS-IC und Schmitt-Trigger Eingängen + Integrierglied - nur mal so.