PC mit Amazon Alexa und ioBroker anschalten

22

In diesem Artikel möchte ich euch erklären, wie ihr mit Hilfe eines kleines Skriptes euren PC mit Amazon Alexa und ioBroker anschalten könnt.

 

PC mit Amazon Alexa und ioBroker anschalten

Amazon Echo Dot (2. Generation), Weiß
Amazon - Elektronik
59,99 EUR

Um euren Computer mit Hilfe von Alexa anschalten zu können, müssen wir in ioBroker ein kleines Skript schreiben. Dieses Skript ist sehr kurz und ihr könnt es einfach übernehmen. Ihr müsst lediglich die „Mac Adresse“ eures PCs herausfinden und diese in das Skript einfügen. Stellt sicher, das ihr auch den „Javascript Adapter“ installiert habt. Diesen benötigen wir, um ein Skript erstellen zu können.

Ich gehe in diesem Artikel davon aus, dass ihr schon gewisse Grundkenntnisse mit ioBroker gesammelt habt. Sollte das nicht der Fall sein, findet ihr das nötige Wissen hier –> Smarthome mit ioBroker steuern (Hauptartikel)

Damit ihr schon einmal seht, was euch erwartet, hier ein kurzes Video:

 

Anleitung um euren PC mit Amazon Alexa und ioBroker anschalten zu können

In der folgenden Galerie, habe ich ein paar Screenshots angehängt, die euch die einzelnen Schritte zeigen. Darunter erkläre ich die jeweiligen Punkte.

Um eure Mac Adresse herauszufinden, navigiert ihr in euren Windows Einstellungen auf die Netzwerkeigenschaften. Dort bekommt ihr dann eure Mac Adresse angezeigt.

Desweiteren benötigt ihr gleich eins dieser Skripte:

Einschalten eines Windows PC’s

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 = "XXX"; // XXX durch eure MAC Adresse ersetzten
on({id: "javascript.0.PCanschalten", change: 'any'}, function (obj) {
wol.wake(myPC);
log("Script WOL - PC aufgeweckt", "info");
}
);

Ein- und Ausschalten eines Linux Systems

Danke an Daniel von https://danielknoell.de/blog/

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 = „MAC Adresse“; // 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 root -t „shutdown -h now“‚);
log(„Script ServerSteuerung – Server shutdown „+current_state, „info“);
}
}
);

Ein- und Ausschalten eines Windows PC’s

(Wichtig zu wissen: In meinem Fall kann ich zwar beide Befehle mit diesem Skript ausführen, wenn ich aber den PC mit dem Befehl herunter gefahren habe, lässt er sich danach nicht wieder mit dem Befehl einschalten. Dazu muss ich den PC auf herkömmliche Weise wieder starten, normal herunterfahren und dann erst lässt er sich wieder per Sprache starten. Wenn ihr eine Lösung dafür habt, lasst es mich bitte wissen) 

createState(„javascript.0.PC1starten“, 0); // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
var wol = require(‚wake_on_lan‘); // Lädt von ioBroker die das nötige Paket
var myPC1 = „MAC Adresse“; // MAC-Adresse
on({id: „javascript.0.PC1starten“, change: ‚any‘}, function (obj) {
current_state = getState(„javascript.0.PC1starten“).val;
if (current_state == „1“) {
wol.wake(myPC1);
log(„Computer: AN“, „info“);
} else {
exec(’net rpc shutdown –ipaddress XXX.XXX.XXX.XXX –user Windows Anmeldename%Windows Passwort‘);
log(„Computer: AUS“, „info“);
}
}
);

 

Anleitung

  1. Auf dem ersten Bild seht ihr das Tab „Skripte“. Dort könnt ihr einen neuen Ordner Anlegen, indem ihr oben links auf das Plus + „neue Gruppe“ klickt.
  2. Es öffnet sich ein Fenster, in dem ihr den neuen Ordner benennen könnt. „Keine Gruppe“ bedeutet, dass der Ordner im obersten Verzeichnis angelegt wird. Das sieht man auch im Hintergrund mit dem Ordner Skripte.
  3. Markiert nun den neu erstellten Ordner und klickt oben links auf das Dokumenten Zeichen. Legt damit ein „neues Skript“ an.
  4. Es öffnet sich ein weiteres Fenster. Wählt oben rechts bei Enginetype „Javascript“ aus.
  5. Gebt dem Skript nun einen Namen. Zum Beispiel „Computer anschalten“.
  6. Fügt nun das oben angehängte Skript ein und ersetzt das „XXX“ durch eure Mac-Adresse. Speichert anschließend das Skript ab und startet es mit dem Button auf der Linken Seite.
  7. Wechselt nun zum Tab der Objekte. Dort solltet ihr nun im Ordner „javascript.0“ den neu angelegten Punkt „PCanschalten“ finden. 
  8. Im letzten Schritt müsst ihr noch im Tab der Instanzen in die Konfiguration des Cloud Adapters. Sollte der Punkt javascript.0.PCanschalten noch nicht automatisch generiert sein, fügt ihn manuell über das + hinzu.

Zu guter letzt, müsst ihr wie immer, in der Alexa App nach neuen Geräten suchen.

 

Hier das Ganze auch noch mal als kurze Videoanleitung. Dort zeige ich euch, wie ihr ein Skript erstellt und an welcher Stelle ihr dann einfach den Code eintragen müsst.

 

Fazit

Ich hoffe euch konnte der Artikel „PC mit Amazon Alexa und ioBroker anschalten“ weiterhelfen und ich würde mich freuen, wenn er euch gefallen hat. Solltet ihr weitere Fragen haben, hinterlasst mir doch einen Kommentar. 

Wenn ihr mehr über ioBroker wissen wollt, schaut doch mal in meinem Hauptartikel von ioBroker vorbei.

Für tiefgründigere Fragen, schaut doch mal im ioBroker Forum vorbei. Dort findet ihr eine große, hilfsbereite Community.

Viele liebe Grüße, Karim.

PC mit Amazon Alexa und ioBroker anschalten
Hat dir der Artikel weitergeholfen?

Teilen.

22 Kommentare

  1. In den Tab Objekte finde ich nunin den Ordner script.js meinen angelegten Ordner Skripte gleich zweimal und in diese beiden Ordner das Sript auch gleich mehrmals.Die Struktur ist folgende Ordner
    Script.js in diesen zweimal den Ordner Skripte im ersten Ordner skripte das Script Server einschalten gleich zweimal. Im zweiten ordner Skripte das erstellte Script Server einschalten ein mal.
    OK aber gehe ich nun unter Instanzen in die Cloud finde ich den Ordner Sript.js nicht also sind dort auch keine Scripte zu finden.

    • Hallo Alex,

      Indirekt. Du benötigst ein Gerät auf dem ioBroker laufen kann.
      Am einfachsten ist in diesem Fall ein Raspberry Pi, außer du besitzt bereits einen Server.

      Lieben Gruß, Karim.

  2. Hey funktioniert super. Benutze es für meinen Linux Server. Weißt du zufällig wie man ihn wieder runter fährt? dachte an ssh und „shutdown -h now“, weiß aber nicht wie man das mit js in iobroker macht.
    Gruß,
    Daniel

    • Hallo Daniel,

      Ja, das geht auch. Das Ganze ist aber mit etwas mehr Aufwand verbunden und leider kann ich nachdem ich den PC per Sprache runtergefahren habe, ihn nicht mehr per Sprache starten. Deswegen habe ich diese Lösung auch nicht gepostet.

      Um das dann umzusetzen, musst du Samba auf dem Pi installieren und zumindest bei Windows was in der Registry ändern. Der Code sieht dann wie folgt aus:

      createState(„javascript.0.PC1starten“, 0); // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
      var wol = require(‚wake_on_lan‘); // Lädt von ioBroker die das nötige Paket
      var myPC1 = „MAC Adresse“; // MAC-Adresse
      on({id: „javascript.0.PC1starten“, change: ‚any‘}, function (obj) {
      current_state = getState(„javascript.0.PC1starten“).val;
      if (current_state == „1“) {
      wol.wake(myPC1);
      log(„Computer: AN“, „info“);
      } else {
      exec(’net rpc shutdown –ipaddress XXX.XXX.XXX.XXX –user Windows Anmeldename%Windows Passwort‘);
      log(„Computer: AUS“, „info“);
      }

      });

      Würde mich über Feedback freuen, ob es bei dir klappt.

      Lieben Gruß, Karim.

      • Hallo Karim,
        Hab dein Script leicht abgewandelt und jetzt funktioniert es auch für Linux PCs/Server. Bei Linux muss man noch mit ssh-copy-id den passwortlosen login einrichten. Ich kann den Server auch beliebig oft an und ausschalten. Muss wohl ein Windows Problem sein. Hier 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 = „MAC Adresse“; // 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 root -t „shutdown -h now“‚);
        log(„Script ServerSteuerung – Server shutdown „+current_state, „info“);
        }
        }
        );

      • Hallo Daniel,

        Ah super! Dann funktioniert es bei dir wirklich perfekt! Ich habe leider noch keine Lösung für mein Problem gefunden.

        Darf ich dein Script einfach so übernehmen und oben mit in meine Anleitung einbinden?

        Lieben Gruß, Karim.

  3. Hallo Karim,

    wie immer ein klasse Artikel!
    Leider funktioniert das anschalten mit meinem Notebook nicht. Alexa sagt zwar „ok“, aber passieren tut danach nichts. Vielleicht gibt es noch irgendeinen Punkt den man beachten sollte, der aber noch nicht angesprochen wurde? Firewalls oder derartiges?

    Danke und schönen Gruß

    Jott

  4. Servus,
    ich habe auch die Idee verfolgt meinen Pc samt AVR und TV per Sprachkommando zu starten bzw. aus zu schalten.
    Die Lösung über Skripte finde ich für meine Zwecke leider nicht wirklich praktikabel.
    Über das kodinerds Forum bin ich auf den YARD2 gestoßen – mehr Infos unter http://www.yard2usb.de/
    Ist eine kleine Platine die im PC eingebaut wird und es ermöglicht, den PC ein und aus zu schalten via Harmony Hub.
    Hat bei mir auf Anhieb funkioniert und war spielend leicht umzusetzen.
    Das soll in keinster-weise Schleichwerbung o.ä. sein – wollte nur den Lesern hier evtl. eine weitere Möglichkeit aufzeigen.
    Wenn das nicht gewollt ist – bitte löschen und sorry !

  5. hey karim,

    ja das weiß ich was ich mich frage ist das im skript steht: „var wol = require(‚wake_on_lan‘); // Lädt von ioBroker die das nötige Paket“
    Welches Paket?

    und gibt es eig schon ein Skript womit man ihn auschalten und wieder einschalten kann.
    und wie bearbeite ich das muss da irgendwie 2 mal meine Mac adresse hin?

    Gruß Kilian

    • Hallo Kilian,

      Das Paket lädt das Skript automatisch. Darum musst du dich nicht kümmern.

      Ich habe mich nicht mehr darum bemüht, das „letzte“ Skript richtig zum Laufen zu bekommen. Deswegen weiß ich leider nicht, was man anders machen muss, um ihn ein und ausschalten zu können.

      Du braucht die MAC Adresse immer nur ein mal. Setz sie dort ein, wo sie benötigt wird. Bei dem letzten Skript fürs ein und ausschalten benötigst du noch deine IP, die auch einfach an die passende markierte Stelle setzen.

      Ansonsten kannst du das Skript auch einfach testen und ausprobieren ob es klappt.

      Lieben Gruß, Karim.

Hinterlasst uns doch einen Kommentar