Updated wiki

Fabio Manganiello 2018-09-27 01:12:30 +02:00
parent acde5a9bdc
commit 7083631ea5
1 changed files with 39 additions and 3 deletions

@ -233,7 +233,7 @@ procedure.sync.SayWeatherForecast:
-
action: shell.exec
args:
cmd: echo "Phrase recognized: ${context['event'].args['phrase']}" >> /your/log/file
cmd: echo "Phrase recognized: ${event['args']['phrase']}" >> /your/log/file
-
action: weather.forecast.get_current_weather
-
@ -257,6 +257,24 @@ event.hook.WeatherAssistantCommand:
action: procedure.SayWeatherForecast
```
You can also pass arguments to a procedure:
```yaml
procedure.sync.LogEvent:
-
action: shell.exec
args:
cmd: echo "Event received on ${hostname} ${event}" >> /your/log/file
event.hook.OnEvent:
if:
type: platypush.message.event.Event
then:
action: procedure.LogEvent
args:
hostname: your_host
```
## For loops
You can declare `for` loops in a procedure to iterate over values. Let's still use the weather forecast plugin to get an hourly forecast. That call will return a list of values under `data` in the response. We want to log those values to a file:
@ -280,8 +298,7 @@ You can also set up `if` conditions in your procedure, to only execute some acti
```yaml
procedure.sync.LogHourlyForecast:
-
action: weather.forecast.get_current_weather
- action: weather.forecast.get_current_weather
- if ${summary == "Clear"}:
-
action: tts.say
@ -289,6 +306,25 @@ procedure.sync.LogHourlyForecast:
phrase: The weather is good outside
```
The syntax also supports an `else` statement that will be executed if the condition is not matched:
```yaml
procedure.sync.LogHourlyForecast:
- action: weather.forecast.get_current_weather
- if ${summary == "Clear"}:
-
action: tts.say
args:
phrase: The weather is clear outside
- else:
-
action: tts.say
args:
phrase: The weather is not clear outside
```
And you can also build a more complex logic with nested `if-else` statements like in a real programming language.
You've now got all the basic ingredients to configure your own plugins and write you own rules. You can proceed looking at some examples with the available:
* [Plugins](plugins)