Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Bambu lab 3d Drucker MQTT Integration

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Bambu lab 3d Drucker MQTT Integration

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

      @darkdevil Was hast Du denn gemacht ? - Hast Du meinen Flow importiert? Ich war eigentlich noch gar nicht fertig.

      Leider weiss ich nicht was Du gemacht hast. Wie gesagt Du kannst meine Node importieren, die schreibt Dir das dann in Datenpunkte,

      https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

      D 1 Reply Last reply Reply Quote 0
      • D
        DarkDevil @mickym last edited by

        @mickym Ups, das las sich schon so final 🙂

        ich habe einen neuen Flow angelegt (Verbindung kann nicht hergestellt werden, da Drucker z. Zt. aus ist):

        Screenshot 2023-01-08 213925.jpg

        und den IN Node aus dem ersten Flow gelöscht:

        Screenshot 2023-01-08 213943.jpg

        Nach dem starten tauchten unter dem MQTT.0 (vorhandene Instanz) folgende Datenpunkte:

        Screenshot 2023-01-08 214050.jpg

        Nur halt einmal und wurden nicht aktualisiert.

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

          @darkdevil Na dann hat das mit dem mqtt Adapter doch geklappt. 😉 - Das hat mit NodeRed nichts zu tun. Dann brauchst Du ggf. Node Red gar nicht. Was meinst Du erst wird nicht aktualisiert.

          Ich blicke langsam nicht mehr durch - war das der mqtt Adapter, den Du heute nachmittag konfiguriert hattest?

          Wie machen wir nun weiter mit dem mqtt-Adapter oder mit NodeRed?

          Ich würde von dem mqtt- Adapter so erst mal abraten - da kommt dieser HomeAssistant Mist noch mit.

          Bei Node-Red hättest Du die mqtt-IN Node nur kopieren sollen. Jedenfalls musst Du die nochmal konfigurieren und den Broker eintragen. Schau dass dort die Daten wieder in der Debug Node ankommen.

          D 1 Reply Last reply Reply Quote 0
          • D
            DarkDevil @mickym last edited by

            @mickym also die Werte wurden erst in der alten MQTT Instanz angelegt, als ich im NoteRed den neuen Flow gestartet habe und diesen ausgeführt habe. Also die neue MQTT Instanz, in der ich die IP Adresse eingetragen habe, hat damit nichts zu tun.

            Daher denke ich, dass Node Red (vorerst) doch wichtig ist. In dem NodeRed JSON Template habe ich ja neben der IP Adresse auch die Seriennummer angeben müssen, vielleicht läuft hier rüber auch eine Authentifizierung.

            Der Debug Note liefert mir auch kontinuierlich Daten.

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

              @darkdevil ok - ich denke, dass dir die homeassistant mqtt Node ggf. In dein lokalen mqtt Broker geschrieben hat. Wenn du kontrolliert hast, dass in deinem neuen Flow die mqtt-in Node kontinuierlich Daten liefert, dann importierst du meine Node bzw. Den Subflow aus dem thread den ich dir verlinkt habe. Diese Node klemmst du dann hinter deine mqtt-in Node und vor die debug-node - also dazwischen. In der neuen Node vergibst Du einen Namen unter dem die Datenpunkte angelegt werden sollen. Die Datenpunkte werden immer unter 0_userdata.0 angelegt. Vorgelegt ist das mit objRoot. Da kannst dann einen anderen Namen am besten ohne Leerzeichen verwenden. Wenn das fertig ist, dann solltest du lauter Einzelnacheichten in dem debug Fenster bekommen. Das topic der Einzelnachrichten enthält dann den Pfad in dem später die einzelnen Datenpunkte geschrieben werden. Ich hab das auch alles in den Hilfetext der Node geschrieben.

              Den Baum unter mqtt.0 würde ich aber löschen, da der erst mal keine Bedeutung hat.

              D 1 Reply Last reply Reply Quote 0
              • D
                DarkDevil @mickym last edited by

                @mickym ich habe das Script jetzt hinzugefügt:

                Screenshot 2023-01-09 100456.png

                und der Debug spuckt folgendes aus:

                Screenshot 2023-01-09 100441.png

                Aber unter 0_userdata.0.objRoot.XXXXXX tauchen keine Datenpunkte auf.

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

                  @darkdevil Nein dass kann es noch nicht. Wie gesagt öffne die Node und gib statt objRoot einen Namen an, unter dem Deine Datenpunkte erscheinen sollen und schau ob im Debugfenster einzelne Nachrichten mit dem Pfad auftauchen, wie du es wünschst.

                  Schaut ja schon gut aus. Nur willst du das wirklich unter 0-userdata.0.objRoot oder besser unter eine m sprechenden Nsmen?

                  Die Debug Node dient nur zur Kontrolle und die neue Node zerlegt nur den kompletten JSON in seine Einzelteile. Angelegt werden die Datenpunkte in dem Du hinter die eingefügte Node eine iobroker-out Node klemmst. Die musst du aufmachen und dort konfigurieren, dass die Werte als „value“ und nicht als „command“ angelegt werden, dass nicht existierende Datenpunkte erstellt werden und falls die beschreibbar sein sollen, musst du das in der Node auch noch anhaken.

                  Die Adaptereinstellung, die ich gepostet hatte, dass das Erstellen von Fremdobjekten erlaubt ist, hast Du hoffentlich vorgenommen.

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    DarkDevil @mickym last edited by

                    @mickym jetzt kommen die Daten an. Perfekt 🙂

                    Großes Dankeschön an deine Hilfe und Unterstützung.

                    1 Reply Last reply Reply Quote 0
                    • D
                      djalexz last edited by

                      Moin zusammen, ich habe mich mal daran versucht die Daten aus Node-Red "aufzubereiten".
                      Dank @DarkDevil kamen die Daten ja schön im ioBroker an.
                      Allerdings scheitere ich gnadenlos daran.
                      Da ich das Rad nicht neu erfinden wollte, nutzte ich die Vorarbeit von Cryd (oberer Youtube Link).
                      Das ist aber alles für Homeassistant wo ich mich null mit auskenne.

                      Habe so weit alles umgebaut und es kommen auch Daten in umgeandelter Form z.B. Fan Speed Translator an.

                      Jetzt hat allerdings Homeassistant wohl eine Möglichkeit Attribute auszulesen.
                      Damit kann ich ja im ioBroker nichts anfangen.

                      Wollte beispielsweise die Nozzle Target Temperature als State haben.
                      Bekomme es aber leider nicht hin.

                      Könnte mir jemand helfen ?

                      Vielen dank

                      PS.
                      Ein Adapter für den X1C wäre schön 🙂

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

                        @djalexz einfach ein Debug Fenster nehmen und die payload auf den Pfad setzen, den Du isolieren willst oder Du nimmst meinen Subflow, um alles in einzelne Datenpunkte zu schreiben. https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen

                        D 1 Reply Last reply Reply Quote 0
                        • D
                          djalexz @mickym last edited by djalexz

                          @mickym Vielen Dank für die Hilfe.
                          Ich hatte das mit der Debug Node schon 10 mal probiert.
                          Da kam nur undefined raus.
                          Hab dann nochmal alles gelöscht und neu angefangen. Jetzt gehts.
                          Hier schon mal der Anfang meiner Bemühungen.
                          Mit Sicherheit nicht wirklich performant und sehr delletantisch, aber funktioniert.

                          7d7d56dd-ef1b-486b-a1c8-4b382ca30baf-image.png

                          [
                              {
                                  "id": "6e802f1553b18149",
                                  "type": "subflow",
                                  "name": "JSON or Obj to IOBroker",
                                  "info": "# Creates an IOBroker tree\n\nThis node creates an IOBroker tree out of an Java-Object or JSON String.\n\nThe object tree will be created under 0_userdata.0\nIn addition to the JSON-String or Java Object as `msg.payload` it is necessary to specify a `msg.top` properity in addition to the msg-Object.\n\nThe object tree will be created under 0_userdata.0\n\nExisting `msg.topic` entries will be deleted.\nAn iobroker-out node has to be appended to this subflow node. It is not part of the subflow itself. No topic should be specified in the iobroker out node.\n\nIs `msg.top` property isn't defined, the `top` property of the subflow-node is used. \n\nIn the properties of the subflow node a new property `keepTopic` has been added. Default is _false_ to keep the current behaviour. If set to _true_ then the originial topic will be placed between the `top` property of the subflow node and the property of the analyzed JSON object.\n\n**Attention:**\nIf msg.top and top is empty, all msg.topics (msg.topic) will be directly prefixed with 0_userdata.0. . \n\n**Update 13.09.2022:**\nSpaces in topics of objects are no longer replaced with underscores in objects. No differences between all data types.\n\n# Erstellt einen Objektbaum im ioBroker\n\nDiese Node erstellt einen Objektbaum im ioBroker aus einem JAVA Objekt bzw. einem JSON String. \n\nDer Baum wird in jedem Fall unter 0_userdata.0 erstellt und zwar unter dem Topic der in` msg.top` mitgegeben wurde. In der `msg.payload` befindet sich dann der JSON String oder das entsprechende Objekt.\n\nExistierende `msg.topic `Einträge werden gelöscht.\nEin entsprechende iobroker-out Node muss an den Flow angehängt werden. Sie ist nicht Bestandteil des Subflows. In dieser iobroker-out Node darf kein Topic angegeben werden. \n\nFalls msg.top nicht definiert wurde, wird der `top`-Wert der Subflow-Node verwendet.\n\nIn den Eigenschaften der Subflow-Node wurde ein neuer Parameter `keepTopic` hinzugefügt. Standardwert ist _false_, um das bisherige Verhalten beizubehalten. Setzt man die Eigenschaft auf _true_, dann wird das originale Topic zwischen der `top` Eigenschaft der Subflow-Node und Eigenschaft des analysierten JSON Objektes eingefügt.\n\n**Achtung:**\nWenn top und msg.top leer ist, werden alle msg.topics (msg.topic) direkt unter dem Präfix 0_userdata.0., angelegt bzw. ausgegeben. \n\n**Update 13.09.2022:**\nLeerzeichen werden in Topics von Objekten nicht mehr durch Unterstriche ersetzt. Es gibt keine Unterschiede mehr zwischen den Datentypen.",
                                  "category": "",
                                  "in": [
                                      {
                                          "x": 60,
                                          "y": 160,
                                          "wires": [
                                              {
                                                  "id": "554b8c663bcb46c2"
                                              }
                                          ]
                                      }
                                  ],
                                  "out": [
                                      {
                                          "x": 2620,
                                          "y": 280,
                                          "wires": [
                                              {
                                                  "id": "0962842ebd23e0d7",
                                                  "port": 0
                                              }
                                          ]
                                      }
                                  ],
                                  "env": [
                                      {
                                          "name": "top",
                                          "type": "str",
                                          "value": "objRoot"
                                      },
                                      {
                                          "name": "keepTopic",
                                          "type": "bool",
                                          "value": "false"
                                      }
                                  ],
                                  "meta": {},
                                  "color": "#E2D96E",
                                  "icon": "node-red/batch.svg"
                              },
                              {
                                  "id": "3e11e8338f694832",
                                  "type": "split",
                                  "z": "6e802f1553b18149",
                                  "name": "split object",
                                  "splt": "\\n",
                                  "spltType": "str",
                                  "arraySplt": 1,
                                  "arraySpltType": "len",
                                  "stream": false,
                                  "addname": "key",
                                  "x": 1370,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "0562a4249c8b856b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "0562a4249c8b856b",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "add key to topic",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "stateName",
                                          "pt": "msg",
                                          "to": "key",
                                          "tot": "msg"
                                      },
                                      {
                                          "t": "set",
                                          "p": "topic",
                                          "pt": "msg",
                                          "to": "topic  & '.' & key",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 1560,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "ddc90985bef0fafa"
                                      ]
                                  ]
                              },
                              {
                                  "id": "ddc90985bef0fafa",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "is type?",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "istype",
                                          "v": "array",
                                          "vt": "array"
                                      },
                                      {
                                          "t": "istype",
                                          "v": "object",
                                          "vt": "object"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 3,
                                  "x": 1740,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "bfce19b206660fbe"
                                      ],
                                      [
                                          "3e11e8338f694832"
                                      ],
                                      [
                                          "1a8c03d866b85b12"
                                      ]
                                  ]
                              },
                              {
                                  "id": "bfce19b206660fbe",
                                  "type": "split",
                                  "z": "6e802f1553b18149",
                                  "name": "split array",
                                  "splt": "\\n",
                                  "spltType": "str",
                                  "arraySplt": 1,
                                  "arraySpltType": "len",
                                  "stream": false,
                                  "addname": "",
                                  "x": 780,
                                  "y": 280,
                                  "wires": [
                                      [
                                          "e89927810c6d75ec"
                                      ]
                                  ]
                              },
                              {
                                  "id": "e89927810c6d75ec",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "add index to topic",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "topic",
                                          "pt": "msg",
                                          "to": "topic  & '.' & parts.index",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 970,
                                  "y": 280,
                                  "wires": [
                                      [
                                          "a4d1a5d04564dc77"
                                      ]
                                  ]
                              },
                              {
                                  "id": "f5d52c6a57d08904",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "finalize msg.topic",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "top",
                                          "pt": "msg",
                                          "to": "'0_userdata.0.' & top",
                                          "tot": "jsonata"
                                      },
                                      {
                                          "t": "set",
                                          "p": "topic",
                                          "pt": "msg",
                                          "to": "top & '.' & topic",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 2170,
                                  "y": 240,
                                  "wires": [
                                      [
                                          "0962842ebd23e0d7"
                                      ]
                                  ]
                              },
                              {
                                  "id": "1a8c03d866b85b12",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "is msg.top != null",
                                  "property": "top",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "nnull"
                                      },
                                      {
                                          "t": "null"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 2,
                                  "x": 1950,
                                  "y": 280,
                                  "wires": [
                                      [
                                          "f5d52c6a57d08904"
                                      ],
                                      [
                                          "74c895ce724750de"
                                      ]
                                  ]
                              },
                              {
                                  "id": "e023fe88445ce43e",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "",
                                  "rules": [
                                      {
                                          "t": "delete",
                                          "p": "topic",
                                          "pt": "msg"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 350,
                                  "y": 200,
                                  "wires": [
                                      [
                                          "3649300b4c233b10"
                                      ]
                                  ]
                              },
                              {
                                  "id": "3649300b4c233b10",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "is type?",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "istype",
                                          "v": "json",
                                          "vt": "json"
                                      },
                                      {
                                          "t": "istype",
                                          "v": "array",
                                          "vt": "array"
                                      },
                                      {
                                          "t": "istype",
                                          "v": "object",
                                          "vt": "object"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 4,
                                  "x": 600,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "fc7913a8524badb7"
                                      ],
                                      [
                                          "bfce19b206660fbe"
                                      ],
                                      [
                                          "3e11e8338f694832"
                                      ],
                                      [
                                          "9ac3cc3681e8b6c6"
                                      ]
                                  ]
                              },
                              {
                                  "id": "1b8480cd2df7ba3f",
                                  "type": "comment",
                                  "z": "6e802f1553b18149",
                                  "name": "Array",
                                  "info": "",
                                  "x": 600,
                                  "y": 280,
                                  "wires": []
                              },
                              {
                                  "id": "b3541807672be040",
                                  "type": "comment",
                                  "z": "6e802f1553b18149",
                                  "name": "object",
                                  "info": "",
                                  "x": 1340,
                                  "y": 100,
                                  "wires": []
                              },
                              {
                                  "id": "a4d1a5d04564dc77",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "is type?",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "istype",
                                          "v": "object",
                                          "vt": "object"
                                      },
                                      {
                                          "t": "istype",
                                          "v": "array",
                                          "vt": "array"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 3,
                                  "x": 1160,
                                  "y": 280,
                                  "wires": [
                                      [
                                          "3e11e8338f694832"
                                      ],
                                      [
                                          "bfce19b206660fbe"
                                      ],
                                      [
                                          "a096a93bb82b7a93"
                                      ]
                                  ]
                              },
                              {
                                  "id": "74c895ce724750de",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "finalize msg.topic",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "top",
                                          "pt": "msg",
                                          "to": "top",
                                          "tot": "env"
                                      },
                                      {
                                          "t": "set",
                                          "p": "top",
                                          "pt": "msg",
                                          "to": "'0_userdata.0.' & top",
                                          "tot": "jsonata"
                                      },
                                      {
                                          "t": "set",
                                          "p": "topic",
                                          "pt": "msg",
                                          "to": "top & '.' & topic",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 2170,
                                  "y": 320,
                                  "wires": [
                                      [
                                          "0962842ebd23e0d7"
                                      ]
                                  ]
                              },
                              {
                                  "id": "554b8c663bcb46c2",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "",
                                  "property": "keepTopic",
                                  "propertyType": "env",
                                  "rules": [
                                      {
                                          "t": "true"
                                      },
                                      {
                                          "t": "false"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 2,
                                  "x": 170,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "e30ba9f0483285e4"
                                      ],
                                      [
                                          "e023fe88445ce43e"
                                      ]
                                  ]
                              },
                              {
                                  "id": "e30ba9f0483285e4",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "",
                                  "rules": [
                                      {
                                          "t": "change",
                                          "p": "topic",
                                          "pt": "msg",
                                          "from": "/",
                                          "fromt": "str",
                                          "to": ".",
                                          "tot": "str"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 350,
                                  "y": 120,
                                  "wires": [
                                      [
                                          "3649300b4c233b10"
                                      ]
                                  ]
                              },
                              {
                                  "id": "0962842ebd23e0d7",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "translate invalid chars in topic",
                                  "rules": [
                                      {
                                          "t": "change",
                                          "p": "topic",
                                          "pt": "msg",
                                          "from": "..",
                                          "fromt": "str",
                                          "to": ".",
                                          "tot": "str"
                                      },
                                      {
                                          "t": "change",
                                          "p": "topic",
                                          "pt": "msg",
                                          "from": "€",
                                          "fromt": "str",
                                          "to": "EUR",
                                          "tot": "str"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 2430,
                                  "y": 280,
                                  "wires": [
                                      []
                                  ]
                              },
                              {
                                  "id": "9ac3cc3681e8b6c6",
                                  "type": "change",
                                  "z": "6e802f1553b18149",
                                  "name": "set topic, if empty",
                                  "rules": [
                                      {
                                          "t": "set",
                                          "p": "topic",
                                          "pt": "msg",
                                          "to": "topic ? topic : $type(payload)\t",
                                          "tot": "jsonata"
                                      }
                                  ],
                                  "action": "",
                                  "property": "",
                                  "from": "",
                                  "to": "",
                                  "reg": false,
                                  "x": 950,
                                  "y": 200,
                                  "wires": [
                                      [
                                          "a096a93bb82b7a93"
                                      ]
                                  ]
                              },
                              {
                                  "id": "fc7913a8524badb7",
                                  "type": "json",
                                  "z": "6e802f1553b18149",
                                  "name": "",
                                  "property": "payload",
                                  "action": "obj",
                                  "pretty": false,
                                  "x": 750,
                                  "y": 100,
                                  "wires": [
                                      [
                                          "d9e7bdd4c48a8aa1"
                                      ]
                                  ]
                              },
                              {
                                  "id": "d9e7bdd4c48a8aa1",
                                  "type": "switch",
                                  "z": "6e802f1553b18149",
                                  "name": "is type?",
                                  "property": "payload",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "istype",
                                          "v": "array",
                                          "vt": "array"
                                      },
                                      {
                                          "t": "istype",
                                          "v": "object",
                                          "vt": "object"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 3,
                                  "x": 900,
                                  "y": 100,
                                  "wires": [
                                      [
                                          "1520be42bcc2145e"
                                      ],
                                      [
                                          "1520be42bcc2145e"
                                      ],
                                      [
                                          "9ac3cc3681e8b6c6"
                                      ]
                                  ]
                              },
                              {
                                  "id": "a096a93bb82b7a93",
                                  "type": "junction",
                                  "z": "6e802f1553b18149",
                                  "x": 1380,
                                  "y": 280,
                                  "wires": [
                                      [
                                          "1a8c03d866b85b12"
                                      ]
                                  ]
                              },
                              {
                                  "id": "1520be42bcc2145e",
                                  "type": "junction",
                                  "z": "6e802f1553b18149",
                                  "x": 480,
                                  "y": 20,
                                  "wires": [
                                      [
                                          "3649300b4c233b10"
                                      ]
                                  ]
                              },
                              {
                                  "id": "9582121ff81174a6",
                                  "type": "tab",
                                  "label": "Flow 15",
                                  "disabled": false,
                                  "info": "",
                                  "env": []
                              },
                              {
                                  "id": "e2852c3101736fc9",
                                  "type": "subflow:6e802f1553b18149",
                                  "z": "9582121ff81174a6",
                                  "name": "",
                                  "env": [
                                      {
                                          "name": "top",
                                          "value": "X1C",
                                          "type": "str"
                                      }
                                  ],
                                  "x": 210,
                                  "y": 320,
                                  "wires": [
                                      [
                                          "ce27f3362985a4d3"
                                      ]
                                  ]
                              },
                              {
                                  "id": "477ecaa1b9913815",
                                  "type": "mqtt in",
                                  "z": "9582121ff81174a6",
                                  "name": "Bambu X1C Bambu_X1C",
                                  "topic": "device/00M00A2B0805253/report",
                                  "qos": "2",
                                  "datatype": "json",
                                  "broker": "84f61d394ba2ab34",
                                  "nl": false,
                                  "rap": true,
                                  "rh": 0,
                                  "inputs": 0,
                                  "x": 190,
                                  "y": 120,
                                  "wires": [
                                      [
                                          "e2852c3101736fc9"
                                      ]
                                  ]
                              },
                              {
                                  "id": "9fadcc36a22ec38b",
                                  "type": "ioBroker out",
                                  "z": "9582121ff81174a6",
                                  "name": "",
                                  "topic": "",
                                  "ack": "true",
                                  "autoCreate": "true",
                                  "stateName": "",
                                  "role": "",
                                  "payloadType": "",
                                  "readonly": "",
                                  "stateUnit": "",
                                  "stateMin": "",
                                  "stateMax": "",
                                  "x": 1220,
                                  "y": 240,
                                  "wires": []
                              },
                              {
                                  "id": "44d9370861f0a79a",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "heatbreak_fan_speed",
                                  "func": "var percentages = {\n    \"0\": 0,\n    \"1\": 10,\n    \"2\": 20,\n    \"4\": 30,\n    \"5\": 40,\n    \"7\": 50,\n    \"9\": 60,\n    \"10\": 70,\n    \"12\": 80,\n    \"13\": 90,\n    \"15\": 100\n}\n\n    msg.payload = percentages[msg.payload]\n\n    return [msg];\n\n\n\n\n//msg.payload.print.big_fan1_speed_pct = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed_pct = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed_pct = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed_pct = percentages[msg.payload.print.cooling_fan_speed]\n\n// Overwrite\n//msg.payload.print.big_fan1_speed = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed = percentages[msg.payload.print.cooling_fan_speed]\n\n\n//node.send(msg)",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 760,
                                  "y": 160,
                                  "wires": [
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "33a162f31f850a9e",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "Stage Parser",
                                  "func": "\nfunction parseAction(actionId) {\n    if(actionId === undefined) {\n        return \"\";\n    }\n    switch (actionId) {\n        case -2:\n            return \"Offline\";\n        case -1:\n            return \"Idle\";\n        case 0:\n            return \"Printing\";  // idle or printing\n        case 1:\n            return \"Auto bed leveling\";\n        case 2:\n            return \"Heatbed preheating\";\n        case 3:\n            return \"Sweeping XY mech mode\";\n        case 4:\n            return \"Changing filament\";\n        case 5:\n            return \"M400 pause\";\n        case 6:\n            return \"Paused due to filament runout\";\n        case 7:\n            return \"Heating hotend\";\n        case 8:\n            return \"Calibrating extrusion\";\n        case 9:\n            return \"Scanning bed surface\";\n        case 10:\n            return \"Inspecting first layer\";\n        case 11:\n            return \"Identifying build plate type\";\n        case 12:\n            return \"Calibrating Micro Lidar\";\n        case 13:\n            return \"Homing toolhead\";\n        case 14:\n            return \"Cleaning nozzle tip\";\n        case 15:\n            return \"Checking extruder temperature\";\n        case 16:\n            return \"Printing was paused by the user\";\n        case 17:\n            return \"Pause of front cover falling\";\n        case 18:\n            return \"Calibrating the micro lidar\";\n        case 19:\n            return \"Calibrating extrusion flow\";\n        case 20:\n            return \"Paused due to nozzle temperature malfunction\";\n        case 21:\n            return \"Paused due to heat bed temperature malfunction\";\n        default:\n            return actionId.toString()\n    }\n}\n\n\n\n    \nvar current_action = parseAction(msg.payload);\n\n\n\n    msg.payload = current_action;\n\n\n\n    return [msg];\n",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 730,
                                  "y": 220,
                                  "wires": [
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "f6c8fbdf638c04e8",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "Translate X1C Speed Profile",
                                  "func": "function parseAction(SpeedProfile) {\n    if (SpeedProfile === undefined) {\n        return \"\";\n    }\n    switch (SpeedProfile) {\n        case 1:\n            return \"Silent\";\n           \n        case 2:\n            return \"Standard\";\n            \n        case 3:\n            return \"Sport\";\n           \n        case 4:\n            return \"Ludicrous\";\n           \n        default:\n            return \"Undefined\";\n          \n\n   \n    }\n\n}\n\n\n\n    var SpeedProfile = parseAction(msg.payload);\n    msg.payload = SpeedProfile;\n\n\n    return [msg];\n\n\n",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 780,
                                  "y": 300,
                                  "wires": [
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "ce27f3362985a4d3",
                                  "type": "switch",
                                  "z": "9582121ff81174a6",
                                  "name": "",
                                  "property": "topic",
                                  "propertyType": "msg",
                                  "rules": [
                                      {
                                          "t": "eq",
                                          "v": "0_userdata.0.X1C.print.cooling_fan_speed",
                                          "vt": "str"
                                      },
                                      {
                                          "t": "eq",
                                          "v": "0_userdata.0.X1C.print.heatbreak_fan_speed",
                                          "vt": "str"
                                      },
                                      {
                                          "t": "eq",
                                          "v": "0_userdata.0.X1C.print.stg_cur",
                                          "vt": "str"
                                      },
                                      {
                                          "t": "eq",
                                          "v": "0_userdata.0.X1C.print.spd_lvl",
                                          "vt": "str"
                                      },
                                      {
                                          "t": "eq",
                                          "v": "0_userdata.0.X1C.print.big_fan2_speed",
                                          "vt": "str"
                                      },
                                      {
                                          "t": "else"
                                      }
                                  ],
                                  "checkall": "true",
                                  "repair": false,
                                  "outputs": 6,
                                  "x": 470,
                                  "y": 360,
                                  "wires": [
                                      [
                                          "89074ea56277b288"
                                      ],
                                      [
                                          "44d9370861f0a79a"
                                      ],
                                      [
                                          "33a162f31f850a9e"
                                      ],
                                      [
                                          "f6c8fbdf638c04e8"
                                      ],
                                      [
                                          "01c35b9bb3921713"
                                      ],
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "89074ea56277b288",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "cooling_fan_speed",
                                  "func": "var percentages = {\n    \"0\": 0,\n    \"1\": 10,\n    \"2\": 20,\n    \"4\": 30,\n    \"5\": 40,\n    \"7\": 50,\n    \"9\": 60,\n    \"10\": 70,\n    \"12\": 80,\n    \"13\": 90,\n    \"15\": 100\n}\n\n    msg.payload = percentages[msg.payload]\n\n    return [msg];\n\n\n\n\n//msg.payload.print.big_fan1_speed_pct = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed_pct = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed_pct = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed_pct = percentages[msg.payload.print.cooling_fan_speed]\n\n// Overwrite\n//msg.payload.print.big_fan1_speed = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed = percentages[msg.payload.print.cooling_fan_speed]\n\n\n//node.send(msg)",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 750,
                                  "y": 100,
                                  "wires": [
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "01c35b9bb3921713",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "big_fan2_speed (Chamber)",
                                  "func": "var percentages = {\n    \"0\": 0,\n    \"1\": 10,\n    \"2\": 20,\n    \"4\": 30,\n    \"5\": 40,\n    \"7\": 50,\n    \"9\": 60,\n    \"10\": 70,\n    \"12\": 80,\n    \"13\": 90,\n    \"15\": 100\n}\n\n    msg.payload = percentages[msg.payload]\n\n    return [msg];\n\n\n\n\n//msg.payload.print.big_fan1_speed_pct = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed_pct = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed_pct = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed_pct = percentages[msg.payload.print.cooling_fan_speed]\n\n// Overwrite\n//msg.payload.print.big_fan1_speed = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed = percentages[msg.payload.print.cooling_fan_speed]\n\n\n//node.send(msg)",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 780,
                                  "y": 400,
                                  "wires": [
                                      [
                                          "9fadcc36a22ec38b"
                                      ]
                                  ]
                              },
                              {
                                  "id": "3eb26b7322587c6b",
                                  "type": "function",
                                  "z": "9582121ff81174a6",
                                  "name": "big_fan1_speed (AUX)",
                                  "func": "var percentages = {\n    \"0\": 0,\n    \"1\": 10,\n    \"2\": 20,\n    \"4\": 30,\n    \"5\": 40,\n    \"7\": 50,\n    \"9\": 60,\n    \"10\": 70,\n    \"12\": 80,\n    \"13\": 90,\n    \"15\": 100\n}\n\n    msg.payload = percentages[msg.payload]\n\n    return [msg];\n\n\n\n\n//msg.payload.print.big_fan1_speed_pct = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed_pct = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed_pct = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed_pct = percentages[msg.payload.print.cooling_fan_speed]\n\n// Overwrite\n//msg.payload.print.big_fan1_speed = percentages[msg.payload.print.big_fan1_speed]\n//msg.payload.print.big_fan2_speed = percentages[msg.payload.print.big_fan2_speed]\n//msg.payload.print.heatbreak_fan_speed = percentages[msg.payload.print.heatbreak_fan_speed]\n//msg.payload.print.cooling_fan_speed = percentages[msg.payload.print.cooling_fan_speed]\n\n\n//node.send(msg)",
                                  "outputs": 1,
                                  "noerr": 0,
                                  "initialize": "",
                                  "finalize": "",
                                  "libs": [],
                                  "x": 760,
                                  "y": 360,
                                  "wires": [
                                      []
                                  ]
                              },
                              {
                                  "id": "84f61d394ba2ab34",
                                  "type": "mqtt-broker",
                                  "name": "Bambu X1C MQTT Bambu_X1C",
                                  "broker": "192.168.0.111",
                                  "port": "1883",
                                  "clientid": "",
                                  "autoConnect": true,
                                  "usetls": false,
                                  "protocolVersion": "4",
                                  "keepalive": "60",
                                  "cleansession": true,
                                  "birthTopic": "",
                                  "birthQos": "0",
                                  "birthPayload": "",
                                  "birthMsg": {},
                                  "closeTopic": "",
                                  "closeQos": "0",
                                  "closePayload": "",
                                  "closeMsg": {},
                                  "willTopic": "",
                                  "willQos": "0",
                                  "willPayload": "",
                                  "willMsg": {},
                                  "userProps": "",
                                  "sessionExpiry": ""
                              }
                          ]
                          

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

                            Der Subflow gleicht es wahrscheinlich aus - aber ich würde mir von der mqtt-IN Node gleich komplett immer alles analysieren lassen. Dann bekommst Du auch fertige Objekte raus:

                            e32c3a5d-78dd-4168-849a-8a6afdc85fa6-image.png

                            Einzelne topics bereits über die function nodes zu modifizieren kann man machen, wenn man das so in den Datenpunkten haben will. Wenn Du die Datenpunkte beschreibbar haben willst musst Du noch in der iobroker-Out Node das setzen.

                            Ansonsten funktioniert es ja anscheinend.

                            D 1 Reply Last reply Reply Quote 0
                            • D
                              djalexz @mickym last edited by

                              @mickym Danke für den Tipp.
                              Ja ich weiß nicht wie ich das sonst eleganter machen kann.
                              Also der reine Subflow alleine reicht nicht.
                              Es kommen zwar schön alle Werte rein, aber ich muss ja z.B. die Werte von den Lüftern umwandeln lassen (siehe z.B. cooling_fan_speed Node).
                              Daher muss ich entweder mit Switch Node arbeiten oder in den Funkctions mit einer if then Abfrage arbeiten und immer auf das Topic beziehen.

                              Lieber wäre mir mit dem msg.payload zu arbeiten z.B. msg.payload.print.cooling_fan_speed, aber das funktioniert so nicht.
                              Da kommt immer undefined zurück.

                              Keine Ahnung

                              1 Reply Last reply Reply Quote 0
                              • kmxak
                                kmxak Most Active last edited by kmxak

                                Die neueste Firmware verschlüsselt mqtt mit tls 1.2

                                habs noch nicht geupdatet und warte mal paar tage ab, aber die ersten wo es danach nicht geht melden sich schon

                                Edit: https://community.home-assistant.io/t/bambu-lab-x1-x1c-mqtt/489510/249

                                User: bblp
                                pw: den access key der neu eingeführt wurde

                                1 Reply Last reply Reply Quote 0
                                • D
                                  djalexz last edited by djalexz

                                  @kmxak Ihr könnt ohne Weiteres updaten.
                                  Den Zugriffcode bekommt ihr, wenn ihr auf dem Druckerdisplay:

                                  auf Einstellungen, Netzwerk geht und rechts steht der Zugriffscode.

                                  Das zusammen mit diesen Einstellungen:

                                  993b5674-d025-43b2-98ef-d9656f0f6ae7-image.png

                                  78390327-05ed-44a0-ad88-b9ef4566e6a7-image.png

                                  Funktioniert wunderbar.

                                  PS. beachtet den geänderten Port auf 8883

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    DarkDevil last edited by DarkDevil

                                    Ich habe seit neustem ein Problem:

                                    Seit ich auf einen neuen Server umgezogen bin, aktualisieren sich die Datenpunkte im iobroker nicht mehr regelmäßig, heißt: im debug Node sehe ich wie sich Permanent Werte eintragen bzw. diese geschrieben werden. Im Iobroker hingegen aktualisieren sich die entsprechenden Werte nicht. Merkwürdig ist auch, dass sich die Werte erst im iobroker aktualisieren wenn ich die Bambu App auf dem Handy öffne.

                                    iobroker läuft in einer Proxmox Umgebung, von dem LXC Container habe ich auf dem alten System ein Backup gemacht und ein Restore auf das neue....

                                    PS: ich besitze einen P1P mit der ersten Firmware, daher gehe ich davon aus, dass es mit dem Zugriffcode in keinen Zusammenhang steht.

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

                                      Nabend!

                                      ich habe jetzt soweit alles durchgelesen, aber beim Thema Nodered bin ich ausgestiegen. Das konnte ich bis jetzt immer meiden...

                                      Nochmal für mich zum Verständnis:
                                      Ich möchte eigentlich nur die Daten die vom Drucker kommen auslesen und nix steuern. Wenn ich das richtig verstanden, ist der Drucker ja selber ein MQTT Broker.

                                      Habe also eine weitere Instanz von "MQTT Broker/Client" installiert. Dort die IP vom Drucker, Port 1883, sowie Benutzer bblp und als Passwort den Zugriffscode eingegeben.
                                      Beim Test der verbindung bekomme ich ein Ok.
                                      Aber der Adapter wird nicht Grün. Im Log bekomme ich ein "Client error:Error: connect ECONNREFUSED 192.168.178.64:1883"

                                      Der "Nur LAN" Modus ist nicht aktiviert.

                                      Vielen Dank!

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

                                        @darkdevil Hast Du dem Node-Red Adapter erlaubt, das es Fremd-Objekte erstellen darf?

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          djalexz @SidM last edited by

                                          @sidm Hallöchen,

                                          du must den Port auf 8883 setzen und ggfls. SSL anhaken.
                                          Mit der MQTT Instanz vom ioBroker selber habe ich es noch nicht probiert, da nicht benötigt.

                                          Du willst das Selbe wie ich... Nur gucken und nicht steuern.
                                          Im Standard sind aber die Werte (ohne Nachbearbeitung), die vom Drucker kommen nicht zu gebauchen.
                                          Das fängt schon mit den Lüfterwerten an.
                                          Daher habe ich das Ganze in Node-Red gemacht.

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            DarkDevil @mickym last edited by

                                            @mickym ja habe ich. Es lief auch alles.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            627
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            121
                                            16085
                                            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