iobroker

Rund um die Hardware

Moderator: usualsuspect

Gesperrt
Benutzeravatar
Goersch
Administrator
Beiträge: 2634
Registriert: Mo 10. Aug 2009, 19:17

iobroker

Beitrag von Goersch » Sa 1. Apr 2017, 17:01

Um GMPS mit dem iobroker zu nutzen (iobroker sendet WOL an den GMPS Server), muss man im iobroker

A) Die Instanz "Simple-API" installieren und starten
B) Folgendes Skript anlegen

Code: Alles auswählen

createState('GMPS.Aufwachzeit', "", {
    name: 'GMPS_Aufwachzeit',
    desc: 'Sendet wol zur angegebenen Zeit',
    type: 'string'
});
createState('GMPS.MACAdresse', "", {
    name: 'GMPS_MACAdresse',
    desc: 'An diese MAC-Adresse wird das WOL geschickt',
    type: 'string'
});

instanz = 'javascript.0.';

idStart = instanz + "GMPS.Aufwachzeit";
idMAC = instanz + "GMPS.MACAdresse";

var sched;
   
on(idStart,function() {initWOL();});

initWOL();
function initWOL()
{
    var startzeit = getState(idStart).val;
    var macAddress = getState(idMAC).val;
    log("Neue Startzeit: " + startzeit + " / " + macAddress);
    clearSchedule(sched);
    var dt = startzeit.split(" ");
    var datum = dt[0].split("-");
    var uhrzeit = dt[1].split(":");
    var szdt = new Date(datum[0], parseInt(datum[1])-1, datum[2],uhrzeit[0],uhrzeit[1],uhrzeit[2]);
    var now = new Date();
    if (szdt > now)
    {
        sched = schedule({hour: szdt.getHours(), minute: szdt.getMinutes(), second: szdt.getSeconds()},function(){wol(macAddress);});
    }
    else
        log("Neue Startzeit in Vergangenheit",'error');
}

function wol(macAddress)
{
    var _wol = require('wake_on_lan');
    _wol.wake(macAddress, function(error) 
    {
        if (error) log(macAddress + " : " + error, 'error');
        else log(macAddress + " : OK");
    });           
}
C) In GMPS im Reiter "Hardware" den iobroker auswählen, die IP-Adresse des iobrokers und die Port-Nummer der Simple-API Instanz angeben.

Gesperrt