Open the App. You will be asked to connect to a Host. Tap "DEMO HOST ADDRESS" and change the IP to the IP of your Server, do not change the port number (everything after the IP. This should look like `192.168.1.15:59661`).
As long as your Shelly has not been given the credentials for a WLAN, it will create an access point (AP) for configuration when connected to the supply voltage. This AP will appear in your list of WLAN.
If your Shelly is already connected to your WLAN, you must find the assigned IP-address (e.g. by looking into your router). Enter this IP Address in your browser and you will get the configuration page.
To understand the underlying concept of actors and machines, please see the "configuration part" of the documentation. Four our example we will assume we have one actor (Shelly) per machine.
Prior to modifying the configuration files the proper working of the MQTT broker should be tested. To test the broker it is the best to use a second (linux) computer with a different IP address. To test if the broker allows access from an external IP address open a MQTT subscriber on the second computer by typing <br>
`mosquitto_sub -h 192.168.1.15 -t /test/topic` (change the IP address to the address of your server).<br>
to send a message to the other computer. If the message appears, everything is ok. When not, this should be first solved, as a connection to the Shellies will not be possible this way.<br>
If you are interested in communication between the Shellies and the BFFH-Server you can use<br>
Find the line which starts with `, listens`. You will find three lines stating addresses. The third address needs to be changed to the address of your MQTT broker (most likely the IP address of your BFFH server)
Please be aware that "Identifier-of-your-Machine" is the internal ID for BFFH. The name of the machine shown in the App will be "Name of the Machine".<br>
The given permissions are ok to start with (if you did not change the roles of the Testuser). To find out more about the permission concept see the "configuration" part of the documentation.
Open the App, an you should see the newly created machine in the list. By tapping "USE" you will activate the machine (Shelly will click, the MQTT-listener should prompt an "on"), by tapping "GIVEBACK" you will deactivate the machine.
A QR code allows users to directly enter the UI of the machine, where the machine can be used or given back. The QR code should contain the following content:<br>
QR-Codes can be generated on various pages in the internet (e.g. https://www.qrcode-generator.de), the "Type" of the QR code should be "Text". The generated code can be directly scanned by the FabAccess App in the machine overview.
If a user assigned to this role uses the chainsaw, no other user is able to use it until this user gives the chainsaw back. To unlock the machine from the user, admin permissions are needed. So there could be an admin role like
In version 0.2 a door opener functionality is not implemented. The specific behaviour of a door opener is, to activate a door opening relay only for a few seconds. This behaviour is not yet implemented in FabAccess, but there is decent way to implement it by other means.
The simple Shellies (1, 1pm, 2.5) have an internal timer "AUTO-OFF" which can be set. To use this timer you have to access the settings of the Shelly via a browser on your computer. To do so, you have to know the IP address your Shelly is assigned to. This can normally found out in the router of your WiFi. By entering this IP address in your browser you will access the main menu of your Shelly.
It is important all users have admin aka manage permissions, as the request to open the door by a user, that the door "in Use" by this user. The door can only be re-activated when the previous user "un-uses" the door or if another user can "force free" the door prior to using the door him/herself.<br>
**Note** in this special case, where all users will need admin capabilities the role could also contain only the permission `lab.door.use` and all permissions (disclose, manage, read, write) assigned to the machine would simply match `lab.door.use` (e.g. disclose = "lab.door.use"`).