Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

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

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

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

Zigbee2mqtt installation

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
284 Beiträge 6 Kommentatoren 47.4k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    @schmetterfliege sagte in Zigbee2mqtt installation:

    ah okay
    Würde das kaputt gehen wenn ich in JSONATA trotzdem msg. dran hänge? Würde es DAUs wie mir einfacher machen es einfach überall zu machen^^.

    Nein - dann bekommst Du Warnmeldungen - mach es einfach nicht. ;)

    Na diese ChangeNode - dass nur bei Bedarf die Zeitspanne mithilfe der Change Node gemacht haben - ist definitiv erst in diesem Jahr gewesen. Das dumme ist, dass der Thread inzwischen so lange ist. da ist das ganze zigbee2mqtt mit drin.

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #257

    @mickym Und wenn das halt anders ist und du die zigbee2mqtt später hast, dann hast Du doch mit zigbee2mqtt alles in dem JSON drin. da ist doch der timestamp mit enthalten.

    Vielleicht findest ja noch die Stelle, wo wir das mit den Zeitstempeln diskutiert haben. Ansonsten ist es vielleicht wirklich sinnvoller kleinere Threads zu 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 Antwort Letzte Antwort
    0
    • mickymM mickym

      @mickym Und wenn das halt anders ist und du die zigbee2mqtt später hast, dann hast Du doch mit zigbee2mqtt alles in dem JSON drin. da ist doch der timestamp mit enthalten.

      Vielleicht findest ja noch die Stelle, wo wir das mit den Zeitstempeln diskutiert haben. Ansonsten ist es vielleicht wirklich sinnvoller kleinere Threads zu machen.

      S Offline
      S Offline
      Schmetterfliege
      schrieb am zuletzt editiert von Schmetterfliege
      #258

      @mickym said in Zigbee2mqtt installation:

      @mickym Und wenn das halt anders ist und du die zigbee2mqtt später hast, dann hast Du doch mit zigbee2mqtt alles in dem JSON drin. da ist doch der timestamp mit enthalten.

      Das ist schon richtig, nur lese ich ja nirgends das gesamte zigbee2mqtt Objekt aus, sondern die einzelnen Sensoren.
      Und da bekomme ich dann auch nur die Werte von denen.
      Das initialisieren hatte ich damals so gemacht:
      6f66e024-fe61-4334-b79a-31428ed90269-image.png
      Nur eben für zigbee.*.
      Damit hatte ich vorhin versucht das Initialiseren in der Tabelle wieder einzubauen, was aber nicht funktioniert hatte.
      Zumindest bekomme ich in der Debug Node keinerlei Output wenn ich das triggere.
      Deshalb: Keine Ahnung wieso da dann plötzlich wieder alle Sensoren im Flow gespeichert sind, obwohl die meisten bisher noch kein Update geliefert haben seit ich vor mittlerweile fast einer Stunde NR neu gestartet habe.
      Aber, das ist auch aktuell gar nicht mein Problem :)

      Aktuell folgende 2 Themen:

      1. LastUpdate wird nicht richtig berechnet.
      2. Meine Tabelle ist weiß Gott warum leer und ich komme da ums verrecken nicht dahinter was das Problem ist.
        Es wird alles richtig übergeben, und die Änderung die das kaputt gemacht hat wieder rückgängig gemacht wurden.
        Aber bevor ich das in Angriff nehme, würde ich halt gerne die Change Node die das LastUpdate berechnet dazu bringen richtig zu funktionieren - hat mit der Tabelle ja jetzt eh erst mal nichts zu tun
      mickymM 1 Antwort Letzte Antwort
      0
      • S Schmetterfliege

        @mickym said in Zigbee2mqtt installation:

        @mickym Und wenn das halt anders ist und du die zigbee2mqtt später hast, dann hast Du doch mit zigbee2mqtt alles in dem JSON drin. da ist doch der timestamp mit enthalten.

        Das ist schon richtig, nur lese ich ja nirgends das gesamte zigbee2mqtt Objekt aus, sondern die einzelnen Sensoren.
        Und da bekomme ich dann auch nur die Werte von denen.
        Das initialisieren hatte ich damals so gemacht:
        6f66e024-fe61-4334-b79a-31428ed90269-image.png
        Nur eben für zigbee.*.
        Damit hatte ich vorhin versucht das Initialiseren in der Tabelle wieder einzubauen, was aber nicht funktioniert hatte.
        Zumindest bekomme ich in der Debug Node keinerlei Output wenn ich das triggere.
        Deshalb: Keine Ahnung wieso da dann plötzlich wieder alle Sensoren im Flow gespeichert sind, obwohl die meisten bisher noch kein Update geliefert haben seit ich vor mittlerweile fast einer Stunde NR neu gestartet habe.
        Aber, das ist auch aktuell gar nicht mein Problem :)

        Aktuell folgende 2 Themen:

        1. LastUpdate wird nicht richtig berechnet.
        2. Meine Tabelle ist weiß Gott warum leer und ich komme da ums verrecken nicht dahinter was das Problem ist.
          Es wird alles richtig übergeben, und die Änderung die das kaputt gemacht hat wieder rückgängig gemacht wurden.
          Aber bevor ich das in Angriff nehme, würde ich halt gerne die Change Node die das LastUpdate berechnet dazu bringen richtig zu funktionieren - hat mit der Tabelle ja jetzt eh erst mal nichts zu tun
        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #259

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

        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 Antwort Letzte Antwort
        0
        • mickymM 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 Offline
          S Offline
          Schmetterfliege
          schrieb am zuletzt editiert von Schmetterfliege
          #260

          @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 :grin:

          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 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Schmetterfliege
            schrieb am zuletzt editiert von
            #261

            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 1 Antwort Letzte Antwort
            0
            • 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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #265

                    @mickym
                    Das ist in der Tat deutlich eleganter! Danke

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • S Schmetterfliege

                      @mickym
                      Das ist in der Tat deutlich eleganter! Danke

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Schmetterfliege
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                      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
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          574

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe