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. Script um JSON in states zu schreiben

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Script um JSON in states zu schreiben

Geplant Angeheftet Gesperrt Verschoben JavaScript
blocklyjavascript
5 Beiträge 4 Kommentatoren 957 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.
  • madjack84M Offline
    madjack84M Offline
    madjack84
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe mir einen zigbee2mqtt Stick angeschafft.
    Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:

    {"contact":false,"linkquality":70,"battery":66,"voltage":2945}

    Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:

    // i = iobObject
    var obj = JSON.parse(getState(i).val);
    
    for (var prop in obj) {
        url = i + "." + prop;
        //console.log(url + " = " + obj[prop]);
        try {
            createState(url, obj[prop], true, {
                read: true, 
                write: false, 
                name: prop,
                role: "value",
                type: "mixed", 
                def: false
            });
            //console.log(getState(url))
        } catch (e) {
            console.log('exception in getState [' + e + ']');
        }    
    }
    

    ef5c7c79-46b1-4631-a2a7-7cc4382996e9-image.png

    Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...

    javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

    wie kann ich die Variable hier erstellen?

    mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

    Vielen Dank

    nuc i3, Proxmox, raspimatic (PI3), 15 shellies, shelly 4pro/25/RGB, wled sonoff, 7x xiaomi sensoren, 4xEchos, 4 Tasmota Steckdosen, motionEye, nspanel, Ring, hoymiles usw

    arteckA paul53P 2 Antworten Letzte Antwort
    0
    • madjack84M madjack84

      Hallo zusammen,

      ich habe mir einen zigbee2mqtt Stick angeschafft.
      Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:

      {"contact":false,"linkquality":70,"battery":66,"voltage":2945}

      Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:

      // i = iobObject
      var obj = JSON.parse(getState(i).val);
      
      for (var prop in obj) {
          url = i + "." + prop;
          //console.log(url + " = " + obj[prop]);
          try {
              createState(url, obj[prop], true, {
                  read: true, 
                  write: false, 
                  name: prop,
                  role: "value",
                  type: "mixed", 
                  def: false
              });
              //console.log(getState(url))
          } catch (e) {
              console.log('exception in getState [' + e + ']');
          }    
      }
      

      ef5c7c79-46b1-4631-a2a7-7cc4382996e9-image.png

      Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...

      javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

      wie kann ich die Variable hier erstellen?

      mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

      Vielen Dank

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @madjack84 sagte in Script um JSON in states zu schreiben:

      ich habe mir einen zigbee2mqtt Stick angeschafft.

      es gibt keinen zigbee2mqtt Stick .. zigbee2mqtt ist ein Projekt der Zigbee Geräte bedienen kann ...
      ich Tippe auf einen cc2531 Stick

      aber warum nimmst du nicht den Zigbee Adapter ??

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      madjack84M 1 Antwort Letzte Antwort
      0
      • arteckA arteck

        @madjack84 sagte in Script um JSON in states zu schreiben:

        ich habe mir einen zigbee2mqtt Stick angeschafft.

        es gibt keinen zigbee2mqtt Stick .. zigbee2mqtt ist ein Projekt der Zigbee Geräte bedienen kann ...
        ich Tippe auf einen cc2531 Stick

        aber warum nimmst du nicht den Zigbee Adapter ??

        madjack84M Offline
        madjack84M Offline
        madjack84
        schrieb am zuletzt editiert von madjack84
        #3

        @arteck korrekt.

        Einfache Antwort: ich kannte den Adapter nicht 😢
        Dachte ich kann von mqtt alles einfach abgreifen, da ich mqtt als dreh und Angelpunkt nutze. (shellies, tasmota, App)
        Kommt auch daher weil ich RAM sparen will und so wenige Adapter wie möglich nutze.

        Das zigbee2mqtt Projekt nutze ich via docker... Auch etwas Spielerei dabei ;)

        Gibt es im Javascript Umfeld eine Möglichkeit states im mqtt Client Adapter zu beschreiben?

        nuc i3, Proxmox, raspimatic (PI3), 15 shellies, shelly 4pro/25/RGB, wled sonoff, 7x xiaomi sensoren, 4xEchos, 4 Tasmota Steckdosen, motionEye, nspanel, Ring, hoymiles usw

        W 1 Antwort Letzte Antwort
        0
        • madjack84M madjack84

          Hallo zusammen,

          ich habe mir einen zigbee2mqtt Stick angeschafft.
          Mit einem sensor (aqara Tür/Fenster) bekomme ich folgendes JSON:

          {"contact":false,"linkquality":70,"battery":66,"voltage":2945}

          Um darauf per blockly schalten zu können, würde ich die states gerne erstellen und habe mir folgendes script in Blockly erstellt:

          // i = iobObject
          var obj = JSON.parse(getState(i).val);
          
          for (var prop in obj) {
              url = i + "." + prop;
              //console.log(url + " = " + obj[prop]);
              try {
                  createState(url, obj[prop], true, {
                      read: true, 
                      write: false, 
                      name: prop,
                      role: "value",
                      type: "mixed", 
                      def: false
                  });
                  //console.log(getState(url))
              } catch (e) {
                  console.log('exception in getState [' + e + ']');
              }    
          }
          

          ef5c7c79-46b1-4631-a2a7-7cc4382996e9-image.png

          Die Variablen werden erstellt... nur leider kann ich nur Variablen in Javascript.0. erstellen...

          javascript.0.mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

          wie kann ich die Variable hier erstellen?

          mqtt-client.0.zigbee2mqtt.0x00158d00033a73d5

          Vielen Dank

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

          @madjack84 sagte:

          wie kann ich die Variable hier erstellen?

          Man sollte keine eigenen Datenpunkte im Instanzen-Namensraum erstellen, da die Instanzen ihre Datenpunkte verwalten, also auch löschen. Außerhalb von javascript.N kann man Datenpunkte nur manuell im Reiter "Objekte" erstellen.

          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
          • madjack84M madjack84

            @arteck korrekt.

            Einfache Antwort: ich kannte den Adapter nicht 😢
            Dachte ich kann von mqtt alles einfach abgreifen, da ich mqtt als dreh und Angelpunkt nutze. (shellies, tasmota, App)
            Kommt auch daher weil ich RAM sparen will und so wenige Adapter wie möglich nutze.

            Das zigbee2mqtt Projekt nutze ich via docker... Auch etwas Spielerei dabei ;)

            Gibt es im Javascript Umfeld eine Möglichkeit states im mqtt Client Adapter zu beschreiben?

            W Offline
            W Offline
            Waly_de
            schrieb am zuletzt editiert von
            #5

            @madjack84 Hab ich auch mal nach gesucht. Leider ist das bewusst blockiert.
            Du kannst einen Adapter in Javascript erstellen. Der kann sowas ;-)

            Für Deine Zwecke sollte aber doch auch so ok sein, oder? Auslesen kannst du den Wert ja überall. Geht Dir nur um Kosmetik oder?

            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

            731

            Online

            32.5k

            Benutzer

            81.7k

            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