Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. karloslb

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    K
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 4
    • Best 0
    • Groups 1

    karloslb

    @karloslb

    Starter

    0
    Reputation
    12
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    karloslb Follow
    Starter

    Latest posts made by karloslb

    • Baluberg-Vento, Wie kann ich diesen Knoten benutzen?

      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!

      posted in Node-Red
      K
      karloslb
    • RE: Iobroker JavaScript MQTT Fehler

      @homoran sagte in Iobroker JavaScript MQTT Fehler:

      @karloslb hilft das?

      https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

      Nein, leider nicht. Ich bin nicht so fortgeschritten.

      posted in Error/Bug
      K
      karloslb
    • RE: Iobroker JavaScript MQTT Fehler

      @cinimod sorry, bin neu im Forum. Es hat ein wenig gedauert.

      posted in Error/Bug
      K
      karloslb
    • Iobroker JavaScript MQTT Fehler
      Systemdata Bitte Ausfüllen
      Hardwaresystem: Windows 10
      Betriebssystem: Ubuntu als Subsystem
      Node-Version: 14.21.1
      NPM-Version: 6.14.17

      Hallo zusammen,

      ich habe ein Script, das im Visual Studio Code funktioniert.

      code_tvar dgram = require("dgram");
      var CronJob = require('cron').CronJob;
      const mqtt = require('mqtt');
      
      var client = dgram.createSocket("udp4");
      var PORT = process.env.UDP_PORT||"4000";
      var IPadress = process.env.UDP_IP ||"192.168.178.90";
      var ID = process.env.RL_ID||"002D001E47435719";
      var IDSZ = "002D001E47435719";
      var PWD = "1111"
      var MQTTserver = process.env.MQTT_IP ||"192.168.178.54";
      var MQTTPort = process.env.MQTT_PORT ||"1883";
      
      var mqtt_temp_message = "";
      var header  = Buffer.from(
              [ 0xFD, 0xFD,   // Beginn des Pakets
               0x02,          // Protokolltyp
               0x10,          // ID Blockgroesse
               ]
              );
      var IDbuf = Buffer.from(ID);
      var PWDsizebuf = Buffer.from([0x04]);
      var PWDbuf = Buffer.from(PWD);
      var writeFlevelbuf = Buffer.from('init');
      var writeModebuf = Buffer.from('init');
      
      const clientId = `mqtt_${Math.random().toString(16).slice(3)}`;
      
      var mqtt_url = 'mqtt://${MQTTServer}:${MQTTport}';
      //console.log(mqtt_url);
      const mqtt_client  = mqtt.connect(mqtt_url, clientId);
      
      mqtt_client.on('connect', function(){
      	console.log("connected to mqtt");
      	mqtt_client.subscribe('rl/Bathroom/cmnd/fan_level');
      	mqtt_client.subscribe('rl/Bathroom/cmnd/mode');
      	}
      );
      
      
      mqtt_client.on('message', function(topic, message){
      	//message ist Buffer
      	//console.log(topic);
      	if(topic.includes("fan_level")){
      		// construct fan_level write message
      		var dataarr = new Uint8Array(1);
      		dataarr[0] = parseInt(message.toString());
      		var writeFlevelDatabuf = Buffer.from([0x02, 0x02]);
      		writeFlevelbuf = Buffer.concat([header, IDbuf, PWDsizebuf, PWDbuf, writeFlevelDatabuf, Buffer.from(dataarr.buffer)]);
      		var checksum_writeFlevel = calcchecksum(writeFlevelbuf);
      		writeFlevelbuf = Buffer.concat([writeFlevelbuf,checksum2buffer(checksum_writeFlevel)]);
      		console.log(writeFlevelbuf);
      		client.send(writeFlevelbuf, PORT, IPadress);
      		console.log("fan level case");
      	}
      	else if(topic.includes("mode")){
      		// construct Mode write message
      		var error = 0;
      		var modedataarr = new Uint8Array(1);
                      if(message.toString() == "ventilation"){modedataarr[0] = 0;}
                      else if(message.toString() == "regeneration"){modedataarr[0] = 1;}
                      else if(message.toString() == "supplyair"){modedataarr[0] = 2;}
      		else {
      			console.log("bad mode command", message.toString());
      			error = 1;
      			}
      		if(error == 0){
      			var writeModeDatabuf = Buffer.from([0x02, 0xB7]);
      			writeModebuf = Buffer.concat([header, IDbuf, PWDsizebuf, PWDbuf, writeModeDatabuf, Buffer.from(modedataarr.buffer)]);
      			var checksum_writeMode = calcchecksum(writeModebuf);
      			writeModebuf = Buffer.concat([writeModebuf,checksum2buffer(checksum_writeMode)]);
      			console.log(writeModebuf);
      			client.send(writeModebuf, PORT, IPadress);
      			}
      		console.log("mode case");
      	}
      	else{
      		console.log(message.toString())
      	}
      });
      
      
      
      // UDP
      client.on("message", function(message, rinfo) {
          	console.log("received: ", message, rinfo);
      	datalen = rinfo.size - 24 - message.readInt8(20);
      	databuf = message.subarray(20+message.readInt8(20)+2, -2) //20 byte upfront, pwd length, pwd, func
      	for (let i=0; i < datalen; i+=2){
      		console.log("data = ", databuf[i]);
      		switch(databuf[i]){
      			case(1):
      				console.log("RL ist  ", databuf[i+1]?"an":"aus");
      				mqtt_client.publish('/rl/Bathroom/status', databuf[i+1]?"on":"off", { qos: 0, retain: true });
      				break;
      			case(2):
      				console.log("Lueftungsstufe ist ", databuf[i+1]);
      				mqtt_client.publish('/rl/Bathroom/fan_level', databuf[i-1]?databuf[i+1].toString():"0", { qos: 0, retain: true });
      				break;
      			case(37): //0x25
      				console.log("Feuchtigkeit Bad ist ", databuf[i+1]);
      				mqtt_client.publish('/rl/Bathroom/humidity', databuf[i+1].toString(), { qos: 0, retain: true });
      				break;
      			case(183): //0xB7
      				if(databuf[i+1].toString() == "0"){mqtt_temp_message = "ventilation";}
      				else if(databuf[i+1].toString() == "1"){mqtt_temp_message = "regeneration";}
      				else if(databuf[i+1].toString() == "2"){mqtt_temp_message = "supplyair";}
      				else {mqtt_temp_message = "error"+ databuf[i+1].toString();} 
      				mqtt_client.publish('/rl/Bathroom/mode', mqtt_temp_message, { qos: 0, retain: true });
                                      break;
      			default:
      				console.log("unknown ID");
      				console.log(message, rinfo)
      		}
      	}
      
      });
      
      client.bind(PORT);
      
      function calcchecksum(intbuff){
      	let checksum = 0;
      	for (let i = 2; i < intbuff.length; i++) {
        		// console.log(newbuff[i]);
        		checksum+=intbuff[i];
      	}
      	//console.log("checksum = " , checksum);
      	return checksum;
      }
      
      function checksum2buffer(checksum){
      	const arr = new Uint8Array(2);
      	arr[0] = checksum%256;
      	arr[1] = checksum/256;
      	return Buffer.from(arr.buffer);
      }
      
      
      // setup UDP messages
      //var Databuf = Buffer.from([0x01, 0xb9, 0x92, 0xa3]);
      var Databuf = Buffer.from([0x01, 0x01, 0x02, 0x25, 0xB7]);
      
      var list = [header, IDbuf, PWDsizebuf, PWDbuf, Databuf];
      var intbuff = Buffer.concat(list);
      
      //calculate checksum
      let checksum = calcchecksum(intbuff);
      const arr = new Uint8Array(2);
      arr[0] = checksum%256;
      arr[1] = checksum/256;
      const checksumbuff = Buffer.from(arr.buffer);
      
      var list2 = [intbuff,checksum2buffer(checksum)];
      var getbuff = Buffer.concat(list2);
      console.log(getbuff);
      
      
      // <Buffer fd fd 02 10 30 30 34 41 30 30 32 45 34 33 35 33 35 33 30 42 04 31 31 31 31 01 01 02 de 00>
      var job = new CronJob('*/10 * * * * *', function() {
      	client.send(getbuff, PORT, IPadress);
       	console.log('You will see this message every second');
      }, null, true, 'Europe/Berlin');
      job.start();
      
      
      //from App
      //fd fd 02 10 30 30 34 45 30 30 33 35 34 33 35 33 35 33 30 42 04 31 31 31 31 01 b9 92 a3 13 06
      //fd fd 02 10 30 30 34 41 30 30 32 45 34 33 35 33 35 33 30 42 04 31 31 31 31 01 b9 92 a3 1e 06
      
      ext
      

      Ich habe versucht das Script mit dem JS Adpater von Iobroker zu starten.

      Leider funktioniert es nicht.

      Das Problem ist folgendes: in der Zeile 31

      25f18aea-50a1-4d43-b17f-a9e65090f8be-grafik.png
      bekomme ich folgende Meldung:
      Property 'connect' does not exist on type 'typeof import("mqtt")'

      Kann mir jemand bitte weiter helfen?

      posted in Error/Bug
      K
      karloslb
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo