Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Denkfehler if else Aufbau

    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

    [gelöst] Denkfehler if else Aufbau

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      josef.steinergmx.de last edited by

      Hallo zusammen,

      mein erstes Skript das ich natürlich noch ausbauen möchte wenn es funktioniert:

      createState("javascript.0.PC",{
          type: 'boolean',
      });   
      
      on("javascript.0.PC", function (obj) {
      
          if (obj.state.val) {
              setState("javascript.0.PC", true);
              log(" PC ON", "info");
      
          }
      
          else 
      
              setState("javascript.0.PC", false);
              log("PC OFF, "info");
          }
      );
      

      Ich kann nun mit meinem Smartphone die Buttons ON und OFF steuern.

      Drücke ich OFF spuckt er mir in der console PC OFF aus

      Drücke ich ON spuckt er mir in der console PC ON auf ABER gleich darauf wieder ebenso herunterfahren!!! (das ich nicht will)

      Wieso?

      Ich setze doch die "States" sodass genau eben das nicht passieren soll.

      Grüße

      1 Reply Last reply Reply Quote 0
      • blauholsten
        blauholsten Developer last edited by

        Hallo,

        ich weiß nicht ob es Kopierfehler sind, aber dein Code hat einige Syntax Fehler.

        Hier behoben:

        on("javascript.0.PC", function(obj){
            if(obj.state.val){
                setState("javascript.0.PC", true);
                log(" PC ON", "info");
            }
            else{ 
            setState("javascript.0.PC", false);
            log("PC OFF", "info");
            }
        });
        

        Aber eine kleine Anmerkung, du solltest nicht den gleichen State setzten auf den du auch auf Veränderungen reagierst. Du brauchst dafür eigentlich 2 States.

        1 Reply Last reply Reply Quote 0
        • J
          josef.steinergmx.de last edited by

          sehr cool! Danke für deinen Tipp!!!

          Es funktioniert! Hier das "komplette" bzw. erweiterte Skript

          createState("javascript.0.PC",{
              type: 'boolean',
          });   
          
          createState("javascript.0.Status",{
              type: 'boolean',
          });  
          
          var wol = require('wake_on_lan');         
          var myPC = "Meine MACadresse";         
          var down = "curl -L http://192.168.0.56:7760/hibernate";
          
          on("javascript.0.PC", function (obj) {
          
              if (obj.state.val) {
                  wol.wake(myPC);
                  setState("javascript.0.Status", true);
                  log("Script WOL - PC aufgeweckt", "info");
          
              }
          
              else {
          
              exec('curl -L http://192.168.0.56:7760/hibernate');
                  setState("javascript.0.Status", false);
                  log("PC wird heruntergefahren", "info");
              }
          });
          
          

          mit Hilfe des Sleeponlan von ireksoftware tool kann ich nun meinen PC beliebig oft in den Standby versetzen und wieder aufwecken.

          Dennoch habe ich eine Preisfrage:

          Sitze ich nun direkt vor meinem PC und versetze ich ihn direkt am PC in den Standby modus so kann ich nun mit AUS-Button vom Smartphone aus den PC wieder hochfahren aber er fährt direkt danach wieder runter. Ich vermute mal ich hab den "State" verändert ohne das es das Skript mitbekommt und deshalb macht er genau das inverse. -> Folglich müsste ich eine zusätzlich Abfrage einbauen bzw. eine Art Verriegelung oder?!?

          Ideen?

          1 Reply Last reply Reply Quote 0
          • foxriver76
            foxriver76 Developer last edited by

            Bitte für Code die````
            Codetags

            
            beste Grüße
            
            fox
            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            856
            Online

            31.7k
            Users

            79.9k
            Topics

            1.3m
            Posts

            3
            4
            518
            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