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. JavaScript
  5. [gelöst] - Learning JS - Part 2

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst] - Learning JS - Part 2

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 187 Aufrufe 2 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.
  • CodierknechtC Online
    CodierknechtC Online
    Codierknecht
    Developer Most Active
    schrieb am zuletzt editiert von Codierknecht
    #1

    Ich habe in einem DP ein solches JSON:

    [
      {
        "Device": "Taster Bad",
        "Battery": "50%"
      },{
        "Device": "Heizung Bad",
        "Battery": "90%"
      },{
        "Device": "Heizung Arbeitszimmer",
        "Battery": "30%"
      },{
        "Device": "Gaszähler",
        "Battery": "3V"
      }
    ]
    

    Und dazu folgenden Code:

    var devices = getState("device-watcher.0.batteryList").val;
    var jsonData = JSON.parse(devices);
    var message = '';
    for (var i = 0; i < jsonData.length; i++) {
        message += jsonData[i].Device + '\n';
    }
    console.log(message);
    

    Warum erhalte ich hier diese Fehler?

    1.12.2022, 23:57:02.549	[info ]: javascript.0 (21396) Start javascript script.js.common.Informationen.OfflineWarnung
    1.12.2022, 23:57:02.563	[info ]: javascript.0 (21396) script.js.common.Informationen.OfflineWarnung: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
    1.12.2022, 23:57:02.572	[error]: javascript.0 (21396) script.js.common.Informationen.OfflineWarnung: SyntaxError: Unexpected token o in JSON at position 1
    1.12.2022, 23:57:02.573	[error]: javascript.0 (21396)     at script.js.common.Informationen.OfflineWarnung:2:21
    1.12.2022, 23:57:02.573	[error]: javascript.0 (21396)     at script.js.common.Informationen.OfflineWarnung:8:3
    

    Irgendwas stimmt da mit dem getState nicht.
    Schreibe ich den Inhalt dieses DP direkt (von Hand) in die Variable, funktioniert es einwandfrei.

    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
    HmIP|ZigBee|Tasmota|Unifi
    Zabbix Certified Specialist
    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

    M 1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

      Ich habe in einem DP ein solches JSON:

      [
        {
          "Device": "Taster Bad",
          "Battery": "50%"
        },{
          "Device": "Heizung Bad",
          "Battery": "90%"
        },{
          "Device": "Heizung Arbeitszimmer",
          "Battery": "30%"
        },{
          "Device": "Gaszähler",
          "Battery": "3V"
        }
      ]
      

      Und dazu folgenden Code:

      var devices = getState("device-watcher.0.batteryList").val;
      var jsonData = JSON.parse(devices);
      var message = '';
      for (var i = 0; i < jsonData.length; i++) {
          message += jsonData[i].Device + '\n';
      }
      console.log(message);
      

      Warum erhalte ich hier diese Fehler?

      1.12.2022, 23:57:02.549	[info ]: javascript.0 (21396) Start javascript script.js.common.Informationen.OfflineWarnung
      1.12.2022, 23:57:02.563	[info ]: javascript.0 (21396) script.js.common.Informationen.OfflineWarnung: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      1.12.2022, 23:57:02.572	[error]: javascript.0 (21396) script.js.common.Informationen.OfflineWarnung: SyntaxError: Unexpected token o in JSON at position 1
      1.12.2022, 23:57:02.573	[error]: javascript.0 (21396)     at script.js.common.Informationen.OfflineWarnung:2:21
      1.12.2022, 23:57:02.573	[error]: javascript.0 (21396)     at script.js.common.Informationen.OfflineWarnung:8:3
      

      Irgendwas stimmt da mit dem getState nicht.
      Schreibe ich den Inhalt dieses DP direkt (von Hand) in die Variable, funktioniert es einwandfrei.

      M Online
      M Online
      MCU
      schrieb am zuletzt editiert von MCU
      #2

      @codierknecht
      Mach doch mal ein log nach dem getState. Ist der DP ein object, wird er automatich geparsed.
      Einmal die Objekt-Eigenschaften von dem DP device-watcher.0.batteryList

      NUC i7 64GB mit Proxmox ---- Jarvis Infos Aktualisierungen der Doku auf Instagram verfolgen -> mcuiobroker Instagram
      Wenn Euch mein Vorschlag geholfen hat, bitte rechts "^" klicken.

      CodierknechtC 1 Antwort Letzte Antwort
      1
      • M MCU

        @codierknecht
        Mach doch mal ein log nach dem getState. Ist der DP ein object, wird er automatich geparsed.
        Einmal die Objekt-Eigenschaften von dem DP device-watcher.0.batteryList

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        @mcu
        Danke für den Schubs in die richtige Richtung :+1:

        Der DP enthält bereits ein Array von Objekten. Das wird lediglich im Objektbaum als JSON dargestellt.
        Parsen ist gar nicht nötig.

        {
          "_id": "device-watcher.0.batteryList",
          "type": "state",
          "common": {
            "type": "array",
            "role": "json",
            "read": true,
            "write": false
          },
          "native": {},
          "from": "system.adapter.device-watcher.0",
          "ts": 1669580330469,
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          },
          "user": "system.user.admin"
        }
        

        Damit sieht das dann (prinzipiell) so aus und funzt einwandfrei :-D

        on({id: "device-watcher.0.lowBatteryCount", change: "ne"}, async function (obj) {
            var batteryCount = obj.state.val;
            if (batteryCount > 0) {
                var devices = getState("device-watcher.0.lowBatteryList").val;
                var message = 'ACHTUNG: Batterie in ' + batteryCount + ' Gerät(en) schwach:\n';
                for (var i = 0; i < devices.length; i++) {
                message += devices[i].Device + '\n';
                }
            } else {
                message = 'Alle Batterien sind OK!';  
            }
            sendSignalMessage(message, '+49xxxxxxxxxx');
        });
        

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        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

        304

        Online

        32.6k

        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