Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Daten der S.USV auslesen - Fehler im Skript

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    6
    1
    62

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

[gelöst] Daten der S.USV auslesen - Fehler im Skript

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
5 Beiträge 3 Kommentatoren 582 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    Beowolf
    schrieb am zuletzt editiert von Beowolf
    #1

    Ich habe das Skript aus diesem Beitrag eingefügt.

    https://www.forum.iobroker.net/topic/15963/skript-zum-auslesen-der-s-usv

    Leider kann ich nicht in dem Beitrag eine Frage stellen. Es kommt immer wieder die Meldung, "Es scheint als hättest du die Verbindung zu ioBroker Community verloren, bitte warte während wir versuchen sie wieder aufzubauen."

    Deshalb jetzt hier die Frage.

    Es steht in der Log-Fenster von ioBroker immer dieser Fehler:

    2.4.2019, 16:41:46.983	[error]: javascript.0 ReferenceError: v10010 is not defined
        at script.js.common.Ausgabewerte_für_die_SUSV:183:22
        at Array.forEach (<anonymous>:null:null)
        at script.js.common.Ausgabewerte_für_die_SUSV:95:8
        at ChildProcess.exithandler (child_process.js:267:7)
        at emitTwo (events.js:126:13)
        at ChildProcess.emit (events.js:214:7)
        at maybeClose (internal/child_process.js:925:16)
        at Socket.stream.socket.on (internal/child_process.js:346:11)
        at emitOne (events.js:116:13)
        at Socket.emit (events.js:211:7)
    
    2.4.2019, 16:41:46.986	[info ]: javascript.0 Stop script script.js.common.Ausgabewerte_für_die_SUSV
    2.4.2019, 16:41:47.071	[error]: Caught by controller[0]:     at script.js.common.Ausgabewerte_für_die_SUSV:183:22
    2.4.2019, 16:41:47.072	[error]: Caught by controller[0]:     at script.js.common.Ausgabewerte_für_die_SUSV:95:8
    

    Das ist das zugehörige Skript

    // Script to drive the S.USV Pi uninterrupted power supply
    // See http://www.s-usv.de for details.
    // NOTE: This script uses the S.USV demon and client software
    // (available on same website) so you must install it before.
    // Version 1.3, October 2018, Ralf Schaefer
    // –----------- Configuration variables -------------
    var PollTime = 60; // how often will we poll the usv (in sec)
    var susv = '/opt/susvd/susv'; // where is the susv client executable
    var idUSV = 'USV.'; // prefix for object tree
    var logLevel = 0; // set to 1 for some logging messages
    // ------------- Do not modify below this point -------------
    var idModel = idUSV + 'Model';
    var idFirmware = idUSV + 'FirmwareVersion';
    var idSoftware = idUSV + 'SoftwareVersion';
    var idHardware = idUSV + 'HardwareVersion';
    var idMailNotification = idUSV + 'MailNotification';
    var idTimedBoot = idUSV + 'TimedBoot';
    var idBootTime = idUSV + 'BootTime';
    var idTimedShutdown = idUSV + 'TimedShutdown';
    var idShutdownTime = idUSV + 'ShutdownTime';
    var idSUSVOK = idUSV + 'SUSVOK';
    var idMainsOk = idUSV + 'MainsOK';
    var idPoweringSource = idUSV + 'PoweringSource';
    var idChargingCircuit = idUSV + 'ChargingCircuit';
    var idCharging = idUSV + 'Charging';
    var idVoltageIn = idUSV + 'VoltageIn';
    var idVoltageInDeviation = idUSV + 'VoltageInDeviation';
    var idBatteryCapacity = idUSV + 'BatteryCapacity';
    var idBatteryVoltage = idUSV + 'BatteryVoltage';
    var idPowerBattery = idUSV + 'PowerBattery';
    var idVISBatteryLevel = idUSV + 'BatteryLevel';
    var idShutdownTimer = idUSV + 'ShutdownTimer';
    var idAutostart = idUSV + 'Autostart';
    var idSleepTimer = idUSV + 'SleepTimer';
    createState(idModel, 0, { name: 'Model', type: 'string' }); // 'Basic', '???''
    createState(idFirmware, 0, { name: 'Firmware version', type: 'string' }); // '2.61'
    createState(idSoftware, 0, { name: 'Software version', type: 'string' }); // '2.40'
    createState(idHardware, 0, { name: 'Hardware version', type: 'string' }); // '2.1'
    createState(idMailNotification, 0, { name: 'Mail notification', type: 'boolean' });
    createState(idTimedBoot, 0, { name: 'Timed boot', type: 'boolean' }); // 'HH:mm:ss'
    createState(idBootTime, 0, { name: 'Boot time', type: 'string' });
    createState(idTimedShutdown, 0, { name: 'Timed shutdown', type: 'boolean' });
    createState(idShutdownTime, 0, { name: 'Shutdown time', type: 'string' }); // 'HH:mm:ss'
    createState(idSUSVOK, 0, { name: 'Zugriff auf SUSV ok', type: 'boolean' });
    createState(idMainsOk, false, { name: 'Netz vorhanden', type: 'boolean' }); // true if PoweringSource != 'Battery'
    createState(idPoweringSource, '', { name: 'Energiequelle', type: 'string' }); // 'Primary', 'Battery'
    createState(idChargingCircuit, '', { name: 'Batterielader', type: 'string' }); // 'ONLINE', 'OFFLINE'
    createState(idCharging, false, { name: 'Akku wird geladen', type: 'boolean' }); // true if battery is charged
    createState(idVoltageIn, 0, { name: 'Eingangsspannung', type: 'number', min: 0, max: 5.5, unit: 'V' });
    createState(idVoltageInDeviation, 0, { name: 'Abweichung Eingangsspannung', type: 'number', min: -20, max: 20, unit: "%" }); // deviation from 5.00V
    createState(idBatteryCapacity, 0, { name: 'Verbleibende Akkukapazitaet', type: 'number', min: 0, max: 100, unit: "%" });
    createState(idBatteryVoltage, 0, { name: 'Akkuspannung', type: 'number', min: 0, max: 5.5, unit: 'V' });
    createState(idPowerBattery, 0, { name: 'Batteriestrom', type: 'number', min: 0, max: 2000, unit: 'mA' }); // 0 if PoweringSource != 'Battery'
    createState(idVISBatteryLevel, 0, { name: 'Batterielevel (0..4 für VIS)', type: 'number', min: 0, max: 4 }); // can be used in VIS to switch icons
    createState(idShutdownTimer, 0, { name: 'Shutdown timer', type: 'number' }); //
    createState(idAutostart, false, { name: 'Autostart', type: 'boolean' }); // 'enabled' ??
    createState(idSleepTimer, 0, { name: 'Sleep timer', type: 'number' }); //
    // Backup variables - we want to call setState only on value changes
    var vModel = null;
    var vFirmware = null;
    var vSoftware = null;
    var vHardware = null;
    var vMailNotification = null;
    var vTimedBoot = null;
    var vBootTime = null;
    var vTimedShutdown = null;
    var vShutdownTime = null;
    var vMainsOk = null;
    var vPoweringSource = null;
    var vChargingCircuit = null;
    var vCharging = null;
    var vVoltageIn = null;
    var vVoltageInDeviation = null;
    var vBatteryCapacity = null;
    var vBatteryVoltage = null;
    var vPowerBattery = null;
    var vVISBatteryLevel = null;
    var vShutdownTimer = null;
    var vAutostart = null;
    var vSleepTimer = null;
    function GetUSVStatus() {
    var SWVersion = '';
    exec(susv + ' -status', function(err, stdout, stderr) {
    if (err) {
    log(err + ': ' + stdout);
    setState(idSUSVOK, false, true);
    return;
    }
    else
    {
    // Unlike other values we set the state always, to have a recent time stamp
    setState(idSUSVOK, true, true);
    }
    stdout = stdout.split('\n');
    stdout.forEach(function(line) {
    var v;
    if (contains(line, 'Model:'))
    {
    v = snip(line, ' ');
    if (vModel !== v)
    setState(idModel, vModel = v, true);
    }
    else if (contains(line, 'Firmware Version'))
    {
    v = snip(line, ' ');
    if (vFirmware !== v)
    setState(idFirmware, vFirmware = v, true);
    }
    else if (contains(line, 'Software Version'))
    {
    v = snip(line, ' ');
    if (v !== '2.20' && v !== '2.33' && v !== '2.40')
    log('Unexpected software version ' + v + ', possibly not all values are correctly identified.')
    if (vSoftware !== v)
    setState(idSoftware, vSoftware = v, true);
    }
    else if (contains(line, 'Hardware Version'))
    {
    v = snip(line, ' ');
    if (vHardware !== v)
    setState(idHardware, vHardware = v, true);
    }
    else if (contains(line, 'Mail notification'))
    {
    v = snip(line, ' ');
    v = (v == 'Enabled');
    if (vMailNotification !== v)
    setState(idMailNotification, vMailNotification = v, true);
    }
    else if (contains(line, 'Timed Boot'))
    {
    v = snip(line, ' ');
    v = (v == 'Enabled');
    if (vTimedBoot !== v)
    setState(idTimedBoot, vTimedBoot = v, true);
    }
    else if (contains(line, 'Boot time'))
    {
    v = snip(line, ' ');
    if (vBootTime !== v)
    setState(idBootTime, vBootTime = v, true);
    }
    else if (contains(line, 'Timed Shutdown'))
    {
    v = snip(line, ' ');
    v = (v == 'Enabled');
    if (vTimedShutdown !== v)
    setState(idTimedShutdown, vTimedShutdown = v, true);
    }
    else if (contains(line, 'Shutdown time:'))
    {
    v = snip(line, ' ');
    if (vShutdownTime !== v)
    setState(idShutdownTime, vShutdownTime = v, true);
    }
    else if (contains(line, 'Powering Source'))
    {
    v = snip(line, ' ');
    if (logLevel)
    log('PowerSource v=' + v);
    if (vPoweringSource !== v)
    setState(idPoweringSource, vPoweringSource = v, true);
    v = (v != 'Battery');
    if (logLevel)
    log('MainOK v=' + v);
    if (vMainsOk !== v)
    setState(idMainsOk, vMainsOk = v, true);
    }
    else if (contains(line, 'Charging circuit'))
    {
    v = snip(line, ' ');
    if (vChargingCircuit !== v)
    setState(idChargingCircuit, vChargingCircuit = v, true);
    v = (v != 'OFFLINE');
    if (vCharging !== v)
    setState(idCharging, vCharging = v, true);
    }
    else if (contains(line, 'Voltage in'))
    {
    v = parseFloat(snip(line, ' V'));
    if (vVoltageIn !== v)
    setState(idVoltageIn, vVoltageIn = v, true);
    v = Math.round((v-5)/v10010)/10;
    if (vVoltageInDeviation !== v)
    setState(idVoltageInDeviation, vVoltageInDeviation = v, true);
    }
    else if (contains(line, 'Battery capacity'))
    {
    v = parseInt(snip(line, '%'));
    if (vBatteryCapacity !== v)
    setState(idBatteryCapacity, vBatteryCapacity = v, true);
    v = Math.round(parseInt(v) / 25); // 0..100% --> 0..4
    if (vVISBatteryLevel !== v)
    setState(idVISBatteryLevel, vVISBatteryLevel = v, true);
    }
    else if (contains(line, 'Battery voltage'))
    {
    v = parseFloat(snip(line, 'V'));
    if (vBatteryVoltage !== v)
    setState(idBatteryVoltage, vBatteryVoltage = v, true);
    }
    else if (contains(line, 'Power Battery'))
    {
    v = parseFloat(snip(line, ' mA'));
    if (vPowerBattery !== v)
    setState(idPowerBattery, vPowerBattery = v, true);
    }
    else if (contains(line, 'Shutdown timer'))
    {
    v = parseInt(snip(line, ' '));
    if (vShutdownTimer !== v)
    setState(idShutdownTimer, vShutdownTimer = v, true);
    }
    else if (contains(line, 'Autostart'))
    {
    v = snip(line, ' ');
    v = (v == 'enabled');
    if (vAutostart !== v)
    setState(idAutostart, vAutostart = v, true);
    }
    else if (contains(line, 'Sleep timer'))
    {
    v = parseFloat(snip(line, ' '));
    if (vSleepTimer !== v)
    setState(idSleepTimer, vSleepTimer = v, true);
    }
    });
    });
    }
    setInterval(GetUSVStatus, PollTime * 1000);
    // Return true if needle is found in hay, false otherwise
    function contains(hay, needle) {
    return hay.indexOf(needle) > -1;
    }
    // snip out everything between the colon and the specified end tag.
    // Example:
    // snip('* Battery capacity: 69.60% *', '%') => '69.60'
    function snip(line, endtag) {
    var idx = line.indexOf(':');
    if (idx < 1)
    return '';
    line = line.substring(idx + 2);
    idx = line.indexOf(endtag);
    if (idx < 1)
    return '';
    return line.substring(0, idx);
    }
    

    Kann mir dabei jemand helfen?

    Grüße
    Manfred

    Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

    paul53P 1 Antwort Letzte Antwort
    0
    • B Beowolf

      Ich habe das Skript aus diesem Beitrag eingefügt.

      https://www.forum.iobroker.net/topic/15963/skript-zum-auslesen-der-s-usv

      Leider kann ich nicht in dem Beitrag eine Frage stellen. Es kommt immer wieder die Meldung, "Es scheint als hättest du die Verbindung zu ioBroker Community verloren, bitte warte während wir versuchen sie wieder aufzubauen."

      Deshalb jetzt hier die Frage.

      Es steht in der Log-Fenster von ioBroker immer dieser Fehler:

      2.4.2019, 16:41:46.983	[error]: javascript.0 ReferenceError: v10010 is not defined
          at script.js.common.Ausgabewerte_für_die_SUSV:183:22
          at Array.forEach (<anonymous>:null:null)
          at script.js.common.Ausgabewerte_für_die_SUSV:95:8
          at ChildProcess.exithandler (child_process.js:267:7)
          at emitTwo (events.js:126:13)
          at ChildProcess.emit (events.js:214:7)
          at maybeClose (internal/child_process.js:925:16)
          at Socket.stream.socket.on (internal/child_process.js:346:11)
          at emitOne (events.js:116:13)
          at Socket.emit (events.js:211:7)
      
      2.4.2019, 16:41:46.986	[info ]: javascript.0 Stop script script.js.common.Ausgabewerte_für_die_SUSV
      2.4.2019, 16:41:47.071	[error]: Caught by controller[0]:     at script.js.common.Ausgabewerte_für_die_SUSV:183:22
      2.4.2019, 16:41:47.072	[error]: Caught by controller[0]:     at script.js.common.Ausgabewerte_für_die_SUSV:95:8
      

      Das ist das zugehörige Skript

      // Script to drive the S.USV Pi uninterrupted power supply
      // See http://www.s-usv.de for details.
      // NOTE: This script uses the S.USV demon and client software
      // (available on same website) so you must install it before.
      // Version 1.3, October 2018, Ralf Schaefer
      // –----------- Configuration variables -------------
      var PollTime = 60; // how often will we poll the usv (in sec)
      var susv = '/opt/susvd/susv'; // where is the susv client executable
      var idUSV = 'USV.'; // prefix for object tree
      var logLevel = 0; // set to 1 for some logging messages
      // ------------- Do not modify below this point -------------
      var idModel = idUSV + 'Model';
      var idFirmware = idUSV + 'FirmwareVersion';
      var idSoftware = idUSV + 'SoftwareVersion';
      var idHardware = idUSV + 'HardwareVersion';
      var idMailNotification = idUSV + 'MailNotification';
      var idTimedBoot = idUSV + 'TimedBoot';
      var idBootTime = idUSV + 'BootTime';
      var idTimedShutdown = idUSV + 'TimedShutdown';
      var idShutdownTime = idUSV + 'ShutdownTime';
      var idSUSVOK = idUSV + 'SUSVOK';
      var idMainsOk = idUSV + 'MainsOK';
      var idPoweringSource = idUSV + 'PoweringSource';
      var idChargingCircuit = idUSV + 'ChargingCircuit';
      var idCharging = idUSV + 'Charging';
      var idVoltageIn = idUSV + 'VoltageIn';
      var idVoltageInDeviation = idUSV + 'VoltageInDeviation';
      var idBatteryCapacity = idUSV + 'BatteryCapacity';
      var idBatteryVoltage = idUSV + 'BatteryVoltage';
      var idPowerBattery = idUSV + 'PowerBattery';
      var idVISBatteryLevel = idUSV + 'BatteryLevel';
      var idShutdownTimer = idUSV + 'ShutdownTimer';
      var idAutostart = idUSV + 'Autostart';
      var idSleepTimer = idUSV + 'SleepTimer';
      createState(idModel, 0, { name: 'Model', type: 'string' }); // 'Basic', '???''
      createState(idFirmware, 0, { name: 'Firmware version', type: 'string' }); // '2.61'
      createState(idSoftware, 0, { name: 'Software version', type: 'string' }); // '2.40'
      createState(idHardware, 0, { name: 'Hardware version', type: 'string' }); // '2.1'
      createState(idMailNotification, 0, { name: 'Mail notification', type: 'boolean' });
      createState(idTimedBoot, 0, { name: 'Timed boot', type: 'boolean' }); // 'HH:mm:ss'
      createState(idBootTime, 0, { name: 'Boot time', type: 'string' });
      createState(idTimedShutdown, 0, { name: 'Timed shutdown', type: 'boolean' });
      createState(idShutdownTime, 0, { name: 'Shutdown time', type: 'string' }); // 'HH:mm:ss'
      createState(idSUSVOK, 0, { name: 'Zugriff auf SUSV ok', type: 'boolean' });
      createState(idMainsOk, false, { name: 'Netz vorhanden', type: 'boolean' }); // true if PoweringSource != 'Battery'
      createState(idPoweringSource, '', { name: 'Energiequelle', type: 'string' }); // 'Primary', 'Battery'
      createState(idChargingCircuit, '', { name: 'Batterielader', type: 'string' }); // 'ONLINE', 'OFFLINE'
      createState(idCharging, false, { name: 'Akku wird geladen', type: 'boolean' }); // true if battery is charged
      createState(idVoltageIn, 0, { name: 'Eingangsspannung', type: 'number', min: 0, max: 5.5, unit: 'V' });
      createState(idVoltageInDeviation, 0, { name: 'Abweichung Eingangsspannung', type: 'number', min: -20, max: 20, unit: "%" }); // deviation from 5.00V
      createState(idBatteryCapacity, 0, { name: 'Verbleibende Akkukapazitaet', type: 'number', min: 0, max: 100, unit: "%" });
      createState(idBatteryVoltage, 0, { name: 'Akkuspannung', type: 'number', min: 0, max: 5.5, unit: 'V' });
      createState(idPowerBattery, 0, { name: 'Batteriestrom', type: 'number', min: 0, max: 2000, unit: 'mA' }); // 0 if PoweringSource != 'Battery'
      createState(idVISBatteryLevel, 0, { name: 'Batterielevel (0..4 für VIS)', type: 'number', min: 0, max: 4 }); // can be used in VIS to switch icons
      createState(idShutdownTimer, 0, { name: 'Shutdown timer', type: 'number' }); //
      createState(idAutostart, false, { name: 'Autostart', type: 'boolean' }); // 'enabled' ??
      createState(idSleepTimer, 0, { name: 'Sleep timer', type: 'number' }); //
      // Backup variables - we want to call setState only on value changes
      var vModel = null;
      var vFirmware = null;
      var vSoftware = null;
      var vHardware = null;
      var vMailNotification = null;
      var vTimedBoot = null;
      var vBootTime = null;
      var vTimedShutdown = null;
      var vShutdownTime = null;
      var vMainsOk = null;
      var vPoweringSource = null;
      var vChargingCircuit = null;
      var vCharging = null;
      var vVoltageIn = null;
      var vVoltageInDeviation = null;
      var vBatteryCapacity = null;
      var vBatteryVoltage = null;
      var vPowerBattery = null;
      var vVISBatteryLevel = null;
      var vShutdownTimer = null;
      var vAutostart = null;
      var vSleepTimer = null;
      function GetUSVStatus() {
      var SWVersion = '';
      exec(susv + ' -status', function(err, stdout, stderr) {
      if (err) {
      log(err + ': ' + stdout);
      setState(idSUSVOK, false, true);
      return;
      }
      else
      {
      // Unlike other values we set the state always, to have a recent time stamp
      setState(idSUSVOK, true, true);
      }
      stdout = stdout.split('\n');
      stdout.forEach(function(line) {
      var v;
      if (contains(line, 'Model:'))
      {
      v = snip(line, ' ');
      if (vModel !== v)
      setState(idModel, vModel = v, true);
      }
      else if (contains(line, 'Firmware Version'))
      {
      v = snip(line, ' ');
      if (vFirmware !== v)
      setState(idFirmware, vFirmware = v, true);
      }
      else if (contains(line, 'Software Version'))
      {
      v = snip(line, ' ');
      if (v !== '2.20' && v !== '2.33' && v !== '2.40')
      log('Unexpected software version ' + v + ', possibly not all values are correctly identified.')
      if (vSoftware !== v)
      setState(idSoftware, vSoftware = v, true);
      }
      else if (contains(line, 'Hardware Version'))
      {
      v = snip(line, ' ');
      if (vHardware !== v)
      setState(idHardware, vHardware = v, true);
      }
      else if (contains(line, 'Mail notification'))
      {
      v = snip(line, ' ');
      v = (v == 'Enabled');
      if (vMailNotification !== v)
      setState(idMailNotification, vMailNotification = v, true);
      }
      else if (contains(line, 'Timed Boot'))
      {
      v = snip(line, ' ');
      v = (v == 'Enabled');
      if (vTimedBoot !== v)
      setState(idTimedBoot, vTimedBoot = v, true);
      }
      else if (contains(line, 'Boot time'))
      {
      v = snip(line, ' ');
      if (vBootTime !== v)
      setState(idBootTime, vBootTime = v, true);
      }
      else if (contains(line, 'Timed Shutdown'))
      {
      v = snip(line, ' ');
      v = (v == 'Enabled');
      if (vTimedShutdown !== v)
      setState(idTimedShutdown, vTimedShutdown = v, true);
      }
      else if (contains(line, 'Shutdown time:'))
      {
      v = snip(line, ' ');
      if (vShutdownTime !== v)
      setState(idShutdownTime, vShutdownTime = v, true);
      }
      else if (contains(line, 'Powering Source'))
      {
      v = snip(line, ' ');
      if (logLevel)
      log('PowerSource v=' + v);
      if (vPoweringSource !== v)
      setState(idPoweringSource, vPoweringSource = v, true);
      v = (v != 'Battery');
      if (logLevel)
      log('MainOK v=' + v);
      if (vMainsOk !== v)
      setState(idMainsOk, vMainsOk = v, true);
      }
      else if (contains(line, 'Charging circuit'))
      {
      v = snip(line, ' ');
      if (vChargingCircuit !== v)
      setState(idChargingCircuit, vChargingCircuit = v, true);
      v = (v != 'OFFLINE');
      if (vCharging !== v)
      setState(idCharging, vCharging = v, true);
      }
      else if (contains(line, 'Voltage in'))
      {
      v = parseFloat(snip(line, ' V'));
      if (vVoltageIn !== v)
      setState(idVoltageIn, vVoltageIn = v, true);
      v = Math.round((v-5)/v10010)/10;
      if (vVoltageInDeviation !== v)
      setState(idVoltageInDeviation, vVoltageInDeviation = v, true);
      }
      else if (contains(line, 'Battery capacity'))
      {
      v = parseInt(snip(line, '%'));
      if (vBatteryCapacity !== v)
      setState(idBatteryCapacity, vBatteryCapacity = v, true);
      v = Math.round(parseInt(v) / 25); // 0..100% --> 0..4
      if (vVISBatteryLevel !== v)
      setState(idVISBatteryLevel, vVISBatteryLevel = v, true);
      }
      else if (contains(line, 'Battery voltage'))
      {
      v = parseFloat(snip(line, 'V'));
      if (vBatteryVoltage !== v)
      setState(idBatteryVoltage, vBatteryVoltage = v, true);
      }
      else if (contains(line, 'Power Battery'))
      {
      v = parseFloat(snip(line, ' mA'));
      if (vPowerBattery !== v)
      setState(idPowerBattery, vPowerBattery = v, true);
      }
      else if (contains(line, 'Shutdown timer'))
      {
      v = parseInt(snip(line, ' '));
      if (vShutdownTimer !== v)
      setState(idShutdownTimer, vShutdownTimer = v, true);
      }
      else if (contains(line, 'Autostart'))
      {
      v = snip(line, ' ');
      v = (v == 'enabled');
      if (vAutostart !== v)
      setState(idAutostart, vAutostart = v, true);
      }
      else if (contains(line, 'Sleep timer'))
      {
      v = parseFloat(snip(line, ' '));
      if (vSleepTimer !== v)
      setState(idSleepTimer, vSleepTimer = v, true);
      }
      });
      });
      }
      setInterval(GetUSVStatus, PollTime * 1000);
      // Return true if needle is found in hay, false otherwise
      function contains(hay, needle) {
      return hay.indexOf(needle) > -1;
      }
      // snip out everything between the colon and the specified end tag.
      // Example:
      // snip('* Battery capacity: 69.60% *', '%') => '69.60'
      function snip(line, endtag) {
      var idx = line.indexOf(':');
      if (idx < 1)
      return '';
      line = line.substring(idx + 2);
      idx = line.indexOf(endtag);
      if (idx < 1)
      return '';
      return line.substring(0, idx);
      }
      

      Kann mir dabei jemand helfen?

      Grüße
      Manfred

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @Beowolf sagte:

      v = Math.round((v-5)/v10010)/10;

      Ändere mal Zeile 183 in

      v = Math.round((v-5)*200)/10;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • B Offline
        B Offline
        Beowolf
        schrieb am zuletzt editiert von
        #3

        Danke. Jetzt funktioniert es.

        Die Natur braucht nicht unseren Schutz, sie braucht unsere Abwesenheit.

        paul53P 1 Antwort Letzte Antwort
        0
        • B Beowolf

          Danke. Jetzt funktioniert es.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Beowolf sagte:

          Jetzt funktioniert es

          Dann markiere bitte das Thema als [gelöst].

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • inlineI Offline
            inlineI Offline
            inline
            schrieb am zuletzt editiert von
            #5

            Hallo,

            ich bin der Author des Originalbeitrags

            [https://www.forum.iobroker.net/topic/15963/skript-zum-auslesen-der-s-usv]

            und würde gerne den Fehler dort beheben. Leider bekommem auch ich eine Meldung "Es scheint als hättest du die Verbindung zu ioBroker Community verloren, bitte warte während wir versuchen sie wieder aufzubauen." wenn ich auf den Beitrag gehen.

            Kann mir hier jemand helfen?

            Danke
            Ralf

            Aufgrund technischer Beschränkungen befindet sich die Signatur auf der Rückseite

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            449

            Online

            32.5k

            Benutzer

            81.7k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe