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
    2.0k

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

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.
  • 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
                  • S Offline
                    S Offline
                    SidM
                    schrieb am zuletzt editiert von
                    #41

                    Nabend!

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

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

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

                    Der "Nur LAN" Modus ist nicht aktiviert.

                    Vielen Dank!

                    D 1 Antwort Letzte Antwort
                    0
                    • D DarkDevil

                      Ich habe seit neustem ein Problem:

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

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

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

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

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

                      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
                      • S SidM

                        Nabend!

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

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

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

                        Der "Nur LAN" Modus ist nicht aktiviert.

                        Vielen Dank!

                        D Offline
                        D Offline
                        djalexz
                        schrieb am zuletzt editiert von
                        #43

                        @sidm Hallöchen,

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

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

                        1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

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

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

                          @mickym ja habe ich. Es lief auch alles.

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            SidM
                            schrieb am zuletzt editiert von
                            #45

                            Danke @djalexz !

                            Ich hatte irgendwie den Port 1883 im Hinterkopf...

                            Verbindung zum Drucker steht mit dem "MQTT Broker/Client" Adapter und die Werte werden in einem Json Objekt aktualisiert.

                            Ich habe jetzt versucht mit einem Blockly mir ein Paar Werte in Datenpunkte zu schreiben:

                            2023-02-09.png

                            Als Wert schreibt er dann aber nur ein {"ack":true} in den Datenpunkt.
                            Bin ich hier komplett auf den Holzweg?
                            Wenn ich @mickym richtig verstanden habe, benötigt man nicht unbedingt Node-Red dafür. Da ich bisher damit auch null damit zu tun hatte, würde ich es auch gerne meiden und mit Blockly lösen.
                            Wenn es aber nicht anders geht, muss ich mich wohl damit auseinander setzen.

                            mickymM 2 Antworten Letzte Antwort
                            0
                            • S SidM

                              Danke @djalexz !

                              Ich hatte irgendwie den Port 1883 im Hinterkopf...

                              Verbindung zum Drucker steht mit dem "MQTT Broker/Client" Adapter und die Werte werden in einem Json Objekt aktualisiert.

                              Ich habe jetzt versucht mit einem Blockly mir ein Paar Werte in Datenpunkte zu schreiben:

                              2023-02-09.png

                              Als Wert schreibt er dann aber nur ein {"ack":true} in den Datenpunkt.
                              Bin ich hier komplett auf den Holzweg?
                              Wenn ich @mickym richtig verstanden habe, benötigt man nicht unbedingt Node-Red dafür. Da ich bisher damit auch null damit zu tun hatte, würde ich es auch gerne meiden und mit Blockly lösen.
                              Wenn es aber nicht anders geht, muss ich mich wohl damit auseinander setzen.

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

                              @sidm ist schade dass du dich nicht mit Node-red beschäftigen willst, da es in meinen Augen wesentlich mächtiger als Blockly ist und bis auf ganz seltene Aufgaben den gleichen Funktionsumfang und sogar noch mehr mit NodeRed lösen kannst. Man kann so Adapter ersetzen wenn diese nicht funktionieren. Wenn du es mit dem Mqtt Adapter hinbekommen hast, würde ich Dir trotzdem meinen Node-Red Flow empfehlen, um den JSON in einzelne Datenpunkte zu schreiben. Da musst auch nicht viel lernen. Das Modifizieren und Umrechnen kannst wieder mit Blockly machen.

                              Du kannst auch, wie du angefangen hast, die Datenpunkte mit Blockly machen, aber Blockly ist was Objektbearbeitung betrifft so grottig schlecht und üunbersichtlich - da musst du immer in einem andren Fenster immer das Json Editor offen haben. Da würde ich mir dann schon überlegen, ob Du nicht gleich mit JavaScript codierst.

                              Im Prinzip ist Dein Ansatz ja richtig, aber da das Objekt doch sehr komplex ist, kann man aus Deinem Blockly unmöglich erkennen, wo der Fehler ist.

                              Ich kann dir wie gesagt nur anbieten den Flow mit Dir zu erstellen in Node Red für die einzelnen Datenpunkte und wenn du dann weiter auf den Geschmack dieses genialen Tools gekommen bist helfe ich Dir gerne weiter. Ich kenn einige die von Blockly auf NodeRed umgestiegen sind. Ich verstehe eh nicht warum die meisten Blockly nutzen, wahrscheinlich weil es die meisten machen.

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

                              D 1 Antwort Letzte Antwort
                              0
                              • S SidM

                                Danke @djalexz !

                                Ich hatte irgendwie den Port 1883 im Hinterkopf...

                                Verbindung zum Drucker steht mit dem "MQTT Broker/Client" Adapter und die Werte werden in einem Json Objekt aktualisiert.

                                Ich habe jetzt versucht mit einem Blockly mir ein Paar Werte in Datenpunkte zu schreiben:

                                2023-02-09.png

                                Als Wert schreibt er dann aber nur ein {"ack":true} in den Datenpunkt.
                                Bin ich hier komplett auf den Holzweg?
                                Wenn ich @mickym richtig verstanden habe, benötigt man nicht unbedingt Node-Red dafür. Da ich bisher damit auch null damit zu tun hatte, würde ich es auch gerne meiden und mit Blockly lösen.
                                Wenn es aber nicht anders geht, muss ich mich wohl damit auseinander setzen.

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

                                2023-02-09.png

                                Als Wert schreibt er dann aber nur ein {"ack":true} in den Datenpunkt.
                                Bin ich hier komplett auf den Holzweg?
                                Wenn ich @mickym richtig verstanden habe, benötigt man nicht unbedingt Node-Red dafür. Da ich bisher damit auch null damit zu tun hatte, würde ich es auch gerne meiden und mit Blockly lösen.
                                Wenn es aber nicht anders geht, muss ich mich wohl damit auseinander setzen.

                                Gerade weil du mit Blockly nichts siehst musst halt debug Blöcke einbauen und Dir die Werte als Objekte anzeigen lassen und in ein JSON Tool überführen. In Node Red kannst halt über das Debugfenster direkt den Pfad zu jedem Attribut kopieren und so die Werte auch einzeln easy Isolieren.

                                Es sieht so aus, wenn ich das Objekt von oben nehme, das bed_temper eine Eigenschaft von print ist,

                                Dann heißt Dein Attribut

                                print.bed_temper
                                

                                Ich bin jetzt ehrlich gesagt dass nur in einen gescheiten JSON Editor zu kopieren, um Dir den Pfad zu sagen. Kannst ja beides versuchen.

                                Das nozzle_temper ist mindest auch eine Eigenschaft des print Objektes,
                                also

                                print.nozzle_temper
                                

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

                                1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @sidm ist schade dass du dich nicht mit Node-red beschäftigen willst, da es in meinen Augen wesentlich mächtiger als Blockly ist und bis auf ganz seltene Aufgaben den gleichen Funktionsumfang und sogar noch mehr mit NodeRed lösen kannst. Man kann so Adapter ersetzen wenn diese nicht funktionieren. Wenn du es mit dem Mqtt Adapter hinbekommen hast, würde ich Dir trotzdem meinen Node-Red Flow empfehlen, um den JSON in einzelne Datenpunkte zu schreiben. Da musst auch nicht viel lernen. Das Modifizieren und Umrechnen kannst wieder mit Blockly machen.

                                  Du kannst auch, wie du angefangen hast, die Datenpunkte mit Blockly machen, aber Blockly ist was Objektbearbeitung betrifft so grottig schlecht und üunbersichtlich - da musst du immer in einem andren Fenster immer das Json Editor offen haben. Da würde ich mir dann schon überlegen, ob Du nicht gleich mit JavaScript codierst.

                                  Im Prinzip ist Dein Ansatz ja richtig, aber da das Objekt doch sehr komplex ist, kann man aus Deinem Blockly unmöglich erkennen, wo der Fehler ist.

                                  Ich kann dir wie gesagt nur anbieten den Flow mit Dir zu erstellen in Node Red für die einzelnen Datenpunkte und wenn du dann weiter auf den Geschmack dieses genialen Tools gekommen bist helfe ich Dir gerne weiter. Ich kenn einige die von Blockly auf NodeRed umgestiegen sind. Ich verstehe eh nicht warum die meisten Blockly nutzen, wahrscheinlich weil es die meisten machen.

                                  D Offline
                                  D Offline
                                  djalexz
                                  schrieb am zuletzt editiert von djalexz
                                  #48

                                  @mickym Ich sehe das genau so wie du.
                                  @SidM Ich habe mittlerweile alle Blockly Scripte abgeschaltet und alles mit Node-Red realisiert.
                                  Es ist mMn. wesentlich einfacher (wenn man sich nicht wirklich mit Javascript auskennt).
                                  Installiere dir den Node-Red Adapter im ioBroker (ist ja klicki bunti) und nimm den Subflow von @mickym.
                                  Damit wird das echt easy.
                                  Und wenn du willst, dann kann ich dir gerne meine ersten Gehversuche zur Verfügung stellen.
                                  b1b59fb7-5a7e-4cf7-a7fd-947fd668963b-image.png

                                  Bitte nicht auf Beschriftung und Ordnung achten.
                                  Ist ein erster Entwurf, der erst mal funktioniert :-)

                                  [
                                      {
                                          "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": "e2852c3101736fc9",
                                          "type": "subflow:6e802f1553b18149",
                                          "z": "9582121ff81174a6",
                                          "name": "",
                                          "env": [
                                              {
                                                  "name": "top",
                                                  "value": "X1C",
                                                  "type": "str"
                                              }
                                          ],
                                          "x": 210,
                                          "y": 320,
                                          "wires": [
                                              [
                                                  "ce27f3362985a4d3",
                                                  "760aee3f9de9bc1a"
                                              ]
                                          ]
                                      },
                                      {
                                          "id": "477ecaa1b9913815",
                                          "type": "mqtt in",
                                          "z": "9582121ff81174a6",
                                          "name": "Bambu X1C Bambu_X1C",
                                          "topic": "device/die_Seriennummer_Deines_X1/report",
                                          "qos": "2",
                                          "datatype": "auto-detect",
                                          "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": 1180,
                                          "y": 600,
                                          "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": "eq",
                                                  "v": "0_userdata.0.X1C.print.mc_remaining_time",
                                                  "vt": "str"
                                              },
                                              {
                                                  "t": "else"
                                              }
                                          ],
                                          "checkall": "true",
                                          "repair": false,
                                          "outputs": 7,
                                          "x": 470,
                                          "y": 360,
                                          "wires": [
                                              [
                                                  "89074ea56277b288"
                                              ],
                                              [
                                                  "44d9370861f0a79a"
                                              ],
                                              [
                                                  "33a162f31f850a9e"
                                              ],
                                              [
                                                  "f6c8fbdf638c04e8"
                                              ],
                                              [
                                                  "01c35b9bb3921713"
                                              ],
                                              [
                                                  "21081e6a23dc83a1"
                                              ],
                                              [
                                                  "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": "760aee3f9de9bc1a",
                                          "type": "json",
                                          "z": "9582121ff81174a6",
                                          "name": "",
                                          "property": "payload.print",
                                          "action": "",
                                          "pretty": false,
                                          "x": 370,
                                          "y": 220,
                                          "wires": [
                                              []
                                          ]
                                      },
                                      {
                                          "id": "21081e6a23dc83a1",
                                          "type": "function",
                                          "z": "9582121ff81174a6",
                                          "name": "function 3",
                                          "func": "//var timeleft = 3727; //1h:2m:7s\n//Umrechnung in Stunden, Minuten, Sekunden\n\nvar hour = Math.floor((msg.payload % 3600) / 60);\nvar minute = Math.floor(msg.payload % 60);\n\n//Den String von Stunden, Minuten und Sekunden auf 2 Stellen ändern\nif (hour < 10) {\nhour = \"0\" + hour;\n}\n\nif (minute < 10) {\nminute = \"0\" + minute;\n}\n\n\nmsg.payload = hour + \":\" + minute;\n\n\n\n\nreturn msg;\n\n",
                                          "outputs": 1,
                                          "noerr": 0,
                                          "initialize": "",
                                          "finalize": "",
                                          "libs": [],
                                          "x": 720,
                                          "y": 540,
                                          "wires": [
                                              [
                                                  "9fadcc36a22ec38b"
                                              ]
                                          ]
                                      },
                                      {
                                          "id": "84f61d394ba2ab34",
                                          "type": "mqtt-broker",
                                          "name": "Bambu X1C MQTT Bambu_X1C",
                                          "broker": "192.168.0.111",
                                          "port": "8883",
                                          "tls": "",
                                          "clientid": "",
                                          "autoConnect": true,
                                          "usetls": true,
                                          "protocolVersion": "4",
                                          "keepalive": "60",
                                          "cleansession": true,
                                          "birthTopic": "",
                                          "birthQos": "0",
                                          "birthPayload": "",
                                          "birthMsg": {},
                                          "closeTopic": "",
                                          "closeQos": "0",
                                          "closePayload": "",
                                          "closeMsg": {},
                                          "willTopic": "",
                                          "willQos": "0",
                                          "willPayload": "",
                                          "willMsg": {},
                                          "userProps": "",
                                          "sessionExpiry": ""
                                      }
                                  ]
                                  


                                  Ps. Das Dashboard in Jarvis nimmt auch langsam Form an.
                                  4b1d6209-94d4-4293-ab2f-945a24905e56-image.png

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    SidM
                                    schrieb am zuletzt editiert von
                                    #49

                                    @mickym

                                    Danke für die fixe Antwort!

                                    Okay ich hab mich da ein wenig falsch ausgedruckt. Ich würde mich auch mit Node-Red beschäftigen! Nur wollte ich jetzt nicht für die eine Sache wieder eine neue Baustelle eröffnen.

                                    Weiter oben schriebst du ja auch "Oje - wird immer schlimmer ihr macht Eurer ganzes System kaputt - in den NodeRed Adapter dürft ihr nichts schreiben."
                                    Schreckt auch ein wenig ab:face_with_head_bandage:

                                    Im IoBroker gibt es halt "nur " die Möglichkeit mit Javascript, Typescript oder Blockly. Da ich nicht programmieren kann, viel halt die Wahl auf Blockly.
                                    Ich komme aus der Steuerungs/Prozessleittechnik und wenn es hier FUP geben würde, würde ich das nehmen:blush:

                                    Wenn du allerdings anbietest mich da anzuleiten, würde ich mir tatsächlich die Node-Red Geschichte mal anschauen!

                                    mickymM 2 Antworten Letzte Antwort
                                    0
                                    • S SidM

                                      @mickym

                                      Danke für die fixe Antwort!

                                      Okay ich hab mich da ein wenig falsch ausgedruckt. Ich würde mich auch mit Node-Red beschäftigen! Nur wollte ich jetzt nicht für die eine Sache wieder eine neue Baustelle eröffnen.

                                      Weiter oben schriebst du ja auch "Oje - wird immer schlimmer ihr macht Eurer ganzes System kaputt - in den NodeRed Adapter dürft ihr nichts schreiben."
                                      Schreckt auch ein wenig ab:face_with_head_bandage:

                                      Im IoBroker gibt es halt "nur " die Möglichkeit mit Javascript, Typescript oder Blockly. Da ich nicht programmieren kann, viel halt die Wahl auf Blockly.
                                      Ich komme aus der Steuerungs/Prozessleittechnik und wenn es hier FUP geben würde, würde ich das nehmen:blush:

                                      Wenn du allerdings anbietest mich da anzuleiten, würde ich mir tatsächlich die Node-Red Geschichte mal anschauen!

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

                                      @sidm na wie gesagt ich helfe dir gerne, gerade wenn du aus der Prozesstechnik kommst, dann dürften dir diese Flussdiagramme mit <NodeRed sehr Entgegenkommen.

                                      Was ich da geschrieben hatte:

                                      Weiter oben schriebst du ja auch "Oje - wird immer schlimmer ihr macht Eurer ganzes System kaputt - in den NodeRed Adapter dürft ihr nichts schreiben.

                                      Das gilt auch für Blockly. Man soll grundsätzlich wenn man eigene Datenpunkte erstellt, diese unter 0_userdata.0 erstellen und eben nicht in den Namensraum von Adaptern. Auch mit Blockly solltest Du nicht in den Javascript.0 Namensraum schreiben. Also wenn das so abschreckend geklungen hat, dann nehme ich das zurück.

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

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • S SidM

                                        @mickym

                                        Danke für die fixe Antwort!

                                        Okay ich hab mich da ein wenig falsch ausgedruckt. Ich würde mich auch mit Node-Red beschäftigen! Nur wollte ich jetzt nicht für die eine Sache wieder eine neue Baustelle eröffnen.

                                        Weiter oben schriebst du ja auch "Oje - wird immer schlimmer ihr macht Eurer ganzes System kaputt - in den NodeRed Adapter dürft ihr nichts schreiben."
                                        Schreckt auch ein wenig ab:face_with_head_bandage:

                                        Im IoBroker gibt es halt "nur " die Möglichkeit mit Javascript, Typescript oder Blockly. Da ich nicht programmieren kann, viel halt die Wahl auf Blockly.
                                        Ich komme aus der Steuerungs/Prozessleittechnik und wenn es hier FUP geben würde, würde ich das nehmen:blush:

                                        Wenn du allerdings anbietest mich da anzuleiten, würde ich mir tatsächlich die Node-Red Geschichte mal anschauen!

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

                                        @sidm sagte in Bambu lab 3d Drucker MQTT Integration:

                                        @mickym

                                        Danke für die fixe Antwort!

                                        Wenn du allerdings anbietest mich da anzuleiten, würde ich mir tatsächlich die Node-Red Geschichte mal anschauen!

                                        Dann melde dich einfach, wenn du soweit bist und Du den Adapter installiert hast.

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • mickymM mickym

                                          @sidm na wie gesagt ich helfe dir gerne, gerade wenn du aus der Prozesstechnik kommst, dann dürften dir diese Flussdiagramme mit <NodeRed sehr Entgegenkommen.

                                          Was ich da geschrieben hatte:

                                          Weiter oben schriebst du ja auch "Oje - wird immer schlimmer ihr macht Eurer ganzes System kaputt - in den NodeRed Adapter dürft ihr nichts schreiben.

                                          Das gilt auch für Blockly. Man soll grundsätzlich wenn man eigene Datenpunkte erstellt, diese unter 0_userdata.0 erstellen und eben nicht in den Namensraum von Adaptern. Auch mit Blockly solltest Du nicht in den Javascript.0 Namensraum schreiben. Also wenn das so abschreckend geklungen hat, dann nehme ich das zurück.

                                          S Offline
                                          S Offline
                                          SidM
                                          schrieb am zuletzt editiert von SidM
                                          #52

                                          @mickym said in Bambu lab 3d Drucker MQTT Integration:

                                          @sidm na wie gesagt ich helfe dir gerne, gerade wenn du aus der Prozesstechnik kommst, dann dürften dir diese Flussdiagramme mit <NodeRed sehr Entgegenkommen.

                                          Super!

                                          Das gilt auch für Blockly. Man soll grundsätzlich wenn man eigene Datenpunkte erstellt, diese unter 0_userdata.0 erstellen und eben nicht in den Namensraum von Adaptern. Auch mit Blockly solltest Du nicht in den Javascript.0 Namensraum schreiben. Also wenn das so abschreckend geklungen hat, dann nehme ich das zurück.

                                          Okay gut, Ich schreibe die selbst erstellen Datenpunkt auch alle in 0_userdata.0

                                          Dann melde dich einfach, wenn du soweit bist und Du den Adapter installiert hast.

                                          Echt vielen Dank! Ich werde wenn ich heute Nachmittag dazu komme, mir das mal anschauen und Node-Red installieren. Dann nerve ich dich:grinning:

                                          Unabhängig davon lagst du oben mit dem Beispiel

                                          print.nozzle_temper
                                          

                                          vollkommen richtig. Habe mal 4 Werte probiert und sie kommen in die Datenpunkte rein. :+1:

                                          Allerdings habe ich festgestellt dass die der Json Datenpunkt ca. aller 10-12sek zwischen 2 Strukturen wechselt.

                                          Einmal wie oben dargestellt und dann auch noch so:

                                          {
                                              "mc_print": {
                                                  "command": "push_info",
                                                  "param": "[AMS][TASK]ams0 en=1,mode=0,sta=0",
                                                  "sequence_id": "722"
                                              }
                                          }
                                          

                                          Ist das noch bei jemanden so? Durch die geänderte Struktur und die fehlenden Infos kann er natürlich nur Müll Parsen und schreibt dann in die Objekte "null" rein.
                                          Die geänderte Struktur ist auch nur für einen kurzen Moment <1sek sichtbar.

                                          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

                                          660

                                          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