To operate the Merlin Prolift 230T garage door via Alexa and Siri Voice Commands.
N.B. The operation of the webpages for Siri Voice Commands and depend on the use of VPN.
The relay features a highly versatile dry (potential-free) contact mode. By isolating the relay outputs from the line voltage, it allows you to control isolated circuits like garage doors, low-voltage garden lighting, and compatible central heating boilers. It connects to the Aqara M100 router via Zigbee.
How the Dry Contact Mode Works
Configuration: By default or by removing the red jumper wire connecting \(L-IN\) and \(L-OUT\) on the module, the T2 enters dry contact mode. This ensures that the module’s power source is completely isolated from the two output relays (\(L1\) and \(L2\)).
Switching: When a relay is triggered, it simply closes the circuit between the common (\(COM\)) and switched output (\(L1\) or \(L2\)), acting exactly like a standard physical button press without introducing external voltage.
Common Use Cases
Garage Doors: Many garage door openers require a dry contact button-press signal to open or close. By wiring the T2’s dry relay to your garage door’s wall button terminals, you can integrate it securely into your Apple Home, Google Home, or Amazon Alexa ecosystem.
L and N are connected to the 240 V mains, while LOUT and L1 are connected to the P/B and GND, as is the bell push button for the gaarage door.
1. Before activating the accessory, make sure that the Aqara Home app is downloaded (e.g. onto iPhone) and Aqara M100 hub is installed.
2. Open the app,"tap Home"and then tap"+"in the top right corner to enter"Add Device
(Accessory)"page. Select"Dual Relay Module T2", and add it according to instructions and renamed eg Garage
* If the connection fails, move the accessory closer to the Hub and try again.
To trigger a routine in Node-RED whenever a webpage is opened, use the ui-control (or ui_control) node from the Node-RED Dashboard or Dashboard 2.0 (FlowFuse). This node emits a message on its output port whenever a browser client connects or loads the UI.
Since I have more than a single Flow in Node Red on the Raspberry Pi Zero 2w, then the ui_control node must recognise its individual page in which it resides. The ui_control (Catch Page Open) node with its ui_base config node of My Dashboard [/dashbooard] is on a Flow page named GarageDoor. The ui_control node outputs Page/Tab Change events Only. The Switch (Is Garage Door Page?) node responds only to received outputs with the Property of msg.name equal to GarageDoor and triggers the Change (Set Type: single) node which clears the incoming msg.payload and sets the outgoing msg.payload.type to single. The mattergenericswitch (Up&Over)of @sammachin/node-red-matter-bridge is set as type Momentary Switch.
N.B.The mattercommand or matterwriteattr from @sammachin/node-red-matter-controller cannot be used to control the Aqara Dual Relay Module T2 device since it connects to the Aqara M100 relay via Zigbee and is not matter compatible, hence the need to use a virtual mattergenericswitch to contol the device within Alexa rather than directly from Node Red.
For Siri to access the webpage it needs to be viewable. Placing the dashboard 2 ui-button (Up&Over) ensures the webpage is viewable and can consequently be added to the iPhone's dashbord so that it can be called by Siri.
Now open the webpage in the iPhone browser and save to the homescreen before it becomes active in the next step.
Also advisable to ensure some other web page is opened in the browser after saving to the homescreen as otherwise the next time you access the browser it will open the Garage Door.
The node red Up&Over switch automatically runs in the webpage whenever opened by Siri but requires a routine associated with it in Alexa so that it calls the Garage switch (set up in the Aqara app) to operate Aqara T2 relay and garage door.
In Alexa add a new routine, and enter name as eg up-over.
To WHEN add an Event from Smart Home and choose Up&Over switch (as set up in Node Red), and select Single-push. The node red Up&Over switch is in the webpage called
To ALEXA WILL add an action to activate the garage door from Smart Home and select Switches, choose the specific switch Garage. It should indicate Power: on when selected.
Optionally add another action (Alexa Says) customised as garage door activation. Choose Alexa device on which it is said.
Save.
Similarly set up an Alexa Voice command named eg Garage, so that when anyone says "Alexa, Garage door" ALEXA WILL switch Garage power: on.
Build a simple automated command to give Siri a script that maps your voice command directly to the web address, bypassing the application directory search entirely.
Open the built-in Shortcuts app on the iPhone.
Tap the + (plus) icon in the top right corner to create a new shortcut.
Tap Add Action, search for Open URLs, and select it.
Tap the faint blue "URL" text field and type or paste the exact website address used by your web widget.
As using a local IP address type http:// directly before your numbers.
Tap the small dropdown arrow at the very top of the screen (next to "Open URLs") and select Rename.
Important: Change the name to the exact phrase you want to say out loud to Siri (e.g., "garage door").
Close the app. Try triggering Siri by saying, "Hey Siri, [Your Shortcut Name]".
To have Feedback of the Garage Door opening and closing status both visually on the iPhone when issuing a Siri command, and Audibly on the Amazon Echo when an Alexa command. The status should also be visually checkable. Mobile notifications independent of a VPN should also occur.
Ikea's matter over thread MYGGBETT door/window sensor associated with the Aqara M100 router used for sensing whether the garage door is open/closed via Node Red and mattersubscribe of @sammachin/node-red-matter-controller (MYGGBETT garage | stateValue).
(See §Accessing Matter Pairing Code; §Add Matter Device to Node Red)
MYGGBETT garage | stateValue node
The boolean output of MYGGBETT garage | StateValue is converted to Open or Closed as msg.payload in the Function node Set Status. The Change node uses JSONATA to add a timestamp to msg.time=$moment().local().format('ddd DD/MM/YY h:mma' and then combines it with the msg.payload in msg.topic=" " & $string(payload) & " " & $string(time). The required Colours are then set depending on the status of the msg.payload as determinesd by Check Status node.
The output to @flowfuse/node-red-dashboard : ui-text node Activity node shows the time and date of the msg.topic. However when the garage door opens then the Text output is shown in red rather than black, so as to highlight the event. The output is shown below that of the Blinds open/close status on the Blinds Webpage. Setting the colour when OPEN or CLOSED uses msg.ui-update.color and text string of "red" or "black" respectively.
N.B. To take effect the Style: Apply Style in the ui-text node Edit Panel must be checked.
The colour button of the dashboard 2 ui-button (Up&Over) also has its backgroud colour set to Red when the garage door is opened as sensed by the MYGGBETT garage | stateValue. The colour is Set by msg.ui_update.buttonColor and connected to the garage's Manual Trigger Button via a link node.
The output to @flowfuse/node-red-dashboard : ui-text node Activity node shows the time and date of the msg.topic. However when the garage door opens then the Text output is shown in red rather than black, so as to highlight the event. The output is shown below that of the Blinds open/close status on the Blinds Webpage. Setting the colour when OPEN or CLOSED uses msg.ui-update.color and text string of "red" or "black" respectively.
N.B. To take effect the Style: Apply Style in the ui-text node Edit Panel must be checked.
The colour button of the dashboard 2 ui-button (Up&Over) also has its backgroud colour set to Red when the garage door is opened as sensed by the MYGGBETT garage | stateValue. The colour is Set by msg.ui_update.buttonColor and connected to the garage's Manual Trigger Button via a link node.
The Change node (set email Header) sets msg.payload=msg.topic and msg.topic="Garage". The to mobile e-mail node from node-red-node-email sends the msg.payload as an email, with a subject of msg.topic.
Email notify works best using an output email solely used for Notifications from Node Red, to omes own hotmail address which is managed in Outlook so that those emails are moved to a particular Inbox folder (eg Alarm) rather than appearing in the general Inbox.
The MYGGBETT garage device is added to Alexa using the pairing code as explained below. Two Routines added:
MYGGBETT Garage open for the WHEN event MYGGBETT garage opens then Alexa says "Garage opening".
and Push Notification
Send Notification garage open
MYGGBETT Garage close for the WHEN event MYGGBETT garage closes then Alexa says "Garage shut".
and Push Notification
Send Notification garage shut
The MYGGBETT device added in the Aqara App to the Aqara M100 and renamed MYGGBETT garage. The matter pairing code can be accessed in the App and used for Adding the matter device to Node Red or Alexa.
Adding a Matter device over Thread to a Controller to Node Red:
When you connect a contact sensor such as the IKEA MYGGBETT through a Matter bridge to Alexa, it is brought over strictly as a status sensor. Because it is a secure Matter device, Alexa locks it down so it cannot be controlled or easily targeted by traditional smart home actions.
Instead of adding the sensor as an Action, you need to use Alexa's built-in custom command feature. This forces Alexa to look for the device exactly as if you spoke it out loud.
Open the Alexa App.
Tap More (bottom right) and select Routines.
Tap the plus (+) icon to create a new routine.
Tap When this happens ➔ select Voice.
Type your simple phrase: "Is the garage open" or "Garage status" and tap Next.
Tap Add action ➔ scroll down and select Customized (at the very top).
Type exactly what you want Alexa to do behind the scenes:
“Is the MYGGBETT garage open?”
Tap Save.
Customized Action Setup
To make sure it is running perfectly on your Aqara M100 setup, verify your routine looks exactly like this:
When this happens: You say "Alexa, is the garage open" (or your favorite short phrase).
Action: Select Customized (found at the top of the action list).
Text input: Type out the exact phrase: "Is the MYGGBETT garage open?"
Why this is the perfect solution
Keeps Node-RED working: Node-RED can continue to poll and watch the exact name "MYGGBETT garage" through your local network.
Keeps Matter happy: The Aqara M100 handles the local Matter-over-Thread communication, keeping your garage sensor fast and reliable.
Gives you simple voice control: You only ever have to say two words to your Echo speaker to get a direct answer.
If you ever add more Matter devices to your Aqara M100, you can use this exact same custom routine trick for them too.