Probleme mit JsonPath in Rule Datei
Verfasst: 16. Nov 2019 00:28
Hallo,
möchte die Heimautomation über die Kombination Openhab 2 / Snips betreiben ( mit Raspberry 3)
In einer Regel erhalte ich mqtt Nachrichten von Snips AI welche ich über JSONPATH "bearbeiten" möchte
Ich versuche die Slots über den Slotnamen wie folgt zu extrahieren.
leider funktioniert das ganze nicht. Die Variable "slotZimmer" enthält nach der Transformation immer die komplette Nachricht.
Wenn ich das ganze in den jsonpath online evaluator eingebe funktioniert es.
Hat jemand eine Idee?
Grüße Armin
möchte die Heimautomation über die Kombination Openhab 2 / Snips betreiben ( mit Raspberry 3)
In einer Regel erhalte ich mqtt Nachrichten von Snips AI welche ich über JSONPATH "bearbeiten" möchte
Ich versuche die Slots über den Slotnamen wie folgt zu extrahieren.
Code: Alles auswählen
var x = "{\"sessionId\":\"12fd7058-6550-4bc8-ac7e-29752f66ef51\",\"customData\":null,\"siteId\":\"default\",\"input\":\"rolladen büro runter\",\"asrTokens\":[[{\"value\":\"rolladen\",\"confidence\":0.7004744,\"rangeStart\":0,\"rangeEnd\":8,\"time\":{\"start\":0.0,\"end\":0.45}},{\"value\":\"büro\",\"confidence\":1.0,\"rangeStart\":9,\"rangeEnd\":13,\"time\":{\"start\":0.45,\"end\":1.05}},{\"value\":\"runter\",\"confidence\":1.0,\"rangeStart\":14,\"rangeEnd\":20,\"time\":{\"start\":1.05,\"end\":2.31}}]],\"asrConfidence\":0.88810456,\"intent\":{\"intentName\":\"Armin_123:Rollladensteuerung\",\"confidenceScore\":1.0},\"slots\":[{\"rawValue\":\"büro\",\"value\":{\"kind\":\"Custom\",\"value\":\"Büro\"},\"alternatives\":[],\"range\":{\"start\":9,\"end\":13},\"entity\":\"TYPE_ROOMS\",\"slotName\":\"Zimmer\",\"confidenceScore\":1.0},{\"rawValue\":\"runter\",\"value\":{\"kind\":\"Custom\",\"value\":\"Runter\"},\"alternatives\":[],\"range\":{\"start\":14,\"end\":20},\"entity\":\"TYPE_BLIND_COMMANDS\",\"slotName\":\"Aktion\",\"confidenceScore\":1.0}],\"alternatives\":[{\"intentName\":\"CrystalMethod:searchWikipedia\",\"confidenceScore\":0.053615358,\"slots\":[{\"rawValue\":\"runter\",\"value\":{\"kind\":\"Custom\",\"value\":\"runter\"},\"alternatives\":[],\"range\":{\"start\":14,\"end\":20},\"entity\":\"article\",\"slotName\":\"article_indicator\",\"confidenceScore\":1.0}]},{\"intentName\":\"domi:searchWeatherForecastCondition\",\"confidenceScore\":0.04479771,\"slots\":[]}]}"
var slotZimmer = transform("JSONPATH", "$..slots[?(@.slotName==\"Zimmer\")]",x)
leider funktioniert das ganze nicht. Die Variable "slotZimmer" enthält nach der Transformation immer die komplette Nachricht.
Wenn ich das ganze in den jsonpath online evaluator eingebe funktioniert es.
Hat jemand eine Idee?
Grüße Armin