Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. inline

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 30
    • Best 0
    • Groups 1

    inline

    @inline

    0
    Reputation
    18
    Profile views
    30
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    inline Follow
    Starter

    Latest posts made by inline

    • RE: Skript zum Auslesen der S.USV

      Liebes Forum,

      nicht dass mein Skript viele Fragen aufgeworfen hätte, aber der guten Ordnung halber möchte ich euch trotzdem mitteilen dass ich ab sofort keine großartige Hilfe mehr geben kann.

      Die Batterie meines SUSV ist schon wieder defekt und diesmal hat es auch die Platine erwischt. Da ich sowieso schon ewig keinen Stromausfall mehr hatte und das Ding doch recht teuer ist, werde ich es nicht ersetzen. Ich kann also nichts mehr testen.

      Liebe Grüße, nachträglich frohe Weihnachten und einen guten Rutsch!
      Ralf

      posted in Skripten / Logik
      inline
      inline
    • RE: [gelöst] Daten der S.USV auslesen - Fehler im Skript

      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

      posted in Skripten / Logik
      inline
      inline
    • RE: [gelöst] Problem mit svg Icons und Farbe

      Ich weiß nicht ob es verschiedene SVG Varianten gibt, bei den Icons die mich interessiert haben konnte ich einfach die SVG Datei editieren. Dazu habe ich sie mit einem Texteditor geöffnet und nach einer path Angabe gesucht, etwa so etwas:

         <path fill-rule="evenodd" .....<e=""></path>
      

      Hier habe ich dann eine Füllfarbe dazu gefügt:

         <path fill="white" fill-rule="evenodd" ....<e=""></path>
      
      posted in Visualisierung
      inline
      inline
    • RE: S.USV Status auslesen

      So, ich habe jetzt einen eigenen Thread aufgemacht:

      https://www.forum.iobroker.net/viewtopi … 21&t=17805

      posted in Skripten / Logik
      inline
      inline
    • Skript zum Auslesen der S.USV

      Hallo,

      auf Anraten von Sascha (dodi666) gibt es jetzt einen eigenen Thread für mein S.USV Skript.

      Unter www.s-usv.com sind verschiedene Varianten der "S.USV Pi uninterrupted power supply" erhältlich.

      Dies sind Aufsteckplatinen für den Raspberry Pi, die eine unterbrechungsfreie Stromversorgung ermöglichen und insbesondere auch ein Wiederanlaufen bei Rückkehr des Stomnetzes erlauben.

      Zur Ansteuerung der S.USV wird ein Daemon installiert, der sich um das Herunterfahren (auch zeitgesteuert) kümmert.

      Dazu gibt es ein Program susv, mit dessen Hilfe man verschiedene Einstellungen vornehmen kann und vor allem auch den aktuellen Status abfragen kann. Letzteres macht dieses Skript und erzeugt aus dem Status eine Reihe von Datenpunkten:

      3241_susv_datenpunkte.gif

      Hier nun das 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);
      ! }

      Liebe Grüße,

      Ralf

      posted in Skripten / Logik
      inline
      inline
    • RE: S.USV Status auslesen

      @dodi666:

      Vielen Dank für dein super Skript. Das ist genau das, was ich gesucht habe.

      Stell doch dazu einen eigenen Thread ein, so dass du ggf. auch zukünftige Änderungen dort posten kannst.

      Bei mir kommt allerdings immer der Hinweis im Log:

      Unexpected version 2.40, possibly not all values are correctly identified
      ```` `  
      

      Freut ich wenn es hilft!

      Gute Idee, ich werde einen eigenen thread machen … und da muss auch gleich ein update dazu. Die Meldung sagt dass Du eine neuere Version des susv Programms installiert hast, das möglicherweise andere Ausgaben liefert. Muss ich selbst ausprobieren.

      posted in Skripten / Logik
      inline
      inline
    • RE: S.USV Status auslesen

      Ich hatte mir dazu auch mal ein Skript geschrieben und wollte es immer mal der Gemeinschaft schenken. Jetzt ist ein guter Moment 🙂

      –--------------

      Update:

      Hier stand mal mein Skript, inzwischen gibt es aber einen eigenen Thread:

      https://www.forum.iobroker.net/viewtopi … 21&t=17805

      posted in Skripten / Logik
      inline
      inline
    • RE: Hilfe! Sonoff Tasmota ioBroker - was nun

      Hallo Raghu,

      herzlich willkommen!

      Ganz grob:

      Ich habe es nicht selbst ausprobiert aber es gibt einen Tasmota Adapter, den kannst Du installieren.

      Dieser sollte Datenpunkte in der Objekte-Übersicht erzeugen.

      Jetzt verbindest Du Dich mit Tasmota und stellst IP oder Name Deines Raspi ein.

      Dann erstellst Du mit Hilfe von vis eine View mit einem Button. Die View kann auch auf Deinem Tablett angezeigt werden.

      Starte immer mit http://ip_deiners_raspi:8082/ und wähle dann aus.

      Den Button verbindest Du mit dem entsprechenden Datenpunkt und schon sollte es gehen.

      Vorsicht: es gibt eine ganze Reihe von Buttons, nicht alle funktionieren wie man sich das vorstellt. Hier musst Du ggfls etwas experimentieren.

      Alternativ kannst Du auch direkt den mqtt Adapter benutzen, dann musst Du dich aber um ein paar mehr Details kümmern.

      Liebe Grüße,

      Ralf

      posted in ioBroker Allgemein
      inline
      inline
    • RE: Mal wieder ein 'unbedarfter' Neuer …

      Oje, ich sehe meine Antworten waren schnell aber falsch…

      Bitte entschuldige, ich versuche in Zukunft besser aufzupassen.

      Ein paar Funksachen habe ich auch, dafür verwende ich was selbst gebasteltes auf ESP8266 Basis mit ESPEasy.

      Das funkt dann per WLAN zur Fritzbox.

      Liebe Grüße,

      Ralf

      posted in ioBroker Allgemein
      inline
      inline
    • RE: Mal wieder ein 'unbedarfter' Neuer …

      Hallo Frau g-tec,

      herzlich willkommen hier!

      Ich bin selbst noch neu hier, aber ich ahne bereits, dass kaum jemand den schönen langen Text wirklich liest. Ehrlich gesagt habe ich es auch mehr überflogen.

      Trotzdem will ich ein paar Kommentare zu den Fragen los werden.

      > a) kann nur ein Modul auf den GPIO gesteckt werden
      Was sollen das für Module sein? Es gibt kleine Platinchen, die auf dem Raspi aufgesteckt werden können. Diese müssen die GPIO Pins weiter geben, sonst ist hier Ende. Ich denke zwei, drei wird man schon stecken können, wahrscheinlich ist eher die mögliche Höhe in einem Hutschienengehäuse das Problem.

      > b) schaltet bei Überlast der RasPi die USB-Ports ab
      Es gibt einen maximalen Strom auf den USB-Anschlüssen. Dieser lässt sich nochmals mittels Konfiguration erhöhen (->Google). Auch hier die Frage wozu? Eine Festplatte geht immer (ich kann SSD empfehlen), ansonsten kann ein USB-Hub mit eigenem Netzteil verwendet werden.

      ` > 2. Wenn ich pro Modul einen RasPi habe

      a) kommen die verschiedenen Funkmodule sich in die Quere, stören sich also?

      == welcher (Mindest-)Abstand der RasPi‘s wäre denn dann sinnvoll? `
      Für mich wirkt es merkwürdig so viele Raspis gleichzeitig einzusetzen. Die Version3 ist ziemlich leistungsfähig und man kann schon ordentlich was laufen lassen. Falls mehr benötigt wird, sollte wahrscheinlich eher ein größerer Rechner her, zB NUC scheint ganz beliebt zu sein. Funk würde ich überhaupt nicht über den Raspi machen, weil ich dem kleinen Antennchen nicht allzuviel zutraue. Außerdem hat man dafür in der Regel eine Fritzbox. Raspi(s) dann mittels CAT-Kabel anschließen und es gibt keine Probleme.

      > 3\. Wie realisiere ich ggf. eine zentrale Stromversorgung inkl. USV
      Hutschienennetzteil ist prima. Entweder ein großes für alle oder mehrere kleinere. Ja nach persönlicher Paranoia.

      USV - ich experimentiere gerade mit der S.USV Aufsteckplatine und hatte auch schon mit anderen zu tun. Allerdings durch die Bank mit sehr geringem Erfolg. Wahrscheinlich ist es das Beste eine externe USV in die 230V Zuleitung zu bauen.

      > … und ggf. Antenne(n) nach außen führen.
      Siehe oben. Wenn es unbedingt WLAN sein muss, nimm einen AccessPoint oder eine alte Fritzbox und schließe dort alles an. Abgesehen von dem zu erwartenden Antennen Wirrwar ist es gar nicht nicht so leicht eine Antennenbuchse auf den Raspi zu löten.

      Liebe Grüße

      Ralf

      posted in ioBroker Allgemein
      inline
      inline
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo