Every room, light, blind, and thermostat value is serialized into the shared State.
JEV FOR SMART HOME CONTROL
Jev Smart Home
Give the house one natural-language command. Jev evaluates several possible meanings at once, then deterministic code applies only the answers that matter.
- Natural-language command
- Five Jev judgments
- Code updates home state
01 / LIVE HOME
Control a house with one Jev request
The house below is real client state inside this page. Jev evaluates the command; deterministic application code decides whether to act and changes only these simulated devices.
Living Room
4 devicesKitchen
3 devicesBedroom
4 devicesWaiting for a command
Choose a preset or write one supported atomic command.
Command history
Up to five commands in this browser session. Nothing is stored.
No commands yet.
02 / WHAT JUST HAPPENED
Before → Jev → After
Intent, scope, device, action, and compound are answered together.
Only compatible, sufficiently probable atomic commands update the simulated house.
03 / SPECULATIVE FAN-OUT
One request, many possible questions
Before the request, the application does not know whether the text is a command, which room it names, which device matters, or which action applies. It still asks all five questions at once. Jev returns typed answers in parallel, and code consumes only the path that matters.
A speculative answer can be valid and still be irrelevant. The signal viewer labels which answers application code consumed and which it ignored.
04 / JEV DECIDES, CODE ACTS
Semantic judgment and state mutation stay separate
Decides meaning
- Intent
- Room or whole-house scope
- Device class
- Action
- Whether the command is compound
Owns execution
- Checks probability thresholds
- Validates device/action compatibility
- Updates simulated devices
- Adds or subtracts exactly 1°C
- Maintains session history
05 / ONE REQUEST VS SEQUENTIAL CALLS
Ask the decision tree up front
One fan-out request
Waiting between questions
This is an architecture comparison, not a performance benchmark. The live demo makes exactly one evaluation request per Run.
06 / IMPLEMENTATION
Evaluate once, then mutate ordinary state
This original TypeScript sketch shows the boundary. The Jev API guide covers the validated endpoint and provider setup.
const response = await fetch("/api/evaluate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
state: serializeHomeAndCommand(currentHome, command),
questions: {
intent: choice(intentOptions),
scope: choice(scopeOptions),
device: choice(deviceOptions),
action: choice(actionOptions),
compound: boolean("Does this request contain two or more different device-action pairs? Applying one action to all matching devices is still atomic."),
},
}),
});
const { result } = await response.json();
const signals = validateSmartHomeAnswers(result.answers);
const policy = resolveSmartHomeCommand(signals, 70);
if (policy.status === "execute") {
// Ordinary application code changes the simulated state.
currentHome = applySmartHomeCommand(currentHome, policy).home;
}07 / LIMITATIONS
A bounded simulator, not an IoT integration
- Three simulated rooms
- Lights on or off
- Blinds open or closed
- Thermostat warmer or cooler by 1°C
- One atomic command at a time
- Control real devices
- Connect to Home Assistant, Alexa, Google Home, or Matter
- Support locks, cameras, alarms, scenes, schedules, or exact values
- Use a second model to split compound requests
- Generate conversational answers
A fuller system could send compound requests to a generative model for splitting and conversation to a generative response path. This page deliberately demonstrates only Jev plus deterministic smart-home execution.
08 / SOURCES & NEXT STEPS