问题标签 [volttron]
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.
volttron - 使用 volttron-cfg 配置 volttron central (VC)
在使用 volttron-cfg 时,有人问我一些问题:
在 volttron central 上包含 volttron central 平台代理?[Y] VC 平台代理是后端代理,VC 是前端吗?
什么是端口 22916(vip 端口)?从“localhost:22916”返回的内容不可读。
谢谢。
volttron - 设置 Volttron Central (VC)
我对 Volttron Central (VC) 有一些疑问:
- 使用什么库/模块/webserver 来提供 Web 内容(html、css、js 等)?
- 什么是默认用户名/密码?我该如何改变它?我在文档中找不到此信息。
谢谢。
volttron - VOLTTRON 代理命名
当我在 VOLTTRON 平台上安装代理时,它们都被分配了相同的名称“Agentagent-3.0”,我可以在 setup.py 中更改它的部分名称。但是,我不知道给代理起名字的正确方法。我应该在哪里设置代理名称?
volttron - 如何在 Volttron 中订阅不同的主题
当我使用下面的代码订阅一个主题时,我不能使用相同的代码订阅一些不同的主题。如何订阅不同的主题?
volttron - 在一个虚拟机上运行的 bacnet_scan.py 未检测到同一 NAT 网络中另一台虚拟机上的设备
我有两个虚拟机在同一主机上运行,它们都在同一个 NAT 网络中。我使用实用脚本 volttron/scripts/scalability-testing/virtual-drivers/bacnet.py 在一个虚拟机(比如 VM1)上启动了一个假的 bacnet 设备。设备启动良好。现在,我从同一主机和同一 NAT 网络上的另一个 VM(例如 VM2)运行了 scan_bacnet.py,但我在 VM1 上的假设备未列出。
我验证了 BACpypes.ini 文件上的 ip 地址具有运行 scan_bacnet.py 脚本的主机的正确地址。我还更改了 BACpypes.ini 中的地址以包含子网掩码 (10.0.2.15/24) 仍然没有运气。
以下是我在 VM2 上的 BACpypes.ini 文件的内容
这是我在 VM1 中运行的用于启动假 bacnet 设备的命令
我能够从一个 VM ping 到另一个 VM 并在源 VM 上运行 tcpdump 表明 scan_bacnet.py 正在将 whois 请求发送到另一个 VM。在目标 VM 上运行 tcpdump 表明机器正在接收 whois 请求,但假 bacnet 设备没有接收到 whois 请求。我究竟做错了什么?
agent - 通过另一个代理启动或停止代理
我目前有一个 volttron 代理,它定期以 csv 的形式从网上下载一些数据。我想使用 DataPublisher 示例来获取该 csv 数据并将其推送到 pubsub。但是,从代码来看,DataPublisher 似乎被设计为在代理启动时自动运行一次。
所以我的问题变成了,有没有办法从原始代理(它本身有某种计时器或循环)启动数据发布器?之后我还需要停止它。
如果我不能这样做,我的替代方案似乎是修改数据发布器以按计划工作,或更改我的其他代理以将数据从 csvs 发布到 pubsub。
任何帮助将不胜感激。
mysql - MySQL连接问题
MySQL-Historian 准备好使用了吗?我尝试了代理,但像以前一样收到错误消息。我首先想看看“mysql.connector”有什么问题。
volttron - 一起运行 lite-historian 和 mysql-historian
是否可以同时运行 lite-historian 和 mysql-historian,并将数据分别保存到它们的数据库(SQLite 和 MySQL)中?
我因超时错误而失败:volttron.platform.vip.agent.core.Core 对象为 0。我只能将数据保存到其中一个数据库中。
volttron - 让 VOLTTRON 代理响应 http 请求
我很难将所有部分放在一起让代理响应 http 请求。我已经看到了 Craig 的回复向 Volttron Central 添加一个新页面,但我仍然不确定如何将所有内容放在一起。希望这个问题可以作为教程或至少一个指向文档中特定位置的地方。
为此,这是我能想到的最简单的问题陈述:
假设我通过运行 bootstrap.py 在 Ubuntu 上安装了默认版本的 VOLTTRON。我在开发分支上,因为这是对上述问题的回答所指向的,如果这不正确或其他分支也具有此功能,请指定。
并说我有以下代理代码
class Hello_Internet(Agent):
def hello_internet(self):
return “Hello Internet”
为了能够向格式为“something/hello_internet”的 url 发送请求并通过 HelloInternet 代理的方法返回“Hello Internet”响应,需要发生什么?网址中的“某物”是什么?获取请求类型和其他相关信息(查询字符串、发布请求正文)的奖励积分。
本着展示我已经尝试过的东西的精神,希望以下内容不会使水变得太多。理想情况下,您只会说我完全失去了情节,然后我们可以稍后编辑以下内容。
在启动平台本身时,我首先将标志 –bind-web-address“ http://127.0.0.1:5555 ”添加到参数中。
然后我将我的代理类更新为
此时,当我启动平台时,它会在启动时记录:
volttron.platform.web INFO: Starting web server binding to 127.0.0.1:5555.
当代理启动时:
volttron.platform.web INFO: Registering agent route expression: ^/hello_internet peer: None function: hello_internet
但是如果我真的浏览到 127.0.0.1:5555 那么平台在调试器下会给出这个错误:
“~/workspace/volttron/env/local/lib/python2.7/site-packages/gevent/server.py", line 102, in wrap_socket_and_handle
ssl_socket = self.wrap_socket(client_socket, **self.ssl_args)
TypeError: wrap_socket() got an unexpected keyword argument 'error_log'
<Greenlet at 0x7f9ea46e7e10: <bound method WSGIServer.wrap_socket_and_handle of <WSGIServer at 0x7f9ea46cba90 fileno=58 address=127.0.0.1:5555>>(<socket at 0x7f9ea46cb9d0 fileno=61 sock=127.0.0.1, ('127.0.0.1', 40583))> failed with TypeError
对于上面的 self.ssl_agrs 的价值,它看起来像
dict: {'error_log': <open file '~/.volttron/log/web.error.log', mode 'wb' at 0x7f9ea5a2c5d0>,
'server_side': True}
~/.volttron/log/web.error.log 文件存在但为空。
这发生在可以调用 hello_internet 函数之前。
我试过更新 gevent 并没有解决问题。我尝试将 –bind-web-address 切换到https://127.0.0.1:5555并转而去那里加上其他一些我认为只会让事情变得更加混乱的事情,但到目前为止还没有成功。
编辑
谢谢你快速的回复。我更新了我的库以匹配下面 Craig 的点子列表。在某些情况下,我可能已经更新到更新的库版本,例如 gevent 1.1.2 而不是 1.1.1。我还更改了 hello_internet 函数签名以匹配 Craig 的建议,并将绑定地址从 https 更改为 http。
现在,当我启动平台和代理并尝试浏览到绑定的 ip 时,我从浏览器中得到“内部服务器错误”,平台给出了这个回溯:
volttron - 抓取 BACnet 点时出错 (VOLTTRON)
运行 BACnet 代理和 MasterDriver 代理时,我收到错误 DURING SCRAPE(类:对象代码:未知对象)。此错误是否表示设备 ID 或配置文件不正确(带有点名称的 csv 文件)?