NEWS
Wake on LAN
-
Geh auf deine Instanzen und dann auf die Einstellungen vom Javascript Adapter. Da trägst du dann bei „Zusätzliche NPM-Module“ „node-wol“ ein und steicherst. Dann wird der Adapter automatisch installiert.
@apollon77:Naja, beim JS-Adapter die "node-wol" als Paket angeben, dann neu starten damit wird das installiert.
Danke für den Hinweis el_malto.
Merkwürdigerweise hat es bei mir im Javascript immer noch den cannot find Fehler angezeigt.
Erst als ich noch wake_on_lan eingetragen habe hat es funktioniert…(dachte node-wol wäre das selbe?!)
Trotzdem cool das es jetzt läuft...
13238_javascript_adapter3.jpg -
Hallo,
ich habe auch das Problem, dass es nicht funktioniert. Unter Instanzen (javascript.0) habe ich node-wol und wake_on_lan.
Mein Script:
createState("javascript.0.PCanschalten", 0); // Generiert beim Starten den Datenpunkt var wol = require('wake_on_lan'); // Lädt von ioBroker das nötige Paket herunter var myPC = "xx:xx:xx:xx:xx:xx"; // durch eure MAC Adresse ersetzten on({id: "javascript.0.PCanschalten", change: 'any'}, function (obj) { var current_state = getState("javascript.0.PCanschalten").val; if (current_state == "1") { //entspricht true bzw „an“ über Alexa wol.wake(myPC); log("Script ServerSteuerung – Server aufgeweckt, "+current_state, "info"); }else { exec('ssh Serverip -l XXXXX -t "sudo shutdown -h now"'); log("Script ServerSteuerung – Server shutdown "+current_state, "info"); } } );
Bei mir wird ebenfalls angezeigt "cannot find module 'wake_on_lan'".
Wenn ich auf der Konsole ein npm list eingebe wird mir komischerweise folgendes angezeigt:
npm ERR! extraneous: wake_on_lan@1.0.0 /opt/iobroker/node_modules/wake_on_lan
Aber der Ordner ist da.
Danke schonmal und Grüße,
herrmie
-
Hallo Herrmie.
Bei mir wird im Script inzwischen auch wieder 'cannot find module' angezeigt.
Aber es funktioniert trotzdem einwandfrei.
Bevor ich die Module im Javascript-Adapter eingetragen habe hatte ich es ja auch schon über github installiert.
Die Ordner waren also bei mir auch vorhanden, aber es lief trotzdem nicht…
Hast Du die Module wie in meinem letzten Bild eingetragen?
Und dann natürlich noch an dem Gerät das Du weckenmöchtest einstellen das sowas erlaubt ist.
Und ggf. auch am Router...
Dann sollte es klappen.
Script sieht IMA ok aus.
-
Hallo,
ich habe nichts von github installiert. Die 2 Module wake_on_lan und npm-wol sind unter den zusätzlichen NPM Modulen.
Ich verstehe auch nicht ganz das script.
var wol = require('wake_on_lan'); // Lädt von ioBroker das nötige Paket herunter
Heißt das, dass er das automatisch runterlädt wenn er es nicht hat?
Desweiteren, müsste doch beim ausführen unter Protokoll im Scripteditor der Output kommen den ich in dem Script unter "log("…."); habe, oder?
Grüße,
herrmie
-
Ich glaube wenn der Javascript Adapter und das Script läuft, sollte jedesmal wenn es getriggert wird der Satz aus dem Script auch im Log erscheinen.
Unabhängig davon ob WOL funktioniert oder nicht!
Sonst scheint noch etwas anderes nicht zu klappen…
-
Hallo,
das denke ich auch, ich habe jetzt auch mal ein Paar Tests gemacht und mir nur per Log(""); etwas ausgegeben. Aber was ich nicht verstehe ist, wenn wol funktionieren würde, wann wird der Wert dann auf 1 gesetzt?
Ich müsste ja dann eigentlich noch in den IF clause den Status ändern, oder?
Grüße
herrmie
-
Hallo nochmal,
ich habe nun bissle rumprobiert. Hatte auch einen Denkfehler. Nun verstehe ich die Funktionsweise. Ich muss ja auch den Wert dann unter den Objekten ändern, denn mein Script reagiert ja nur auf Änderung.
Problem war dann eben noch, dass ich nur Pubkey Authentifizierung habe und der iobroker user hat keinen private key. Habe das nun alles gemacht und nun funktioniert auch der exec Befehl.
Nun ist mir nur nich klar, wie meine Alexa meinen Server findet. Ich habe bei der Instanz Cloud ein neues smartes Gerät hinzugefügt und mein Objekt zugewiesen. Aber woher soll Alexa das nu kennen? Müsste dieses Gerät nicht nun auch in der Alexa App auf meinem Smartphone unter Geräte zufinden sein?
Grüße,
-
Hallo,
Also ich muss wirklich den Skill deaktivieren, dann wieder aktivieren und danach war mein erstelltes Smartes Gerät da.
Ist ein wenig umständlich, aber vielleicht weiß jemand wie man alexa dazu bringt neue Geräte einzulesen. Ich habe auch versucht es per suche zu finden aber leider keine Chance. Vielleicht habe ich aber auch nach dem falschen Typ gesucht.
Grüße
herrmie
Gesendet von meinem SM-G965F mit Tapatalk
-
Hallo zusammen,
vielen lieben Dank an alle. Hat bei mir auch funktioniert. Da ich absoluter Laie bin, war es für mich etwas schwieriger. Ich musste erst einmal lernen, dass ich das Skript in der ioBroker Übersicht bei <> Skripe einbinden muss und nicht in der ioVIS Oberfläche.
Im Endeffekt ist es bei mir ein Taster in der ioVIS geworden.
Viele Grüße
Mark
-
Hm, das Script wird ausgeführt (info erscheint im Log), aber der Rechner wird net aufgeweckt ... wenn ich ein anderes WoL-Tool nehme (WolCmd.exe), geht es.
var wol = require('wake_on_lan'); on({id: "javascript.0.WoLHTPC", change: 'any'}, function (obj) { wol.wake('10:xx:7B:9E:xx:1A'); log("Script started WoLHTPC", "info"); } );
WoLHTPC ist angelegt unter javascript.0 und es wird ja auch drauf reagiert.
-
Hallo zusammen,
weil ich meinen SmartTV von LG gerne via ioBroker einschalten können wollte, habe ich mich mit dem Thema auch ein wenig beschäftigt und den Weg mal notiert, sollte ich nochmal Probleme damit haben. Im Forum von SchimmerMedia hab ich die kleine Anleitung dazu gepostet, da es auf dem Video basiert.
Einfach dem Link folgen: https://smarthome.schimmer-media.de/forum/index.php?thread/730-alexa-schaltet-computer-ein-dank-iobroker-wake-on-lan-tutorial/&postID=29818#post29818
Danke auch für den Input hier!
cosypanther -
Hi,
ich habe auch versucht, meinen LG TV aus 2014 per WOL zu wecken. Das Script scheint bei mir nicht zu funktionieren.
Daher stellen sich mir die Fragen, ob man a) am TV noch etwas einstellen muss und b) der TV grundsätzlich dafür geeignet sein muss.Ich habe den LB670V. In den Einstellungen des TV habe ich "Remote Control" eingeschaltet, sodass man den TV theoretisch per App schalten könnte. Muss man da noch was aktivieren? In den Geräteeinstellungen in der Fritzbox habe ich auch WOL zugelassen.
Weiß jemand Rat?
LG Stoni
-
Hi, bei mir hat es gemäss Anleitung geklappt- aber erst als ich in den LG-Einstellungen folgendes gewählt habe. Ich habe einen C6D -also WebOS 3 aus 2016:
Einstellungen -> Allgemein -> TV-Gerät per Mobilgerät einschalten -> ein
Vorher sollte man ruhig mal ein Popup auf dem TV erscheinen lassen (in der Instanz "popup Text" wählen und irgendwas eintippen. Manchmal muss man das noch zulassen). Dann weiss man dass der prizipiell auch gepairt ist.
Die Einstellung bzgl WOL muss in der Fritzbox nicht gesetzt sein.
Jetzt hänge ich dabei den Krempel an Alexa als 1 Schalter weiterzureichen.
Ich würde gerne die Szene erweitern, so dass bei "Alexa ...schalte an..." die Szene aufgerufen wird und bei "schalte aus..." der im Adapter vorhandene Schalter "TV off" benutzt wird. Das Ganze soll idealerweise so an Alexa weitergereicht werden. Ich möchte da ungern 2 Routinen erstellen - eine mit an und eine mit aus...Ideen?
Oder muss ich jetzt mit blockly um die Ecke kommen?
-
moin moin, der Beitrag muss mal wieder geweckt werden.
Im Grunde läuft das skript bei mir. Jedoch passt die bedingung nicht.
Ich möchte, dass das Skript ausgeführt wird, wenn mein Szenenobjekt eine null empfängt.
Ich hatte vermutet, dass es ausreicht den wert "any" durch die gewünschte 0 zu ersetzen, es arbeitet jedoch los, völlig egal welcher wert auf dem Objekt empfangen wird..
Kann mir jemand einen Tipp geben, wie ich das lösen kann?
bei mir sieht das skript so aus:var wol = require('wake_on_lan'); // Lädt von ioBroker die das nötige Paket var myPC1 = "xx:xx:xx:xx::"; // MAC definieren // Ab hier automatisch on({id: "knx.0.Test.Szenen.Szene", change: '0'}, function (obj) { wol.wake(myPC1); log("Script WOL - PC1 aufgeweckt", "info"); } );
-
-
@Asgothian
Hab ich gemacht, hat viel länger gedauert als erwartet. Aber ich habe den "Parameter" val gefunden und diesen statt change verwendet und dann die entsprechende Nummer Angegeben. Mein Script läuft nun und sieht wie folgt aus:var wol = require('wake_on_lan'); // Lädt von ioBroker die das nötige Paket var myPC1 = "xx:xx:xx:xx:xx:xx"; // MAC definieren // Ab hier automatisch on({id: "knx.0.Test.Szenen.Szene", val: 0}, function (obj) { wol.wake(myPC1); log("Script WOL - WOZI aufgeweckt", "info"); } );
-
Klasse - bei mir läuft es auch direkt auf Anhieb.
Ich möchte dann direkt sehen wann und ob das Gerät verfügbar ist und nutze den Ping-Adapter.
Weiß jemand welcher Intervall-Wert noch geht und was ioBroker bzw. das Netzwerk zu stark belastet?
Geht jede Sekunde also Intervall 1000? -
@hg6806
Hallo,
ich muss diesen alten Thread nochmal hochholen.
Meine Herausforderung besteht darin, mit einem Schalter ein WOL Paket an mein Synology NAS zu senden und damit starten zu lassen. Die Synology ist soweit eingerichtet, dass WOL möglich ist, da ich dies per App schon ewig machen.
Nun habe ich das Script gefunden und es wie folgt bei mir angepasst:var wol = require('wake_on_lan'); var MyDevice = "xx:xx:xx:xx:xx:xx"; //MAC Adresse des Zielgerätes, hier Synology on({id: "zigbee.0.00158d0003e70c94.click", val: true}, function (obj) { wol.wake(MyDevice); log("Server durch Nutzer gestartet", "info"); } );
In der javascript Instanz habe ich "node-wol" und "wake_on_lan" hinzugefügt. (Weiss gar nicht, ob das überhaupt noch notwendig ist)
Das Script läuft auch und funktioniert soweit, dass sehe ich zumindest an den Nachrichten im log. Bei Click des Auslösers wird es durchlaufen.Was aber scheinbar nicht klappt:
Die DS wird nicht geweckt. Sie bleibt stumm. Hat vielleicht jemand eine Idee woran das liegen könnte und kann mir da einen Tipp geben?
Muss ich die DS vorher mit dem IOBroker verbinden?Besten Dank.
-
@nachon
wol am nas ist aber schon aktiviert? -
@nachon
sieht richtig aus. Bei mir funktioniert:// Beschreibe diese Funktion … function WOL() { var wol = require('wake_on_lan'); wol.wake('xxxxxxxxxxxxxxxxxxx'); } on({id: "iot.0.services.custom_DISKSTATION"/*Service for DISKSTATION*/, change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; WOL(); });
was diesem Blockly entspricht: