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

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

Community Forum

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

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    793

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Baluberg-Vento, Wie kann ich diesen Knoten benutzen?

Geplant Angeheftet Gesperrt Verschoben Node-Red
2 Beiträge 2 Kommentatoren 199 Aufrufe 2 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.
  • K Offline
    K Offline
    karloslb
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 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

      750

      Online

      32.6k

      Benutzer

      82.0k

      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