Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Soll-/Ist-Zustand erweitert

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Soll-/Ist-Zustand erweitert

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      antimon last edited by

      Hallo zusammen,

      bei einer Lampe den Soll-/Ist-Zustand zu setzen/abzufragen ist relativ einfach... man setzt den entsprechenden Datenpunkt und ein paar ms später, erhält man das entsprechende ACK.

      Mir geht es jetzt aber um ein erweitertes Szenario, den Soll-/Ist-Zustand eines PCs beispielsweise. Hier zählt nicht nur Strom an/aus (wäre einfach), sondern ich möchte gerne den Betriebszustand als Status heranziehen. Angenommen, der PC läuft gerade (Betriebszustand = an), ich möchte ihn ausschalten. Strom abschalten ist jetzt nicht die beste Option, also braucht er einen Befehl zum Herunterfahren, dann dauert es eine gewisse Zeit und erst dann ist er aus. Sprich zwischen Soll: aus und Ist: aus vergeht eine gewisse Zeit. Genauso verhält es sich mit dem Einschalten. Nach dem WOL-Befehl vergeht eine gewisse Zeit, bis er Befehle ausführen kann.
      Wie handhabt Ihr so etwas? Theoretisch wären zwei Datenpunkte denkbar: Ein Soll-Datenpunkt und ein Ist-Datenpunkt. Mit nur ACK=true/false zu arbeiten funktioniert nicht, denn wenn man den Datenpunkt in die VIS setzt, könnte man dann hin- und herschalten, obwohl der PC gar nicht so schnell reagieren kann. Die Idee wäre dann, den Soll-Datenpunkt zu überwachen und dann mit Javascript o.ä. entsprechende Befehle zu senden, die dann z.B. Wartezeiten für das Hoch-/Runterfahren mit einbinden.
      Wie macht Ihr sowas? Ich bin doch sicher nicht der Erste, der sich über so etwas Gedanken macht, oder?

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @antimon last edited by

        @antimon
        Ich würde dafür 2 Datenpunkte nutzen

        • einen "status" datenpoint, als numeric, mit einer Aufzählung: 0: aus, 1: startet, 2: läuft, 3: wird herunter gefahren, 4: aus, 5: standby
        • einen "Steuer" datenpoint, auch numeric mit einer Aufzählung: 0: ausschalten, 1: einschalten, 2: aufwecken

        A.

        A 1 Reply Last reply Reply Quote 0
        • A
          antimon @Asgothian last edited by

          @Asgothian Daran habe ich auch schon gedacht, quasi eine kleine State Machine...
          Die Idee finde ich gut, das würde ja bedeuten, dass ich mit dem Steuer-Datenpunkt z.B. sage: Einschalten. Zuerst schaltet das Skript dann den Strom ein und setzt den Zustand "startet". Dann fährt der PC hoch, irgendwann erhalte ich z.B. einen Ping als Lebenszeichen und setze den Zustand "läuft".
          Was passiert, wenn ich während des Hochfahrens bereits den Steuer-Datenpunkt auf "ausschalten" setze? Während des Hochfahrens kann ich ja keinen Shutdown-Befehl setzen und Strom einfach abschalten ist auch eine schlechte Idee. Was meint Ihr, wäre dann das Beste?

          • Die Änderung des Steuer-Datenpunkts nur während "aus" und "läuft" zulassen?
          • Den Befehl fürs Herunterfahren sofort ausführen, sobald der Zustand "läuft" erreicht ist?
          • Den Steuer-Datenpunkt wieder auf "einschalten" zurücksetzen, weil der Zustand noch nicht erreicht ist?

          Was passiert, wenn der PC nicht startet (z.B. manuelle Eingabe für fsck nötig)? Man könnte einen Timer starten, sobald der Einschalt-Befehl kommt - und wenn der PC sich nicht in einer bestimmten Zeit meldet, wird ein eigener Status "Fehler" gesetzt? Oder wie könnte man so einen Fall abdecken? Was meint Ihr dazu?

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          523
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          169
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo