我正在尝试使用其CCC图在Pentaho仪表板中显示(和处理)传入的MQTT消息。
我尝试设置一个水壶转换,然后将其用作数据源上传到我的Pentaho服务器。(我测试了在勺子中运行转换的过程,它起作用了,所以问题的根源在其他地方)。当我尝试显示仪表板时,当服务器引发此异常时,它会告诉我“处理组件(组件名称)时出错”:
Caused by: org.pentaho.reporting.libraries.resourceloader.ResourceCreationException: Unable to parse the document: ResourceKey{schema=pt.webdetails.cda.settings.CdaRepositoryResourceLoader:, identifier=/home/admin/MqttReceive2.ktr, factoryParameters={}, parent=null}
...
我在做什么错?有适当的方法做到这一点吗?
欢呼
编辑: 我发现使用websocket实现可以解决此问题的解决方案,但这并不是我真正需要的。
答案 0 :(得分:1)
我发现使用websocket实现解决此问题的解决方案,但这并不是我真正需要的。
对于那些感兴趣的人:
https://github.com/thomaslaurenson/MQTT-Subscription-Examples
基本上,它使用Java脚本来订阅MQTT代理并接收数据,然后您可以在仪表板中使用它。整个代码可以简单地注入到您的电路板设置中,随时可以使用。
这很容易解释,而且易于使用。
答案 1 :(得分:1)
解决此问题的正确方法是利用数据服务。
这是我想出的:
您可以使用Kettle接收MQTT数据并在转换中对其进行处理:
您可以通过右键单击->数据服务->新建将数据服务附加到任何步骤。 服务名称在所有数据服务中必须唯一,并且数据服务类型需要设置为流式传输:
整个转换需要保存到Pentaho存储库(基本上是Pentaho的内部文件系统)
您可以按照以下说明创建仪表板:
https://help.pentaho.com/Documentation/8.2/Products/CTools/Create_Streaming_Service_Dashboard
为您分解:
参数需要设置为:
窗口模式:基于行
窗口大小:50(如果您想在仪表板中使用50个数据点)
每隔一个窗口:1(这将确定图形的更新频率)
窗口限制:0
在“组件”面板中,您需要选择所需的组件,并使用刚刚创建的数据源作为“数据源”。 参数需要设置如下:
在执行时不要阻止UI:True
执行前的清除:错误
创建一个前端布局,并将组件绑定到布局HTML对象。