knx-ip
knx-ip copied to clipboard
ERROR TypeError: dgram_1.default.createSocket is not a function
The following code...
connect() {
// Create tunnel socket with source knx address 1.1.100
const knxClient = new KNXTunnelSocket("1.1.31");
knxClient.on(KNXTunnelSocket.KNXTunnelSocketEvents.error, err => {
if (err) {
console.log(err);
}
});
// Call discoverCB when a knx gateway has been discovered.
knxClient.on(KNXTunnelSocket.KNXTunnelSocketEvents.discover, info => {
const [ip,port] = info.split(":");
discoverCB(ip,port);
});
// start auto discovery on interface with ip 192.168.1.99
knxClient.startDiscovery("192.168.178.28");
const handleBusEvent = function(srcAddress: string, dstAddress: string, npdu: NPDU) {
console.log(`${srcAddress.toString()} -> ${dstAddress.toString()} :`, npdu.dataValue);
};
const discoverCB = (ip: string, port: number) => {
console.log("Connecting to ", ip, port);
// Connect to the knx gateway on ip:port
knxClient.connectAsync(ip, port)
.then(() => console.log("Connected through channel id ", knxClient.channelID))
.then(() => {
console.log("Starting bus monitoring");
knxClient.on("indication", handleBusEvent);
knxClient.monitorBus()
})
.catch(err => {console.log(err);})
};
}
... is producing an error/exception inside the KNXClient code:
ERROR TypeError: dgram_1.default.createSocket is not a function
at new _KNXClient (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/knx-ip/lib/KNXClient.js:59:46)
at new KNXTunnelSocket (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/knx-ip/lib/KNXTunnelSocket.js:45:27)
at _HeaderComponent.connect (/Users/dbocksteger/Development/experimental/knx-tools/src/app/header/header.component.ts:19:23)
at HeaderComponent_Template_button_click_8_listener (/Users/dbocksteger/Development/experimental/knx-tools/src/app/header/header.component.html:11:44)
at executeListenerWithErrorHandling (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/@angular/core/fesm2022/core.mjs:24632:16)
at wrapListenerIn_markDirtyAndPreventDefault (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/@angular/core/fesm2022/core.mjs:24665:22)
at HTMLButtonElement.<anonymous> (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs:751:112)
at _ZoneDelegate.invokeTask (/Users/dbocksteger/Development/experimental/knx-tools/node_modules/zone.js/fesm2015/zone.js:402:31)
at /Users/dbocksteger/Development/experimental/knx-tools/node_modules/@angular/core/fesm2022/core.mjs:14397:55
at AsyncStackTaggingZoneSpec.onInvokeTask (http://localhost:4200/@fs/Users/dbocksteger/Development/experimental/knx-tools/.angular/cache/17.0.9/vite/deps/chunk-NE4IP3RO.js?v=a8b42ffe:12326:30) {stack: 'TypeError: dgram_1.default.createSocket is no…e/deps/chunk-NE4IP3RO.js?v=a8b42ffe:12326:30)', message: 'dgram_1.default.createSocket is not a function'}
May you be able providing me help to solve this error? what is going wrong there?
Do not install with ng. knx-ip is a pure backend lib. No reason to use ng. Try with a simple npm install.