We sent a 6-digit code to your email. Enter it below to sign in.
Code expires in 10 minutes
7-day free trial · No credit card required
Loading your automation jobs…
What type of device do you want to save?
Share your unique referral link. Every friend who signs up and subscribes earns you 1 free month.
Typical use cases:
How it works in 30 seconds:
Why use it?
Adding a device:
Using a device in a job:
Editing & deleting:
316541 in .../plant/316541/.... Copy that number.vrm.victronenergy.com/installation/12345/...). Solar IOT's Fetch Installations button will pull this for you, so you don't need to copy it manually.https://maker.ifttt.com/use/abcd1234.... The bold part is your key. Copy it.
pool_on (or any unique name).pool_off and the “Turn off” action.
pool_on / pool_off). Save.
geyser_on / geyser_off, miner_wake / miner_sleep, anything. They just have to match between IFTTT and Solar IOT exactly.https://abc123.ui.nabu.casa (Nabu Casa Remote)https://your-domain.duckdns.org (your own reverse proxy)http://homeassistant.local:8123 (works only if Solar IOT is on the same LAN — usually not the case for cloud-hosted Solar IOT)
switch.turn_on / switch.turn_off (or the entity's turn_on/turn_off service). If you need custom behaviour (e.g. running a script), point the entity at an input_boolean and use HA automations to do the rest.The four-step model
SESSION.0.SessionID) and Name this captured value (e.g. session_id). Then use it as {{session_id}} in Steps 2/3/4. Leave Path blank to skip.Two connection modes
Private setup (recommended)
tskey-auth-…) into the Tailscale auth key field on the device.http://device:8080 or http://100.x.y.z:8080. MagicDNS hostnames work.Worked example: Antminer running LuxOS
{"command":"logon"} Extract: SESSION.0.SessionID Save as: session_id{"command":"curtail","parameter":"{{session_id}},wakeup"}{"command":"curtail","parameter":"{{session_id}},sleep"}{"command":"logoff","parameter":"{{session_id}}"}
{{session_id}} (the template) in Steps 2/3/4, not a hardcoded session value. Hardcoded values go stale immediately — each login produces a new ID. Solar IOT will warn you in red if you accidentally paste a literal session ID.The five condition types
How rules combine (AND logic)
The dead-band — and why it matters
When neither the full ON rules nor the full OFF rules are met, the job holds the current state — this is the dead-band. It exists to stop your device flapping on/off every minute as solar fluctuates near a threshold.
Poll interval
Default is 60 seconds — Solar IOT reads from your inverter once a minute, evaluates, and acts. You can go as fast as 10 seconds if your inverter API allows it (some have rate limits). Slower is fine too — set 300 (5 min) if you want gentler polling.
How it differs from the normal Battery OFF rule
When to use it
Configuring it
30). Leave blank to disable.Top of each card
The 24-hour timeline
Totals like “On: 4h 23m · Off: 19h 37m” show below — fast read of how much your device ran today.
The 4 live stat blocks
Condition chips
Below the stats, you'll see two rows of chips: Turn on and Turn off — one chip per rule you configured. Green ✓ means that rule is currently passing. Red ✗ means it's failing.
The per-job log (click “Log ▾”)
Every ON / OFF / ERROR event is recorded with timestamp, solar reading at that instant, and a human-readable note. Shows the last 500 events.
What you see
AI Insights (Generate Recommendations button)
Click ✨ Generate Recommendations at the top of the Reporting tab. Solar IOT sends your last 7 days of job activity to an AI model and gets back tailored threshold suggestions — e.g. “Your solar usually peaks at 4.2 kW around midday; consider raising your Turn ON solar threshold from 2 kW to 3 kW to ensure cleaner energy use”.
📱 iPhone / iPad (Safari)
🤖 Android (Chrome)
💡 Tips for mobile use
The free trial
Plans (after trial)
Subscribing
Cancelling / managing billing
Referrals
🔴 Job isn't switching the device on / off
🔴 Battery, Load, or Grid shows “—”
These come from your inverter's API. If solar watts work but battery/load don't:
🔴 “Too many login failures” or auth errors
🟢 What does “dead-band” mean?
Dead-band = neither your ON rules nor your OFF rules are fully met right now. The job holds its current state instead of toggling. This stops rapid flapping near a single threshold. See Section 14 — Jobs & Thresholds for examples.
🟢 What does the ▶ Now button do?
Triggers an immediate poll for that job without waiting for the next scheduled interval. The job reads the inverter, evaluates rules, switches if needed — all in real-time. Great for testing your config after changes.
🟢 Can I run more than 3 jobs?
Trial accounts are limited to 3 active jobs. Upgrade to a paid plan ($10/mo or $99/yr) for unlimited. See Section 19 — Billing.
🟢 How do I share an inverter or plug across jobs?
Save it once as a device on the Devices tab (Section 03), then reference it from each job by picking it in the 📱 My Devices dropdown. One source of truth for credentials — and updating the device propagates to every job using it.
🟢 What time zone does Solar IOT use?
All times (logs, dashboards, time-window thresholds) use the server's time zone, which is set to South African Standard Time (SAST / UTC+2). Your inverter data is tagged with whatever timestamps the inverter cloud returns.
🟢 Still stuck?
Email support@solar-iot.co.za — include screenshots of the dashboard, the failing job's condition chips, and any recent log lines. The more detail, the faster we can help.
Real-time insights across all your automation jobs
Loading…
Loading events…
Every unique email ever imported — aggregated across all lists.
Click the button above to load.
Loading…
Automated multi-step email workflows that enrol users based on their account data.
Loading…
Select a list above.
Preview every transactional email the system sends to users.
Loading…
Users matching all conditions below will enter this journey. Leave empty to match all users.
Enter a customer email to see which steps they have taken and where they currently are in the journey.
All registered users with trial status, subscription info, and admin actions.
Click Load Users above.
https://miner.tail1234.ts.net) OR private tailnet hostname (e.g. http://miner:8080) if you also provide an auth key below.:8080) — make sure to include it if needed.{{variable}}.Name: valuedata.token or SESSION.0.SessionID{{name}}{{variable}} for values captured from Step 1{{variable}} for values captured from Step 1{{session_id}} it will be empty here; hardcode a session id you want to clear (handy for recovering from a dangling session).{{variable}} for values captured from Step 1{{session_id}} — not a hardcoded value.2xx. Examples: 200, 200,204, 200-299, anyℹ Leave any field blank to ignore that condition. All filled-in conditions must be met simultaneously. The red Strict battery kill-switch is an OR override — it fires alone whenever battery drops below its value.
Unlock unlimited jobs and continued automations.
AI analyses your recent event log and recommends ON/OFF threshold adjustments to maximise solar usage and savings.
Analyses your 7-day solar event log to find the hours when solar is consistently available — so you can schedule devices for maximum free energy.
A quick energy performance summary for your setup — calculated from your 7-day data, no AI needed.
The AI will write the subject line, preheader, and full email using your Solar IOT branding automatically.
Your key is sent only to OpenAI to generate the template — it is never stored.
✅ Review before saving — you can edit these: