Difference between revisions of "Push Services/en"
(Importing a new version from external source) |
(Updating to match new version of source page) |
||
Line 64: | Line 64: | ||
There are two type of conditions that are formulated exactly the same way, but have different meaning. If a "raise condition" is satisfied, an alarm will be triggered and sent via e-mail or twitter. To send out the next email, it needs the "clear condition" to be satisfied first. The idea behind that is to suppress a large amount of follow-up messages on an event already given attention. For example, when raise condition is set to "outdoor temp at least 35°C" and clear condition is set to "outdoor temp below 30 °C" and resolution used for comparison is integer level (zero decimals) you will get a message once the temperature reaches 35° but will not get additional messages on that until the temperature has dropped below 30°C again. When you habe selected "incremental alarms" and temperature raises from 34°C up to 37.2°C you will get one messages about reaching 35°C, one about reaching 36° and one about reaching 37°C threshold. This gives you the chance to get informed how much the given threshold was passed. | There are two type of conditions that are formulated exactly the same way, but have different meaning. If a "raise condition" is satisfied, an alarm will be triggered and sent via e-mail or twitter. To send out the next email, it needs the "clear condition" to be satisfied first. The idea behind that is to suppress a large amount of follow-up messages on an event already given attention. For example, when raise condition is set to "outdoor temp at least 35°C" and clear condition is set to "outdoor temp below 30 °C" and resolution used for comparison is integer level (zero decimals) you will get a message once the temperature reaches 35° but will not get additional messages on that until the temperature has dropped below 30°C again. When you habe selected "incremental alarms" and temperature raises from 34°C up to 37.2°C you will get one messages about reaching 35°C, one about reaching 36° and one about reaching 37°C threshold. This gives you the chance to get informed how much the given threshold was passed. | ||
− | Condition statements consist of three parts separated by blanks. | + | Condition statements consist of three parts separated by blanks. |
+ | |||
+ | =====Simple Condition Expression===== | ||
+ | In this case the expression consists of three parts separated by blanks. | ||
* First part is the '''variable'''. Variables in conditions are exactly the same as in Meteobridge [[Templates]], so you don't have to learn a new syntax here. While variables in templates are embedded into a pair of square brackets, variables in condition statements don't have that brackets. The raise condition in the example above has varibale definition <font face="Courier"><span style="background-color:lightgrey;">wind0wind-act=kmh.1:0</span></font face>, which stands for actual non averaged wind speed, converted to km/h with no decimals and when there is no sensor data there, then 0 is taken as speed. | * First part is the '''variable'''. Variables in conditions are exactly the same as in Meteobridge [[Templates]], so you don't have to learn a new syntax here. While variables in templates are embedded into a pair of square brackets, variables in condition statements don't have that brackets. The raise condition in the example above has varibale definition <font face="Courier"><span style="background-color:lightgrey;">wind0wind-act=kmh.1:0</span></font face>, which stands for actual non averaged wind speed, converted to km/h with no decimals and when there is no sensor data there, then 0 is taken as speed. | ||
Line 74: | Line 77: | ||
* Third part is a '''numerical value''', which can be integer or float. | * Third part is a '''numerical value''', which can be integer or float. | ||
+ | |||
+ | Examples:<BR> | ||
+ | * <font face="Courier"><span style="background-color:lightgrey;">wind0wind-act=kmh.1:0 > 10</span></font face> triggers when current, non-averaged wind speed exceeds 10 km/h | ||
+ | * <font face="Courier"><span style="background-color:lightgrey;">th0temp-act=c.1:0 < 0</span></font face> triggers when outdoor temp goes below 0°C | ||
+ | |||
+ | =====Complex Condition Expression===== | ||
+ | Complex expressions can make use multiple operators and parantheses. Weather data can be used in terms of Meteobridge variables as exlained in [[Templates]] section. Variables need to be in full template-like notation, including the surrounding square brackets. Defined operators are: | ||
+ | |||
+ | {| style="background:none" border="1" cellpadding="5" cellspacing="0" | ||
+ | |+ align="bottom"|''operators in increasing precedence (from top to bottom)'' | ||
+ | ! Operator | ||
+ | ! Description | ||
+ | |- | ||
+ | |'''&&''', '''||''' | ||
+ | |logical "and", "or" operators working on value range: 1=true, 0=false | ||
+ | |- | ||
+ | |'''==''', '''!=''', '''>''', '''>=''', '''<''', '''<=''' | ||
+ | |comparison operations working on value range: 1=true, 0=false | ||
+ | |- | ||
+ | |'''+''', '''-''' | ||
+ | |arithmetic operators "plus" and "minus" | ||
+ | |- | ||
+ | |'''*''', '''/''' | ||
+ | |arithmetic operators "multiply" and "divide" | ||
+ | |- | ||
+ | |'''^''' | ||
+ | |arithmetic operator "power" | ||
+ | |} | ||
+ | Result of the expression is interpreted as a boolean. Values above zero are regarded "true", values below or equal zero are regarded "false". When "incremental alarm" is specified, Meteobridge compares new value with former value and does trigger an alarm, when new value is bigger then the one that has triggered an alarm before. | ||
+ | |||
+ | Examples:<BR> | ||
+ | * <font face="Courier"><span style="background-color:lightgrey;">[rain0total-sumday=mm:0] - 10</span></font face><BR>triggers an alarm when todays rain exceeds 10mm. When alarm mode is set to "incremental alarm", every time rain increases above 10mm, a new alarm will be triggered. This happens because the expression does not return a boolean, but a value that regarded "true" when result is above zero (here, 10mm rain fall). Further increases will keep the condition "true" but will also increment the number and therefore, will fire additional alarms. | ||
+ | * <font face="Courier"><span style="background-color:lightgrey;">[wind0wind-act=kmh.1:0] > 20 && ([wind0dir-act:180] >= 315 || [wind0dir-act:180] <= 45)</span></font face><BR>triggers an alarm when non-averaged wind speed is more than 20 km/h and wind direction is mainly North (NW-NNW-N-NNE-NE). | ||
==Advanced Push Services== | ==Advanced Push Services== | ||
Line 204: | Line 240: | ||
===Individual Script Invocation=== | ===Individual Script Invocation=== | ||
Meteobridge allows to execute user-defined bash scripts. The script has to be available on a web server. Meteobridge downloads the script via a given URL. Each time the trigger interval is fired, weather variables inside the script are replaced by current values and the script is executed. A parameter line can be used to hand over user-defined parameters to the script. | Meteobridge allows to execute user-defined bash scripts. The script has to be available on a web server. Meteobridge downloads the script via a given URL. Each time the trigger interval is fired, weather variables inside the script are replaced by current values and the script is executed. A parameter line can be used to hand over user-defined parameters to the script. | ||
− | This kind of script invocation allows Meteobridge not only fire user-defined actions on the Meteobridge itself but the even more interesting thing is, that by have "wgets" placed in the script this can also initiate actions in the Internet. This does give additional freedom to let your Meteobridge act on weather conditions and to trigger events outside Meteobridge as well. | + | This kind of script invocation allows Meteobridge not only fire user-defined actions on the Meteobridge itself but the even more interesting thing is, that by have "wgets" placed in the script this can also initiate actions in the Internet. This does give additional freedom to let your Meteobridge act on weather conditions and to trigger events outside Meteobridge as well. |
[[File:script.png]] | [[File:script.png]] |
Revision as of 23:11, 3 August 2013
<languages />
Meteobridge provides some additional "push services", which can distribute weather information to you via email, or to your twitter acoount. When you have email or twitter configured, Meteobridge can send alarms to you when a certain weather condition is met.
When you select "Expert Mode" you will be offered additional upload options like upload to a Web server via HTPP Get or via FTP and even direct connection to a mySQL database. To keep things simple, we recommand to leave "Expert Mode" flag unmarked unless you really need these more sophisticated options.
The following sections will explain how to setup push services in detail. These options are a bit more for the tech-savvy user, but they are not mandatory for Meteobridge's core task, to feed weather data to weather networks. So you can keep that all switched off, when you don't need it.
Basic Push Services
We 'll start with three basic push services that can send weather data an a regular schedule or triggered by events to your email address or twitter account.
Twitter Upload
Meteobridge allows you to send weather data snippets to your twitter account. As twitter requires a bit complicated authentication you will have to run through 6 steps.
6. To fill message text with weather data and/or a timestamp, you can make use of Meteobridge variables as explained in Templates section. Example above is a result of this message text: [hh]:[mm]h Outdoor temp: [th0temp-act=F.1:--]°F
Individual E-mail Service
Meteobridge can send you customizable e-mails at certain time intervals. To get this service started you have to work through the following settings:
- Send Interval: defines how often the e-mail should be sent. If you don't want to send weather data on regular schedule but want to send e-mails just on alarm conditions, set this to "on alarm only". Drop-down box next to this on the right allows you to choose how many e-mail send retries should be done in case e-mail sending does fail. Next drop-down box allows you to defne how authorization of the SMTP server that transports the e-mail into the Internet should be done. You choose between:
- none: This setting does not send any authentication information to the SMTP server. Only servers in closed LANs will provide that (if at all).
- basic: Old-fashioned user name and password authentication, without SSL encryption
- tls: authentication with SSL encryption (a variant not used very often)
- starttls: standard authentication with SSL encryption (most often used)
- SMTP Host: specifies the IP or name of the SMTP server to use.
- Port: port number where SMTP server listens for mails (standard ports are 25 for non-SSL and 587 for SSL communication)
- User: user name to be used for authentication
- Password: password to be used
- To-Addr.: E-mail address of the recipient
- From-Addr.: E-mail address of the sender (many SMTP servers only accept mails with a sender address being in the same domain as the SMTP server itself)
- Body: This contains the text to be sent via email. You can use a '#' sign to separate subject from the body of the mail. This string is subject to template replacement and does allow you to use Meteobridge variables inside your e-mail.
The test button in the "SMTP Host" line does send an e-mail with subject "Meteobridge Test" to the given address. If sendig the mail does not work, an error message will pop-up, explaining what went wrong.
Body weather conditions#temp [th0temp-act.1:--]°C\n[wind0wind-max60=kmh.1:--]km/h in example above generates an e-mail with subject "weather conditions" and a body containing two lines (separated by a line feed character "\n"). First line will report current outdoor temperature like "13.4°C" and second line will report max gust speed during last hour, like "34.7km/h". Details of using variables in templates are explained in Templates section.
Alarm Service
Meteobridge can send you an e-mail or twitter message when a certain sensor condition is met. To have this feature activated, as least on of the services "e-mail " or "twitter" must be configured correctly. Alarm services makes use of the e-mail and twitter settings and does not provide seperate credentials for these services. The fields in the screen dump below have this meaning:
- Alarm Mode: can be "disabled", "send e-mail" or "send twitter". In addition you can choose between "one-time alarms" which are triggered once and need to be cleared before they can be fired again, and "incremental alarms" which allow a retriggering of a non-cleared alarm, when the triggering event matches "raise condition" by a larger magnitude than the last trigger event.
- Raise Condition: defines the condition to be met in order to fire an alarm. Once an alarm is fired, it will not be fired again until the alarm is cleared again. When you have selected incremental alarms, an alarm can be fired again under certain circumstances. Details on condition statements are explained in "conditions" subsection below.
- Clear Condition: defines condition to be met to clear a fired alarm. Details on condition statements are explained in "conditions" subsection below.
- Message: defines the email or twitter text to send. This text is subject to Meteobridge's template replacement mechanism and is handled as already lined out for e-mail and twitter services.
Body Gust Warning#Gust speed of [wind0wind-act=kmh.1:--]km/h in example above generates an e-mail with subject "Gust Warning" and a body containing a line like "Gust speed of 65.2km/h", when raise condition in example of gust speeds greater 50 km/h is met.
Conditions
There are two type of conditions that are formulated exactly the same way, but have different meaning. If a "raise condition" is satisfied, an alarm will be triggered and sent via e-mail or twitter. To send out the next email, it needs the "clear condition" to be satisfied first. The idea behind that is to suppress a large amount of follow-up messages on an event already given attention. For example, when raise condition is set to "outdoor temp at least 35°C" and clear condition is set to "outdoor temp below 30 °C" and resolution used for comparison is integer level (zero decimals) you will get a message once the temperature reaches 35° but will not get additional messages on that until the temperature has dropped below 30°C again. When you habe selected "incremental alarms" and temperature raises from 34°C up to 37.2°C you will get one messages about reaching 35°C, one about reaching 36° and one about reaching 37°C threshold. This gives you the chance to get informed how much the given threshold was passed.
Condition statements consist of three parts separated by blanks.
Simple Condition Expression
In this case the expression consists of three parts separated by blanks.
- First part is the variable. Variables in conditions are exactly the same as in Meteobridge Templates, so you don't have to learn a new syntax here. While variables in templates are embedded into a pair of square brackets, variables in condition statements don't have that brackets. The raise condition in the example above has varibale definition wind0wind-act=kmh.1:0, which stands for actual non averaged wind speed, converted to km/h with no decimals and when there is no sensor data there, then 0 is taken as speed.
- Second part is a comparison operator. Defined operators are
- = equal, != non equal
- < less than, <= less than or equal
- > greater than, >= greater than or equal
- Third part is a numerical value, which can be integer or float.
Examples:
- wind0wind-act=kmh.1:0 > 10 triggers when current, non-averaged wind speed exceeds 10 km/h
- th0temp-act=c.1:0 < 0 triggers when outdoor temp goes below 0°C
Complex Condition Expression
Complex expressions can make use multiple operators and parantheses. Weather data can be used in terms of Meteobridge variables as exlained in Templates section. Variables need to be in full template-like notation, including the surrounding square brackets. Defined operators are:
Operator | Description |
---|---|
&&, || | logical "and", "or" operators working on value range: 1=true, 0=false |
==, !=, >, >=, <, <= | comparison operations working on value range: 1=true, 0=false |
+, - | arithmetic operators "plus" and "minus" |
*, / | arithmetic operators "multiply" and "divide" |
^ | arithmetic operator "power" |
Result of the expression is interpreted as a boolean. Values above zero are regarded "true", values below or equal zero are regarded "false". When "incremental alarm" is specified, Meteobridge compares new value with former value and does trigger an alarm, when new value is bigger then the one that has triggered an alarm before.
Examples:
- [rain0total-sumday=mm:0] - 10
triggers an alarm when todays rain exceeds 10mm. When alarm mode is set to "incremental alarm", every time rain increases above 10mm, a new alarm will be triggered. This happens because the expression does not return a boolean, but a value that regarded "true" when result is above zero (here, 10mm rain fall). Further increases will keep the condition "true" but will also increment the number and therefore, will fire additional alarms. - [wind0wind-act=kmh.1:0] > 20 && ([wind0dir-act:180] >= 315 || [wind0dir-act:180] <= 45)
triggers an alarm when non-averaged wind speed is more than 20 km/h and wind direction is mainly North (NW-NNW-N-NNE-NE).
Advanced Push Services
When you select "Expert Mode" you have additional options to send weather data to. All these services need a server somewhere which can take data from your Meteobridge client. Supported protocols are HTTP-GET, mySQL and FTP.
Individual HTTP Upload
Data will be sent as HTTP GET requests with URL parmeters you can define to your liking. Parameters of a URL consist of name-value pairs seperated by '&'. You can define names yourself and can use a certain set of variables provided by Meteobridge to be used as values. Variable names will be automatically replaced by their current values, each time a HTTP request is sent. Please have a look at the example below.
Upload schedule is defined to every 10 seconds. URL specifies server address, where to deliver data ("http://myserver.com/upload.php" in the example above). "Success Condition" allows to specify a matching string which is compared to to the return message from the server to decide if upload was successful or not.
Weather data is transported to the server by means of URL parameters. Meteobridge provides a large set of variables that can be used to feed URL parameters with current sensor data. Section Templates will explain how to use these variables to fill URL parameters with recent sensor data.
Individual MYSQL Uploads
When you prefre to store your weather station's data in your own MYSQL database, Meteobridge can feed sensor data to it in a very easy way. Just state
- Host: server name or IP of server (when DNS can't resolve the name)
- Port: port number where to reach MYSQL database on your server
- Database: name of database to feed
- User: name of database user to use for data upload
- Password: password for user name.
- Query: payload that should be sent to the database. Query usually contains a MSQL insert statement followed by a table name and a list of column names and values. The query ist subject to template replacement, so you can use Meteobridge variables to upload weather data to your database.
Query insert upload (temp, wind) values ([th0temp-act.1:-9999], [wind0wind-act=kmh.1:-9999]) in example above stores actual outdoor temperature to field "temp" of table "upload" of database "test". Field "wind" is filled with current non averaged wind speed in km/h. When temperature or wind data is not there a value of -9999 is stored.
Details of using variables in templates are explained in Templates section.
Individual FTP Uploads
Meteobridge allows you define a FTP server where it can upload up to 4 different files. FIles to be uploaded have to be accessable in the Internet via HTTP. Meteobridge downloads the files pointed to, replaces Meteobridge variables inside the downloaded file by current weather data and uploads resulting file to the specified directory. Meteobridge can just handle one FTP server, but distinct directories and file names for each of the four uploads. Setup of FTP upload credentials is done as follows:
- FTP Host: server name or IP of server (when DNS can't resolve the name)
- Port: port number where to reach MYSQL database on your server
- FTP User: user name to be used for FTP upload
- FTP Password: password to be used for FTP upload
In order to check if FTP credentials do work, you can press "Test Upload" button. Meteobridge will upload a file named "test-upload" with current time stamp as content to your FTP server. File will be located at directory that is default when doing FTP login. When you want to test upload to different directories you can specify an path in "Test Path" field. This path is used for test uploads only.
In oder to define the payload Meteobridge should upload in regular intervals you have 4 lines to select content. Each line specifies an upload schema determined by three input fields.
- Upload Interval: can have values from "no upload", "once per minute" up to "every hour".
- Template file: this specifies an URL where to find the template in the Internet that Meteobridge should download, fill in weather data and upload to FTP server.
- Path: defines the path where to store the data on the FTP server. Path includes directory and file name in Linux style (separated by "/"). Filename of the template is not used as default, you always have to specify a complete target file name.
To minimize traffic, Meteobridge does not download the referenced template files each time it does prepare a FTP upload. Templates are downloaded once during startup of Meteobridge and stay untouched until you press "Reload Templates" button. When you are working on the design of new templates, don't forget to press the reload button to make template changes effective to Meteobridge.
When you have a Ubiquiti AirCam connected, you can upload weather cam images to your server. In that case no template file needs to be specified, just path for destination on FTP server is needed.
Example above defines an upload schema to FTP server "ftp.myserver.com" for user "myself". Template templates.meteobridge.com/simpledash.html has been loaded on start up of Meteobridge and will be updated with recent data every minute and then uploaded to FTP server as file "mydash.html". When you view "mydash.html" with your browser it looks like this:
Details of using variables in templates are explained in Templates section.
To illustrate that using these varibales is quite easy the HTML body part (omitting the CSS styles for formating it nicely) of the template of above's example is attached below:
<body> <table id="table-2"> <thead><tr><th>Sensor</th> <th>Current</th> <th>Today (min)</th> <th>Today (max)</th></tr></thead> <tbody> <tr><td>Outdoor Temperature</td> <td>[th0temp-act.1:--]° C</td> <td>[th0temp-dmin.1:--]° C</td> <td>[th0temp-dmax.1:--]° C</td></tr> <tr><td>Outdoor Humidity</td> <td>[th0hum-act.0:--] %</td> <td>[th0hum-dmin.0:--] %</td> <td>[th0hum-dmax.0:--] %</td></tr> <tr><td>Outdoor Dew Point</td> <td>[th0dew-act.1:--]° C</td> <td>[th0dew-dmin.1:--]° C</td> <td>[th0dew-dmax.1:--]° C</td></tr> <tr><td>Wind Chill Temperature</td> <td>[wind0chill-act.1:--]° C</td> <td>[wind0chill-dmin.1:--]° C</td> <td>[wind0chill-dmax.1:--]° C</td></tr> <tr><td>Air Pressure</td> <td>[thb0seapress-act.1:--] hPa</td> <td>[thb0seapress-dmin.1:--] hPa</td> <td>[thb0seapress-dmax.1:--] hPa</td></tr> <tr><td>Wind Direction</td> <td>[wind0dir-act.0:--]°</td> <td></td><td></td></tr> <tr><td>Wind Speed (averaged)</td> <td>[wind0avgwind-act.1:--] m/s</td> <td>[wind0avgwind-dmin.1:--] m/s</td> <td>[wind0avgwind-dmax.1:--] m/s</td></tr> <tr><td>Gust Speed</td> <td>[wind0wind-max5.1:--] m/s</td> <td>[wind0wind-dmin.1:--] m/s</td> <td>[wind0wind-dmax.1:--] m/s</td></tr> <tr><td>Rain</td> <td>rate: [rain0rate-act.1:--] mm/h</td> <td>sum [rain0total-sumday.1:--] mm</td> <td></td></tr> <tr><td>Solar Radiation</td> <td>[sol0rad-act.0:--] W/qm</td> <td>[sol0rad-dmin.0:--] W/qm</td> <td>[sol0rad-dmax.0:--] W/qm</td></tr> <tr><td>UV Index</td> <td>[uv0index-act.1:--] uvi</td> <td>[uv0index-dmin.1:--] uvi</td> <td>[uv0index-dmax.1:--] uvi</td></tr> </tbody> </table> </body>
Saratoga Template Upload
Meteobridge is supported by the well-known Saratoga templates, which allow you to easily build your own powerfull weather homepage. Procedure how to install the php scripts an how to configure Meteobridge's FTP upload is described in detail here.
When having done the well explained and easy to do setup, your website will look like this:
Individual Script Invocation
Meteobridge allows to execute user-defined bash scripts. The script has to be available on a web server. Meteobridge downloads the script via a given URL. Each time the trigger interval is fired, weather variables inside the script are replaced by current values and the script is executed. A parameter line can be used to hand over user-defined parameters to the script. This kind of script invocation allows Meteobridge not only fire user-defined actions on the Meteobridge itself but the even more interesting thing is, that by have "wgets" placed in the script this can also initiate actions in the Internet. This does give additional freedom to let your Meteobridge act on weather conditions and to trigger events outside Meteobridge as well.
Settings above define to trigger script stored at "http://templates.meteobridge.com/reboot.sh" every day at 23:20. There are no paramters to be handed over to the script. The script provides a one-line documentation, which is marked in the script by three leading '#'. As you can see the script below does mainly issue a "reboot" of the Meteobridge.
#!/bin/sh # ### reboot Meteobridge; no parms reboot exit 0