Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Bitte um Hilfe bei MQTT zerlegen

NEWS

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

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

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

Bitte um Hilfe bei MQTT zerlegen

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 566 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.
  • K Offline
    K Offline
    Klaus-Anders
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich habe Probleme beim zerlegen von einem Mqtt String.
    Der von hier verwendete Script zeigt keine Fehler.
    Es werden aber keine Datenpunkte angelegt.
    Ich kapier das einfach nicht, liegt wohl am Alter.

    hier mal der Script

    const JSPath = '0_userdata.0'/Example state/ // JS- Pfad
    const parsedStatesPath = JSPath + ".Pelletofen" // Pfad fuer geparste States
    const zigbee2mqttJsonPath = 'mqtt.0.service'/service/
    let IDs = [];

    $("[id=" + zigbee2mqttJsonPath + ".*]").each(function (id) {
    IDs.push(id)
    })

    on({id: IDs, change: "ne"}, function (obj) {
    let JsonObj = JSON.parse(obj.state.val)
    Object.keys(JsonObj).forEach(function(key){
    if (getState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath)).notExist){
    createState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key], {read: true, write: true, type: typeof(JsonObj[key]), name: '' , desc: ''},function(){
    setState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key])
    })
    }else {
    setState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key])
    };
    })
    })

    1e7c0bb4-09ed-4202-b495-ddb2916ab141-grafik.png

    729b6c1c-7fd2-47b8-a763-dd8b4881d129-grafik.png

    Vilen Dank schonmal im voraus.
    Klaus

    paul53P 1 Antwort Letzte Antwort
    0
    • K Klaus-Anders

      Hallo,
      ich habe Probleme beim zerlegen von einem Mqtt String.
      Der von hier verwendete Script zeigt keine Fehler.
      Es werden aber keine Datenpunkte angelegt.
      Ich kapier das einfach nicht, liegt wohl am Alter.

      hier mal der Script

      const JSPath = '0_userdata.0'/Example state/ // JS- Pfad
      const parsedStatesPath = JSPath + ".Pelletofen" // Pfad fuer geparste States
      const zigbee2mqttJsonPath = 'mqtt.0.service'/service/
      let IDs = [];

      $("[id=" + zigbee2mqttJsonPath + ".*]").each(function (id) {
      IDs.push(id)
      })

      on({id: IDs, change: "ne"}, function (obj) {
      let JsonObj = JSON.parse(obj.state.val)
      Object.keys(JsonObj).forEach(function(key){
      if (getState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath)).notExist){
      createState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key], {read: true, write: true, type: typeof(JsonObj[key]), name: '' , desc: ''},function(){
      setState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key])
      })
      }else {
      setState(obj.id.replace(zigbee2mqttJsonPath, parsedStatesPath) + '.' + key, JsonObj[key])
      };
      })
      })

      1e7c0bb4-09ed-4202-b495-ddb2916ab141-grafik.png

      729b6c1c-7fd2-47b8-a763-dd8b4881d129-grafik.png

      Vilen Dank schonmal im voraus.
      Klaus

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

      @klaus-anders
      Den Javascript-Code bitte in Code tags einbetten, da so nicht lesbar.

      Code_tags.JPG

      Wolltest Du die Datenpunkte nicht unter "0_userdata.0.Pelletofen" anlegen?

      const JSPath = '0_userdata.0'; // JS- Pfad
      const parsedStatesPath = JSPath + ".Pelletofen."; // Pfad fuer geparste States
      const idJSON = 'mqtt.0.service';
      
      on(idJSON, function (dp) {
          let JsonObj = JSON.parse(dp.state.val);
          Object.keys(JsonObj).forEach(function(key) {
              if(existsState(parsedStatesPath + key)) setState(parsedStatesPath + key, JsonObj[key], true);
              else createState(parsedStatesPath + key, JsonObj[key], {read: true, write: false, type: typeof JsonObj[key], name: key});
          });
      });
      

      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

      K 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @klaus-anders
        Den Javascript-Code bitte in Code tags einbetten, da so nicht lesbar.

        Code_tags.JPG

        Wolltest Du die Datenpunkte nicht unter "0_userdata.0.Pelletofen" anlegen?

        const JSPath = '0_userdata.0'; // JS- Pfad
        const parsedStatesPath = JSPath + ".Pelletofen."; // Pfad fuer geparste States
        const idJSON = 'mqtt.0.service';
        
        on(idJSON, function (dp) {
            let JsonObj = JSON.parse(dp.state.val);
            Object.keys(JsonObj).forEach(function(key) {
                if(existsState(parsedStatesPath + key)) setState(parsedStatesPath + key, JsonObj[key], true);
                else createState(parsedStatesPath + key, JsonObj[key], {read: true, write: false, type: typeof JsonObj[key], name: key});
            });
        });
        
        K Offline
        K Offline
        Klaus-Anders
        schrieb am zuletzt editiert von
        #3

        @paul53
        Vielen Dank, das funzt.

        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

        736

        Online

        32.4k

        Benutzer

        81.4k

        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
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe