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. Fehler in einem Script welchen den Ladezustand von Batterien ausliest.

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Fehler in einem Script welchen den Ladezustand von Batterien ausliest.

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 444 Aufrufe 1 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.
  • S Offline
    S Offline
    Snatch
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe drei Fragen. Leider bin ich nur mit Blocky unterwegs und kenne mich mit Java so gar nicht aus.

    1: Ich nutze dieses Script um den Ladezustand meiner Aquara Sensoren auszulesen. In diesem Script wird dann ein Objekt angelegt und ich verarbeite das in VIS, so das ich ein Batteriesymbol angezeigt bekomme, welches immer leerer wird :-D Leider bekomme ich einen Fehler angezeigt und kann ihn nicht beheben.

    Script:

    // Batterieanzeige31
    "*/60 * * * *"
    const idBatt31 = 'mihome.0.devices.magnet_158d0002e25252.percent'; // Batterielevel in %
    const idVis31 = 'Batterieanzeige_Tuere_WC_OG'; // Für Vis
    
    createState(idVis31, 0, {
    type: 'number',
    min: 0,
    max: 6,
    role: 'level',
    states: {
    0: '0 %',
    1: '10 %',
    2: '20 %',
    3: '40 %',
    4: '60 %',
    5: '80 %',
    6: '100 %',   
    }
    });
    
    var level31 = getState(idBatt31).val;
    
    function batt31() {
    var state31 = 6; // full
    if(level31 <= 100) state31 = 6; // 100%
    if(level31 <= 80) state31 = 5; // 80 %
    if(level31 <= 60) state31 = 4; // 60 %
    if(level31 <= 40) state31 = 3; // 40 %
    if(level31 <= 20) state31 = 2; // 20 %
    if(level31 <= 10) state31 = 1; // 10 %
    if(level31 <= 5) state31 = 0; // empty
    setState(idVis31, state31, true);
    }
    
    batt31(); // Skriptstart
    
    on(idBatt31, function(dp) {
    level31 = dp.state31.val;
    batt31();
    });
    

    Fehler:

    javascript.0	2019-01-21 20:54:58.753	error	at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
    javascript.0	2019-01-21 20:54:58.752	error	at Manager. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15)
    javascript.0	2019-01-21 20:54:58.752	error	at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
    javascript.0	2019-01-21 20:54:58.752	error	at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
    javascript.0	2019-01-21 20:54:58.752	error	at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
    javascript.0	2019-01-21 20:54:58.752	error	at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
    javascript.0	2019-01-21 20:54:58.752	error	at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
    javascript.0	2019-01-21 20:54:58.752	error	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:358:25)
    javascript.0	2019-01-21 20:54:58.752	error	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:755:38)
    javascript.0	2019-01-21 20:54:58.751	error	at Object. <anonymous>(script.js.Batterien.31_Batterie_Status_Tuere_WC_OG:39:22)
    javascript.0	2019-01-21 20:54:58.750	error	Error in callback: TypeError: Cannot read property 'val' of undefined</anonymous></anonymous></anonymous>
    

    2: Wie ihr seht, versucht das Script bei jedem Durchlauf das Objekt neu anzulegen. Wie müsste man das umschreiben um das zu vermeiden. So, dass er also beim ersten Start das Objekt anlegt und dann nicht mehr?

    3: Ich habe nun das gleiche Script 31 Mal am laufen. Soweit funktioniert das auch super aber es muss doch möglich sein, daraus ein Script zu machen, welche das gleiche Ergebnis hat. Mit Schleifen oder so?

    In VIS schaut das dann so aus. Es geht auch, will es nur optimieren…
    1955_1.png

    Vielen lieben Dank und Gruß

    1 Antwort Letzte Antwort
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      schrieb am zuletzt editiert von
      #2
      level31 = dp.state31.val;
      

      dp.state31.val gibt es nicht. Das ist der Grund warum er meckert..

      Es muss

      dp.state.val
      ````sein.
      
      Gruß
      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Snatch
        schrieb am zuletzt editiert von
        #3

        Danke dir, dann ist dieser Fehler damit behoben.

        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          jhuebner1
          schrieb am zuletzt editiert von
          #4

          Hallo,

          irgendwie steh ich auf dem Schlauch:
          Wie sieht denn dann das Widget aus im VIS?
          Das mit dem Script verstehe ich halb, die Funktionen sind klar, aber wo ist der Link zu der Bilddatei?
          Und wie machst du dann die Sichtbarkeit abhängig von dem %-Status?

          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

          726

          Online

          32.7k

          Benutzer

          82.3k

          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