Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Denkfehler if else Aufbau

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst] Denkfehler if else Aufbau

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 571 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Offline
    J Offline
    josef.steinergmx.de
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #2

      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.

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        josef.steinergmx.de
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • foxriver76F Offline
          foxriver76F Offline
          foxriver76
          Developer
          schrieb am zuletzt editiert von
          #4

          Bitte für Code die````
          Codetags

          
          beste Grüße
          
          fox

          Videotutorials & mehr

          Hier könnt ihr mich unterstützen.

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          897

          Online

          32.4k

          Benutzer

          81.5k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe