Houdini MC allows you to send are receive instructions to and from micro-controllers using GET or POST requests (hereafter we will refer to these requests as webrequests)
Preliminaries: Assume a Raspberry Pi, and Arduino based mechanism of a smart prop or even your mobile phone. These devices can interact with Houdini MC mainly using webrequests. When the Raspberry Pi or the Arduino receives a webrequest from Houdini MC, it performs a predefined action. Similarly, when Houdini MC receives webrequest from a connected on the same local network device, it also performs a custom action.
In other words, this communication procedure requires two parties. A sender and a receiver. Both Houdini MC and micro-controllers can serve either as senders or receivers. If Houdini MC awaits instructions from a micro-controller so as to perform an action, then it acts as receiver. But if Houdini MC triggers a script on micro-controllers, then it serves as a sender.
More details about webrequests: Each webrequest consist of 2 parts. The first part is the IP of the receiver and the second part is a custom TERM. These 2 parts shape a unique URL. A script on the receiver continuously awaits for webrequests from a sender. If the received webrequest contains a desirable TERM, then the receiver performs an action.
E.g.: Assume an Arduino connected on the same local network with Houdini MC. In this scenario, the Arduino acts as a receiver while Houdini MC as well as all the other connected on the same network devices serve as senders. Assume also that the local IP of the Arduino is 22.214.171.124. A script on Arduino continuously listens for an incoming webrequests from a sender. If for example a sender pings the URL: 126.96.36.199/SAMPLE, Arduino receives the term SAMPLE and performs an action. Overall, Arduino programmer assigns as set of actions for each expected TERM.
To start with, execute Houdini MC and go on “Settings->Connections” tab. Enable the “Incoming HTTP Requests” and note down the given URLs. This option allows Houdini MC to perform as a receiver.
Please make sure that your router always assign Houdini’s PC the same IPv4 address. From this moment, Houdini MC is ready to receive incoming requests.
Close the settings menu.
You will now noticed a green bulb icon on the top of the console. This icon indicates that Houdini MC is ready to accept incoming requests.
To test the ability of the software, use your tablet/mobile device and point a browser tab at the noted URL. In our case, the URL for “Clue Button” is 192.168.178.101:14999/clue while the URL for “Panic Button” is 192.168.178.101:14999/panic.
Please make sure that both, Houdini MC and your mobile device are connected on the same local network. After sending the request, you will notice that the color of the bulb icon changes, based on the type of the request.
Outgoing and incoming connections can be affected by the presence of firewall or antivirus software on the PC connection. Windows comes with a built-in Internet Firewall that is active by default and blocks suspicious traffic. You can turn off this firewall (not recommended by Microsoft) or configure it to allow connections from and to specific ports.
To open a port in the Windows firewall:
- On the Start menu, click Run, type WF.msc, and then click OK.
- In the Windows Firewall with Advanced Security, in the left pane, right-click Inbound Rules, and then click New Rule in the action pane.
- In the Rule Type dialog box, select Port, and then click Next.
- In the Protocol and Ports dialog box, select ANY. Select Specific local ports, and then type the port number of the instance, such as 1433 for the default instance. Click Next.
- In the Action dialog box, select Allow the connection, and then click Next.
- In the Profile dialog box, select any profiles that describe the computer connection environment when you want to connect and click Next.
- In the Name dialog box, type a name and description for this rule, and then click Finish.
1.How to receive instructions from a controller
- Go on <Scheduled Events> and select “Add Event”
- Select “Incoming Event from Smart Mechanism”
- Use a “Custom_Term” and write down the entire URL (e.g. http://192.168.178.104:14999/Custom_Term)
- Select action (e.g. play a sound, trigger another device, play video, control HUE scenes, etc.)
- Press “Save Event”
- Now, every time a connected on the same network device pings this URL when the game is active, the event will be executed! So simple! Again, to test you smart event, ping the URL directly from your mobile phone (since your phone is connected on the same network)
To see how you send instruction through an Arduino please follow this tutorial
To see how you send instruction through a Raspberry Pi please follow this tutorial
2.How to send instructions to a controller
You can also use Automation Menu to send GET and POST requests to a micro controller.
- Go on <Automations->HTTP Requests> menu
- Create a new GET or POST request
- Name the request (in the depicted case is “End_The_Siren”)
- Press Execute to send the request
- The Response text box will display the response from the device (if any)
- By pressing the “Save Changes” button, the selected webrequest can be stored for later USE. Stored request are available under the “Saved Requests” section.
Stored requests are accessible not only from the <Automations> menu but also from the <Shortcuts> tab.
Finally, it is worth noting that stored requests can also be executed as part of scheduled events. Simpy, go on <Scheduled events> select a new timed on smart event and assign the stored webrequest. If timed evens are used, Houdini MC will send the stored webrequest on a specific timestamp. In case of smart events, Houdini MC will send the stored webrequest when e.g. players solve a riddle.
To interact with High -Voltage Devices kindly refer to this tutorial