Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Netzausfall und Akku bei einer S.USV überwachen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Netzausfall und Akku bei einer S.USV überwachen

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      Habe mir gerade einen RPi 2 und eine http://www.s-usv.de/susv_pibasic.html zugelegt. Über ein Script stelle ich den Ausfall der Netzspannung fest und logge ihn in einer Datei, damit der Zeitpunkt auch noch nach einem Schutdown / Reboot verfügbar ist. Der Datenpunkt "USV.Netz" dient zum Sperren des Sendens an netzspannungsbetriebene Aktoren während des Netzausfalls. In 2 weiteren Datenpunkten wird die Akku-Spannung und der Akku-Ladezustand erfasst.

      // USV Netzausfall und Akkukapazität
      
      var voltid = getIdByName("USV.Akkuspannung");
      var capid = getIdByName("USV.Akkukapazitaet");
      var netid = getIdByName("USV.Netz");
      
      // Netzspannung vorhanden
      function netz() {
          var net = getState(netid).val;
          exec('/opt/susvd/susv -pwrbat 0', function(err, stdout, stderr) {
              if (err) {
                  log(err);
                  return;
                  }
              if(net && parseFloat(stdout) > 200) {
                  setState(netid, false);
                  flog("Netzspannung ausgefallen");
              }
              else if (!net && parseFloat(stdout) < 100) {
                  setState(netid, true);
                  flog("Netzspannung vorhanden");
              }
          });
      }
      
      setInterval(netz, 10000);
      
      // Akkuspannung und -kapazität auslesen
      function akku() {
          exec('/opt/susvd/susv -capbat 0', function(err, stdout, stderr) {
          if (err) {
              log(err);
              return;
              }
              stdout = stdout.split("\n");
              setState(voltid, stdout[1]);
              setState(capid, stdout[0]);
          });
      }
      
      schedule("*/5 * * * *", akku);
      
      

      Für das Loggen in eine Datei verwende ich ein globales Script:

      ! // Logging in Datei /opt/iobroker/iobroker-data/scripts.log ! var fs = require('fs'); // enable write fuer externes log var fn = "/opt/iobroker/iobroker-data/scripts.log"; ! function flog(txt) { var ts = new Date(); var ms = ts.getMilliseconds(); if (ms < 10) { ms = "00" + ms; } else if (ms > 9 && ms < 100) { ms = "0" + ms; } ts = formatDate(ts, "YYYY-MM-DD hh:mm:ss.") + ms + " \t"; fs.appendFileSync(fn, ts + txt + "\n"); } !

      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      680
      Online

      31.7k
      Users

      79.7k
      Topics

      1.3m
      Posts

      1
      1
      1486
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo