NEWS
[gelöst] WOL über ioBroker realisieren
-
Hallo zusammen,
Ich versuche zur Zeit weitere Funktion von der CCU nach ioBroker zu verlagern.
Als nächstes würde ich gerne eine WOL Funktion implementieren.
Hat jemand hier eine Idee wie ich das realisieren könnte ?
Vielleicht hat hier jemand schon etwas umgesetzt.
Gruß
Michael
-
Ein Skript:
var wol = require('wake_on_lan'); on('wakeMyDevice', function (obj) { if (!obj.newState.ack && obj.newState.val) { wol.wake('20:DE:20:DE:20:DE', function(error) { if (error) { log(error, 'error'); setState('wakeMyDevice', false, true); } else { setState('wakeMyDevice', true, true); } }); } });
-
Jau, schon realisiert um den Sat-Receiver über ioBroker aufzuwecken.
Seitdem geht er manchmal unmotiviert an. Was nicht weiter schlimm wäre, wenn nicht auch das selbstgebaute Ambilight dann mit leuchtet
Liegt aber mit hoher Sicherheit an ioBroker und dem Script sondern an irgendeiner Macke beim Receiver mit aktiviertem WOL.
Die Info hilft Dir nicht, aber dafür die Info, dass es so funktionierte, wie Bluefox es beschrieben hat
Siehe dazu:
-
Danke für die Infos.
Script habe ich nun erfasst.
Wie kann ich es denn mal testen ?
Und wie kann ich es aus VIS heraus starten ?
Gruß
MIchael
-
kopiere mal Dein Script hier rein
Gesendet von iPhone mit Tapatalk
-
Danke für die Infos.
Script habe ich nun erfasst.
Wie kann ich es denn mal testen ?
Und wie kann ich es aus VIS heraus starten ?
Gruß
MIchael `
Einfach in "admin" unter "Zustände" deine "javascript.0.wakeMyDevice" auf true setzen. -
Hi zusammen,
danke für die Hilfe.
Ich habe das Script jetzt so hinzugefügt:
So sieht es in der Übersicht aus:
Allerdings habe ich unter Zustände nicht den Namen des Scripts.
Woran kann dies liegen ?
Gruß
Michael
-
Hallo,
zeig mal dein log nach dem Scriptstart. Da fehlt doch sicher````
createState(wakeMyDevice);Gruß Pix Gesendet von meinem iPhone mit Tapatalk
-
Danke für deine Hilfe.
Für mich ist das echt alles Neuland und eine totale Blackbox :?
Also wenn ich es wie von dir beschrieben erfasse bekomme ich einen Fehler.
Ich habe jetzt mal folgendes probiert:
createState('wakeMyDevice');
und
createState('wakeMyDevice', {type: 'boolean'});
Leider wird das Objekt nicht so angelegt. dass den State Wert von false auf true ändern kann.
Unter "Zustände" finde ich das Objekt auch nicht.Mach ich noch etwas falsch ?
Gruß
MIchael
-
Du kannst einfach true reinschreiben.
1241_bsz.txt -
Du kannst einfach true reinschreiben. `
Schade
ich habe es auch gerade getestet. Leider komme ich nicht an das gewünschte Ziel.
Vielleich kann eine Profi einmal ein etwas ausführicheren Beitrag schreiben damit die Laien es auch verstehen und umsetzen könen. DANKE
Gruß
Jürgen
-
Ich glaube heute steh ich auf dem Schlauch.
Geburtstag von meinem kleinen vorbereiten und das warme Wetter … Alles zu viel für meinen Kopf.
Wo kann ich denn TRUE eintragen ?
-
Ich glaube heute steh ich auf dem Schlauch.
Geburtstag von meinem kleinen vorbereiten und das warme Wetter … Alles zu viel für meinen Kopf.
Wo kann ich denn TRUE eintragen ? `
Unter Zustände.
Da taucht es aber nur auf, wenn es schone einen Zustand hat.
Lösch das Objekt unter Objekte mal (Papierkorb).
Und trage im Script folgendes ein:
createState('wakeMyDevice',false);
Danach solltest DU das Objekt auch unter Zustände haben und dort von false auf true wechseln können.
Wenn das funktioniert, kannst Du das Objekt z.B. in Vis verwenden, um über Vis auf Knopfdruck Dein Gerät per WOL aufzuwecken.
-
Ich glaube heute steh ich auf dem Schlauch.
Geburtstag von meinem kleinen vorbereiten und das warme Wetter … Alles zu viel für meinen Kopf.
Wo kann ich denn TRUE eintragen ? `
Unter Zustände.
Da taucht es aber nur auf, wenn es schone einen Zustand hat.
Lösch das Objekt unter Objekte mal (Papierkorb).
Und trage im Script folgendes ein:
createState('wakeMyDevice',false);
Danach solltest DU das Objekt auch unter Zustände haben und dort von false auf true wechseln können.
Wenn das funktioniert, kannst Du das Objekt z.B. in Vis verwenden, um über Vis auf Knopfdruck Dein Gerät per WOL aufzuwecken. `
super
so hat es nun funktioniert. Wichtig ist das angesproche löschen
Danke für den Hinweiß
Gruß
Jürgen
-
Also noch mal langsam für Rheinländer
Ich lege das Programm an.
Dann Speicher ist das Programm. Nun sollte unter Zuständ auch die Variable vorhanden sein.
Dann nehme ich die Zeile createState…. Aus dem Script und speicher es.
Nun gehe ich in den Reiter Zustände suche das Objekt und ändere den State Wert in True setzte den Haken bei bestätigen.
Jetzt sollte das Script ausgeführt werden.
Habe ich das so richtig verstanden ?
Gruß Michael
Ps: vielen Dank für eure Hilfe und Geduld.
-
Also noch mal langsam für Rheinländer
Ich lege das Programm an.
Dann Speicher ist das Programm. Nun sollte unter Zuständ auch die Variable vorhanden sein.
Dann nehme ich die Zeile createState…. Aus dem Script und speicher es.
Nun gehe ich in den Reiter Zustände suche das Objekt und ändere den State Wert in True setzte den Haken bei bestätigen.
Jetzt sollte das Script ausgeführt werden.
Habe ich das so richtig verstanden ?
Gruß Michael
Ps: vielen Dank für eure Hilfe und Geduld. `
Du legst das Programm mit createState am Anfang an.
Wenn das Object schon vorhanden ist, macht createState nichts, ansonsten wird das Objektangelegt.
createState bleibt also im Script drin.
-
Hallo Michael,
am besten so:
<list type="decimal">4. erstmal in Objekte die Variable wakeMyDevice wieder löschen
-
script anlegen und in die erste Zeile````
createState('wakeMyDevice',false);Beim Speichern des Skripts wird die Variable __wakeMyDevice__ als Objekt mit dem Zustand __false__ angelegt. Ab jetzt ist die Variable immer da und merkt sich den letzten Zustand, createState legt die Variable nur an, wenn es sie noch nicht gibt.
-
in den Reiter Zustände wechseln und das Objet doppelklicken und ture eintragen -> durch den Wechsel auf true wird das Skript ausgeführt.
-
Optional: Optimalerweise sollte die Variable nach Ausführung des Skriptes (ggf. zeitversetzt) wieder auf false gesetzt werden, damit sie bereit ist, neu auf true geschaltet zu werden. Dazu zB im geposteten Skript hinter Zeile 10 noch````
setTimeout(function () {
setState('wakeMyDevice', false, true);
}, 2000); // wird nach 2s zurück auf false gestellt
````einfügen.
Also hier nochmal alles zusammen
!
createState('wakeMyDevice',false); var wol = require('wake_on_lan'); ! on('wakeMyDevice', function (obj) { if (!obj.newState.ack && obj.newState.val) { wol.wake('20:DE:20:DE:20:DE', function(error) { if (error) { log(error, 'error'); setState('wakeMyDevice', false, true); } else { setState('wakeMyDevice', true, true); setTimeout(function () { setState('wakeMyDevice', false, true); }, 2000); } }); } }); !
Gruß
Pix
-
-
VIELEN DANK…
... für eure Hilfe und Geduld.
Nun klappt es so wie beschrieben. Über VIS kann kann ich nun meinen NAS starten - perfekt.
Gruß
Michael