Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Zigbee2mqtt installation

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Zigbee2mqtt installation

Scheduled Pinned Locked Moved ioBroker Allgemein
284 Posts 6 Posters 50.3k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Schmetterfliege

    Mal ganz blöd gefragt...
    kannst du mal schauen ob bei dir die Tabelle damit funktioniert? Also Werte hat?

    Nodes:

    [
       {
           "id": "9eecae9b.cc535",
           "type": "change",
           "z": "1090acf7.2d6813",
           "name": "ui_control",
           "rules": [
               {
                   "t": "set",
                   "p": "ui_control",
                   "pt": "msg",
                   "to": "topic",
                   "tot": "msg"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 1200,
           "y": 1560,
           "wires": [
               [
                   "53fb6562.08488c",
                   "4e198116ebbecd60"
               ]
           ]
       },
       {
           "id": "53fb6562.08488c",
           "type": "ui_table",
           "z": "1090acf7.2d6813",
           "group": "ddbe343f.9952a8",
           "name": "Temperaturen",
           "order": 1,
           "width": "14",
           "height": "12",
           "columns": [],
           "outputs": 1,
           "cts": true,
           "x": 1380,
           "y": 1560,
           "wires": [
               []
           ]
       },
       {
           "id": "ddbe343f.9952a8",
           "type": "ui_group",
           "name": "Temperaturen",
           "tab": "2b447e3f.ff91d2",
           "order": 1,
           "disp": true,
           "width": "14",
           "collapse": false
       },
       {
           "id": "2b447e3f.ff91d2",
           "type": "ui_tab",
           "name": "Wohnung",
           "icon": "dashboard",
           "order": 14,
           "disabled": false,
           "hidden": false
       }
    ]
    

    Werte:

    {"topic":{"tabulator":{"columnResized":"function(column){     var newColumn = {         field: column._column.field,         visible: column._column.visible,         width: column._column.width,         widthFixed: column._column.widthFixed,         widthStyled: column._column.widthStyled     }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }","columnMoved":"function(column, columns){     var newColumns=[];     columns.forEach(function (column) {         newColumns.push({'field': column._column.field});     });     this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }","groupHeader":"function (value, count, data, group) {return value + \"<span style='color:#d00; margin-left:10px;'>(\" + count + \" Termostat\"+((count>1) ? \"e\" : \"\") + \")</span>\";}","columns":[{"formatterParams":{"target":"_blank"},"title":"Room","field":"room","width":100,"frozen":true},{"formatterParams":{"target":"_blank"},"title":"Ort","field":"name","width":100,"align":"center"},{"formatterParams":{"target":"_blank"},"title":"Measurements","columns":[{"formatterParams":{"target":"_blank","allowEmpty":true,"min":5,"max":25,"color":["#91bd00","#b3bd00","#bdad00","#bd9700","#bd8700","#bd7e00","#bd7100","#bd6800","#bd5b00","#bd4500","#bd2f00"],"legend":"function (value) {return '&nbsp;&nbsp;'+value+'°C';}","legendColor":"#101010","legendAlign":"left"},"title":"Temperatur","field":"temperature","formatter":"progress","width":100},{"formatterParams":{"target":"_blank","allowEmpty":true,"min":0,"max":100,"color":["#91bd00","#b3bd00","#bdad00","#bd9700","#bd8700","#bd7e00","#bd7100","#bd6800","#bd5b00","#bd4500","#bd2f00"],"legend":"function (value) {return '&nbsp;&nbsp;'+value+'%';}","legendColor":"#101010","legendAlign":"left"},"title":"Luftfeuchtigkeit","field":"humidity","formatter":"progress","width":100},{"formatterParams":{"target":"_blank"},"title":"LastUpdate","field":"lastupdate","width":150,"frozen":true}]}],"layout":"fitColumns","movableColumns":true,"groupBy":""},"customHeight":20},"payload":{"Büro":{"temperature":19.98,"humidity":49.56,"name":"Besta","room":"Büro","id":"Büro/Besta","lastupdate":"vor ein paar Sekunden"},"Flur_1":{"temperature":23.03,"humidity":54.42,"name":"Kommode","room":"Flur_1","id":"Flur_1/Kommode","lastupdate":"vor ein paar Sekunden"},"Schlafzimmer":{"temperature":20.26,"humidity":64.96,"name":"Satsumas","room":"Schlafzimmer","id":"Schlafzimmer/Satsumas","lastupdate":"vor ein paar Sekunden"},"Wohnzimmer":{"temperature":21.53,"humidity":60.56,"name":"Couchtisch","room":"Wohnzimmer","id":"Wohnzimmer/Couchtisch","lastupdate":"vor ein paar Sekunden"},"Kleines_Bad":{"temperature":23.09,"humidity":54.32,"name":"Spiegel","room":"Kleines_Bad","id":"Kleines_Bad/Spiegel","lastupdate":"vor ein paar Sekunden"},"Flur_2":{"temperature":22.43,"humidity":55.37,"name":"Türrahmen_Küche","room":"Flur_2","id":"Flur_2/Türrahmen_Küche","lastupdate":"vor ein paar Sekunden"},"Großes_Bad":{"temperature":23.81,"humidity":53.33,"name":"Schrank","room":"Großes_Bad","id":"Großes_Bad/Schrank","lastupdate":"vor ein paar Sekunden"},"Küche":{"temperature":21.82,"humidity":57.56,"name":"undefined","room":"Küche","id":"Küche/undefined","lastupdate":"vor ein paar Sekunden"},"Abstellkammer":{"temperature":23.01,"humidity":52.64,"name":"Regal","room":"Abstellkammer","id":"Abstellkammer/Regal","lastupdate":"vor ein paar Sekunden"}},"acknowledged":true,"timestamp":1669581999051,"lastchange":1669581987201,"from":"system.adapter.mqtt.0","_msgid":"2ec2d90fd3b3e55c","ui_control":{"tabulator":{"columnResized":"function(column){     var newColumn = {         field: column._column.field,         visible: column._column.visible,         width: column._column.width,         widthFixed: column._column.widthFixed,         widthStyled: column._column.widthStyled     }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }","columnMoved":"function(column, columns){     var newColumns=[];     columns.forEach(function (column) {         newColumns.push({'field': column._column.field});     });     this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }","groupHeader":"function (value, count, data, group) {return value + \"<span style='color:#d00; margin-left:10px;'>(\" + count + \" Termostat\"+((count>1) ? \"e\" : \"\") + \")</span>\";}","columns":[{"formatterParams":{"target":"_blank"},"title":"Room","field":"room","width":100,"frozen":true},{"formatterParams":{"target":"_blank"},"title":"Ort","field":"name","width":100,"align":"center"},{"formatterParams":{"target":"_blank"},"title":"Measurements","columns":[{"formatterParams":{"target":"_blank","allowEmpty":true,"min":5,"max":25,"color":["#91bd00","#b3bd00","#bdad00","#bd9700","#bd8700","#bd7e00","#bd7100","#bd6800","#bd5b00","#bd4500","#bd2f00"],"legend":"function (value) {return '&nbsp;&nbsp;'+value+'°C';}","legendColor":"#101010","legendAlign":"left"},"title":"Temperatur","field":"temperature","formatter":"progress","width":100},{"formatterParams":{"target":"_blank","allowEmpty":true,"min":0,"max":100,"color":["#91bd00","#b3bd00","#bdad00","#bd9700","#bd8700","#bd7e00","#bd7100","#bd6800","#bd5b00","#bd4500","#bd2f00"],"legend":"function (value) {return '&nbsp;&nbsp;'+value+'%';}","legendColor":"#101010","legendAlign":"left"},"title":"Luftfeuchtigkeit","field":"humidity","formatter":"progress","width":100},{"formatterParams":{"target":"_blank"},"title":"LastUpdate","field":"lastupdate","width":150,"frozen":true}]}],"layout":"fitColumns","movableColumns":true,"groupBy":""},"customHeight":20}}
    

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by mickym
    #262

    @schmetterfliege Nein - das geht nicht.

    Aber:

    1. Deine ChangeNode ist so ja nicht richtig. Wie injizierst Du denn die Daten.
    2. Daten kommen über ein Array von Objekten rein. Bei Dir sehe ich aber nur Objekte.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    S 1 Reply Last reply
    0
    • mickymM mickym

      @schmetterfliege Nein - das geht nicht.

      Aber:

      1. Deine ChangeNode ist so ja nicht richtig. Wie injizierst Du denn die Daten.
      2. Daten kommen über ein Array von Objekten rein. Bei Dir sehe ich aber nur Objekte.
      S Offline
      S Offline
      Schmetterfliege
      wrote on last edited by Schmetterfliege
      #263

      @mickym said in Zigbee2mqtt installation:

      @schmetterfliege Nein - das geht nicht.

      Aber:

      1. Deine ChangeNode ist so ja nicht richtig. Wie injizierst Du denn die Daten.

      Welche Daten genau?

      1. Daten kommen über ein Array von Objekten rein. Bei Dir sehe ich aber nur Objekte.

      Okay, das war tatsächlich das Problem. Aber das Split und Join (wo dann ein Array draus gemacht wird) hatte ich deutlich vorher entfernt gehabt - die Tabelle hatte noch was angezeigt. Aber vermutlich nicht geupdated... Danke dir. Anzeigeproblem gelöst

      mickymM 1 Reply Last reply
      0
      • S Schmetterfliege

        @mickym said in Zigbee2mqtt installation:

        @schmetterfliege Nein - das geht nicht.

        Aber:

        1. Deine ChangeNode ist so ja nicht richtig. Wie injizierst Du denn die Daten.

        Welche Daten genau?

        1. Daten kommen über ein Array von Objekten rein. Bei Dir sehe ich aber nur Objekte.

        Okay, das war tatsächlich das Problem. Aber das Split und Join (wo dann ein Array draus gemacht wird) hatte ich deutlich vorher entfernt gehabt - die Tabelle hatte noch was angezeigt. Aber vermutlich nicht geupdated... Danke dir. Anzeigeproblem gelöst

        mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by mickym
        #264

        @schmetterfliege Ich werde Dir noch eine Methode zeigen, wo man nur mit JSONATA das wandeln kann. Das ist die eleganteste Methode. ;)

        Geschafft:

        4ef5569b-9498-49c0-94f4-11a83f412ee6-image.png

        Die eleganteste Methode, die Objekte in ein Array zu verwandeln geht so. :grin:

        0363f5fb-05e3-4550-ae31-2e2654f3e13a-image.png

        [
           {
               "id": "53fb6562.08488c",
               "type": "ui_table",
               "z": "8b753c91a6565074",
               "group": "ddbe343f.9952a8",
               "name": "Temperaturen",
               "order": 1,
               "width": "14",
               "height": "12",
               "columns": [],
               "outputs": 1,
               "cts": true,
               "x": 600,
               "y": 380,
               "wires": [
                   []
               ]
           },
           {
               "id": "0023a7983b1199db",
               "type": "inject",
               "z": "8b753c91a6565074",
               "name": "",
               "props": [
                   {
                       "p": "payload"
                   }
               ],
               "repeat": "",
               "crontab": "",
               "once": false,
               "onceDelay": 0.1,
               "topic": "",
               "payload": "{\"topic\":{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Room\",\"field\":\"room\",\"width\":100,\"frozen\":true},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Ort\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":5,\"max\":25,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'°C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Temperatur\",\"field\":\"temperature\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":0,\"max\":100,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'%';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Luftfeuchtigkeit\",\"field\":\"humidity\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"LastUpdate\",\"field\":\"lastupdate\",\"width\":150,\"frozen\":true}]}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":20},\"payload\":{\"Büro\":{\"temperature\":19.98,\"humidity\":49.56,\"name\":\"Besta\",\"room\":\"Büro\",\"id\":\"Büro/Besta\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Flur_1\":{\"temperature\":23.03,\"humidity\":54.42,\"name\":\"Kommode\",\"room\":\"Flur_1\",\"id\":\"Flur_1/Kommode\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Schlafzimmer\":{\"temperature\":20.26,\"humidity\":64.96,\"name\":\"Satsumas\",\"room\":\"Schlafzimmer\",\"id\":\"Schlafzimmer/Satsumas\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Wohnzimmer\":{\"temperature\":21.53,\"humidity\":60.56,\"name\":\"Couchtisch\",\"room\":\"Wohnzimmer\",\"id\":\"Wohnzimmer/Couchtisch\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Kleines_Bad\":{\"temperature\":23.09,\"humidity\":54.32,\"name\":\"Spiegel\",\"room\":\"Kleines_Bad\",\"id\":\"Kleines_Bad/Spiegel\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Flur_2\":{\"temperature\":22.43,\"humidity\":55.37,\"name\":\"Türrahmen_Küche\",\"room\":\"Flur_2\",\"id\":\"Flur_2/Türrahmen_Küche\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Großes_Bad\":{\"temperature\":23.81,\"humidity\":53.33,\"name\":\"Schrank\",\"room\":\"Großes_Bad\",\"id\":\"Großes_Bad/Schrank\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Küche\":{\"temperature\":21.82,\"humidity\":57.56,\"name\":\"undefined\",\"room\":\"Küche\",\"id\":\"Küche/undefined\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Abstellkammer\":{\"temperature\":23.01,\"humidity\":52.64,\"name\":\"Regal\",\"room\":\"Abstellkammer\",\"id\":\"Abstellkammer/Regal\",\"lastupdate\":\"vor ein paar Sekunden\"}},\"acknowledged\":true,\"timestamp\":1669581999051,\"lastchange\":1669581987201,\"from\":\"system.adapter.mqtt.0\",\"_msgid\":\"2ec2d90fd3b3e55c\",\"ui_control\":{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Room\",\"field\":\"room\",\"width\":100,\"frozen\":true},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Ort\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":5,\"max\":25,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'°C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Temperatur\",\"field\":\"temperature\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":0,\"max\":100,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'%';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Luftfeuchtigkeit\",\"field\":\"humidity\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"LastUpdate\",\"field\":\"lastupdate\",\"width\":150,\"frozen\":true}]}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":20}}",
               "payloadType": "json",
               "x": 230,
               "y": 380,
               "wires": [
                   [
                       "9eecae9b.cc535"
                   ]
               ]
           },
           {
               "id": "9eecae9b.cc535",
               "type": "change",
               "z": "8b753c91a6565074",
               "name": "ui_control",
               "rules": [
                   {
                       "t": "set",
                       "p": "ui_control",
                       "pt": "msg",
                       "to": "payload.topic",
                       "tot": "msg"
                   },
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload.payload",
                       "tot": "msg"
                   },
                   {
                       "t": "set",
                       "p": "payload",
                       "pt": "msg",
                       "to": "payload.*",
                       "tot": "jsonata"
                   }
               ],
               "action": "",
               "property": "",
               "from": "",
               "to": "",
               "reg": false,
               "x": 400,
               "y": 380,
               "wires": [
                   [
                       "53fb6562.08488c"
                   ]
               ]
           },
           {
               "id": "ddbe343f.9952a8",
               "type": "ui_group",
               "name": "Temperaturen",
               "tab": "2b447e3f.ff91d2",
               "order": 1,
               "disp": true,
               "width": "14",
               "collapse": false
           },
           {
               "id": "2b447e3f.ff91d2",
               "type": "ui_tab",
               "name": "Wohnung",
               "icon": "dashboard",
               "order": 14,
               "disabled": false,
               "hidden": false
           }
        ]
        

        Man mappt einfach.

        Also

        065d33f7-7715-45d0-9674-c5b1052739de-image.png

        https://docs.jsonata.org/path-operators

        Über eine JOIN Node kann man es auch machen, dann würde ich aber auch eine Reduktion machen.

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        S 1 Reply Last reply
        0
        • mickymM mickym

          @schmetterfliege Ich werde Dir noch eine Methode zeigen, wo man nur mit JSONATA das wandeln kann. Das ist die eleganteste Methode. ;)

          Geschafft:

          4ef5569b-9498-49c0-94f4-11a83f412ee6-image.png

          Die eleganteste Methode, die Objekte in ein Array zu verwandeln geht so. :grin:

          0363f5fb-05e3-4550-ae31-2e2654f3e13a-image.png

          [
             {
                 "id": "53fb6562.08488c",
                 "type": "ui_table",
                 "z": "8b753c91a6565074",
                 "group": "ddbe343f.9952a8",
                 "name": "Temperaturen",
                 "order": 1,
                 "width": "14",
                 "height": "12",
                 "columns": [],
                 "outputs": 1,
                 "cts": true,
                 "x": 600,
                 "y": 380,
                 "wires": [
                     []
                 ]
             },
             {
                 "id": "0023a7983b1199db",
                 "type": "inject",
                 "z": "8b753c91a6565074",
                 "name": "",
                 "props": [
                     {
                         "p": "payload"
                     }
                 ],
                 "repeat": "",
                 "crontab": "",
                 "once": false,
                 "onceDelay": 0.1,
                 "topic": "",
                 "payload": "{\"topic\":{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Room\",\"field\":\"room\",\"width\":100,\"frozen\":true},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Ort\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":5,\"max\":25,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'°C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Temperatur\",\"field\":\"temperature\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":0,\"max\":100,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'%';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Luftfeuchtigkeit\",\"field\":\"humidity\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"LastUpdate\",\"field\":\"lastupdate\",\"width\":150,\"frozen\":true}]}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":20},\"payload\":{\"Büro\":{\"temperature\":19.98,\"humidity\":49.56,\"name\":\"Besta\",\"room\":\"Büro\",\"id\":\"Büro/Besta\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Flur_1\":{\"temperature\":23.03,\"humidity\":54.42,\"name\":\"Kommode\",\"room\":\"Flur_1\",\"id\":\"Flur_1/Kommode\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Schlafzimmer\":{\"temperature\":20.26,\"humidity\":64.96,\"name\":\"Satsumas\",\"room\":\"Schlafzimmer\",\"id\":\"Schlafzimmer/Satsumas\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Wohnzimmer\":{\"temperature\":21.53,\"humidity\":60.56,\"name\":\"Couchtisch\",\"room\":\"Wohnzimmer\",\"id\":\"Wohnzimmer/Couchtisch\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Kleines_Bad\":{\"temperature\":23.09,\"humidity\":54.32,\"name\":\"Spiegel\",\"room\":\"Kleines_Bad\",\"id\":\"Kleines_Bad/Spiegel\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Flur_2\":{\"temperature\":22.43,\"humidity\":55.37,\"name\":\"Türrahmen_Küche\",\"room\":\"Flur_2\",\"id\":\"Flur_2/Türrahmen_Küche\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Großes_Bad\":{\"temperature\":23.81,\"humidity\":53.33,\"name\":\"Schrank\",\"room\":\"Großes_Bad\",\"id\":\"Großes_Bad/Schrank\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Küche\":{\"temperature\":21.82,\"humidity\":57.56,\"name\":\"undefined\",\"room\":\"Küche\",\"id\":\"Küche/undefined\",\"lastupdate\":\"vor ein paar Sekunden\"},\"Abstellkammer\":{\"temperature\":23.01,\"humidity\":52.64,\"name\":\"Regal\",\"room\":\"Abstellkammer\",\"id\":\"Abstellkammer/Regal\",\"lastupdate\":\"vor ein paar Sekunden\"}},\"acknowledged\":true,\"timestamp\":1669581999051,\"lastchange\":1669581987201,\"from\":\"system.adapter.mqtt.0\",\"_msgid\":\"2ec2d90fd3b3e55c\",\"ui_control\":{\"tabulator\":{\"columnResized\":\"function(column){ var newColumn = { field: column._column.field, visible: column._column.visible, width: column._column.width, widthFixed: column._column.widthFixed, widthStyled: column._column.widthStyled }; this.send({topic:this.config.topic,ui_control:{callback:'columnResized',columnWidths:newColumn}}); }\",\"columnMoved\":\"function(column, columns){ var newColumns=[]; columns.forEach(function (column) { newColumns.push({'field': column._column.field}); }); this.send({topic:this.config.topic,ui_control:{callback:'columnMoved',columns:newColumns}}); }\",\"groupHeader\":\"function (value, count, data, group) {return value + \\\"<span style='color:#d00; margin-left:10px;'>(\\\" + count + \\\" Termostat\\\"+((count>1) ? \\\"e\\\" : \\\"\\\") + \\\")</span>\\\";}\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Room\",\"field\":\"room\",\"width\":100,\"frozen\":true},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Ort\",\"field\":\"name\",\"width\":100,\"align\":\"center\"},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"Measurements\",\"columns\":[{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":5,\"max\":25,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'°C';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Temperatur\",\"field\":\"temperature\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\",\"allowEmpty\":true,\"min\":0,\"max\":100,\"color\":[\"#91bd00\",\"#b3bd00\",\"#bdad00\",\"#bd9700\",\"#bd8700\",\"#bd7e00\",\"#bd7100\",\"#bd6800\",\"#bd5b00\",\"#bd4500\",\"#bd2f00\"],\"legend\":\"function (value) {return '&nbsp;&nbsp;'+value+'%';}\",\"legendColor\":\"#101010\",\"legendAlign\":\"left\"},\"title\":\"Luftfeuchtigkeit\",\"field\":\"humidity\",\"formatter\":\"progress\",\"width\":100},{\"formatterParams\":{\"target\":\"_blank\"},\"title\":\"LastUpdate\",\"field\":\"lastupdate\",\"width\":150,\"frozen\":true}]}],\"layout\":\"fitColumns\",\"movableColumns\":true,\"groupBy\":\"\"},\"customHeight\":20}}",
                 "payloadType": "json",
                 "x": 230,
                 "y": 380,
                 "wires": [
                     [
                         "9eecae9b.cc535"
                     ]
                 ]
             },
             {
                 "id": "9eecae9b.cc535",
                 "type": "change",
                 "z": "8b753c91a6565074",
                 "name": "ui_control",
                 "rules": [
                     {
                         "t": "set",
                         "p": "ui_control",
                         "pt": "msg",
                         "to": "payload.topic",
                         "tot": "msg"
                     },
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "payload.payload",
                         "tot": "msg"
                     },
                     {
                         "t": "set",
                         "p": "payload",
                         "pt": "msg",
                         "to": "payload.*",
                         "tot": "jsonata"
                     }
                 ],
                 "action": "",
                 "property": "",
                 "from": "",
                 "to": "",
                 "reg": false,
                 "x": 400,
                 "y": 380,
                 "wires": [
                     [
                         "53fb6562.08488c"
                     ]
                 ]
             },
             {
                 "id": "ddbe343f.9952a8",
                 "type": "ui_group",
                 "name": "Temperaturen",
                 "tab": "2b447e3f.ff91d2",
                 "order": 1,
                 "disp": true,
                 "width": "14",
                 "collapse": false
             },
             {
                 "id": "2b447e3f.ff91d2",
                 "type": "ui_tab",
                 "name": "Wohnung",
                 "icon": "dashboard",
                 "order": 14,
                 "disabled": false,
                 "hidden": false
             }
          ]
          

          Man mappt einfach.

          Also

          065d33f7-7715-45d0-9674-c5b1052739de-image.png

          https://docs.jsonata.org/path-operators

          Über eine JOIN Node kann man es auch machen, dann würde ich aber auch eine Reduktion machen.

          S Offline
          S Offline
          Schmetterfliege
          wrote on last edited by
          #265

          @mickym
          Das ist in der Tat deutlich eleganter! Danke

          mickymM 1 Reply Last reply
          0
          • S Schmetterfliege

            @mickym
            Das ist in der Tat deutlich eleganter! Danke

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #266

            @schmetterfliege So geht es auch, wenn auch etwas umständlicher - aber eben nicht mehr mit Zeit usw.

            [
                {
                    "id": "e8f9b1fcb1b39fdb",
                    "type": "split",
                    "z": "8b753c91a6565074",
                    "name": "",
                    "splt": "\\n",
                    "spltType": "str",
                    "arraySplt": 1,
                    "arraySpltType": "len",
                    "stream": false,
                    "addname": "",
                    "x": 590,
                    "y": 440,
                    "wires": [
                        [
                            "2fb48db9fba6b839"
                        ]
                    ]
                },
                {
                    "id": "2fb48db9fba6b839",
                    "type": "join",
                    "z": "8b753c91a6565074",
                    "name": "",
                    "mode": "reduce",
                    "build": "object",
                    "property": "payload",
                    "propertyType": "msg",
                    "key": "topic",
                    "joiner": "\\n",
                    "joinerType": "str",
                    "accumulate": true,
                    "timeout": "",
                    "count": "",
                    "reduceRight": false,
                    "reduceExp": "$append($A, payload)\t",
                    "reduceInit": "[]",
                    "reduceInitType": "json",
                    "reduceFixup": "",
                    "x": 730,
                    "y": 440,
                    "wires": [
                        [
                            "f9e063e1acfe9200"
                        ]
                    ]
                }
            ]
            

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            S 1 Reply Last reply
            0
            • S Offline
              S Offline
              Schmetterfliege
              wrote on last edited by
              #267

              Hab das den Kontext jetzt auch angepasst dass alles auf gleiche Art benannt ist usw.
              Nur das LastUpdate muss ich jetzt halt noch hinbiegen.
              Kontext war gelöscht, daher aktuell nur für 1 Sensor der Timestamp da - trotzdem wird bei allen Sensoren die aktuell "da" sind der Wert gleich gesetzt.

              eb114e3e-4bb5-4cf3-8b94-9182b66e41e3-image.png
              457bcab4-2bb3-46f4-9b16-de1a2eef3690-image.png

              mickymM 1 Reply Last reply
              0
              • mickymM mickym

                @schmetterfliege So geht es auch, wenn auch etwas umständlicher - aber eben nicht mehr mit Zeit usw.

                [
                    {
                        "id": "e8f9b1fcb1b39fdb",
                        "type": "split",
                        "z": "8b753c91a6565074",
                        "name": "",
                        "splt": "\\n",
                        "spltType": "str",
                        "arraySplt": 1,
                        "arraySpltType": "len",
                        "stream": false,
                        "addname": "",
                        "x": 590,
                        "y": 440,
                        "wires": [
                            [
                                "2fb48db9fba6b839"
                            ]
                        ]
                    },
                    {
                        "id": "2fb48db9fba6b839",
                        "type": "join",
                        "z": "8b753c91a6565074",
                        "name": "",
                        "mode": "reduce",
                        "build": "object",
                        "property": "payload",
                        "propertyType": "msg",
                        "key": "topic",
                        "joiner": "\\n",
                        "joinerType": "str",
                        "accumulate": true,
                        "timeout": "",
                        "count": "",
                        "reduceRight": false,
                        "reduceExp": "$append($A, payload)\t",
                        "reduceInit": "[]",
                        "reduceInitType": "json",
                        "reduceFixup": "",
                        "x": 730,
                        "y": 440,
                        "wires": [
                            [
                                "f9e063e1acfe9200"
                            ]
                        ]
                    }
                ]
                

                S Offline
                S Offline
                Schmetterfliege
                wrote on last edited by
                #268

                @mickym said in Zigbee2mqtt installation:

                @schmetterfliege So geht es auch, wenn auch etwas umständlicher - aber eben nicht mehr mit Zeit usw.

                [
                    {
                        "id": "e8f9b1fcb1b39fdb",
                        "type": "split",
                        "z": "8b753c91a6565074",
                        "name": "",
                        "splt": "\\n",
                        "spltType": "str",
                        "arraySplt": 1,
                        "arraySpltType": "len",
                        "stream": false,
                        "addname": "",
                        "x": 590,
                        "y": 440,
                        "wires": [
                            [
                                "2fb48db9fba6b839"
                            ]
                        ]
                    },
                    {
                        "id": "2fb48db9fba6b839",
                        "type": "join",
                        "z": "8b753c91a6565074",
                        "name": "",
                        "mode": "reduce",
                        "build": "object",
                        "property": "payload",
                        "propertyType": "msg",
                        "key": "topic",
                        "joiner": "\\n",
                        "joinerType": "str",
                        "accumulate": true,
                        "timeout": "",
                        "count": "",
                        "reduceRight": false,
                        "reduceExp": "$append($A, payload)\t",
                        "reduceInit": "[]",
                        "reduceInitType": "json",
                        "reduceFixup": "",
                        "x": 730,
                        "y": 440,
                        "wires": [
                            [
                                "f9e063e1acfe9200"
                            ]
                        ]
                    }
                ]
                

                Okay, da habe ich es lieber in der Change Node und spar mir den Split und komplizierten Join :grin:

                1 Reply Last reply
                0
                • S Schmetterfliege

                  Hab das den Kontext jetzt auch angepasst dass alles auf gleiche Art benannt ist usw.
                  Nur das LastUpdate muss ich jetzt halt noch hinbiegen.
                  Kontext war gelöscht, daher aktuell nur für 1 Sensor der Timestamp da - trotzdem wird bei allen Sensoren die aktuell "da" sind der Wert gleich gesetzt.

                  eb114e3e-4bb5-4cf3-8b94-9182b66e41e3-image.png
                  457bcab4-2bb3-46f4-9b16-de1a2eef3690-image.png

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by
                  #269

                  @schmetterfliege Dann musst halt step für Step schauen - Du musst das ganze ja machen bevor du die table Node speist.

                  Also das Array auftrennen und in jedes Objekt die Differenz eintragen. Geh halt Schritt für Schritt vor. Die Tabelle interessiert doch erst mal nicht. Es interessiert nur das Array, das Du in die Tabelle speist.

                  Sprich wird der richtige Wert aus dem Kontext geholt und dann die Differenz richtig berechnet. Musst halt Step für Step machen.

                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                  S 1 Reply Last reply
                  0
                  • mickymM mickym

                    @schmetterfliege Dann musst halt step für Step schauen - Du musst das ganze ja machen bevor du die table Node speist.

                    Also das Array auftrennen und in jedes Objekt die Differenz eintragen. Geh halt Schritt für Schritt vor. Die Tabelle interessiert doch erst mal nicht. Es interessiert nur das Array, das Du in die Tabelle speist.

                    Sprich wird der richtige Wert aus dem Kontext geholt und dann die Differenz richtig berechnet. Musst halt Step für Step machen.

                    S Offline
                    S Offline
                    Schmetterfliege
                    wrote on last edited by
                    #270

                    @mickym said in Zigbee2mqtt installation:

                    @schmetterfliege Dann musst halt step für Step schauen - Du musst das ganze ja machen bevor du die table Node speist.

                    Also das Array auftrennen und in jedes Objekt die Differenz eintragen. Geh halt Schritt für Schritt vor. Die Tabelle interessiert doch erst mal nicht. Es interessiert nur das Array, das Du in die Tabelle speist.

                    Sprich wird der richtige Wert aus dem Kontext geholt und dann die Differenz richtig berechnet. Musst halt Step für Step machen.

                    Genau das ist mein Problem - ich weiß ja nicht was sich die ChangeNode aus dem Kontext holt^^
                    dc6a758a-e810-4aa4-a426-c72806252fee-image.png
                    "topic" entspricht hier jeweils diesen Strings:
                    b507aa7c-771b-4df9-9858-8689e322816c-image.png
                    Da übergibt auch jedes Objekt der Change Node den richtigen Wert.
                    Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                    mickymM 1 Reply Last reply
                    0
                    • S Schmetterfliege

                      @mickym said in Zigbee2mqtt installation:

                      @schmetterfliege Dann musst halt step für Step schauen - Du musst das ganze ja machen bevor du die table Node speist.

                      Also das Array auftrennen und in jedes Objekt die Differenz eintragen. Geh halt Schritt für Schritt vor. Die Tabelle interessiert doch erst mal nicht. Es interessiert nur das Array, das Du in die Tabelle speist.

                      Sprich wird der richtige Wert aus dem Kontext geholt und dann die Differenz richtig berechnet. Musst halt Step für Step machen.

                      Genau das ist mein Problem - ich weiß ja nicht was sich die ChangeNode aus dem Kontext holt^^
                      dc6a758a-e810-4aa4-a426-c72806252fee-image.png
                      "topic" entspricht hier jeweils diesen Strings:
                      b507aa7c-771b-4df9-9858-8689e322816c-image.png
                      Da übergibt auch jedes Objekt der Change Node den richtigen Wert.
                      Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by mickym
                      #271

                      @schmetterfliege sagte in Zigbee2mqtt installation:

                      Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                      Klar das ist es, mach einfach mal das .timestamp hinter der Klammer raus.

                      Genau das ist mein Problem - ich weiß ja nicht was sich die ChangeNode aus dem Kontext holt^^

                      Warum weisst Du das nicht. :grin: ;) - Du sollst ja den Flow selbst verstehen. ;)

                      Es gibt den Wert aus, den topic ausgibt. Wahrscheinlich musst Du noch ein x für das Eingabeformat für den Moment eingeben.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      S mickymM 2 Replies Last reply
                      0
                      • mickymM mickym

                        @schmetterfliege sagte in Zigbee2mqtt installation:

                        Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                        Klar das ist es, mach einfach mal das .timestamp hinter der Klammer raus.

                        Genau das ist mein Problem - ich weiß ja nicht was sich die ChangeNode aus dem Kontext holt^^

                        Warum weisst Du das nicht. :grin: ;) - Du sollst ja den Flow selbst verstehen. ;)

                        Es gibt den Wert aus, den topic ausgibt. Wahrscheinlich musst Du noch ein x für das Eingabeformat für den Moment eingeben.

                        S Offline
                        S Offline
                        Schmetterfliege
                        wrote on last edited by
                        #272

                        @mickym said in Zigbee2mqtt installation:

                        @schmetterfliege sagte in Zigbee2mqtt installation:

                        Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                        Klar das ist es, mach einfach mal das .timestamp hinter der Klammer raus.

                        Warum weisst Du das nicht. :grin: ;)

                        Es gibt den Wert aus, den topic ausgibt.

                        Das ist mir an sich schon klar, mich macht nur fertig dass überall wo es noch keinen Timestamp gibt trotzdem "vor ein paar Sekunden" drin steht :grinning:
                        Das dürfte doch eigentlich gar nicht, ich meine so wie ich es hatte (also dass noch .timestamp drin stand) hätte das Teil ja mit nem String gerechnet. Da würde ich eine Fehlermeldung erwarten, und nicht dass er dann einfach sagt "joa, dann mach ich da halt jetzt draus" ^^

                        Geht jetzt jedenfalls und er ersetzt langsam die Werte für Sensoren die Updates liefern.
                        dc6e6d8d-b84e-44ca-a531-0e4c4044ebc7-image.png

                        1 Reply Last reply
                        0
                        • mickymM mickym

                          @schmetterfliege sagte in Zigbee2mqtt installation:

                          Ist das Problem dass die Timestamps jeweils direkt unter dem Namen gespeichert sind, und es kein "timestamp" unter jedem Objekt gibt?

                          Klar das ist es, mach einfach mal das .timestamp hinter der Klammer raus.

                          Genau das ist mein Problem - ich weiß ja nicht was sich die ChangeNode aus dem Kontext holt^^

                          Warum weisst Du das nicht. :grin: ;) - Du sollst ja den Flow selbst verstehen. ;)

                          Es gibt den Wert aus, den topic ausgibt. Wahrscheinlich musst Du noch ein x für das Eingabeformat für den Moment eingeben.

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          wrote on last edited by
                          #273

                          @mickym Nochmal ich glaube der Moment wird nicht richtig gesetzt.Mach mal hinter der topic Klammer noch ein Komma und ein 'x' als Eingabeformat.

                          Falls Du das nicht verstehst - dann poste es einfach nochmal was jetzt drin steht in CodeTags - habe keine Lust Screenshots abzuschreiben.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          S 1 Reply Last reply
                          0
                          • mickymM mickym

                            @mickym Nochmal ich glaube der Moment wird nicht richtig gesetzt.Mach mal hinter der topic Klammer noch ein Komma und ein 'x' als Eingabeformat.

                            Falls Du das nicht verstehst - dann poste es einfach nochmal was jetzt drin steht in CodeTags - habe keine Lust Screenshots abzuschreiben.

                            S Offline
                            S Offline
                            Schmetterfliege
                            wrote on last edited by Schmetterfliege
                            #274

                            @mickym said in Zigbee2mqtt installation:

                            @mickym Nochmal ich glaube der Moment wird nicht richtig gesetzt.Mach mal hinter der topic Klammer noch ein Komma und ein 'x' als Eingabeformat.

                            Falls Du das nicht verstehst - dann poste es einfach nochmal was jetzt drin steht in CodeTags - habe keine Lust Screenshots abzuschreiben.

                            Was meinst du denn mit "der Moment"? :grin:
                            EDIT: vergiss die Frage... glaube ich^^

                            $moment($lookup($flowContext("timestamps"), topic)).locale("de").fromNow()
                            
                            mickymM 1 Reply Last reply
                            0
                            • S Schmetterfliege

                              @mickym said in Zigbee2mqtt installation:

                              @mickym Nochmal ich glaube der Moment wird nicht richtig gesetzt.Mach mal hinter der topic Klammer noch ein Komma und ein 'x' als Eingabeformat.

                              Falls Du das nicht verstehst - dann poste es einfach nochmal was jetzt drin steht in CodeTags - habe keine Lust Screenshots abzuschreiben.

                              Was meinst du denn mit "der Moment"? :grin:
                              EDIT: vergiss die Frage... glaube ich^^

                              $moment($lookup($flowContext("timestamps"), topic)).locale("de").fromNow()
                              
                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              wrote on last edited by mickym
                              #275

                              @schmetterfliege sagte in Zigbee2mqtt installation:

                              $moment($lookup($flowContext("timestamps"), topic)).locale("de").fromNow()

                              Na Du erstellst doch Momente mit $moment().

                              Das ist eine mächtige Bibliothek. Ich dachte das hättest Du Dir mal angeschaut.

                              Also erstes geht man halt so vor, dass man erst mal schaut ob die timestamps richtig rauskommen, bevor du mit trial&error rumfuhrwerkst.

                              $lookup($flowContext("timestamps"), topic)
                              

                              Das heißt, wenn die timestamps nun korrekt rauskommen, dann ändere ich das Eingabeformat.

                              $moment($lookup($flowContext("timestamps"), topic),'x').locale("de").fromNow()
                              

                              Mit dem kleinen x - zeige ich der Momentbibliothek, dass sie Unix timestamps in ms zum Fressen bekommt.

                              https://momentjs.com/docs/#/parsing/string/

                              5c1e227e-91ef-45f6-bb2d-2206a1bc9455-image.png

                              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                              S 1 Reply Last reply
                              0
                              • mickymM mickym

                                @schmetterfliege sagte in Zigbee2mqtt installation:

                                $moment($lookup($flowContext("timestamps"), topic)).locale("de").fromNow()

                                Na Du erstellst doch Momente mit $moment().

                                Das ist eine mächtige Bibliothek. Ich dachte das hättest Du Dir mal angeschaut.

                                Also erstes geht man halt so vor, dass man erst mal schaut ob die timestamps richtig rauskommen, bevor du mit trial&error rumfuhrwerkst.

                                $lookup($flowContext("timestamps"), topic)
                                

                                Das heißt, wenn die timestamps nun korrekt rauskommen, dann ändere ich das Eingabeformat.

                                $moment($lookup($flowContext("timestamps"), topic),'x').locale("de").fromNow()
                                

                                Mit dem kleinen x - zeige ich der Momentbibliothek, dass sie Unix timestamps in ms zum Fressen bekommt.

                                https://momentjs.com/docs/#/parsing/string/

                                5c1e227e-91ef-45f6-bb2d-2206a1bc9455-image.png

                                S Offline
                                S Offline
                                Schmetterfliege
                                wrote on last edited by Schmetterfliege
                                #276

                                @mickym

                                Na dass die richtigen Werte (zumindest jetzt nachdem .timestamps raus ist) kommen weiß ich ja, da er die Tabelle nach und nach mit den echten Zeitdifferenzen füllt.

                                Wenn ich nun eine Topic übergebe, die es nicht gibt, bekomme ich "undefined" raus.
                                5a04b227-658e-40ec-aedd-14f4d241fbc9-image.png
                                "Test" gibt es im Flow nicht, "Büro/Besta" schon.
                                Daher würde ich erwarten dass in der eigentlichen Change Node dann auch "undefined" raus kommt und in der Tabelle entsprechend undefined drin steht - statt "vor ein paar Sekunden"?
                                EDIT: also für die Sensoren die im Flow noch keinen Timestamp hatten, und daher unter "timestamps" eben auch noch nicht existieren.

                                mickymM 1 Reply Last reply
                                0
                                • S Schmetterfliege

                                  @mickym

                                  Na dass die richtigen Werte (zumindest jetzt nachdem .timestamps raus ist) kommen weiß ich ja, da er die Tabelle nach und nach mit den echten Zeitdifferenzen füllt.

                                  Wenn ich nun eine Topic übergebe, die es nicht gibt, bekomme ich "undefined" raus.
                                  5a04b227-658e-40ec-aedd-14f4d241fbc9-image.png
                                  "Test" gibt es im Flow nicht, "Büro/Besta" schon.
                                  Daher würde ich erwarten dass in der eigentlichen Change Node dann auch "undefined" raus kommt und in der Tabelle entsprechend undefined drin steht - statt "vor ein paar Sekunden"?
                                  EDIT: also für die Sensoren die im Flow noch keinen Timestamp hatten, und daher unter "timestamps" eben auch noch nicht existieren.

                                  mickymM Online
                                  mickymM Online
                                  mickym
                                  Most Active
                                  wrote on last edited by
                                  #277

                                  @schmetterfliege sagte in Zigbee2mqtt installation:

                                  Daher würde ich erwarten dass in der eigentlichen Change Node dann auch "undefined" raus kommt und in der Tabelle entsprechend undefined drin steht - statt "vor ein paar Sekunden"?

                                  Nein dann ignoriert die moments Bibliothek den gesamten Inhalt.

                                  und $moments() gibt immer den aktuellen Zeitpunkt aus.

                                  Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                  S 1 Reply Last reply
                                  0
                                  • mickymM mickym

                                    @schmetterfliege sagte in Zigbee2mqtt installation:

                                    Daher würde ich erwarten dass in der eigentlichen Change Node dann auch "undefined" raus kommt und in der Tabelle entsprechend undefined drin steht - statt "vor ein paar Sekunden"?

                                    Nein dann ignoriert die moments Bibliothek den gesamten Inhalt.

                                    und $moments() gibt immer den aktuellen Zeitpunkt aus.

                                    S Offline
                                    S Offline
                                    Schmetterfliege
                                    wrote on last edited by
                                    #278

                                    @mickym

                                    aaaaaah okay, dann macht das natürlich Sinn!

                                    mickymM 1 Reply Last reply
                                    0
                                    • S Schmetterfliege

                                      @mickym

                                      aaaaaah okay, dann macht das natürlich Sinn!

                                      mickymM Online
                                      mickymM Online
                                      mickym
                                      Most Active
                                      wrote on last edited by mickym
                                      #279

                                      @schmetterfliege Aber Du kannst ja im vorfeld nach dem split 2 Wege einschlagen, bevor Du das wieder zusammensetzt. Du nutzt doch eine split und eine JOIN Node?

                                      Wie setzt Du denn die Eigenschaft im Objekt - wie lange es her ist?

                                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                      S 2 Replies Last reply
                                      0
                                      • mickymM mickym

                                        @schmetterfliege Aber Du kannst ja im vorfeld nach dem split 2 Wege einschlagen, bevor Du das wieder zusammensetzt. Du nutzt doch eine split und eine JOIN Node?

                                        Wie setzt Du denn die Eigenschaft im Objekt - wie lange es her ist?

                                        S Offline
                                        S Offline
                                        Schmetterfliege
                                        wrote on last edited by
                                        #280

                                        @mickym said in Zigbee2mqtt installation:

                                        @schmetterfliege Aber Du kannst ja im vorfeld nach dem split 2 Wege einschlagen, bevor Du das wieder zusammensetzt. Du nutzt doch eine split und eine JOIN Node?

                                        Du meinst dass ich nach dem Split schaue ob der Wert existiert und dann entsprechend berechne oder eben nicht berechne?
                                        Naja, das würde in jedem Fall den Flow verkomplizieren, da lebe ich lieber damit dass ich kurz falsche Sachen drin stehen habe wenn aus irgendeinem Grund die Flowvariablen weg sind :grinning:

                                        mickymM 1 Reply Last reply
                                        0
                                        • S Schmetterfliege

                                          @mickym said in Zigbee2mqtt installation:

                                          @schmetterfliege Aber Du kannst ja im vorfeld nach dem split 2 Wege einschlagen, bevor Du das wieder zusammensetzt. Du nutzt doch eine split und eine JOIN Node?

                                          Du meinst dass ich nach dem Split schaue ob der Wert existiert und dann entsprechend berechne oder eben nicht berechne?
                                          Naja, das würde in jedem Fall den Flow verkomplizieren, da lebe ich lieber damit dass ich kurz falsche Sachen drin stehen habe wenn aus irgendeinem Grund die Flowvariablen weg sind :grinning:

                                          mickymM Online
                                          mickymM Online
                                          mickym
                                          Most Active
                                          wrote on last edited by
                                          #281

                                          @schmetterfliege Na schlimm ist das nicht - zeig mal den Ausschnitt des Flows und exportiere das mal.

                                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          634

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe