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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Bambu lab 3d Drucker MQTT Integration

NEWS

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

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

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

Bambu lab 3d Drucker MQTT Integration

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
121 Beiträge 9 Kommentatoren 28.0k Aufrufe 9 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

    @darkdevil Na da hast Du doch schon alles. Also entweder schreibst Du das einfach in einen Datenpunkt, dann kannst Du das mit deinem Blockly weiterverarbeiten oder Du arbeitest Dich tiefer in den Flow.

    Ich hab Dir ja unten schon gepostet, was was bedeutet.

    Wie möchtest Du denn weiter machen - mit Node Red oder willst Du diese Daten einfach in einen Datenpunkt schreiben und dann willst das mit Deiner Logikmaschine weiter machen. Dann langt es nämlich einfach diese Daten in einen Datenpunkt zu schreiben. Dann machen wir das halt erst mal ohne mqtt-Adapter.

    Wie gesagt unter node-red darf nichts stehen.

    Wie gesagt ich hab auch einen Flow, der Dir einfach alle Daten in einzelne Datenpunkte schreibt, wenn Du das alles nicht interpretiert haben willst.

    Es wird nichts gesteuert - nur die Infos dir in einzelnen Datenpunkten zur Verfügung gestellt.

    D Offline
    D Offline
    DarkDevil
    schrieb am zuletzt editiert von
    #21

    @mickym mir wäre es am liebsten wenn ich die Daten ein einen jeweiligen Dantenpunk(e) bekommen würde.
    also zB userdata.0.Drucker.Datenpunkt_temp, noozle, bett etc.

    wir würde so etwas aussehen?

    mickymM 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @darkdevil Na da hast Du doch schon alles. Also entweder schreibst Du das einfach in einen Datenpunkt, dann kannst Du das mit deinem Blockly weiterverarbeiten oder Du arbeitest Dich tiefer in den Flow.

      Ich hab Dir ja unten schon gepostet, was was bedeutet.

      Wie möchtest Du denn weiter machen - mit Node Red oder willst Du diese Daten einfach in einen Datenpunkt schreiben und dann willst das mit Deiner Logikmaschine weiter machen. Dann langt es nämlich einfach diese Daten in einen Datenpunkt zu schreiben. Dann machen wir das halt erst mal ohne mqtt-Adapter.

      Wie gesagt unter node-red darf nichts stehen.

      Wie gesagt ich hab auch einen Flow, der Dir einfach alle Daten in einzelne Datenpunkte schreibt, wenn Du das alles nicht interpretiert haben willst.

      Es wird nichts gesteuert - nur die Infos dir in einzelnen Datenpunkten zur Verfügung gestellt.

      kmxakK Offline
      kmxakK Offline
      kmxak
      Most Active
      schrieb am zuletzt editiert von
      #22

      @mickym Alles was vom Drucker kommt einfach in einzelne Datenpunkte. Bisschen aufbereiten wäre natürlich nicht schlecht. Danach kann man ja in Telegram oder VIS weiter machen... wie man mag.

      Gruß Alex

      1 Antwort Letzte Antwort
      0
      • D DarkDevil

        @mickym mir wäre es am liebsten wenn ich die Daten ein einen jeweiligen Dantenpunk(e) bekommen würde.
        also zB userdata.0.Drucker.Datenpunkt_temp, noozle, bett etc.

        wir würde so etwas aussehen?

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

        @darkdevil Gut dann mach mal folgendes:

        Kopiere Dir mal die mqtt-In Node, die Dir diese Daten gerade liefert in einen neuen Flow. Den jetzigen würde ich dann deaktivieren.

        Wenn Du das hast, dann schau, dass Du Deine NodeRed Adapter Einstellungen richtig hast:

        e50b005d-5b21-4ae0-bb31-dce686b3202e-image.png

        Wichtig ist, dass die Konvertierung ausgeschaltet ist und die Fremdobjekte zugelassen sind.

        Wenn Du den neuen Flow hast, dann mach mal einen Screenshot - wie gesagt ausser dem mqtt-IN Node, die Dir im Moment die Daten liefert sollte nichts enthalten sein.

        f1913bdc-21f1-441d-8241-2c009e309d33-image.png

        am besten noch eine DebugNode hintendran. ;)

        ed17f17a-9e66-486a-87c5-39af6356d518-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.

        D 1 Antwort Letzte Antwort
        0
        • mickymM mickym

          @darkdevil Gut dann mach mal folgendes:

          Kopiere Dir mal die mqtt-In Node, die Dir diese Daten gerade liefert in einen neuen Flow. Den jetzigen würde ich dann deaktivieren.

          Wenn Du das hast, dann schau, dass Du Deine NodeRed Adapter Einstellungen richtig hast:

          e50b005d-5b21-4ae0-bb31-dce686b3202e-image.png

          Wichtig ist, dass die Konvertierung ausgeschaltet ist und die Fremdobjekte zugelassen sind.

          Wenn Du den neuen Flow hast, dann mach mal einen Screenshot - wie gesagt ausser dem mqtt-IN Node, die Dir im Moment die Daten liefert sollte nichts enthalten sein.

          f1913bdc-21f1-441d-8241-2c009e309d33-image.png

          am besten noch eine DebugNode hintendran. ;)

          ed17f17a-9e66-486a-87c5-39af6356d518-image.png

          D Offline
          D Offline
          DarkDevil
          schrieb am zuletzt editiert von
          #24

          @mickym Wahnsinn, ich habe nun alle Werte sauber in Ordnern :) Schonmal riesen Dank dafür.

          Klar eine Frage kommt noch: im NR debug sehe ich, dass die Werte sich verändern (zB habe ich das Druckbett mal auf 60C eingeschaltet.) Der Datenpunkt im ioBroker ändert sich jedoch nicht.

          Letzte Idee? :)

          mickymM 1 Antwort Letzte Antwort
          0
          • D DarkDevil

            @mickym Wahnsinn, ich habe nun alle Werte sauber in Ordnern :) Schonmal riesen Dank dafür.

            Klar eine Frage kommt noch: im NR debug sehe ich, dass die Werte sich verändern (zB habe ich das Druckbett mal auf 60C eingeschaltet.) Der Datenpunkt im ioBroker ändert sich jedoch nicht.

            Letzte Idee? :)

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

            @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

            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.

            D 1 Antwort Letzte Antwort
            0
            • mickymM 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 Offline
              D Offline
              DarkDevil
              schrieb am zuletzt editiert von
              #26

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

              mickymM 1 Antwort Letzte Antwort
              0
              • D DarkDevil

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

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

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

                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.

                D 1 Antwort Letzte Antwort
                0
                • mickymM 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 Offline
                  D Offline
                  DarkDevil
                  schrieb am zuletzt editiert von
                  #28

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

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • D DarkDevil

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

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

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

                    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.

                    D 1 Antwort Letzte Antwort
                    0
                    • mickymM 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 Offline
                      D Offline
                      DarkDevil
                      schrieb am zuletzt editiert von
                      #30

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

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • D DarkDevil

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

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

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

                        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.

                        D 1 Antwort Letzte Antwort
                        0
                        • mickymM 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 Offline
                          D Offline
                          DarkDevil
                          schrieb am zuletzt editiert von
                          #32

                          @mickym jetzt kommen die Daten an. Perfekt :)

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

                          1 Antwort Letzte Antwort
                          0
                          • D Offline
                            D Offline
                            djalexz
                            schrieb am zuletzt editiert von
                            #33

                            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 :-)

                            mickymM 1 Antwort Letzte Antwort
                            0
                            • D djalexz

                              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 :-)

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

                              @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

                              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.

                              D 1 Antwort Letzte Antwort
                              0
                              • mickymM mickym

                                @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 Offline
                                D Offline
                                djalexz
                                schrieb am zuletzt editiert von djalexz
                                #35

                                @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": ""
                                    }
                                ]
                                

                                mickymM 1 Antwort Letzte Antwort
                                0
                                • D 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": ""
                                      }
                                  ]
                                  

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

                                  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.

                                  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.

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • mickymM 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 Offline
                                    D Offline
                                    djalexz
                                    schrieb am zuletzt editiert von
                                    #37

                                    @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 Antwort Letzte Antwort
                                    0
                                    • kmxakK Offline
                                      kmxakK Offline
                                      kmxak
                                      Most Active
                                      schrieb am zuletzt editiert von kmxak
                                      #38

                                      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

                                      Gruß Alex

                                      1 Antwort Letzte Antwort
                                      0
                                      • D Offline
                                        D Offline
                                        djalexz
                                        schrieb am zuletzt editiert von djalexz
                                        #39

                                        @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 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          DarkDevil
                                          schrieb am zuletzt editiert von DarkDevil
                                          #40

                                          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.

                                          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

                                          294

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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