You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kuksa Mock Provider执行Actuate设值报错:Provider不存在

解决Kuksa Mock Provider Actuate请求报错“Provider for vss_id X does not exist”

问题现象

本地部署Kuksa Mock Provider后,Kuksa Broker运行正常:

  • 执行GetValues请求可正常获取Vehicle.Body.Windshield.Front.Wiping.System.Mode的数值
  • 执行Actuate请求设置该信号值时,报错Provider for vss_id 105 does not exist,其他支持Actuate的路径也存在相同问题

正常的Get请求及输出

./grpcurl -plaintext -d "{\"signalIds\": [{\"path\": \"Vehicle.Body.Windshield.Front.Wiping.System.Mode\"}]}" localhost:44444 kuksa.val.v2.VAL/GetValues
{
  "dataPoints": [
    {
      "timestamp": "2025-07-25T01:30:59.091750070Z",
      "value": {
        "string": "STOP_HOLD"
      }
    }
  ]
}

报错的Actuate请求及输出

./grpcurl -plaintext   -d '{
    "signalId": {
      "path": "Vehicle.Body.Windshield.Front.Wiping.System.Mode"
    },
    "value": {
      "string": "STOP_HOLD"
    }
  }'   localhost:44444 kuksa.val.v2.VAL/Actuate
ERROR:
  Code: Unavailable
  Message: Provider for vss_id 105 does not exist

解决方案

1. 配置Mock Provider负责目标信号的写入操作

Kuksa Mock Provider默认仅注册为信号的读取提供者,需修改配置文件(通常为config.yaml),将需要执行Actuate的信号添加到actuators列表:

# 示例配置片段
actuators:
  - path: Vehicle.Body.Windshield.Front.Wiping.System.Mode
    allowed_values: ["STOP_HOLD", "INTERMITTENT", "CONTINUOUS_LOW", "CONTINUOUS_HIGH"]

2. 重启Mock Provider并加载配置

启动Mock Provider时指定修改后的配置文件:

python -m kuksa_mock_provider --config ./config.yaml

3. 验证信号的VSS元数据权限

确保目标信号在VSS规范中的access属性为READWRITE,若为READONLY则无法执行写入操作。可通过Broker接口查询验证:

./grpcurl -plaintext -d "{\"signalIds\": [{\"path\": \"Vehicle.Body.Windshield.Front.Wiping.System.Mode\"}]}" localhost:44444 kuksa.val.v2.VAL/GetMetadata

检查返回结果中的access字段是否为READWRITE。

内容的提问来源于stack exchange,提问作者user12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:19:49