Hi @dfaber,
thanks a lot for the great introduction. It helped me a lot to understand how S2 / Opportunity Loads works. ![]()
I am trying to use Opportunity Loads to control my air conditioner for cooling/heating.
My setup is as follows:
- I put a Shelly in front of the air conditioner to measure its actual power consumption.
- The air conditioner has to be controlled via a cloud API. It does not have a dry-contact input, and simply disconnecting the power with the Shelly switch is not an option, as the air conditioner needs to shut down properly.
- I set up the S2 resource as described in your introduction.
- The Shelly power measurement is connected to the resource and appears to be correctly received. The power measurement is also shown correctly in the resource debug messages.
- The resource status is:
CEM connected(opportunity_loads) - NC, OBMC - The virtual device is visible in the Opportunity Loads priority list.
- I have disabled the
NCcontrol type, so the resource is usingOPERATION_MODE_BASED_CONTROL.
The resource currently reports the following:
{
"message_type": "OMBC.Status",
"active_operation_mode_id": "92fdfd1f-c448-4665-98ac-95ab66db8211",
"operation_mode_factor": 1
}
The SystemDescription contains two operation modes:
Off→ 0 WOn→ 1000 W on L1
So far, everything seems to be configured correctly, but I am not getting any further.
1. Manual Auto / On / Off control
There is no switch in the main Venus OS switch menu for this virtual device, and therefore I cannot select Off / Auto / On manually.
How is this supposed to be configured?
Ideally, I would like to have the same kind of manual override as the built-in Opportunity Loads devices.
2. Getting the S2 decision into Node-RED
I want to use the result of the Opportunity Loads decision to control the air conditioner through its cloud API.
I was looking at the ModeInstruction / ModeRequest nodes, but I don’t seem to get any output from them.
Am I using the wrong node, or is there a specific configuration required to receive the selected operation mode from the S2 resource?
3. How to test/debug the setup
What is the recommended way to debug an Opportunity Loads setup like this?
I would like to simulate surplus/grid conditions without waiting for actual solar production.
For testing, I created a virtual grid meter in Node-RED and temporarily replaced the real grid meter with it. I can simulate, for example, 1000 W of grid surplus.
Is this a suitable way to test the Opportunity Loads logic, or is there a better way to create a fake surplus / grid condition?
For reference, these are the messages currently coming from my resource:
{
"message_type": "ResourceManagerDetails",
"resource_id": "68aa3bba-e6fe-4877-a07a-a50ade27e3ec",
"name": "Panasonic Ethera",
"roles": [
{
"role": "ENERGY_CONSUMER",
"commodity": "ELECTRICITY"
}
],
"manufacturer": "Panasonic Self Made",
"model": "Ethera",
"serial_number": "1234",
"firmware_version": "1.0.0",
"available_control_types": [
"OPERATION_MODE_BASED_CONTROL"
],
"provides_forecast": false,
"provides_power_measurement_types": [
"ELECTRIC.POWER.L1"
],
"instruction_processing_delay": 0
}
{
"message_type": "SelectControlType",
"control_type": "OPERATION_MODE_BASED_CONTROL"
}
{
"message_type": "OMBC.Status",
"active_operation_mode_id": "92fdfd1f-c448-4665-98ac-95ab66db8211",
"operation_mode_factor": 1
}
And the current OMBC.SystemDescription defines:
Off:
L1 = 0 W
L2 = 0 W
L3 = 0 W
On:
L1 = 1000 W
L2 = 0 W
L3 = 0 W
Any advice on the correct way to configure the manual override, receive the OMBC decision in Node-RED, and test the resource would be greatly appreciated.
Thanks!




