FibaroLink uses the Fibaro api to push data from Domoticz devices to a Fibaro server. The settings can be accessed from the setup menu: setup > more options > data push > fibarolink. The screen has two areas: the left is for setting individual links between devices. On the right is the global setting to reach the fibaro server; first enter the required settings (ip/user/password/active) and save them.
The link uses three features from the Fibaro api:
- Updating global variables: global variables are not visible in the Fibaro overview, but can be used to store (predefined) variables. The value can be any value, or a predefined value from a list.
- Updating virtual devices: virtual devices are visible in the overview. These devices have properties that can be set through the api.
- Starting scenes: Scenes are Fibaro's equivalent of Domoticz events.
Currently the FibaroLink will update global variables and virtual device properties, or trigger a scene. Eventually the functionality will be expanded, depending on demand and Fibaro v4 functionality.
Setup a link by filling out the left part of the screen. Select the device you want to push from the device name dropdown. Next select the value you wish to send from the dropdown. Most switches only have a value "Status" which will send the state of the device, e.g. "On", "Off" or the dim level. The same goes for security devices. Most sensors store multiple values; a weather sensor can supply temperature, humidity, barometer, etc.
Next select the link type: "global variable", "virtual device" or a scene. Depending on the choice the next options will change; for a global variable enter the target variable name, for a virtual device enter the target id and property name. For a scene enter the scene id. The device/scene id can be found in the url when you click on the virtual device or scene in the home center interface. The properties can be viewed by opening http://homecenterip//api/devices in a browser. It is recommended to start with a virtual device with a label in homecenter, set the label as "main", and enter target property "ui.Label1.value" in the FibaroLink. This will show the pushed value as a label on the virtual device.
Set the link active and save it.
Every time a device that has an active link changes in Domoticz, the link software finds matching device id's in the FibaroLink table, and the value(s) will be pushed to the homecenter. It's also possible to setup a virtual device with multiple labels; a virtual smart meter for instance that shows current usage, total usage, current delivery, etc. Create a link for each value in the menu and send it to the required label, e.g. "ui.Label1.value", "ui.Label2.value", all with the same device id as target. Set the label you want to see in the homecenter overview as "Main", the other labels can be viewed when clicking on the virtual device. Updating virtual device values or a global variable will not act as a trigger for scenes in Fibaro. They can however serve as a secondary check to something else. If you do need to trigger a scene from Domoticz, use the scene link.
Setting up a scene link will only work with on/off devices. When "Scene" is selected as link type, the device list will change to only show these devices. Use the "start scene on" option to select "On" or "Off" as the trigger to run the scene. This will enable one Domoticz device to run two scenes, which in turn can turn on and off a Fibaro device. When the link is saved and enabled, the scene will trigger whenever the related Domoticz device is turned on (the status has to change to "On" or "Off", dim levels will not work). In Fibaro, setup a new scene that will be triggered. Uncheck the "active scene" checkbox to make sure it only runs when activated throught the api. A scene always needs a trigger (the "If" part), even when we are just triggering it from the api. The easiest way to do this is to setup a global variable (e.g. FibaroLink) that can serve as the dummy if statement, e.g. "If FibaroLink = On". Keep in mind the scene logic will not actually check the variable before running the execution part.