|
|
(28 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | =Reasoner by property=
| + | # [[Reasoner workflow]] |
− | | + | # [[Reasoner by property]] |
− | | + | # [[Reasoner by Resource]] |
− | [[File:ReasonerByProperty.png]] | + | # [[Reasoner Increment, Decrement, Set]] |
− | | + | # [[Reasoner proximity Area]] |
− | | + | # [[Observation transformation]] |
− | ==Reasoner For Each ==
| + | # [[Debug & check a reasoner]] |
− | | + | # [[Actions]] |
− | | + | # [[Binding|Binding properties]] |
− | | + | # [[Execution_engine#Extension_module|Available extensions for bindings]] |
− | [[File:ReasonerForEachCreate.png]] | + | |
− | | + | |
− | === Create===
| + | |
− | | + | |
− | Reasoner For each create by property : | + | |
− | | + | |
− | For each entity that was returned by observer the system will create a new entity with the settings assigned
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select For each
| + | |
− | | + | |
− | 3-Enter a Name
| + | |
− | | + | |
− | 4-Once The Reasoner editor is open
| + | |
− | | + | |
− | 5-Enter Description
| + | |
− | | + | |
− | 6-Select the observer
| + | |
− | | + | |
− | 7-Select Topics from where you are getting the observation
| + | |
− | | + | |
− | 8-Select Action Create
| + | |
− | | + | |
− | 9-Dialog Box for create will be open
| + | |
− | | + | |
− | 10-Select type of entity you want to create
| + | |
− | | + | |
− | 11-Enter a label to identify the action
| + | |
− | | + | |
− | 12-On action on the right side select The Action label for Create inside will be a list of fields :
| + | |
− | | + | |
− |
| + | |
− | '''Continue on failure''' is a boolean true or false. User can said if he wants to continue even if there is failure.
| + | |
− | | + | |
− | '''Update if exist''' is a boolean or or false. If true user can update any fields
| + | |
− | | + | |
− | '''New Entity''' fieldsUser will fill all the required fields to Create the new Entity
| + | |
− | | + | |
− | [[File:ReasonerForEachCreateContfailureUpdateIfExist.png]] | + | |
− | | + | |
− | [[File:ReasonerForeachCreateFillingFields.png]] | + | |
− | | + | |
− | 12-Run the reasoner
| + | |
− | | + | |
− | 13-Select observation from where user wants to get the info for the binding etc
| + | |
− | | + | |
− | === Update===
| + | |
− | Reasoner for Each Update by property: | + | |
− | | + | |
− | For each entity that was returned by observer the system will update the entities with the new values
| + | |
− | | + | |
− | Same steps as created but Action will be Update
| + | |
− | | + | |
− | '''Entity fields''' User will fill all the required fields to Update the Entity
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | === Delete===
| + | |
− | Reasoner For each Delete by property
| + | |
− | | + | |
− | The system will delete all the entities returned by observer on the specified Tenant
| + | |
− | | + | |
− | Same steps as create just
| + | |
− | | + | |
− | -Select Action Delete
| + | |
− | | + | |
− | -Enter a name for the action Delete
| + | |
− | | + | |
− | -Click Run to run reasoner
| + | |
− | | + | |
− | - Select observation
| + | |
− | | + | |
− | === Send Notifications===
| + | |
− | Reasoner for each Send Notifications by properties
| + | |
− | | + | |
− | The system will send the notification to the specified tenant according to the setting on media
| + | |
− | | + | |
− | Same steps as Create
| + | |
− | | + | |
− | -On Action, Select Send Notification. The dialog box to configure the action Send Notification will be open.
| + | |
− | | + | |
− | -Enter a name for the action Send Notification, Select the Notification template, Select by property
| + | |
− | | + | |
− | -On action on the right side select the Send Notification action inside user will see
| + | |
− | | + | |
− | Action Send Notification Fields
| + | |
− | | + | |
− | '''Destinatario''' where user can specify the email address of the person to receive the notification
| + | |
− | | + | |
− | Media
| + | |
− | | + | |
− | ”dap” to display the notification on the screen of tenant only
| + | |
− | | + | |
− | ”mail” notification by mail only
| + | |
− | | + | |
− | ”dap,mail”by mail and screen both
| + | |
− | | + | |
− | '''Continue on failure''' is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | '''Notification Fields''' User will assign values to the place holders of the notification templates
| + | |
− | note: If the notification template does not have placeholder there will not be notification fields
| + | |
− |
| + | |
− | | + | |
− | -Click Run to run reasoner
| + | |
− | | + | |
− | - Select observation
| + | |
− | | + | |
− | === Send Observations===
| + | |
− | Reasoner For each Send Observations by properties
| + | |
− | | + | |
− | For each entity that was returned the system will send a new observation with the information entered on new observation fields
| + | |
− | | + | |
− | Same steps as Create
| + | |
− | | + | |
− | -On on Action and Select Send Observation action
| + | |
− | | + | |
− | -Dialog box for the settings for the action will be open, select the type of observation, select by property and Enter a name for the Observation to be send
| + | |
− | | + | |
− | -On action on the right side select the Send Observation inside will be a list of fields :
| + | |
− | | + | |
− | Action Send Observation Fields
| + | |
− | | + | |
− | '''Tenant Binding''' where user will specify in which Tenant he wants to send the Observation
| + | |
− | | + | |
− | '''Continue on failure''' is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | '''New Observation fields''' User will fill all the required fields to send that observation
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | ===Schedule Observations===
| + | |
− | | + | |
− | Reasoner For each Send Schedule Observations by properties
| + | |
− | | + | |
− | For each entity that was returned the system will schedule to send a new observation with the information entered on the settings
| + | |
− | | + | |
− | | + | |
− | [[File:ReasonerForEachScheduleObs.png]] | + | |
− |
| + | |
− | | + | |
− | -Select Action Schedule Observation
| + | |
− | | + | |
− | -Enter a name for the Schedule
| + | |
− | | + | |
− | -Select the type of Observation to be send
| + | |
− | | + | |
− | -On action on the right side select the Schedule Observation inside will be a list of fields :
| + | |
− | | + | |
− | [[File:ReasonerForEachScheduleSEndObs.png]] | + | |
− | | + | |
− | Identifier To ID this task inside the system
| + | |
− | | + | |
− | StartDate it is the time and date to start sending the scheduled observation
| + | |
− | | + | |
− | seconds definition to the level of seconds to send the observation
| + | |
− | | + | |
− | Minutes definition to the level of minutes to send the observation
| + | |
− | | + | |
− | hours definition to the level of Hours to send the observation
| + | |
− | | + | |
− | days
| + | |
− | months
| + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time. An example if observer return two entities or things and start time is 10:22 am occurrence is 2 and frequency is 2 mins. the system will send 2 observations at 10:22 am and will send another 2 observations at 10:24 am
| + | |
− | | + | |
− | Years
| + | |
− | | + | |
− | Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | New Observation fields User will fill all the required fields to send that observation
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | ==Reasoner At Least One ==
| + | |
− | | + | |
− | ===Create===
| + | |
− | | + | |
− | [[File:ReasonerAtLeastOneCreate.png]] | + | |
− | | + | |
− | Reasoner At least One Create by property:
| + | |
− | | + | |
− | If observer return at least one entity the system will create a new entity with the settings assigned
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select At least one entity
| + | |
− | | + | |
− | 4-Enter a Name
| + | |
− | | + | |
− | 5-Once The Reasoner editor is open
| + | |
− | | + | |
− | 6-Enter Description
| + | |
− | | + | |
− | 7-Select the observer
| + | |
− | | + | |
− | 8-Select Topic from where you are getting the observation
| + | |
− | | + | |
− | 9-Select Action Create
| + | |
− | | + | |
− | 10-Dialog Box for create will be open
| + | |
− | | + | |
− | 11-Select type of entity you want to create
| + | |
− | | + | |
− | 12-Enter a label to identify the action
| + | |
− | | + | |
− | 13-On action on the right side select The Action label for Create inside will be a list of fields :
| + | |
− | | + | |
− | Tenant Binding, where user will specify in which Tenant he wants to Create the Entity
| + | |
− | | + | |
− | Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | New Entity fields User will fill all the required fields to Create the new Entity
| + | |
− | | + | |
− | 14-Run the reasoner
| + | |
− | | + | |
− | 15-Select observation from where user wants to get the info for the binding etc
| + | |
− | | + | |
− | ===Send Notifications===
| + | |
− | | + | |
− | Reasoner At Least One Send Notifications
| + | |
− | | + | |
− | If observer return at least one entity The system will send the notification to the specified tenant according to the setting on media
| + | |
− | | + | |
− | Same steps as create just Select action Send Notification and select the template for the notification
| + | |
− | | + | |
− | On action on the right side select the Send Notification action inside user will see:
| + | |
− | | + | |
− | Tenant Binding, where user will specify in which Tenant he wants to send the notification
| + | |
− | | + | |
− | Destinatario, where user can specify the email address of the person to receive the notification
| + | |
− | | + | |
− | Media has three options
| + | |
− | | + | |
− | -”dap” to display the notification on the screen of tenant only
| + | |
− | | + | |
− | -”mail” notification by mail only
| + | |
− | | + | |
− | -”dap,mail” by mail and screen both
| + | |
− | | + | |
− | Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | Notification Fields User will assign values to the place holders of the notification templates
| + | |
− | | + | |
− | notes:If the notification template does not have placeholder there will not be notification fields
| + | |
− |
| + | |
− | | + | |
− | Click Run to run reasoner
| + | |
− | | + | |
− | Select observation
| + | |
− | | + | |
− | ===Send Observations===
| + | |
− | | + | |
− | Reasoner At Least One SEnd Observations
| + | |
− | | + | |
− | If observer return at least one entity The system will send a new observation with the information entered on new observation fields
| + | |
− | | + | |
− | Same as create just select Action send Observation, Then select the type of observation you want to send
| + | |
− | Assign values on the right side to the observation fields
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | ===Schedule Observations===
| + | |
− | | + | |
− | The same as send observation on Action select schedule observations user just need to specify Initiation Date and time, occurrence and frequency
| + | |
− | | + | |
− | '''Note:'''
| + | |
− | | + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
| + | |
− | | + | |
− | '''Expected'''
| + | |
− | | + | |
− | If Observer return at least one entity the system will Schedule to send a new Observation
| + | |
− | | + | |
− | ==Reasoner Observation Only==
| + | |
− | | + | |
− | ===Create===
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select Only Observation
| + | |
− | | + | |
− | 4-Enter a Name
| + | |
− | | + | |
− | 5-Once The Reasoner editor is open
| + | |
− | | + | |
− | 6-Enter Description
| + | |
− | | + | |
− | 7-Select the observer
| + | |
− | | + | |
− | 8-Select Topic from where you are getting the observation
| + | |
− | | + | |
− | 9-Select Action Create
| + | |
− | | + | |
− | 10-Dialog Box for create will be open
| + | |
− | | + | |
− | 11-Select type of entity you want to create
| + | |
− | | + | |
− | 12-Enter a label to identify the action
| + | |
− | | + | |
− | 13-On action on the right side select Enter Info for required fileds to Create the new Entity
| + | |
− | | + | |
− | 14-Run the reasoner
| + | |
− | | + | |
− | 15-Select observation from where user wants to get the info for the binding etc
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | If Observer results is positive The system will Create a new Entity with the information entered on the settings
| + | |
− | | + | |
− | ===Send Notifications===
| + | |
− | | + | |
− | -Enter a name for the action Send Notification
| + | |
− | | + | |
− | Select the notification template
| + | |
− | | + | |
− | -On action on the right side select the Send Notification .Enter info
| + | |
− | | + | |
− | -Click Run to run reasoner
| + | |
− | | + | |
− | - Select observation
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | If the run of observer is positive The system will send the notification to the specified tenant according to the setting on media
| + | |
− | | + | |
− | ===Send Observations===
| + | |
− | | + | |
− | -Select Action Send Observation
| + | |
− | | + | |
− | -Enter a name for the Observation
| + | |
− | | + | |
− | -Select the type of Observation to be send
| + | |
− | | + | |
− | -On action on the right side select the Send Observation inside will be a list of fields :
| + | |
− | | + | |
− | - Filelds are the same for all sendObservation
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | If the run of observer is positive The system will send a new observation with the information entered on new observation fields
| + | |
− | | + | |
− | ===Schedule Observations===
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation._name = "ScheduleSendObserRecursoObsOnly";
| + | |
− | newobservation.topic = observation.topic;
| + | |
− | newobservation.producer = observation.producer;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | If the run of Observer is positive the system will Send the observation
| + | |
− | according to the schedule
| + | |
− | | + | |
− | ==Reasoner Absence of Things==
| + | |
− | | + | |
− | ===Create===
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select Observer does not return Entity
| + | |
− | | + | |
− | 4-Enter a Name
| + | |
− | | + | |
− | 5-Once The Reasoner editor is open
| + | |
− | | + | |
− | 6-Enter Description
| + | |
− | | + | |
− | 7-Select the observer
| + | |
− | | + | |
− | 8-Select Topic from where you are getting the observation
| + | |
− | | + | |
− | 9-Select Action Create
| + | |
− | | + | |
− | 10-Dialog Box for create will be open
| + | |
− | | + | |
− | 11-Select type of entity you want to create
| + | |
− | | + | |
− | 12-Enter a label to identify the action
| + | |
− | | + | |
− | 13-On action on the right side select The Action label for Create inside will be a list of fields :
| + | |
− | | + | |
− | Fields are the same for all create actions
| + | |
− | | + | |
− | 14-Run the reasoner
| + | |
− | | + | |
− | 15-Select observation from where user wants to get the info for the binding etc
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | If observer run is positive and does not return Entity the system will create a new entity with the settings assigned
| + | |
− | | + | |
− | ===Send Notifications===
| + | |
− | | + | |
− | Same steps as create just Select action Send Notification and select the template for the notification
| + | |
− | | + | |
− | On action on the right side select the Send Notification action inside user will see:
| + | |
− | | + | |
− | Tenant Binding, where user will specify in which Tenant he wants to send the notification
| + | |
− | | + | |
− | Destinatario, where user can specify the email address of the person to receive the notification
| + | |
− | | + | |
− | Media has three options
| + | |
− | | + | |
− | -”dap” to display the notification on the screen of tenant only
| + | |
− | | + | |
− | -”mail” notification by mail only
| + | |
− | | + | |
− | -”dap,mail” by mail and screen both
| + | |
− | | + | |
− | Continue on failure is a boolean true or false. User can said if he wants to continue even if there is failure
| + | |
− | | + | |
− | Notification Fields User will assign values to the place holders of the notification templates
| + | |
− | | + | |
− | notes:If the notification template does not have placeholder there will not be notification fields
| + | |
− |
| + | |
− | | + | |
− | Click Run to run reasoner
| + | |
− | | + | |
− | Select observation
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | In absence of entities .The system will send the notification to the specified tenant according to the setting on media
| + | |
− | | + | |
− | ===Send Observations===
| + | |
− | | + | |
− | Select Action Send Observation
| + | |
− | | + | |
− | -Enter a name for the Observation
| + | |
− | | + | |
− | -Select the type of Observation to be send
| + | |
− | | + | |
− | -On action on the right side select the Send Observation inside will be a list of fields :
| + | |
− | | + | |
− | Enter values for those fields
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | | + | |
− | -Select observation from where user wants to get the info
| + | |
− | | + | |
− | expected results
| + | |
− | | + | |
− | If observer run is positive and does not return Entity The system will send a new observation with the information entered on new observation fields
| + | |
− | | + | |
− | ===Schedule Observations===
| + | |
− | | + | |
− | -Select Action Schedule Observation
| + | |
− | | + | |
− | -Enter a name for the Schedule
| + | |
− | | + | |
− | -Select the type of Observation to be send
| + | |
− | | + | |
− | -On action on the right side select the Schedule Observation inside will be a list of fields :
| + | |
− | | + | |
− | user needs to specify Initiation Date and time, occurrence and frequency
| + | |
− | | + | |
− | '''Note:'''
| + | |
− | | + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
| + | |
− | | + | |
− | -Run the reasoner
| + | |
− | | + | |
− | Select observation from where user wants to get the info
| + | |
− | | + | |
− | Expected results
| + | |
− | | + | |
− | If observer run is positive and does not return Entity . The system will schedule to send a new observation with the information entered on the settings
| + | |
− | | + | |
− | =Reasoner by Resource=
| + | |
− | | + | |
− | [[File:ReasonerByResource.png]]
| + | |
− | | + | |
− | ===Reasoner For each ===
| + | |
− | | + | |
− | [[File:ReasonerForEachByResourceCreate.png]] | + | |
− | | + | |
− | ====Create====
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select For Each entity
| + | |
− | | + | |
− | 4-Enter a Name
| + | |
− | | + | |
− | 5-Once The Reasoner editor is open
| + | |
− | | + | |
− | 6-Enter Description
| + | |
− | | + | |
− | 7-Select the observer
| + | |
− | | + | |
− | 8-Select Topic from where you are getting the observation
| + | |
− | | + | |
− | 9-Select Action Create,
| + | |
− | | + | |
− | 10-Dialog Box for create will be open Select by recurso
| + | |
− | | + | |
− | 11-Select type of entity you want to create
| + | |
− | | + | |
− | 12-Enter a label to identify the action
| + | |
− | | + | |
− | 13-On right side click on action
| + | |
− | | + | |
− | 14-Select on right side new fields and user can see he can write the info using javascript
| + | |
− | | + | |
− | example :
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newthing,observation,thing,summary){
| + | |
− | newthing._name ="Entity77"+ new Date().getTime().toString();
| + | |
− | newthing.DoubleData = observation.ObsDoubleData;
| + | |
− | newthing.description ="Testing Create by recurso";
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | Note: there are required fields if user does not enter them the reasoner wont run
| + | |
− | | + | |
− | 15-Run reasoner
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | For each entity returned by observer system will create a new entity
| + | |
− | | + | |
− | ====Update ====
| + | |
− | | + | |
− | Same steps as Create
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(updatething,observation,thing){
| + | |
− | updatedthing.description ="Bless be the ones who serve others. They are the ones who find heaven on earth.";
| + | |
− | updatedthing.CityPopulation = 123000123;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | The system will update each entity returned by the observer
| + | |
− | | + | |
− | ====Send Notification ====
| + | |
− | | + | |
− | same as for each send notification by properties
| + | |
− | | + | |
− | ==== Delete ====
| + | |
− | | + | |
− | same as for each Delete by properties
| + | |
− | | + | |
− | ====Send Observations ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation,thing){
| + | |
− | newobservation._name = "SendObserRecurso"+ new Date().getTime().toString();
| + | |
− | newobservation.topic = observation.topic; (Required field)
| + | |
− | newobservation.producer = observation.producer; (Required field)
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | '''Note: there are required fields if user does not enter them the reasoner wont run'''
| + | |
− | | + | |
− | ====Schedule Send Observation ====
| + | |
− | | + | |
− | The same as send observation user just need to specify Initiation Date and time, occurrence and frequency Note:
| + | |
− | | + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation,thing){
| + | |
− | newobservation._name = "SendObserRecurso"+ new Date().getTime().toString();
| + | |
− | newobservation.topic = observation.topic; (Required field)
| + | |
− | newobservation.producer = observation.producer; (Required field)
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | '''Note: there are required fields if user does not enter them the reasoner wont run'''
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | For each Entity returned by the observer the system will schedule to send a new observation
| + | |
− | | + | |
− | ===Reasoner At Least One ===
| + | |
− | | + | |
− | ====Create ====
| + | |
− | | + | |
− | 1-MainMenu/Activities/Reasoner
| + | |
− | | + | |
− | 2-Click create
| + | |
− | | + | |
− | 3-Select At least one Entity
| + | |
− | | + | |
− | 4-Enter a Name
| + | |
− | | + | |
− | 5-Once The Reasoner editor is open
| + | |
− | | + | |
− | 6-Enter Description
| + | |
− | | + | |
− | 7-Select the observer
| + | |
− | | + | |
− | 8-Select Topic from where you are getting the observation
| + | |
− | | + | |
− | 9-Select Action Create,
| + | |
− | | + | |
− | 10-Dialog Box for create will be open Select by recurso
| + | |
− | | + | |
− | 11-Select type of entity you want to create
| + | |
− | | + | |
− | 12-Enter a label to identify the action
| + | |
− | | + | |
− | 13-On right side click on action
| + | |
− | | + | |
− | 14-Select on right side new fields and user can see he can write the info using javascript
| + | |
− | | + | |
− | example :
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newthing,observation,thing){
| + | |
− | newthing._name ="Entity55";
| + | |
− | newthing.DoubleData = observation.ObsDoubleData;
| + | |
− | newthing.description ="Testing Reasoner At least One Create by recurso";
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | '''Note: there are required fields if user does not enter them the reasoner wont run'''
| + | |
− | | + | |
− | 15-Run reasoner
| + | |
− | | + | |
− | Expected
| + | |
− | If Observer return at least one Entity the system will create a new entity if observer does not return entity system won't create the new Entity
| + | |
− | | + | |
− | ====Send Notifications ====
| + | |
− | | + | |
− | same as send Notification by properties
| + | |
− | | + | |
− | ====Send Observations ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation,thing){
| + | |
− | newobservation._name = "SendObserRecurso333"; (Mandatory Field)
| + | |
− | newobservation.topic = observation.topic; (Mandatory Field)
| + | |
− | newobservation.producer = observation.producer; (Mandatory Field)
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | ====Schedule Send Observations ====
| + | |
− | The same as send observation user just need to specify Initiation Date and time, occurrence and frequency
| + | |
− | Note:
| + | |
− | | + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation.producer = "Copertino";
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If Observer return at least one entity the system will Schedule to send a new Observation
| + | |
− | | + | |
− | ===Reasoner Only Observations ===
| + | |
− | | + | |
− | ==== Create ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newthing,observation){
| + | |
− | newthing._name ="EntityObsOnlyRecurso";
| + | |
− | newthing.DoubleData = observation.ObsDoubleData;
| + | |
− | newthing.description ="Testing Reasoner Obs Only Create by recurso";
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If the run of Observer is positive the system will Create a New Entity
| + | |
− | | + | |
− | ====Send Notifications ====
| + | |
− | | + | |
− | same as send notification by properties
| + | |
− | | + | |
− | ====Send Observations ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation._name = "SendObserRecursoObsOnly";
| + | |
− | newobservation.topic = observation.topic; (Mandatory field)
| + | |
− | newobservation.producer = observation.producer; (Mandatory field)
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If the run of Observer is positive the system will Send the observation
| + | |
− | | + | |
− | ====Schedule Send Observations ====
| + | |
− | | + | |
− | The same as send observation on Action select schedule observations user just need to specify Initiation Date and time, occurrence and frequency
| + | |
− | | + | |
− | '''Note:'''
| + | |
− | | + | |
− | Occurrence 0 must enter frequency like; sec, mins, hours etc If user for example enters frequency days that means observation will be send every day forever Starting on the Start date and Time
| + | |
− | | + | |
− | Occurrence 1 frequency will be ignore. The system will send that schedule observation on the Start Date and Time only once
| + | |
− | | + | |
− | Occurrence 2 or more must enter frequency. The system will send the observation according to frequency and Start Date and Time
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation._name = "ScheduleSendObserRecursoObsOnly";
| + | |
− | newobservation.topic = observation.topic;
| + | |
− | newobservation.producer = observation.producer;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If the run of Observer is positive the system will Send the observation
| + | |
− | according to the schedule
| + | |
− | | + | |
− | ===Reasoner Absence of things ===
| + | |
− | | + | |
− | ====Create ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newthing,observation){
| + | |
− | newthing._name ="EntityDoNotReturnRecurso111";
| + | |
− | newthing.DoubleData = observation.ObsDoubleData;
| + | |
− | newthing.description ="Testing Reasoner Do not return entity Create by recurso";
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If Observer do not return an entity the system will create a new entity
| + | |
− | | + | |
− | ====Send Notifications ====
| + | |
− | | + | |
− | ====Send Observations ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation._name = "SendObserRecursoNoEntity";
| + | |
− | newobservation.topic = observation.topic;
| + | |
− | newobservation.producer = observation.producer;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If Observer do not return an entity the system will Send Observation
| + | |
− | | + | |
− | ====Schedule Send Observations ====
| + | |
− | | + | |
− | <syntaxhighlight lang="javascript">
| + | |
− | function(newobservation,observation){
| + | |
− | newobservation._name = "ScheduleSendObserRecursoNoEntity";
| + | |
− | newobservation.topic = observation.topic;
| + | |
− | newobservation.producer = observation.producer;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | Expected
| + | |
− | | + | |
− | If Observer do not return an entity the system will Schedule and send observation according to schedule
| + | |
− | | + | |
− | =Reasoner Increment, Decrement, Set =
| + | |
− | | + | |
− | First this only works for numeric fields like integer or double
| + | |
− | when user set a supported property that is double or integer of a type of entity he has to check the check box for atomic updates
| + | |
− | Then this only works for reasoner for each by property action updates
| + | |
− | | + | |
− | on the right side user will be able to select from set, increment or decrement
| + | |
− | then there is an entry box to enter a numeric value on how much you want decrement or increment or set is just to set a fix value
| + | |
− | | + | |
− | for example Field to update is Temp max that initially was 2 then user select increment then enter 2 then user runs reasoner
| + | |
− | on temp max the result will be 4
| + | |
− | | + | |
− | [[File:ScreenShotDecIncSet2016-03-11.png]] | + | |
− | | + | |
− | =Reasoner proximity Area=
| + | |
− | | + | |
− | Proximity area option will allow the user to set an entity to the proximity area field to a new entity created by the reasoner
| + | |
− | | + | |
− | User can do this several ways
| + | |
− | | + | |
− | * User just selects the entity from the list
| + | |
− | * User does a binding where user selects the proximity area that was selected on the observer
| + | |
− | * Using Javascript he can do the two previous options
| + | |
− | | + | |
− | example :
| + | |
− | | + | |
− | proximityarea = observation.proximityarea;
| + | |
− | | + | |
− | proximityarea = "/amtech/things/entities/TempEntity/TempNewPort";
| + | |
− | | + | |
− | | + | |
− | [[File:ReasonerProximityArea.png]] | + | |
− | | + | |
− | Note:In case Entity does not exist results windows wont alert user
| + | |