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. json teilen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

json teilen

Geplant Angeheftet Gesperrt Verschoben JavaScript
37 Beiträge 6 Kommentatoren 3.2k 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.
  • paul53P paul53

    @wolfgangkt sagte: die ersten 30 Datensätze sollen in einen json-Datenpunkt geschrieben werden.

    Versuche mal:

    const idJson = '...'; // Original
    const idJson1 = '...'; // Teil 1
    const idJson2 = '...'; // Teil 2
    
    on(idJson, function(dp) {
        let arr = dp.state.val;
        const arr2 = [];
        for(let i = 30; i < arr.length; i++) {
            arr2.push(arr[i]);
        }
        arr.length = 30;
        setState(idJson1, JSON.stringify(arr), true);
        setState(idJson2, JSON.stringify(arr2), true);
    });
    

    EDIT: Zeilen 6 und 8 angepasst.

    W Online
    W Online
    wolfgangkt
    schrieb am zuletzt editiert von
    #20

    @paul53 Erstmal vielen Dank. Das Script läuft fehlerfrei durch aber es wird nichts geschrieben.

    const idJson = 'device-watcher.0.zigbee.listAll'; // Original
    const idJson1 = '0_userdata.0.Meine_Datenpunkte.Teil1'; // Teil 1
    const idJson2 = '0_userdata.0.Meine_Datenpunkte.Teil2'; // Teil 2
     
    on(idJson, function(dp) {
        let arr = JSON.parse(dp.state.val);
        const arr2 = [];
        for(let i = 30; i < arr.length - 30; i++) {
            arr2.push(arr[i]);
        }
        arr.length = 30;
        setState(idJson1, JSON.stringify(arr), true);
        setState(idJson2, JSON.stringify(arr2), true);
    });
    
    
    paul53P 1 Antwort Letzte Antwort
    0
    • W wolfgangkt

      @paul53 Erstmal vielen Dank. Das Script läuft fehlerfrei durch aber es wird nichts geschrieben.

      const idJson = 'device-watcher.0.zigbee.listAll'; // Original
      const idJson1 = '0_userdata.0.Meine_Datenpunkte.Teil1'; // Teil 1
      const idJson2 = '0_userdata.0.Meine_Datenpunkte.Teil2'; // Teil 2
       
      on(idJson, function(dp) {
          let arr = JSON.parse(dp.state.val);
          const arr2 = [];
          for(let i = 30; i < arr.length - 30; i++) {
              arr2.push(arr[i]);
          }
          arr.length = 30;
          setState(idJson1, JSON.stringify(arr), true);
          setState(idJson2, JSON.stringify(arr2), true);
      });
      
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #21

      @wolfgangkt sagte: es wird nichts geschrieben.

      Es wird nur bei Änderung im Original-JSON getriggert.

      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
      • W Online
        W Online
        wolfgangkt
        schrieb am zuletzt editiert von
        #22

        @paul53 jetzt hagelt es Fehler

        2023-02-21 21:39:49.080 - info: device-watcher.0 (219822) Got terminate signal TERMINATE_YOURSELF
        2023-02-21 21:39:49.080 - info: device-watcher.0 (219822) cleaned everything up...
        2023-02-21 21:39:49.081 - info: device-watcher.0 (219822) terminating
        2023-02-21 21:39:49.081 - info: device-watcher.0 (219822) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
        2023-02-21 21:39:53.468 - info: device-watcher.0 (219989) starting. Version 2.4.0 in /opt/iobroker/node_modules/iobroker.device-watcher, node: v16.19.1, js-controller: 4.0.24
        2023-02-21 21:39:53.482 - info: device-watcher.0 (219989) Number of selected adapters: 8. Loading data from: Fritzdect, Harmony, HmiP, Ping, Shelly, Sonoff, Wled, Zigbee ...
        2023-02-21 21:39:54.917 - error: javascript.0 (579) Error in callback: SyntaxError: Unexpected token o in JSON at position 1
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at JSON.parse (:null:null)
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object. (script.js.Testen.Teilen:6:20)
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5381:56)
        2023-02-21 21:39:54.918 - error: javascript.0 (579) at processImmediate (node:internal/timers:466:21)
        2023-02-21 21:39:55.327 - error: javascript.0 (579) Error in callback: SyntaxError: Unexpected token o in JSON at position 1
        2023-02-21 21:39:55.327 - error: javascript.0 (579) at JSON.parse (:null:null)
        2023-02-21 21:39:55.327 - error: javascript.0 (579) at Object. (script.js.Testen.Teilen:6:20)
        2023-02-21 21:39:55.327 - error: javascript.0 (579) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
        2023-02-21 21:39:55.328 - error: javascript.0 (579) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
        2023-02-21 21:39:55.328 - error: javascript.0 (579) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5381:56)
        2023-02-21 21:39:55.328 - error: javascript.0 (579) at processImmediate (node:internal/timers:466:21)
        
        
        paul53P 1 Antwort Letzte Antwort
        0
        • W wolfgangkt

          @paul53 jetzt hagelt es Fehler

          2023-02-21 21:39:49.080 - info: device-watcher.0 (219822) Got terminate signal TERMINATE_YOURSELF
          2023-02-21 21:39:49.080 - info: device-watcher.0 (219822) cleaned everything up...
          2023-02-21 21:39:49.081 - info: device-watcher.0 (219822) terminating
          2023-02-21 21:39:49.081 - info: device-watcher.0 (219822) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
          2023-02-21 21:39:53.468 - info: device-watcher.0 (219989) starting. Version 2.4.0 in /opt/iobroker/node_modules/iobroker.device-watcher, node: v16.19.1, js-controller: 4.0.24
          2023-02-21 21:39:53.482 - info: device-watcher.0 (219989) Number of selected adapters: 8. Loading data from: Fritzdect, Harmony, HmiP, Ping, Shelly, Sonoff, Wled, Zigbee ...
          2023-02-21 21:39:54.917 - error: javascript.0 (579) Error in callback: SyntaxError: Unexpected token o in JSON at position 1
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at JSON.parse (:null:null)
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object. (script.js.Testen.Teilen:6:20)
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5381:56)
          2023-02-21 21:39:54.918 - error: javascript.0 (579) at processImmediate (node:internal/timers:466:21)
          2023-02-21 21:39:55.327 - error: javascript.0 (579) Error in callback: SyntaxError: Unexpected token o in JSON at position 1
          2023-02-21 21:39:55.327 - error: javascript.0 (579) at JSON.parse (:null:null)
          2023-02-21 21:39:55.327 - error: javascript.0 (579) at Object. (script.js.Testen.Teilen:6:20)
          2023-02-21 21:39:55.327 - error: javascript.0 (579) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1244:38)
          2023-02-21 21:39:55.328 - error: javascript.0 (579) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:593:29)
          2023-02-21 21:39:55.328 - error: javascript.0 (579) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5381:56)
          2023-02-21 21:39:55.328 - error: javascript.0 (579) at processImmediate (node:internal/timers:466:21)
          
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #23

          @wolfgangkt sagte: Unexpected token o in JSON at position 1

          Das Original-JSON lässt sich nicht parsen, da es offenbar fehlerhaft ist.

          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

          W 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @wolfgangkt sagte: Unexpected token o in JSON at position 1

            Das Original-JSON lässt sich nicht parsen, da es offenbar fehlerhaft ist.

            W Online
            W Online
            wolfgangkt
            schrieb am zuletzt editiert von
            #24

            @paul53 schade. Ich danke Dir trotzdem für deine Hilfe.

            paul53P 1 Antwort Letzte Antwort
            0
            • W wolfgangkt

              @paul53 schade. Ich danke Dir trotzdem für deine Hilfe.

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

              @wolfgangkt
              Das JSON, das Du gepostet hast, lässt sich parsen. Teil 2 beginnt mit "Küchenfenster geschlossen".

              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

              W 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @wolfgangkt
                Das JSON, das Du gepostet hast, lässt sich parsen. Teil 2 beginnt mit "Küchenfenster geschlossen".

                W Online
                W Online
                wolfgangkt
                schrieb am zuletzt editiert von
                #26

                @paul53 in dem Datenpunkt steht eigentlich immer das gleiche.
                liegt es vielleicht an dem Datenpunkt selbst ?

                {
                  "type": "state",
                  "common": {
                    "name": {
                      "en": "List of all devices",
                      "de": "Liste aller Geräte",
                      "ru": "Список всех устройств",
                      "pt": "Lista de todos os dispositivos",
                      "nl": "List van alle apparaten",
                      "fr": "Liste de tous les dispositifs",
                      "it": "Elenco di tutti i dispositivi",
                      "es": "Lista de todos los dispositivos",
                      "pl": "Lista wszystkich urządzeń",
                      "zh-cn": "所有装置清单"
                    },
                    "type": "array",
                    "role": "json",
                    "read": true,
                    "write": false
                  },
                  "native": {},
                  "from": "system.adapter.device-watcher.0",
                  "user": "system.user.admin",
                  "ts": 1676195799090,
                  "_id": "device-watcher.0.zigbee.listAll",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                }
                
                paul53P 1 Antwort Letzte Antwort
                0
                • W wolfgangkt

                  @paul53 in dem Datenpunkt steht eigentlich immer das gleiche.
                  liegt es vielleicht an dem Datenpunkt selbst ?

                  {
                    "type": "state",
                    "common": {
                      "name": {
                        "en": "List of all devices",
                        "de": "Liste aller Geräte",
                        "ru": "Список всех устройств",
                        "pt": "Lista de todos os dispositivos",
                        "nl": "List van alle apparaten",
                        "fr": "Liste de tous les dispositifs",
                        "it": "Elenco di tutti i dispositivi",
                        "es": "Lista de todos los dispositivos",
                        "pl": "Lista wszystkich urządzeń",
                        "zh-cn": "所有装置清单"
                      },
                      "type": "array",
                      "role": "json",
                      "read": true,
                      "write": false
                    },
                    "native": {},
                    "from": "system.adapter.device-watcher.0",
                    "user": "system.user.admin",
                    "ts": 1676195799090,
                    "_id": "device-watcher.0.zigbee.listAll",
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    }
                  }
                  
                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #27

                  @wolfgangkt
                  Der Datenpunkt ist vom Typ "array", kann also nicht geparst werden. Ändere Zeile 6 in

                      let arr = dp.state.val;
                  

                  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

                  W 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @wolfgangkt
                    Der Datenpunkt ist vom Typ "array", kann also nicht geparst werden. Ändere Zeile 6 in

                        let arr = dp.state.val;
                    
                    W Online
                    W Online
                    wolfgangkt
                    schrieb am zuletzt editiert von
                    #28

                    @paul53 jetzt funktioniert es. Vielen Dank für die Hilfe :+1: :+1: :+1:

                    1 Antwort Letzte Antwort
                    0
                    • W Online
                      W Online
                      wolfgangkt
                      schrieb am zuletzt editiert von
                      #29

                      @paul53 zu früh gefreut. In den 2. Datenpunkt werden nur 3 Datensätze geschrieben.

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • W wolfgangkt

                        @paul53 zu früh gefreut. In den 2. Datenpunkt werden nur 3 Datensätze geschrieben.

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

                        @wolfgangkt sagte: In den 2. Datenpunkt werden nur 3 Datensätze geschrieben.

                        Ändere Zeile 8:

                            for(let i = 30; i < arr.length; i++) {
                        

                        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

                        W 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @wolfgangkt sagte: In den 2. Datenpunkt werden nur 3 Datensätze geschrieben.

                          Ändere Zeile 8:

                              for(let i = 30; i < arr.length; i++) {
                          
                          W Online
                          W Online
                          wolfgangkt
                          schrieb am zuletzt editiert von
                          #31

                          @paul53 jetzt funktionierts. Besten Dank Dank nochmal.

                          haus-automatisierungH 1 Antwort Letzte Antwort
                          0
                          • W wolfgangkt

                            @paul53 jetzt funktionierts. Besten Dank Dank nochmal.

                            haus-automatisierungH Online
                            haus-automatisierungH Online
                            haus-automatisierung
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #32

                            @wolfgangkt Hier noch eine etwas kürzere Alternative:

                            const idJson = '0_userdata.0.testjson'; // Original
                            const idJson1 = '0_userdata.0.json1'; // Teil 1
                            const idJson2 = '0_userdata.0.json2'; // Teil 2
                              
                            on({ id: idJson, change: 'ne' }, (obj) => {
                                const arr = JSON.parse(obj.state.val);
                            
                                setState(idJson1, JSON.stringify(arr.slice(0, 30)), true);
                                setState(idJson2, JSON.stringify(arr.slice(30)), true);
                             });
                            

                            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                            📚 Meine inoffizielle ioBroker Dokumentation

                            W 1 Antwort Letzte Antwort
                            0
                            • haus-automatisierungH haus-automatisierung

                              @wolfgangkt Hier noch eine etwas kürzere Alternative:

                              const idJson = '0_userdata.0.testjson'; // Original
                              const idJson1 = '0_userdata.0.json1'; // Teil 1
                              const idJson2 = '0_userdata.0.json2'; // Teil 2
                                
                              on({ id: idJson, change: 'ne' }, (obj) => {
                                  const arr = JSON.parse(obj.state.val);
                              
                                  setState(idJson1, JSON.stringify(arr.slice(0, 30)), true);
                                  setState(idJson2, JSON.stringify(arr.slice(30)), true);
                               });
                              
                              W Online
                              W Online
                              wolfgangkt
                              schrieb am zuletzt editiert von
                              #33

                              @haus-automatisierung Danke, kann ich auch nochmal probieren. Das Script von @paul53 funktioniert einwandfrei. Die 2 Tabellen in der VIS laufen schon zu meiner Zufriedenheit.

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • W wolfgangkt

                                @haus-automatisierung Danke, kann ich auch nochmal probieren. Das Script von @paul53 funktioniert einwandfrei. Die 2 Tabellen in der VIS laufen schon zu meiner Zufriedenheit.

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

                                @wolfgangkt sagte: kann ich auch nochmal probieren.

                                Dann lass das Parsen in Zeile 6 weg (Datenpunkt liefert bereits ein Array).

                                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

                                W 1 Antwort Letzte Antwort
                                0
                                • paul53P paul53

                                  @wolfgangkt sagte: kann ich auch nochmal probieren.

                                  Dann lass das Parsen in Zeile 6 weg (Datenpunkt liefert bereits ein Array).

                                  W Online
                                  W Online
                                  wolfgangkt
                                  schrieb am zuletzt editiert von
                                  #35

                                  @paul53 eine Frage hätte ich noch. Wie kann ich aus Original json bestimme Werte herausfiltern z.B alle Wassermelder und in einen eigenen Datenpunkt schreiben.

                                  haus-automatisierungH 1 Antwort Letzte Antwort
                                  0
                                  • W wolfgangkt

                                    @paul53 eine Frage hätte ich noch. Wie kann ich aus Original json bestimme Werte herausfiltern z.B alle Wassermelder und in einen eigenen Datenpunkt schreiben.

                                    haus-automatisierungH Online
                                    haus-automatisierungH Online
                                    haus-automatisierung
                                    Developer Most Active
                                    schrieb am zuletzt editiert von
                                    #36

                                    @wolfgangkt z.B. mit Filter-Funktionen

                                    arr.filter(v => v.Device.startsWith('Wassermelder'));
                                    

                                    Also

                                    setState(idJson1, JSON.stringify(arr.filter(v => v.Device.startsWith('Wassermelder'))), true);
                                    

                                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                    📚 Meine inoffizielle ioBroker Dokumentation

                                    W 1 Antwort Letzte Antwort
                                    0
                                    • haus-automatisierungH haus-automatisierung

                                      @wolfgangkt z.B. mit Filter-Funktionen

                                      arr.filter(v => v.Device.startsWith('Wassermelder'));
                                      

                                      Also

                                      setState(idJson1, JSON.stringify(arr.filter(v => v.Device.startsWith('Wassermelder'))), true);
                                      
                                      W Online
                                      W Online
                                      wolfgangkt
                                      schrieb am zuletzt editiert von
                                      #37

                                      @haus-automatisierung Super :+1: Vielen Dank. Klappt einwandfrei.

                                      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

                                      592

                                      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