Skip to content

Tipps de

Hamatoma edited this page Aug 18, 2022 · 3 revisions

Script zur Meldung der eigenen IP-Adresse

Dieses Script ist ein Baustein, um bei täglich wechselnden IP-Adressen dennoch Zugriffsmöglichkeiten für den SunMonitor zu haben, ohne dass DynDNS oder ähnliches bemüht wird.

Es wird ein Server im Internet angesprochen (hier myip.example.com), der dann die IP-Adresse aus dem Zugriff ermitteln kann.

let remoteurl = "http://myip.example.com/setip.php?hostname=sunmonitor&script=setip";
let maxfails = 1000;
// interval in minutes
let interval = 1;
// CONFIG END

// no need to change anything below this line.
let alertTimer = '';
let failcounter = 0;
function setIp(){
  print("setIp " + remoteurl);
  Shelly.call("HTTP.GET", {
          url: remoteurl
      },
      function (res, error_code, error_msg, ud) {
          if (error_code !== 0) {                  
             if (failcounter === maxfails) {
                  print("Restart");
                  restartRelay();
                  failcounter = 0;
              } else {
                 failcounter++;
                 print("fail: res: ", res, " err: ", error_code, " msg: ", 
                   error_msg, " ud: ", ud, " #: ", failcounter);
              }
          }
      },
      null
  );
}
function startMonitor() {
  alertTimer = Timer.set(interval * 60 * 1000, true,  setIp,  null);
}
function restartRelay() {
    Shelly.call(
        "switch.set",
        { id: 0, on: false, toggle: 2},
        function (result, code, msg, ud) {
        },
        null
    );
}
startMonitor();
setIp();