问题标签 [knx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
7050 浏览

python - Python 中的 KNX 和 KNXnet/IP 实现

对于任何与 Python 中的KNX实现相关的东西,尤其是 KNXnet/IP,我都在寻找高低。到目前为止,我找不到任何东西。我知道很少有项目是用 Java 编写的,但我想在开始从其他语言移植代码之前先在这里试一试。

另外,有人知道 KNX 标准、其数据结构和 KNXnet/IP 的任何免费文档吗?KNX 协会的官方文档非常昂贵,尤其是对于应该是“开放”标准的东西。

谢谢

0 投票
2 回答
3943 浏览

c# - C# 中的 KNXnetIP 实现

我正在用 C# 开发一个应用程序来控制我的 KNX 家庭系统。因此,我使用了 ETS3Demo 软件,使用软件 Wireshark 可以“看到”ETS3 发送到 KNX/IP 接口的 IP 数据报。

我已经成功使用“Connection_Request”、“ConnectionState_Request”和“Disconnect_Request”,即我发送请求数据报并且 KNX/IP 接口响应。

唯一让我头疼的请求是“Tunnelling_Request”。我发送信息的方式与发送以前的数据报完全相同,但这个似乎不起作用。

我“逐字节”发送数据报,您可以在以下代码中看到:

我已经将与源地址和组地址对应的字节更改为“int”变量,但仍然不起作用。

有人可以给我一个建议或我可能做错的事情。

谢谢

0 投票
1 回答
1435 浏览

android - Calimero knx api on Android stop working

I wrote this simple code in Java for Android to connect to KNX bus over Ethernet (WiFi). Unfortunately not working

This code can not run on my android mobile phone. If I run it the program failed with message "application stop working...." on my android mobile phone. But on PC the similar code (content of doInBackground() ) working good. Working good it mean that I am able to receive KNX connecting UDP packet on another computer.

On Android device I can send simple UDP packet over wifi - that mean wifi connection and basic code in Android Java is working.

Can anybody experienced examine my code and give me a advice where is the problem? Is part of code with calimero API using correct? It was vary helpful for me. Can Calimero api works in android OS? Does anybody have experiences with that (I think so, according to posts here in forum).

LogCat content:

0 投票
3 回答
2318 浏览

android - 向 UI 线程发送消息

我正在为 android 中的 knx 模块开发一个串口应用程序。我可以向 knx modulde 发送和接收推荐信。当从串口收到消息时,我想更改 ui(例如按钮属性)。我用处理程序尝试过,但我无法更改 ui。请帮帮我。

@Override public void OnSerialsData(final byte[] buffer, final int size) { .... }

它是我的串行端口侦听器函数调用 insine ReadThread。该线程从我的活动的不同包中开始。我想用这种方法向主要活动发送一条消息。

0 投票
1 回答
90 浏览

c - 我必须将哪些参数发送到服务器?

我无法向服务器发送有效请求。我有这个协议描述,但我不明白我必须用 socat 向服务器发送什么。

header必须始终完整传输,即使命令不需要任何参数。

command这是一个字母,其大小写很重要(例如,命令 'A' 和 'a' 确实非常不同)。它的大小为 8 位。

param 1 这是一个 16 位数字参数。它采用网络字节顺序,主要用于指定 KNX 设备地址或数据长度。

我的问题来自param. 我必须发送一个带有空值的 16 位数字参数。我该怎么做?

0 投票
2 回答
1317 浏览

ubuntu - 配置 openHAB 以使用 KNX 在 USB 上运行

KNX我在与我的 over建立连接时遇到了一些问题USB。运行演示项目甚至我的项目都没有问题。
我已经配置了我的房间,openHAB但无法建立连接,即使调试日志告诉我其他信息。
我的配置如下所示:

调试日志告诉我以下内容:

KNX因此,与-Bus的通信一定有错误。如何配置openhab.cfg通过我的USB-Port 进行通信。

0 投票
2 回答
277 浏览

android - android studio:java.lang.RuntimeException:执行doInBackground()时发生错误

我正在尝试使用适用于 KNX 的 calimero 库来制作应用程序。在我的应用程序中,我使用一些按钮、开关、切换按钮等来打开/关闭灯。使用“按钮”,一切正常。我可以打开/关闭灯或打开/关闭窗帘。

但是当我将“Switch”与 OnClickListener 或 OnCheckedChangeListener 一起使用时,它会崩溃。

问题如下:

这是我的 doInBackground

我是 java 和 android 编程的新手。你能帮忙解决这个问题吗?我不明白为什么这适用于“按钮”而不适用于“开关”。

先感谢您

更新

我复制我的代码并尝试使用 Eclipse。一切正常。我可以打开/关闭我想要的灯并且没有错误。使用android studio,它不起作用。有人知道原因吗?

0 投票
4 回答
4962 浏览

raspberry-pi - 使用 Raspberry Pi 3 GPIO 读取 KNX

我爸爸想让我做一个智能家居。

我想KNX使用 Raspberry Pi 3 上的 GPIO 与(家庭自动化协议)进行交互。理想情况下,我想为它构建一个 Web 界面,但我不知道如何首先与之KNX交互.

有什么建议么?

0 投票
1 回答
498 浏览

javascript - 在 html 中使用 python 函数

首先,我不是以英语为母语的人,所以请原谅我可能有的任何拼写错误。

我正在尝试集成HTMLPython来创建一个可以与总线“对话”的GUI(如果您有兴趣,可以使用 KNX 总线)。

我有一个带有HTML页面和一些Python脚本的树莓派,这些脚本实际上是与总线通信的。我已经设法用一点 PHP(我不是特别精通PHP)从 HTML 运行 python 脚本,做这样的事情:

它工作得很好,当它按下按钮时,它就会执行脚本。但是现在,我想要运行一个脚本(因为我希望 python 从总线上从 UART 读取并显示该信息)并且当脚本中的某些事情发生时(例如,它满足的条件),我想成为能够与 HTML 对话以更改 CSS 属性或其他任何内容,类似于这里的伪代码

如果有人能告诉我如何制作一个简单的示例,例如使用 python 脚本切换输入和返回它的任何布尔参数,以及如何“抓取”从 javascript/HTML 返回以使用它,

我想我可以做其他所有事情。

先感谢您!

0 投票
1 回答
395 浏览

java - 使用 Calimero for Java 读写 KNX 系统的有符号整数值

使用Calimero,我想在 KNX 系统中读取和写入带符号的 int 值。

我对无符号整数使用了 ProcessCommunicatorImpl 的 readUnsigned 和 write 方法,但没有读取和写入有符号整数的方法。

例如我无法访问的这些类型:
DataPoint 6.x(8 位 2 的补码)
DataPoint 8.x(16 位 2 的补码)
DataPoint 13.x(32 位 2 的补码)

唯一可用的方法是:
String read(Datapoint)
String readString(GroupAddress)
int readControl(GroupAddress)
double readFloat(GroupAddress, boolean)
int readUnsigned(GroupAddress, String)
bool readBool(GroupAddress)

而我只有一个GroupAddress,没有Datapoint。


有谁知道我如何读写这些类型的数据点?

谢谢!