Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Zigbee2mqtt installation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zigbee2mqtt installation

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Schmetterfliege last edited by mickym

      @schmetterfliege Na ja ich hatte Dir aber auch gesagt, dass ich das auslesen nicht brauche, weil ich die Initialisierung am Anfang verzichte. Mir langt es wenn ich sehe, wie sich die werte füllen. Das wolltest Du aber nicht.

      Fehlt da nicht ein Punkt hinter Multisensor?

      S 1 Reply Last reply Reply Quote 0
      • S
        Schmetterfliege @mickym last edited by Schmetterfliege

        @mickym said in Zigbee2mqtt installation:

        @schmetterfliege Na ja ich hatte Dir aber auch gesagt, dass ich das auslesen nicht brauche, weil ich die Initialisierung am Anfang verzichte. Mir langt es wenn ich sehe, wie sich die werte füllen. Das wolltest Du aber nicht.

        Fehlt da nicht ein Punkt hinter Multisensor?

        Wie gesagt, das initialisieren habe ich ja auch nicht mehr drin. Eben mit der Konsequenz dass die Werte erst mal alle weg sind wenn ich den Flowkontext mal lösche. Dass die Werte gefehlt haben, war ja aber auch gar nicht mein Problem, sondern die beiden erwähnten Themen 😁

        Selbst wenn ich den Punkt da hin mache, hatte ich keinerlei Output. Aber is ja auch egal, weil ich eh nicht mehr initialisiere 🙂
        Und: dort fehlt der Punkt auch und Updates der Sensoren kommen trotzdem rein^^
        f8499ab9-4e7e-4503-ae21-489f59211b9c-image.png

        1 Reply Last reply Reply Quote 0
        • S
          Schmetterfliege last edited by

          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}}
          

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
            • S
              Schmetterfliege @mickym last edited by 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

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Schmetterfliege last edited by 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. 😁

                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 1 Reply Last reply Reply Quote 0
                • S
                  Schmetterfliege @mickym last edited by

                  @mickym
                  Das ist in der Tat deutlich eleganter! Danke

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
                    • S
                      Schmetterfliege last edited by

                      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

                      mickym 1 Reply Last reply Reply Quote 0
                      • S
                        Schmetterfliege @mickym last edited by

                        @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 😁

                        1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Schmetterfliege last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • S
                            Schmetterfliege @mickym last edited by

                            @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?

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Schmetterfliege last edited by 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. 😁 😉 - 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 mickym 2 Replies Last reply Reply Quote 0
                              • S
                                Schmetterfliege @mickym last edited by

                                @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. 😁 😉

                                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 😀
                                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 Reply Quote 0
                                • mickym
                                  mickym Most Active @mickym last edited by

                                  @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 1 Reply Last reply Reply Quote 0
                                  • S
                                    Schmetterfliege @mickym last edited by 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"? 😁
                                    EDIT: vergiss die Frage... glaube ich^^

                                    $moment($lookup($flowContext("timestamps"), topic)).locale("de").fromNow()
                                    
                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Schmetterfliege last edited by 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 1 Reply Last reply Reply Quote 0
                                      • S
                                        Schmetterfliege @mickym last edited by 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.

                                        mickym 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Schmetterfliege last edited by

                                          @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 1 Reply Last reply Reply Quote 0
                                          • S
                                            Schmetterfliege @mickym last edited by

                                            @mickym

                                            aaaaaah okay, dann macht das natürlich Sinn!

                                            mickym 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            915
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            284
                                            29113
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo