openhab-addons/bundles/org.openhab.transform.jinja/README.md

70 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

# Jinja Transformation Service
Transforms a value using a jinja template.
The main purpose of this transformer is the use in the home assistant discovery. Therfore not all features of the home assistant templating are supported.
Basically on [Processing incoming data](https://www.home-assistant.io/docs/configuration/templating/#processing-incoming-data)
## Available variables
| Variable | Description |
|------------|------------------------------------|
| value | The incoming value. |
| value_json | The incoming value parsed as JSON. |
## Examples
### Basic Examples
#### Incoming data
Given the value
```json
{"Time":"2019-01-05T22:45:12","AM2301":{"Temperature":4.7,"Humidity":93.7},"TempUnit":"C"}
```
the template
```
{{value_json['AM2301'].Temperature}}`
```
extracts the string `4.7`.
#### Outgoing data
The JINJA transformation can be used to publish simple JSON strings through, for example, the HTTP Binding's `commandTransformation` parameter.
2022-12-01 14:30:50 +01:00
Say we have a String Item which holds the following value:
```
This is my string
```
Adding the following into the `commandTransformation` parameter of your HTTP Thing Channel
```
JINJA:{"msgtype":"m.text", "body":"{{value}}"}
```
will send the following string out of openHAB
```json
{"msgtype":"m.text", "body":"This is my string"}
```
`{{value}}` will be replaced by whatever the value of your Item is.
Note that if using \*.things files you must escape quotation marks, for example:
```
commandTransformation = "JINJA:{\"msgtype\":\"m.text\", \"body\":\"{{value}}\"}"
```
## Further Reading
- Wikipedia on [Jinja](https://en.wikipedia.org/wiki/Jinja_(template_engine).
- Home assistant [discovery](https://www.home-assistant.io/docs/mqtt/discovery/).
- Home assistant [templating](https://www.home-assistant.io/docs/configuration/templating/).