Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Geekworm X1202 USV Variable in IObroker übernehmen

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Geekworm X1202 USV Variable in IObroker übernehmen

Scheduled Pinned Locked Moved Hardware
45 Posts 5 Posters 3.7k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lieggie

    Hallo Zusammen,
    Ich habe mir zum Raspi 5 eine USV Platine gegönnt.
    zu der Platine gibt es das eine oder andere Pyton script. die Scripte lassen sich über die SSH Konsole ausführen. Es gibt dann Rückmeldungen über die Akkuspannung und die aktuelle Kappazität. Das sieht dann so aus.

    piJPG.JPG

    Nun möchte ich die Spannung und die Kapazität aus dem Script in eine Variable im IObroker übernehmen um damit den Ladevorgang zu starten bzw zu stoppen. Das Starten und Stoppen funtioniert schon aus dem IObrocker herraus.

    da ich bisher eigenlich nie etwas in diese richtung gemacht, fehlt jegliche Fantasie wie ich aus dem Pyton Script den Spannungswert in eine User-Variable im IObrocker bekomme.

    Kann mir da jemand unter die Arme greifen und mir Starthilfe geben .

    Vielen Dank

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    wrote on last edited by OliverIO
    #13

    @lieggie

    hier zum testen
    die beiden npm bibliotheken

    • i2c-bus
    • onoff

    müssen zuvor in den einstellungen des javascript adapters hinzugefügt werden

    const I2c = require('i2c-bus')
    const Gpio = require('onoff').Gpio;
    
    const dp_voltage ="0_userdata.usv.voltage"; //number
    const dp_voltagestate ="0_userdata.usv.voltagestate"; //number
    const dp_capacity ="0_userdata.usv.capacity"; //number
    const dp_powerstate ="0_userdata.usv.powerstate"; //string
    
    const X728_ADDR = 0x36
    const VOLTAGE_REG = 0x2
    const CAPACITY_REG = 0x4
    
    const extPower = new Gpio(6, 'in', 'both', {
        debounceTimeout: 300
    });
    
    extPower.read((err, externalPowerLoss) => {
        if (err) {
            log(err,"error");
        } else {
            setPowerstate(externalPowerLoss);
        }
    });
    
    // notification actions on gpio change
    extPower.watch((err, externalPowerLoss) => {
        if (err) {
            if (err) log(err,"error");
        } else {
            setPowerstate(externalPowerLoss);
        }
    });
    
    function readGeekworm() {
        // open the i2c bus
        let i2c = I2c.open(1, (err) => {
            if (err) log(err,"error");
        });
    
        // read and publish battery voltage
        i2c.readWord(X728_ADDR, VOLTAGE_REG, (err, rawData) => {
            if (err) log(err,"error");
            rawData = (rawData >> 8) + ((rawData & 0xff) << 8);
            let voltage = rawData * 1.25 / 1000 / 16;
            console.debug(`battery voltage: ${voltage} VDC`);
            setState(dp_voltage,voltage);
            getVoltageState(voltage);
        });
    
        // read and publish battery charge capacity
        i2c.readWord(X728_ADDR, CAPACITY_REG, (err, rawData) => {
            if (err) log(err,"error");
            rawData = (rawData >> 8) + ((rawData & 0xff) << 8);
            let capacity = rawData / 256; //100% at 4.2VDC
            if (capacity > 1.0) capacity = 1.0; //cap at 1.0 if small rounding eror 
            console.debug(`battery capacity: ${capacity} %`);
            setState(dp_capacity,capacity);
        });
    
        // close the i2c bus
        i2c.close((err) => {
            if (err) log(err,"error");
        });
    }
    
    function getVoltageState(voltage) {
        let state="unknown";
        if (voltage<=3.87 && voltage <=4.2) state="Full";
        if (voltage<=3.7  && voltage <3.87) state="High";
        if (voltage<=3.55 && voltage <3.7)  state="Medium";
        if (voltage<=3.4  && voltage <3.55) state="Low";
        if (voltage<3.4) state="Critical";
        setState(dp_voltagestate,state);
    }
    function setPowerstate(externalPowerLoss) {
        if (externalPowerLoss) {
            setState(dp_powerstate,"battery");
        } else {
            setState(dp_powerstate,"power");
        }
    }
    schedule('* * * * *',readGeekworm); //every minute
    

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    paul53P 1 Reply Last reply
    0
    • OliverIOO OliverIO

      @lieggie

      hier zum testen
      die beiden npm bibliotheken

      • i2c-bus
      • onoff

      müssen zuvor in den einstellungen des javascript adapters hinzugefügt werden

      const I2c = require('i2c-bus')
      const Gpio = require('onoff').Gpio;
      
      const dp_voltage ="0_userdata.usv.voltage"; //number
      const dp_voltagestate ="0_userdata.usv.voltagestate"; //number
      const dp_capacity ="0_userdata.usv.capacity"; //number
      const dp_powerstate ="0_userdata.usv.powerstate"; //string
      
      const X728_ADDR = 0x36
      const VOLTAGE_REG = 0x2
      const CAPACITY_REG = 0x4
      
      const extPower = new Gpio(6, 'in', 'both', {
          debounceTimeout: 300
      });
      
      extPower.read((err, externalPowerLoss) => {
          if (err) {
              log(err,"error");
          } else {
              setPowerstate(externalPowerLoss);
          }
      });
      
      // notification actions on gpio change
      extPower.watch((err, externalPowerLoss) => {
          if (err) {
              if (err) log(err,"error");
          } else {
              setPowerstate(externalPowerLoss);
          }
      });
      
      function readGeekworm() {
          // open the i2c bus
          let i2c = I2c.open(1, (err) => {
              if (err) log(err,"error");
          });
      
          // read and publish battery voltage
          i2c.readWord(X728_ADDR, VOLTAGE_REG, (err, rawData) => {
              if (err) log(err,"error");
              rawData = (rawData >> 8) + ((rawData & 0xff) << 8);
              let voltage = rawData * 1.25 / 1000 / 16;
              console.debug(`battery voltage: ${voltage} VDC`);
              setState(dp_voltage,voltage);
              getVoltageState(voltage);
          });
      
          // read and publish battery charge capacity
          i2c.readWord(X728_ADDR, CAPACITY_REG, (err, rawData) => {
              if (err) log(err,"error");
              rawData = (rawData >> 8) + ((rawData & 0xff) << 8);
              let capacity = rawData / 256; //100% at 4.2VDC
              if (capacity > 1.0) capacity = 1.0; //cap at 1.0 if small rounding eror 
              console.debug(`battery capacity: ${capacity} %`);
              setState(dp_capacity,capacity);
          });
      
          // close the i2c bus
          i2c.close((err) => {
              if (err) log(err,"error");
          });
      }
      
      function getVoltageState(voltage) {
          let state="unknown";
          if (voltage<=3.87 && voltage <=4.2) state="Full";
          if (voltage<=3.7  && voltage <3.87) state="High";
          if (voltage<=3.55 && voltage <3.7)  state="Medium";
          if (voltage<=3.4  && voltage <3.55) state="Low";
          if (voltage<3.4) state="Critical";
          setState(dp_voltagestate,state);
      }
      function setPowerstate(externalPowerLoss) {
          if (externalPowerLoss) {
              setState(dp_powerstate,"battery");
          } else {
              setState(dp_powerstate,"power");
          }
      }
      schedule('* * * * *',readGeekworm); //every minute
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #14

      @oliverio sagte: "0_userdata.usv.voltagestate"; //number

      ... sollte vom Typ "string" sein.
      Das Schreiben der eigenen Datenpunkte sollte mit Bestätigung erfolgen.

      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

      L 1 Reply Last reply
      0
      • paul53P paul53

        @oliverio sagte: "0_userdata.usv.voltagestate"; //number

        ... sollte vom Typ "string" sein.
        Das Schreiben der eigenen Datenpunkte sollte mit Bestätigung erfolgen.

        L Offline
        L Offline
        Lieggie
        wrote on last edited by Lieggie
        #15

        Hallo Ihr 2.....ich komme grad vom Einkaufen und sehe wie ihr 2 euch gedanken macht erstenmal vielen dank dafür.
        Ich habe in die Richtung noch nie was gemacht und war in den ersten IOB instalationsrutinen immer froh mit copy & Paste klar zukommen.
        Ich habe das Script nun in /opt/Iobroker verschoben, jetzt fragt er nicht mehr nach einem Passwort.

        Es ist für mich nun der erste Versuch Daten aus anderen Scripten zu holen.
        Aber ganz ehrlich das mit dem i2c ist mir zu viel da muss ich mich noch einarbeiten.
        @OliverIO wenn du magst kann ich dir den pi5 zur verfügung stellen ...aber dann lern ich nicht dabei.Er ist noch nicht im Betrieb
        Und ja du hast recht und der Überschrift ist ein R zuviel.
        Vielen dank für eure Hilfe

        OliverIOO HomoranH 2 Replies Last reply
        0
        • L Lieggie

          Hallo Ihr 2.....ich komme grad vom Einkaufen und sehe wie ihr 2 euch gedanken macht erstenmal vielen dank dafür.
          Ich habe in die Richtung noch nie was gemacht und war in den ersten IOB instalationsrutinen immer froh mit copy & Paste klar zukommen.
          Ich habe das Script nun in /opt/Iobroker verschoben, jetzt fragt er nicht mehr nach einem Passwort.

          Es ist für mich nun der erste Versuch Daten aus anderen Scripten zu holen.
          Aber ganz ehrlich das mit dem i2c ist mir zu viel da muss ich mich noch einarbeiten.
          @OliverIO wenn du magst kann ich dir den pi5 zur verfügung stellen ...aber dann lern ich nicht dabei.Er ist noch nicht im Betrieb
          Und ja du hast recht und der Überschrift ist ein R zuviel.
          Vielen dank für eure Hilfe

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by
          #16

          @lieggie sagte in Greekworm X1202 USV Variable in IObroker übernehmen:

          Aber ganz ehrlich das mit dem i2c ist mir zu viel da muss ich mich noch einarbeiten.

          dein python script nutzt das genau so.
          du sollst das skript einfach nur mal laufen lassen. i2c musst du dich nicht einarbeiten

          also datenpunkte einrichten, entweder nach meinen vorschlägen oder
          eigene benennen, anlegen und im skript eintragen.

          dann die bibliotheken in den js adapter einstellungen eintragen, fertig.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          L 1 Reply Last reply
          0
          • OliverIOO OliverIO

            @lieggie sagte in Greekworm X1202 USV Variable in IObroker übernehmen:

            Aber ganz ehrlich das mit dem i2c ist mir zu viel da muss ich mich noch einarbeiten.

            dein python script nutzt das genau so.
            du sollst das skript einfach nur mal laufen lassen. i2c musst du dich nicht einarbeiten

            also datenpunkte einrichten, entweder nach meinen vorschlägen oder
            eigene benennen, anlegen und im skript eintragen.

            dann die bibliotheken in den js adapter einstellungen eintragen, fertig.

            L Offline
            L Offline
            Lieggie
            wrote on last edited by
            #17

            @oliverio
            ich stehe auf dem schlauch ... gemacht habe ich nun 11.JPG

            Variable erstellt
            12.JPG

            Minutliche ausführung
            13.JPG

            nu komme ich nicht weiter weil mein merged.py so aussieht.
            wo soll ich deine Zeilen einfügen.

            #!/usr/bin/python3
            
            import os
            import struct
            import smbus
            import time
            import logging
            import subprocess
            import gpiod
            from subprocess import call
            
            # User-configurable variables
            SHUTDOWN_THRESHOLD = 3  # Number of consecutive failures required for shutdown
            SLEEP_TIME = 60  # Time in seconds to wait between failure checks
            Loop =  False
            
            def readVoltage(bus):
                read = bus.read_word_data(address, 2)
                swapped = struct.unpack("<H", struct.pack(">H", read))[0]
                voltage = swapped * 1.25 / 1000 / 16
                return voltage
            
            def readCapacity(bus):
                read = bus.read_word_data(address, 4)
                swapped = struct.unpack("<H", struct.pack(">H", read))[0]
                capacity = swapped / 256
                return capacity
            
            def get_battery_status(voltage):
                if 3.87 <= voltage <= 4.2:
                    return "Full"
                elif 3.7 <= voltage < 3.87:
                    return "High"
                elif 3.55 <= voltage < 3.7:
                    return "Medium"
                elif 3.4 <= voltage < 3.55:
                    return "Low"
                elif voltage < 3.4:
                    return "Critical"
                else:
                    return "Unknown"
            
            # Ensure only one instance of the script is running
            pid = str(os.getpid())
            pidfile = "/run/X1200.pid"
            if os.path.isfile(pidfile):
                print("Script already running")
                exit(1)
            else:
                with open(pidfile, 'w') as f:
                    f.write(pid)
            
            try:
                bus = smbus.SMBus(1)
                address = 0x36
                PLD_PIN = 6
                chip = gpiod.Chip('gpiochip4')
                pld_line = chip.get_line(PLD_PIN)
                pld_line.request(consumer="PLD", type=gpiod.LINE_REQ_DIR_IN)
            
                while True:
                    failure_counter = 0
            
                    for _ in range(SHUTDOWN_THRESHOLD):
                        ac_power_state = pld_line.get_value()
                        voltage = readVoltage(bus)
                        battery_status = get_battery_status(voltage)
                        capacity = readCapacity(bus)
                        print(f"Capacity: {capacity:.2f}% ({battery_status}), AC Power State: {'Plugged in' if ac_power_state == 1 else 'Unplugged'}, Voltage: {voltage:.2f}V")
                        if capacity < 20:
                            print("Battery level critical.")
                            failure_counter += 1
                        elif voltage < 3.20:
                            print("Battery voltage critical.")
                            failure_counter += 1
                        elif ac_power_state == 0:
                            print("UPS is unplugged or AC power loss detected.")
                            failure_counter += 1
                        else:
                            failure_counter = 0
                            break
            
                        if failure_counter < SHUTDOWN_THRESHOLD:
                            time.sleep(SLEEP_TIME) 
            
                    if failure_counter >= SHUTDOWN_THRESHOLD:
                        shutdown_reason = ""
                        if capacity < 20:
                            shutdown_reason = "due to critical battery level."
                        elif voltage < 3.20:
                            shutdown_reason = "due to critical battery voltage."
                        elif ac_power_state == 0:
                            shutdown_reason = "due to AC power loss or UPS unplugged."
            
                        shutdown_message = f"Critical condition met {shutdown_reason} Initiating shutdown."
                        print(shutdown_message)
                        call("sudo nohup shutdown -h now", shell=True)
                    else:
                        #print("System operating within normal parameters. No action required.")
                        if Loop:
                            time.sleep(SLEEP_TIME)
                        else:
                            exit(0)
            
            finally:
                if os.path.isfile(pidfile):
                    os.unlink(pidfile)
                exit(0)
            
            
            
            paul53P 1 Reply Last reply
            0
            • OliverIOO Offline
              OliverIOO Offline
              OliverIO
              wrote on last edited by
              #18

              @lieggie

              nix blockly.

              du legst im javascript adapter ein neues skript an und wählst anstatt blockly
              den javascript knopf (auch nicht typescript und auch nicht rules)

              du gibts deinem skript einen namen.
              dann hast du ein textfenster.
              dort kopierst du das skript rein
              dann die namen der datenpunkte in den ersten paar zeilen des skripts anpassen
              und drückst oben auf den play button
              im unterne bereich des skripts ist ein log bereich.
              da mal reinschauen was da so kommt.
              wenn keine fehler erscheinen kannst du die datenpunkte überprüfen ob da die daten reingeschrieben wurden.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              L 1 Reply Last reply
              0
              • OliverIOO OliverIO

                @lieggie

                nix blockly.

                du legst im javascript adapter ein neues skript an und wählst anstatt blockly
                den javascript knopf (auch nicht typescript und auch nicht rules)

                du gibts deinem skript einen namen.
                dann hast du ein textfenster.
                dort kopierst du das skript rein
                dann die namen der datenpunkte in den ersten paar zeilen des skripts anpassen
                und drückst oben auf den play button
                im unterne bereich des skripts ist ein log bereich.
                da mal reinschauen was da so kommt.
                wenn keine fehler erscheinen kannst du die datenpunkte überprüfen ob da die daten reingeschrieben wurden.

                L Offline
                L Offline
                Lieggie
                wrote on last edited by Lieggie
                #19

                @oliverio
                Guten Morgen , sorry das ich mich erst jetzt Melde .Ich war gestern verhindert.
                ich habe wie du gesagt hast nun das Script rin kopiert. bekomme aber nun diesen fehler

                javascript.0	10:12:51.180	info	Stopping script script.js.USV
                javascript.0	10:12:53.042	info	Start JavaScript script.js.USV (Javascript/js)
                javascript.0	10:12:53.058	error	script.js.USV: Error: EINVAL: invalid argument, write
                javascript.0	10:12:53.059	error	at script.js.USV:26:18
                javascript.0	10:12:53.060	error	at script.js.USV:169:3
                

                ich glaub hier ist noch was faul
                pi3.JPG

                paul53P L 2 Replies Last reply
                0
                • L Lieggie

                  Hallo Ihr 2.....ich komme grad vom Einkaufen und sehe wie ihr 2 euch gedanken macht erstenmal vielen dank dafür.
                  Ich habe in die Richtung noch nie was gemacht und war in den ersten IOB instalationsrutinen immer froh mit copy & Paste klar zukommen.
                  Ich habe das Script nun in /opt/Iobroker verschoben, jetzt fragt er nicht mehr nach einem Passwort.

                  Es ist für mich nun der erste Versuch Daten aus anderen Scripten zu holen.
                  Aber ganz ehrlich das mit dem i2c ist mir zu viel da muss ich mich noch einarbeiten.
                  @OliverIO wenn du magst kann ich dir den pi5 zur verfügung stellen ...aber dann lern ich nicht dabei.Er ist noch nicht im Betrieb
                  Und ja du hast recht und der Überschrift ist ein R zuviel.
                  Vielen dank für eure Hilfe

                  HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by Homoran
                  #20

                  @lieggie sagte in Greekworm X1202 USV Variable in IObroker übernehmen:

                  Und ja du hast recht und der Überschrift ist ein R zuviel.

                  jetzt nicht mehr!
                  Ich hab's für dich rausgenommen

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  0
                  • L Lieggie

                    @oliverio
                    Guten Morgen , sorry das ich mich erst jetzt Melde .Ich war gestern verhindert.
                    ich habe wie du gesagt hast nun das Script rin kopiert. bekomme aber nun diesen fehler

                    javascript.0	10:12:51.180	info	Stopping script script.js.USV
                    javascript.0	10:12:53.042	info	Start JavaScript script.js.USV (Javascript/js)
                    javascript.0	10:12:53.058	error	script.js.USV: Error: EINVAL: invalid argument, write
                    javascript.0	10:12:53.059	error	at script.js.USV:26:18
                    javascript.0	10:12:53.060	error	at script.js.USV:169:3
                    

                    ich glaub hier ist noch was faul
                    pi3.JPG

                    paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #21

                    @lieggie sagte: hier ist noch was faul

                    Die roten Wellenlinien des Javascript-Editors kann man ignorieren, wenn die beiden NPM-Module in der Konfiguration der Javascript-Instanz eingetragen sind und es bei der Installation der Module keine Fehlermeldungen gab.

                    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

                    L 1 Reply Last reply
                    0
                    • L Lieggie

                      @oliverio
                      Guten Morgen , sorry das ich mich erst jetzt Melde .Ich war gestern verhindert.
                      ich habe wie du gesagt hast nun das Script rin kopiert. bekomme aber nun diesen fehler

                      javascript.0	10:12:51.180	info	Stopping script script.js.USV
                      javascript.0	10:12:53.042	info	Start JavaScript script.js.USV (Javascript/js)
                      javascript.0	10:12:53.058	error	script.js.USV: Error: EINVAL: invalid argument, write
                      javascript.0	10:12:53.059	error	at script.js.USV:26:18
                      javascript.0	10:12:53.060	error	at script.js.USV:169:3
                      

                      ich glaub hier ist noch was faul
                      pi3.JPG

                      L Offline
                      L Offline
                      Lieggie
                      wrote on last edited by
                      #22

                      @lieggie said in Geekworm X1202 USV Variable in IObroker übernehmen:

                      @oliverio
                      Guten Morgen , sorry das ich mich erst jetzt Melde .Ich war gestern verhindert.
                      ich habe wie du gesagt hast nun das Script rin kopiert. bekomme aber nun diesen fehler

                      javascript.0	10:12:51.180	info	Stopping script script.js.USV
                      javascript.0	10:12:53.042	info	Start JavaScript script.js.USV (Javascript/js)
                      javascript.0	10:12:53.058	error	script.js.USV: Error: EINVAL: invalid argument, write
                      javascript.0	10:12:53.059	error	at script.js.USV:26:18
                      javascript.0	10:12:53.060	error	at script.js.USV:169:3
                      

                      ich glaub hier ist noch was faul
                      pi3.JPG

                      avascript.0
                      	2024-09-15 10:34:58.719	error	at Script.runInContext (node:vm:148:12)
                      javascript.0
                      	2024-09-15 10:34:58.719	error	at script.js.USV:169:3
                      javascript.0
                      	2024-09-15 10:34:58.719	error	at script.js.USV:26:18
                      javascript.0
                      	2024-09-15 10:34:58.719	error	at new Gpio (/opt/iobroker/node_modules/@iobroker-javascript.0/onoff/onoff.js:172:36)
                      javascript.0
                      	2024-09-15 10:34:58.718	error	at exportGpio (/opt/iobroker/node_modules/@iobroker-javascript.0/onoff/onoff.js:18:8)
                      javascript.0
                      	2024-09-15 10:34:58.718	error	at Object.writeFileSync (node:fs:2368:20)
                      javascript.0
                      	2024-09-15 10:34:58.718	error	script.js.USV: Error: EINVAL: invalid argument, write
                      
                      1 Reply Last reply
                      0
                      • paul53P paul53

                        @lieggie sagte: hier ist noch was faul

                        Die roten Wellenlinien des Javascript-Editors kann man ignorieren, wenn die beiden NPM-Module in der Konfiguration der Javascript-Instanz eingetragen sind und es bei der Installation der Module keine Fehlermeldungen gab.

                        L Offline
                        L Offline
                        Lieggie
                        wrote on last edited by
                        #23

                        @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                        @lieggie sagte: hier ist noch was faul

                        Die roten Wellenlinien des Javascript-Editors kann man ignorieren, wenn die beiden NPM-Module in der Konfiguration der Javascript-Instanz eingetragen sind und es bei der Installation der Module keine Fehlermeldungen gab.

                        ich habe die beiden instanzen instaliert da bei gab es keinen Fehler
                        sudo npm install onoff
                        sudo npm install i2c-bus

                        was mir nur aufgefallen ist das onoff nur bis Node 16 unterstützt wird. ich habe aber 20 am laufen

                        Thomas BraunT paul53P 2 Replies Last reply
                        0
                        • L Lieggie

                          @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                          @lieggie sagte: hier ist noch was faul

                          Die roten Wellenlinien des Javascript-Editors kann man ignorieren, wenn die beiden NPM-Module in der Konfiguration der Javascript-Instanz eingetragen sind und es bei der Installation der Module keine Fehlermeldungen gab.

                          ich habe die beiden instanzen instaliert da bei gab es keinen Fehler
                          sudo npm install onoff
                          sudo npm install i2c-bus

                          was mir nur aufgefallen ist das onoff nur bis Node 16 unterstützt wird. ich habe aber 20 am laufen

                          Thomas BraunT Online
                          Thomas BraunT Online
                          Thomas Braun
                          Most Active
                          wrote on last edited by
                          #24

                          @lieggie

                          Knall dir BITTE KEINE npm-Module per root in das System!!!!

                          Linux-Werkzeugkasten:
                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                          NodeJS Fixer Skript:
                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                          1 Reply Last reply
                          0
                          • L Lieggie

                            @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                            @lieggie sagte: hier ist noch was faul

                            Die roten Wellenlinien des Javascript-Editors kann man ignorieren, wenn die beiden NPM-Module in der Konfiguration der Javascript-Instanz eingetragen sind und es bei der Installation der Module keine Fehlermeldungen gab.

                            ich habe die beiden instanzen instaliert da bei gab es keinen Fehler
                            sudo npm install onoff
                            sudo npm install i2c-bus

                            was mir nur aufgefallen ist das onoff nur bis Node 16 unterstützt wird. ich habe aber 20 am laufen

                            paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #25

                            @lieggie sagte:

                            sudo npm install onoff
                            sudo npm install i2c-bus

                            So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                            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

                            L 1 Reply Last reply
                            0
                            • paul53P paul53

                              @lieggie sagte:

                              sudo npm install onoff
                              sudo npm install i2c-bus

                              So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                              L Offline
                              L Offline
                              Lieggie
                              wrote on last edited by Lieggie
                              #26

                              @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                              @lieggie sagte:

                              sudo npm install onoff
                              sudo npm install i2c-bus

                              So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                              dann müssen sie ja da sein weil eingetragen im Javascript Adapter sind sie ja

                              HomoranH paul53P Thomas BraunT 3 Replies Last reply
                              0
                              • L Lieggie

                                @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                                @lieggie sagte:

                                sudo npm install onoff
                                sudo npm install i2c-bus

                                So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                                dann müssen sie ja da sein weil eingetragen im Javascript Adapter sind sie ja

                                HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #27

                                @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                dann müssen sie ja da sein weil eingetragen im om adapter sind sie ja

                                Was willst du damit sagen?
                                Wo müssen sie sein?

                                Was ist der om Adapter?

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                L 1 Reply Last reply
                                0
                                • L Lieggie

                                  @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                                  @lieggie sagte:

                                  sudo npm install onoff
                                  sudo npm install i2c-bus

                                  So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                                  dann müssen sie ja da sein weil eingetragen im Javascript Adapter sind sie ja

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #28

                                  @lieggie sagte: dann müssen sie ja da sein weil eingetragen im om adapter sind sie ja

                                  Ja, denn die Fehlermeldung

                                  	2024-09-15 10:34:58.718	error	at exportGpio (/opt/iobroker/node_modules/@iobroker-javascript.0/onoff/onoff.js:18:8)
                                  

                                  zeigt das Vorhandensein im richtigen Verzeichnis.

                                  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 Reply Last reply
                                  0
                                  • HomoranH Homoran

                                    @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                    dann müssen sie ja da sein weil eingetragen im om adapter sind sie ja

                                    Was willst du damit sagen?
                                    Wo müssen sie sein?

                                    Was ist der om Adapter?

                                    L Offline
                                    L Offline
                                    Lieggie
                                    wrote on last edited by
                                    #29

                                    @homoran said in Geekworm X1202 USV Variable in IObroker übernehmen:

                                    @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                    dann müssen sie ja da sein weil eingetragen im om adapter sind sie ja

                                    Was willst du damit sagen?
                                    Wo müssen sie sein?

                                    Was ist der om Adapter?

                                    sollte natürlich Javascript Adapter sein...... so ist das mit 2 kleinen Kindern neben bei

                                    HomoranH 1 Reply Last reply
                                    0
                                    • L Lieggie

                                      @paul53 said in Geekworm X1202 USV Variable in IObroker übernehmen:

                                      @lieggie sagte:

                                      sudo npm install onoff
                                      sudo npm install i2c-bus

                                      So ist es falsch! Der Javascript-Adapter installiert sie selbst in das richtige Verzeichnis, nachdem sie in der Konfiguration unter "Zusätzliche NPM-Module" eingetragen wurden.

                                      dann müssen sie ja da sein weil eingetragen im Javascript Adapter sind sie ja

                                      Thomas BraunT Online
                                      Thomas BraunT Online
                                      Thomas Braun
                                      Most Active
                                      wrote on last edited by Thomas Braun
                                      #30

                                      @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                      dann müssen sie ja da sein weil eingetragen im Javascript Adapter sind sie ja

                                      Dann schau nach...
                                      Und schau auch wo jetzt die per sudo reingeballerten Module liegen und hau die wieder raus.

                                      cd /opt/iobroker
                                      npm ls onoff
                                      npm ls i2c-bus
                                      

                                      Linux-Werkzeugkasten:
                                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                      NodeJS Fixer Skript:
                                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                      1 Reply Last reply
                                      0
                                      • L Lieggie

                                        @homoran said in Geekworm X1202 USV Variable in IObroker übernehmen:

                                        @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                        dann müssen sie ja da sein weil eingetragen im om adapter sind sie ja

                                        Was willst du damit sagen?
                                        Wo müssen sie sein?

                                        Was ist der om Adapter?

                                        sollte natürlich Javascript Adapter sein...... so ist das mit 2 kleinen Kindern neben bei

                                        HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #31

                                        @lieggie und wo müssen sie sein?

                                        selbst wenn durch den Eintrag im js Adapter

                                        @paul53 sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                        das Vorhandensein im richtigen Verzeichnis

                                        vorliegt, kann durch

                                        @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                        sudo npm install onoff
                                        sudo npm install i2c-bus

                                        es zusätzlich noch einmal woanders installiert sein

                                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        L 1 Reply Last reply
                                        0
                                        • HomoranH Homoran

                                          @lieggie und wo müssen sie sein?

                                          selbst wenn durch den Eintrag im js Adapter

                                          @paul53 sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                          das Vorhandensein im richtigen Verzeichnis

                                          vorliegt, kann durch

                                          @lieggie sagte in Geekworm X1202 USV Variable in IObroker übernehmen:

                                          sudo npm install onoff
                                          sudo npm install i2c-bus

                                          es zusätzlich noch einmal woanders installiert sein

                                          L Offline
                                          L Offline
                                          Lieggie
                                          wrote on last edited by
                                          #32

                                          @homoran

                                          Sie lagen im home/pi habe sie nun mit
                                          sudo npm uninstall onoff
                                          wieder entfernt.

                                          ich sollte weiter mit blockly basteln das Script kram liegt mir nicht.

                                          Thomas BraunT OliverIOO 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          648

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe