Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Baluberg-Vento, Wie kann ich diesen Knoten benutzen?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    226

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    220

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    893

Baluberg-Vento, Wie kann ich diesen Knoten benutzen?

Scheduled Pinned Locked Moved Node-Red
2 Posts 2 Posters 214 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Offline
    K Offline
    karloslb
    wrote on last edited by
    #1

    Hallo zusammen,
    seit ein paar Wochen versuche mich in Node-Red einzuarbeiten. Mein Ziel ist die Blauberg Ventilatoren ansteuern zu können. Die Geräte senden die Daten als UDP-Paket.
    Blauberg Vento
    Im netz habe ich einen Knoten gefunden:
    https://github.com/michaelkrog/node-red-contrib-blauberg-vento.git

    Der Knoten bassiert auf einem TS-Skript:
    https://github.com/michaelkrog/blaubergventojs.git

    In den Einstellungen kann ich nur die ID Nummer des Gerätes eintragen, sonst nichts mehr.
    901cca83-894a-465e-8fae-486cee99e63b-grafik.png
    Ich habe den Autor um Hilfe gebeten, er antwortet aber nicht.
    Wenn ich die Beschreibung aus dem letzten Link richtig verstehe, ist der Knoten nur für die Komunikation zuständig. Ist das richtig so?
    Wie kann ich jetzt was auslesen oder an das Gerät senden?
    Ich komme da leider nicht weiter.
    Danke für eure Hilfe!

    mickymM 1 Reply Last reply
    0
    • K karloslb

      Hallo zusammen,
      seit ein paar Wochen versuche mich in Node-Red einzuarbeiten. Mein Ziel ist die Blauberg Ventilatoren ansteuern zu können. Die Geräte senden die Daten als UDP-Paket.
      Blauberg Vento
      Im netz habe ich einen Knoten gefunden:
      https://github.com/michaelkrog/node-red-contrib-blauberg-vento.git

      Der Knoten bassiert auf einem TS-Skript:
      https://github.com/michaelkrog/blaubergventojs.git

      In den Einstellungen kann ich nur die ID Nummer des Gerätes eintragen, sonst nichts mehr.
      901cca83-894a-465e-8fae-486cee99e63b-grafik.png
      Ich habe den Autor um Hilfe gebeten, er antwortet aber nicht.
      Wenn ich die Beschreibung aus dem letzten Link richtig verstehe, ist der Knoten nur für die Komunikation zuständig. Ist das richtig so?
      Wie kann ich jetzt was auslesen oder an das Gerät senden?
      Ich komme da leider nicht weiter.
      Danke für eure Hilfe!

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by mickym
      #2

      @karloslb Ich kann Dir mit der Node auch nichts sagen.

      In meinen Augen hast Du 2 Möglichkeiten:

      1. Du baust ganz von selbst eine low-level Kommunikation auf in dem Du direkt UDP Pakete an Dein Gerät schickst und die Pakete halt nach der verlinkten Kommunikation aufbaust: https://blaubergventilatoren.de/uploads/download/b133_4_1en_01preview.pdf
        Hier würde ich Dir aber in jedem Fall ein buffer Node mitverwenden.
      2. Du nutzt das JS Bibliothek, die Du verlinkt hast direkt in einer function Node: https://github.com/michaelkrog/blaubergventojs

      zu 1 hab ich mal einen Flow zum Ausprobieren gebastelt - keine Ahnung ob der funktioniert - hab das mal anhand des PDFs zusammengebastelt. Die dyn. Buffer-Node hat mE ein Problem, deswegen habe ich das Parsen alleine mit Javascript gemacht.

      bcddf1ff-e314-4462-a1dd-7c67541b788a-image.png

      [
         {
             "id": "b822a5c6e6e5a711",
             "type": "buffer-maker",
             "z": "385f4b8d434f6005",
             "name": "type, ID und Passwort",
             "specification": "spec",
             "specificationType": "ui",
             "items": [
                 {
                     "name": "type",
                     "type": "buffer",
                     "length": 1,
                     "dataType": "bin",
                     "data": "[2]"
                 },
                 {
                     "name": "sizeID",
                     "type": "buffer",
                     "length": 1,
                     "dataType": "bin",
                     "data": "[16]"
                 },
                 {
                     "name": "ID",
                     "type": "string",
                     "length": 16,
                     "dataType": "msg",
                     "data": "ID"
                 },
                 {
                     "name": "sizePWD",
                     "type": "byte",
                     "length": 1,
                     "dataType": "jsonata",
                     "data": "$length(password)"
                 },
                 {
                     "name": "password",
                     "type": "string",
                     "length": -1,
                     "dataType": "msg",
                     "data": "password"
                 }
             ],
             "swap1": "",
             "swap2": "",
             "swap3": "",
             "swap1Type": "swap",
             "swap2Type": "swap",
             "swap3Type": "swap",
             "msgProperty": "payload",
             "msgPropertyType": "str",
             "x": 340,
             "y": 80,
             "wires": [
                 [
                     "f8c660323b580df5"
                 ]
             ]
         },
         {
             "id": "929cad4e0b9a7443",
             "type": "inject",
             "z": "385f4b8d434f6005",
             "name": "",
             "props": [
                 {
                     "p": "ID",
                     "v": "",
                     "vt": "str"
                 },
                 {
                     "p": "password",
                     "v": "1111",
                     "vt": "str"
                 },
                 {
                     "p": "FUNC",
                     "v": "1",
                     "vt": "num"
                 },
                 {
                     "p": "DATA",
                     "v": "[1,2]",
                     "vt": "bin"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "x": 150,
             "y": 80,
             "wires": [
                 [
                     "b822a5c6e6e5a711"
                 ]
             ]
         },
         {
             "id": "f8c660323b580df5",
             "type": "buffer-maker",
             "z": "385f4b8d434f6005",
             "name": "FUNC und DATA",
             "specification": "spec",
             "specificationType": "ui",
             "items": [
                 {
                     "name": "header",
                     "type": "buffer",
                     "length": -1,
                     "dataType": "msg",
                     "data": "payload"
                 },
                 {
                     "name": "FUNC",
                     "type": "byte",
                     "length": 1,
                     "dataType": "msg",
                     "data": "FUNC"
                 },
                 {
                     "name": "DATA",
                     "type": "buffer",
                     "length": -1,
                     "dataType": "msg",
                     "data": "DATA"
                 }
             ],
             "swap1": "",
             "swap2": "",
             "swap3": "",
             "swap1Type": "swap",
             "swap2Type": "swap",
             "swap3Type": "swap",
             "msgProperty": "payload",
             "msgPropertyType": "str",
             "x": 570,
             "y": 80,
             "wires": [
                 [
                     "88b327dbfb39ca80"
                 ]
             ]
         },
         {
             "id": "d029a20fb5676950",
             "type": "debug",
             "z": "385f4b8d434f6005",
             "name": "Final Packet",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 1210,
             "y": 120,
             "wires": []
         },
         {
             "id": "88b327dbfb39ca80",
             "type": "function",
             "z": "385f4b8d434f6005",
             "name": "Checksum",
             "func": "msg.checksum = 0;\nfor (var x of msg.payload.values()) {\n    msg.checksum += x;\n}\nreturn msg;",
             "outputs": 1,
             "noerr": 0,
             "initialize": "",
             "finalize": "",
             "libs": [],
             "x": 770,
             "y": 80,
             "wires": [
                 [
                     "19c7a157927761dd"
                 ]
             ]
         },
         {
             "id": "19c7a157927761dd",
             "type": "buffer-maker",
             "z": "385f4b8d434f6005",
             "name": "Header und Checksum",
             "specification": "spec",
             "specificationType": "ui",
             "items": [
                 {
                     "name": "header",
                     "type": "buffer",
                     "length": 2,
                     "dataType": "bin",
                     "data": "[253,253]"
                 },
                 {
                     "name": "payload",
                     "type": "buffer",
                     "length": -1,
                     "dataType": "msg",
                     "data": "payload"
                 },
                 {
                     "name": "item3",
                     "type": "uint16le",
                     "length": 1,
                     "dataType": "msg",
                     "data": "checksum"
                 }
             ],
             "swap1": "",
             "swap2": "",
             "swap3": "",
             "swap1Type": "swap",
             "swap2Type": "swap",
             "swap3Type": "swap",
             "msgProperty": "payload",
             "msgPropertyType": "str",
             "x": 980,
             "y": 80,
             "wires": [
                 [
                     "d029a20fb5676950",
                     "69e5f16a7ba0a2d7"
                 ]
             ]
         },
         {
             "id": "65b737e55abf4055",
             "type": "udp in",
             "z": "385f4b8d434f6005",
             "d": true,
             "name": "",
             "iface": "",
             "port": "4000",
             "ipv": "udp4",
             "multicast": "false",
             "group": "",
             "datatype": "buffer",
             "x": 160,
             "y": 160,
             "wires": [
                 [
                     "78d6d6a15e93d806"
                 ]
             ]
         },
         {
             "id": "69e5f16a7ba0a2d7",
             "type": "udp out",
             "z": "385f4b8d434f6005",
             "d": true,
             "name": "",
             "addr": "192.168.4.1",
             "iface": "",
             "port": "4000",
             "ipv": "udp4",
             "outport": "4000",
             "base64": false,
             "multicast": "false",
             "x": 1240,
             "y": 80,
             "wires": []
         },
         {
             "id": "8c24bc356424c638",
             "type": "inject",
             "z": "385f4b8d434f6005",
             "name": "incoming packet",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "[253,253,2,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,49,49,49,49,1,1,2,222,0]",
             "payloadType": "bin",
             "x": 140,
             "y": 200,
             "wires": [
                 [
                     "78d6d6a15e93d806"
                 ]
             ]
         },
         {
             "id": "78d6d6a15e93d806",
             "type": "function",
             "z": "385f4b8d434f6005",
             "name": "parse Buffer",
             "func": "let buffer=msg.payload;\nlet size_ID = buffer.slice(3).readInt8();\nlet size_PW = buffer.slice(4 + size_ID).readInt8();\nlet object={\n    \"TYPE\": buffer.slice(2, 3).readInt8(),\n    \"SIZE_ID\": size_ID,\n    \"ID\": buffer.slice(4,size_ID + 4).toString(),\n    \"SIZE_PW\": size_PW,\n    \"PWD\": buffer.slice(4 + size_ID + 1, 4 + size_ID + 1 + size_PW).toString(),\n    \"FUNC\": buffer.slice(4 + size_ID + 1 + size_PW).readInt8(),\n    \"DATA\": buffer.slice(4 + size_ID + 1 + size_PW+ 1,-2),\n    \"Checksum\" : buffer.slice(-2)\n}\n\nmsg.payload = object;\nreturn msg;",
             "outputs": 1,
             "noerr": 0,
             "initialize": "",
             "finalize": "",
             "libs": [],
             "x": 350,
             "y": 200,
             "wires": [
                 [
                     "af96eaba3270a79f"
                 ]
             ]
         },
         {
             "id": "af96eaba3270a79f",
             "type": "debug",
             "z": "385f4b8d434f6005",
             "name": "parsed Buffer",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 540,
             "y": 200,
             "wires": []
         }
      ]
      

      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 Reply Last reply
      0

      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

      With your input, this post could be even better 💗

      Register Login
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      587

      Online

      32.8k

      Users

      82.8k

      Topics

      1.3m

      Posts
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Home
      • Recent
      • Tags
      • Unread 0
      • Categories
      • Unreplied
      • Popular
      • GitHub
      • Docu
      • Hilfe