NEWS
[gelöst] Denkfehler if else Aufbau
-
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
-
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.
-
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?
-
Bitte für Code die````
Codetagsbeste Grüße fox