From 7083631ea5794f30bfb86ae26c195af7b8b9c6b4 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Thu, 27 Sep 2018 01:12:30 +0200 Subject: [PATCH] Updated wiki --- Quickstart.md | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/Quickstart.md b/Quickstart.md index 345a445..e0ef797 100644 --- a/Quickstart.md +++ b/Quickstart.md @@ -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)