Release Notes

What's new in
SimItNow

Major improvements, protocol expansions, and developer-experience upgrades, shipped continuously.

v1.29.2 ● Latest 2026-10-23
Paying for Solo and Pro now opens the checkout
  • The Solo and Pro payment buttons could answer "Payments are temporarily unavailable" instead of opening the checkout. They now open it.
  • The Manage subscription link, which opens your billing portal, had the same problem and works now too.
v1.29.1 2026-10-23
Deleting a station can no longer freeze the simulator
  • In rare cases, deleting a station while it was handling a message made the whole simulator stop answering, and API calls timed out until the service restarted.
  • Every station on that simulator was affected while it lasted, not just the deleted one. Deleting a station is now safe at any time.
v1.29.0 2026-10-21
Pay for Solo and Pro online, plus new Terms and Refund pages
  • You can pay for Solo and Pro online, monthly or yearly, as soon as the payment options appear on the pricing page and in your dashboard. Lemon Squeezy handles the payment. Until the options appear, email us as before.
  • Your limits update by themselves after you pay. Your dashboard shows your plan, and the Manage subscription link lets you change your payment details or cancel.
  • If you cancel, you keep your plan until the end of the period you paid for. Then the account moves to the Free plan. Nothing is deleted.
  • The payment options come with two new pages that explain the rules: the Terms of Service and the Refund policy. The Privacy policy now covers payments too.
  • Customers in Turkey can still pay by bank transfer against an invoice. Email us to arrange it.
v1.28.0 2026-10-20
Measurand lists, EVConnectionTimeOut and message attempts now change what a 2.0.1 or 2.1 station does
  • The measurand lists decide which readings go out. SampledDataCtrlr TxStartedMeasurands, TxUpdatedMeasurands and TxEndedMeasurands pick the readings of the Started, Updated and Ended events, AlignedDataCtrlr Measurands picks the clock-aligned ones and the MeterValues you ask for with TriggerMessage. The meter can produce Energy.Active.Import.Register, Power.Active.Import and SoC, so those are the only values accepted. An empty list means that reading is not sent: no meter value in a Started or Ended event, no periodic or clock-aligned event at all, and a TriggerMessage for MeterValues is Rejected.
  • A RequestStartTransaction for an EVSE with nothing plugged in now expires after TxCtrlr EVConnectionTimeOut seconds (30 by default). An EV that arrives later is no longer started under that request.
  • When the connection comes back, a queued TransactionEvent is delivered up to OCPPCommCtrlr MessageAttempts (TransactionEvent) times, waiting MessageAttemptInterval seconds multiplied by the attempts so far between tries. The defaults are 3 and 10. Before, both numbers were fixed.
  • Variables the station cannot change are now read-only: AuthorizeRemoteStart (false), ISO15118Ctrlr ContractValidationOffline (false) and AlignedDataCtrlr TxEndedMeasurands (empty). A write gets Rejected, as it would from a real station without that feature. ResetRetries (0) and both TxEndedInterval variables (0) accept only 0, and TimeSource and DisplayMessageCtrlr Language accept only the one value the station supports.
  • Still stored without any effect: TxStartPoint, TxStopPoint, StopTxOnInvalidId, LocalAuthorizeOffline, LocalPreAuthorize, OfflineThreshold, the network profile settings, the tariff and cost messages, LimitChangeSignificance and OrganizationName. They belong with the transaction, authorization and network work that comes next.
v1.27.0 2026-10-20
The device model of a 2.0.1 or 2.1 station lists what it really has and refuses what it does not
  • GetBaseReport with FullInventory now returns every variable the OCPP appendix requires of a station, for the parts the simulator implements: authorization, transactions, meter values, clock, security, smart charging, tariff and cost, display messages, the local authorization list, monitoring and the communication settings, plus power, supply phases and connector type on each EVSE and connector. Each entry carries its data type, its unit and whether it is read-only. Before, the report held a handful of settings and whatever your CSMS had stored.
  • GetVariables, SetVariables and GetReport answer from that same list. A variable the station does not have now gets UnknownComponent or UnknownVariable, including standard names for hardware a simulated station does not have, such as a flood sensor. These used to be accepted and stored without any effect. A variable with instances, such as ItemsPerMessage, needs the right instance. OCPP 2.1 adds a few variables that 2.0.1 does not have.
  • Read-only variables now refuse a write with Rejected. Values are checked against the variable's type, range and allowed members, so a TxStartPoint that names a point that does not exist is Rejected. Every answer names the attribute type, Actual when you did not ask for one. A request with more items than the station accepts per message (100) gets a CALLERROR with OccurrenceConstraintViolation.
  • GetReport with componentCriteria Active, Available or Enabled returns the components that have that variable set to true or that do not have it, and several criteria are combined with OR. A component, EVSE, instance or variable you leave out of a componentVariable filter means all of them.
  • What this release does not do yet: a number of writable variables, such as OfflineThreshold, MessageAttempts, TxStartPoint and the measurand lists, are stored and read back but do not change what the station does. The next releases wire them up or make them read-only.
v1.26.2 2026-10-19
A reset no longer loses the end of a charging session, and the boot message says why
  • On OCPP 2.0.1 and 2.1, an Immediate Reset used to wait for your CSMS to answer the TransactionEvent that ends the running transaction and, if no answer came, restart without ever delivering it. The station now waits up to 10 seconds, then restarts and sends the event again once it has booted.
  • The BootNotification a 2.0.1 or 2.1 station sends after a reset now carries the reason: RemoteReset when your CSMS asked for the reset, ScheduledReset when an OnIdle reset had to wait for a transaction to end. The first boot is still PowerUp and a TriggerMessage is still Triggered. Before, every boot said PowerUp.
v1.26.1 2026-10-19
Set the SIM details your station reports at boot
  • When you create a station with the v2 API you can now set iccid and imsi. The station reports them in its BootNotification: as iccid and imsi on OCPP 1.6, and inside chargingStation.modem on OCPP 2.0.1 and 2.1. Use it to test a CSMS that keys on the SIM card.
  • Both fields are optional and independent. A station created without them sends the same BootNotification as before. Each value must be 1 to 20 printable ASCII characters, otherwise the request is refused and the message names the field.
  • The Create Charging Station form on the dashboard has the same two optional fields, and each station in the list shows the values it was created with.
  • GET /v2/cs/{id} now returns iccid and imsi too, null when you did not set them, so you can check what a running station reports.
  • The v1 create endpoint does not take them. The values stay with the station through a Reset, a dropped connection and a restart of the platform.
v1.26.0 2026-10-18
A running session now survives a dropped connection
  • When your CSMS closes the connection, or the connection drops, a station on OCPP 1.6, 2.0.1 or 2.1 now keeps the transaction it is running and the EV stays plugged in. Before, the station came back as a new one, opened a second transaction and left the first one open at your CSMS. Now it reconnects, carries on with the same transaction and keeps sending meter readings.
  • On OCPP 2.0.1 and 2.1 the meter readings of a running transaction now restart after a dropped connection, and also after you pause and resume a station's network. Before, they stopped for the rest of the session.
  • A Reset, deleting the station and the daily message allowance still end the connection as before. A station that is deleted, or restarted during one of our updates, still loses its running transaction.
v1.25.2 2026-10-18
The home page example no longer sets an ID tag when it creates a car
  • The three-step example on the home page created the virtual car with the ID tag ABC123 and said your CSMS had to accept it. A car needs no ID tag to be created or plugged in, so the example no longer sets one.
  • The example now ends with the call that starts the session. On OCPP 1.6 a car without an ID tag plugs in but does not start charging by itself, so that call is where you give a tag your CSMS accepts. If the CSMS rejects it, the response is "result": "False" and no session starts.
v1.25.1 2026-10-18
Pausing and resuming a station's network no longer unplugs its EV
  • On OCPP 1.6, pausing a station's network and resuming it could leave the virtual EV marked as unplugged while the station still held it, so the EV could not be unplugged afterwards. The EV now stays plugged in. This was introduced in v1.24.1 and is fixed here. OCPP 2.0.1 and 2.1 were not affected.
v1.25.0 2026-10-18
A simpler home page, with the details on their own pages
  • The home page is now short. It covers what SimItNow does, three steps to your first charging session, six things you can test, the plans, and the questions people ask before signing up. The one thing it asks you to do is create a free account.
  • Nothing was deleted. The full feature list and the OCPP 1.6, 2.0.1 and 2.1 support lists are on a new Features page. The full FAQ and the daily message calculator are on a new FAQ page. The endpoint reference stays in the API docs, which now has its own place in the top menu.
  • The sign-up counter now counts developers who created an API key. It used to add up the chargepoint and EV allowances of all accounts, which is not the number of simulators anyone had created. It is hidden while the number is small.
  • The pages no longer say you get your API key instantly. You sign up, confirm your email, and then generate the key on the dashboard.
v1.24.1 2026-10-18
A connector you made unavailable, and a reservation, survive a reset or a dropped connection
  • A simulated station now keeps two more things when it reconnects after a dropped connection or a Reset. A connector or EVSE that your CSMS made Unavailable with ChangeAvailability is still Unavailable afterwards, where it used to come back Available. A reservation made with ReserveNow stays as well: the connector reports Reserved and your CSMS can still cancel the reservation. A reservation that ran out while the station was down is reported as expired once the station has booted again.
  • A change to Unavailable that was waiting for a running transaction takes effect after the reset, because the transaction does not survive it. A running transaction is still not kept. An EV that was plugged into a connector which comes back Unavailable is unplugged, and the station log says so. To start from a clean station, delete it and create it again.
v1.24.0 2026-10-18
A station keeps its local list, charging profiles and settings through a reset or a dropped connection
  • When a simulated station reconnects after a dropped connection or a Reset, it now keeps what your CSMS had stored on it. On OCPP 1.6 that is the local authorization list and its version, the authorization cache, installed certificates and charging profiles. On OCPP 2.0.1 and 2.1 it is the same, plus the variables you set, variable monitors and display messages. Before, the station came back empty, so a CSMS that asked for GetLocalListVersion or GetChargingProfiles after a Reset found nothing there, which no real station does.
  • A profile that belongs to one transaction (TxProfile) is not kept, because it is only valid for that transaction. A running transaction, reservations and availability changes are not kept yet either. Deleting a station, or a restart of the server that runs it, still clears everything, so delete and create the station again when you want it empty.
v1.23.2 2026-10-18
The hosted CSMS frees a finished connection straight away
  • When a chargepoint disconnects from the hosted CSMS, the CSMS now releases that connection immediately. Before, each finished connection stayed in memory until a later cleanup pass, so a fleet that reconnects often made the CSMS grow. In a 40 minute test with 200 stations and about 2,000 churn operations (drops, pauses, re-creates and replugs), the CSMS grew about 30% less for each operation than before, and it ended at 145 MiB where it had ended at 191 MiB. It still grows during such a test, more slowly, and we are looking into the rest. Nothing changes in what your chargepoints send or receive.
v1.23.1 2026-10-18
Fixes to Reset, ChangeAvailability, UnlockConnector and other replies that did not match the specification
  • OCPP 1.6: a MeterValueSampleInterval of 0 now sends no sampled meter values, as the specification says. The station used to send them as fast as the connection allowed. A MinimumStatusDuration of 0 no longer stops all StatusNotification messages.
  • OCPP 1.6: ChangeAvailability answers Accepted when the connector is already in the state you ask for, and when you ask for Inoperative on a connector in Preparing or Finishing, which then becomes Unavailable. Asking for Operative withdraws a change that was scheduled for after the running transaction. A Faulted or Reserved connector still answers Rejected when you ask for Inoperative.
  • OCPP 1.6: GetLocalListVersion returns 0 for an empty list, where it returned 1. ChargingScheduleAllowedChargingRateUnit lists Current and Power, where it said W and A.
  • OCPP 2.0.1 and 2.1: Reset with OnIdle answers Scheduled while a transaction is running and resets once the last transaction has ended. Reset with Immediate ends running transactions with the stop reason ImmediateReset before the station goes down. A Reset with an evseId is Rejected, because the station cannot reset a single EVSE. On 2.1, ImmediateAndResume is Rejected, because the station cannot resume a transaction after a reset.
  • OCPP 2.0.1 and 2.1: UnlockConnector answers UnknownConnector for an EVSE or connector that does not exist, and OngoingAuthorizedTransaction while a transaction runs on that connector. It no longer stops that transaction.
  • OCPP 2.0.1 and 2.1: GetTransactionStatus leaves out ongoingIndicator when you do not send a transactionId, and messagesInQueue is true while transaction messages are waiting to be delivered after an outage. A DataTransfer to a vendor the station does not know answers UnknownVendorId, and a known vendor with an unknown messageId answers UnknownMessageId. When GetChargingProfiles is answered in several reports, every report except the last has tbc set.
v1.23.0 2026-10-17
A station-wide charging cap is shared, and a remote start can carry a profile
  • A ChargingStationMaxProfile on EVSE 0 now limits the whole station. It used to be applied to each EVSE on its own, so two EVSEs under a 6 kW cap could draw 12 kW. The cap is now shared between the EVSEs that are charging, in equal parts. An EVSE that cannot use its part, because of its own profile or because its EV takes less, passes the rest to the others. A cap set on one specific EVSE still limits only that EVSE. The shares are recalculated when a transaction starts or ends, when you set or clear a profile, and when a schedule period starts or ends.
  • A chargingProfile sent with RequestStartTransaction on a 2.0.1 or 2.1 station is now applied to the transaction that starts. It was ignored before. The station checks it when the request arrives: it must be a TxProfile without a transactionId and otherwise valid, and if it is not the request is Rejected with a reason in statusInfo. The profile is attached to the transaction when it starts, whether the EV was already plugged in or plugs in later, and it ends with the transaction.
  • GetCompositeSchedule in amps now reports the number you asked for when a period sets numberPhases. A 16 A period on one phase used to come back as 5.3 A on a three phase station and now comes back as 16 A.
v1.22.0 2026-10-17
Charging profiles now limit the power on OCPP 2.0.1 and 2.1 stations
  • A charging profile you set on a 2.0.1 or 2.1 station now takes effect. SetChargingProfile used to answer Accepted and store the profile while the station went on charging at full power. The station now applies the lowest limit that covers the EVSE: the station-wide ChargingStationMaxProfile, and under it the TxProfile of the running transaction, or else the EVSE's TxDefaultProfile, or else the TxDefaultProfile on EVSE 0. The limit applies when a transaction starts, when you set or clear a profile, and when a schedule period starts or ends. The EV can still draw less than the limit.
  • Limits in amps are converted with the station voltage and three phases on an AC station, or one phase on a DC station. Validity windows, startSchedule, duration, Relative and Daily or Weekly Recurring profiles all follow the standard, and a TxProfile ends with its transaction.
  • SetChargingProfile now rejects what the standard says to reject and gives a reason in statusInfo: an unknown EVSE, a TxProfile without a running transaction or for another one, a first period that does not start at 0, periods that do not increase, an Absolute or Recurring profile without startSchedule, a Relative profile with one, a Relative ChargingStationMaxProfile, and a second profile with the same purpose and stack level. All of these used to be accepted, so a request that passed before can now come back Rejected.
  • ClearChargingProfile clears by profile id, or by EVSE, purpose and stack level, answers Unknown when nothing matched, and leaves ChargingStationExternalConstraints alone. GetCompositeSchedule is Accepted for every EVSE the station has and reports the station's own power for any period no profile limits. An unknown EVSE is Rejected. It used to be Rejected whenever no profile existed.
v1.21.0 2026-10-17
Every OCPP operation now works on every protocol
  • The hosted CSMS now answers every message a charge point can send on OCPP 1.6, 2.0.1 and 2.1. It used to answer only boot, heartbeat, status, authorize, meter values and transactions, and sent a NotImplemented error for the rest, such as firmware and log status, DataTransfer, security events and the 2.x device reports. It answers DataTransfer with UnknownVendorId and rejects certificate signing and ISO 15118 requests, because it does not do those things.
  • On 2.0.1 and 2.1 stations, Accepted now means the work happens. GetLog and UpdateFirmware report their progress (Uploading, Downloading, Installing, Installed), PublishFirmware ends with Published, and GetReport, GetBaseReport, GetMonitoringReport, GetDisplayMessages and CustomerInformation send the notification that carries the data. TriggerMessage sends the message you asked for. These requests used to answer Accepted and send nothing.
  • Reservations work on 2.0.1 and 2.1 stations. ReserveNow marks every connector of the EVSE Reserved, CancelReservation frees them, and an expired reservation, or one removed because its EVSE became faulted or unavailable, sends ReservationStatusUpdate. A reservation that names no EVSE is rejected unless ReservationCtrlr.NonEvseSpecific is true. Only the reserved token or its group token can start a transaction on that EVSE, and the transaction carries the reservation id. The station sends each follow-up message after it has sent the reply.
  • SetVariables and GetVariables on 2.0.1 and 2.1 stations now store what you set and read it back, for every standard component and variable. A name the standard does not define gets UnknownComponent or UnknownVariable instead of Accepted. Variable monitors get ids and can be listed and cleared. A threshold or delta monitor sends a NotifyEvent when a SetVariables change crosses it, and so does a connector fault.
  • The station keeps display messages, the local list version and installed certificates. ChangeAvailability works with or without an EVSE and answers Scheduled during a transaction. GetCompositeSchedule returns the schedule of the stored charging profiles.
  • Three requests that used to fail on 2.0.1 and 2.1 stations now work: ChangeAvailability without an EVSE, SetVariableMonitoring and ClearVariableMonitoring.
v1.20.0 2026-10-15
OCPP 2.1 Stations And A Hosted CSMS For 2.0.1 And 2.1
  • You can now create a station with protocol "ocpp2.1". It answers every OCPP 2.1 request your CSMS can send. V2X, DER control, tariffs and battery swap get a clear "not supported" reply and are not simulated.
  • The hosted CSMS now accepts ocpp1.6, ocpp2.0.1 and ocpp2.1 stations on the same address. A station that offers several versions gets the one it lists first. One that lists ocpp2.0.1 before ocpp1.6 used to be served over 1.6 and is now served over 2.0.1. A version the CSMS does not know is closed with a protocol error. A chargepoint that sends no Sec-WebSocket-Protocol header used to be served as 1.6. It is now closed with a protocol error, and the Activity Log says why.
  • Admin actions (remote start and stop, reset, unlock, clear cache, set and get settings) now work on 2.0.1 and 2.1 stations on a private instance, as they do on 1.6. Settings use component and variable names. Reset takes Immediate or OnIdle, and Hard and Soft are accepted as aliases. The dashboard does not show a transaction number for these stations yet.
  • After a transaction ends with the cable still plugged in, OCPP 2.0.1 and 2.1 stations now report the connector as Occupied instead of Available.
  • When StopTransactionOnEVSideDisconnect is true, which is the default, unplugging an EV through the API on a 2.0.1 or 2.1 station now ends a running transaction and returns the connector to Available. Your CSMS gets a TransactionEvent Ended with reason EVCommunicationLost (stoppedReason EVDisconnected). Before, the connector stayed Occupied with the transaction open. With the setting false, the transaction keeps running.
  • SetVariables and GetVariables on 2.0.1 and 2.1 stations now keep OCPPCommCtrlr.HeartbeatInterval (whole seconds, up to 86400). Other variables are still accepted without being stored.
  • On 2.1 stations, an action the station does not handle gets a NotImplemented or NotSupported error.
  • The connection check now names the OCPP version that was refused.
v1.19.0 2026-10-13
Closed Stations Say Why, Then Pause
  • A station that passes its daily message allowance plus the 10% grace is now closed with a line in the activity log. It shows the message count, the allowance and the reset time, so the close no longer looks like your CSMS dropping the connection.
  • A closed station then pauses instead of reconnecting every minute. It resumes at 00:00 UTC, or as soon as the allowance covers the count. The activity log shows the Paused until and Resumed lines.
  • A changed message allowance now reaches connected and paused stations within about a minute, with no restart.
v1.18.0 2026-10-13
New Plans, A Per-Chargepoint Message Allowance And Usage Warnings
  • Plans are now Free, Solo, Pro and Enterprise. Free is 1 chargepoint and 500 messages a day. Solo is $19/mo ($190/yr, two months free) for 5 chargepoints and 2,500 messages. Pro is $49/mo ($490/yr) for 20 chargepoints and 10,000 messages. Enterprise stays priced by quote.
  • The daily message allowance now follows one rule: 500 messages per chargepoint. Every OCPP message counts, in both directions, Heartbeats included. Existing accounts keep their current allowance for now.
  • The dashboard has a Messages today meter next to chargepoints and EVs. It turns amber at 80% and red at 100%, and a banner explains what happens next.
  • We now email you once a day when your allowance is used up. Stations stay connected until they pass the allowance by 10%, then they are disconnected until 00:00 UTC.
  • The pricing section spells out what counts as a message and a chargepoint, and has a calculator that estimates your daily messages, Heartbeats included, and the smallest plan that fits.
  • The quota reset call in the API now recounts your chargepoints and EVs instead of setting the counts to zero, so it no longer frees room above your plan's limit. If you delete everything, the count is still zero. The Clear buttons on the dashboard recount the same way.
v1.17.2 2026-10-12
One-Click SimItNow CSMS Target And A Mode Switch
  • The CSMS Targets card has a new Use my SimItNow CSMS button. One click adds the address of your own hosted CSMS as a target, so your simulated stations can connect to it.
  • You can now switch your CSMS between open and private mode from the CSMS tab, under Advanced: private mode. Switching deletes nothing and does not disconnect live chargepoints.
v1.17.1 2026-10-12
The CSMS Tab Shows Your Address
  • The CSMS tab now shows your personal connection address with a Copy button. You no longer need to register a chargepoint to find it.
  • It also tells you whether your CSMS is open and how many of your connections are in use.
  • Chargepoint registration and passwords now sit under Advanced: private mode while your CSMS is open.
v1.17.0 2026-10-07
Your CSMS Is Now Open By Default
  • Every CSMS instance is now open: any chargepoint with your personal address can connect, with no registration and no password (OCPP Security Profile 0).
  • The number of chargepoints that can be connected at once now equals your charging station allowance.
  • Chargepoints you registered earlier keep working and their passwords stay on file, but the CSMS no longer asks for them unless you switch your instance back to private mode (PUT /v2/csms with {"public": false}).
v1.16.1 2026-10-07
Unread Support Replies Show In The Tab Bar
  • The Support tab now shows a count of your unread support replies, whichever tab you are on.
v1.16.0 2026-10-07
The Dashboard Is Now Split Into Tabs
  • The dashboard now has five tabs: Charging Stations, CSMS, OCPI, Logs and Support. Your API key and usage stay at the top of every tab.
  • The OCPI tab says that OCPI roaming support is coming.
v1.15.1 2026-10-07
Chargepoints Stay Reachable After a Reconnect
  • A chargepoint that reconnects while its old connection is still open no longer shows as disconnected, and Remote Start and Stop keep working for it.
  • The CSMS now notices when a chargepoint stops answering and drops the connection within about a minute, so the dashboard status matches reality.
  • If a CSMS instance crashes, the chargepoints and public-connection slots it left behind are now cleaned up automatically.
v1.15.0 2026-10-01
Privacy Policy and Signup Consent
  • The Privacy Policy now lists what SimItNow stores, why, for how long, and how to ask for it to be deleted.
  • Creating an account now requires accepting it. The accepted version and the time are saved with the account. Existing accounts are not asked again.
  • The login page's resend form now sends a new verification email to the same address at most once a minute and three times an hour.
v1.14.0 2026-09-29
Unverified Accounts Are Removed After 30 Days
  • An account whose email address is still unverified 30 days after signup is now deleted automatically, together with its API key and any simulators or CSMS chargepoints created under it.
  • To keep an account, click the link in the verification email. If the link has expired, the login page has a form that sends a new one.
  • Verified accounts are never touched. Already-issued API keys keep working until the account they belong to is removed.
v1.13.0 2026-09-26
Daily Message Quotas, Tied To Your Plan
  • Each plan now includes a daily OCPP message allowance alongside the existing charge point and EV limits (Free: 5,000/day, Dev: 100,000/day, Team: 500,000/day, Load: 2,500,000/day; Enterprise: unlimited).
  • Creating a new charge point while your daily allowance is used up now returns a clear "quota exceeded" response explaining how to upgrade, instead of silently succeeding.
  • An already-connected charge point that crosses its daily allowance mid-session is disconnected with an explicit reason your own Central System logs can identify, rather than a generic dropped connection.
  • The allowance resets automatically at UTC midnight -- no action needed on your part.
v1.12.1 2026-09-26
A New Guide: Integrating With AI Coding Assistants And API Tools
  • A new article walks through using last release's /openapi.json and /llms.txt: a copy-pasteable prompt for building a working client with an AI coding assistant, plus how to import the spec directly into Postman, Insomnia, or an OpenAPI code generator.
  • Linked from /docs, /llms.txt, and the dashboard's "run a transaction" quickstart panel, so it's easy to find whichever of those you land on first.
v1.12.0 2026-09-26
A Machine-Readable API Spec And llms.txt, For AI Agents And Codegen Tools
  • The API reference at /docs is now backed by a full OpenAPI 3.1 document at /openapi.json, covering every current v1 and v2 endpoint -- point any codegen tool or AI coding agent at it instead of scraping the HTML reference by hand.
  • A new /llms.txt summarizes the API for AI agents in one short page: the REST base URL, the hosted-CSMS WebSocket base, the auth header name, and links to the full docs and the OpenAPI spec.
v1.11.5 2026-09-23
The Old /pricing Link Now Redirects Permanently, Straight To The Real Page
  • Visiting /pricing (from an old bookmark or a search result) now sends you to the homepage with a permanent redirect, landing right on the pricing section. Previously it used a temporary redirect to a URL fragment that search engines cannot follow, which kept the old link showing up as an unindexable dead end instead of pointing straight at the pricing you were looking for.
v1.11.4 2026-09-20
The Status Page States Its Search Permission Instead Of Implying It
  • status.simitnow.com now serves a robots.txt that explicitly allows crawling. It had none before, which search engines read as "no restrictions" anyway — the permission was always there, it just was not written down. This does not change whether the page is indexed; it removes the guesswork, and makes the status page consistent with every other public SimItNow page.
v1.11.3 2026-09-20
The API Reference Reads Properly In Search And Shared Links
  • The API reference page now carries a real summary and preview image, so a search result or a pasted link shows what the page actually covers instead of just its title.
  • Fixed: the link to the status page in this changelog led to a page that could not be found. It now opens status.simitnow.com.
v1.11.2 2026-09-20
Stronger Release Checks Before Anything Ships
  • Internal reliability improvements: the automated checks that run before a release now cover the account and configuration database, every service image is built from exactly the library versions those checks ran against, and a release is blocked if any part of the system loses test coverage. No visible changes in this release.
v1.11.1 2026-09-20
Charge Points Reconnect Properly After A Remote Reset
  • Fixed: after your CSMS sent a Remote Reset (Hard or Soft), a charge point ended its active session as expected but then never came back online, staying stuck until someone deleted and recreated it. A Reset now disconnects and reconnects the station immediately, and any vehicle still plugged in automatically resumes charging.
v1.11.0 2026-09-20
Expanded Certification-Style Test Coverage
  • Internal reliability improvements: added a broader set of automated test scenarios modeled on industry-standard OCPP certification test cases (remote reset, remote unlock, configuration read/write, and cache-clear flows) to how we validate charging station behavior before it ships — no visible changes in this release.
v1.10.0 2026-09-19
Internal Testing Improvements
  • Internal reliability improvements to how we test charging sessions before they ship — no visible changes in this release.
v1.9.1 2026-09-18
Fixed a Stuck-Connector Edge Case on EV Delete
  • Fixed: deleting an EV simulator that was connected to a charging station could, in a rare timing window on multi-instance deployments, report success while leaving that station's connector stuck occupied, with no way to release it short of an unrelated station restart. Deleting the EV in that situation now correctly reports an error instead of a false success, so you know to retry rather than being left with a silently stuck connector.
v1.9.0 2026-09-16
Hosted CSMS Reliability Groundwork
  • Behind-the-scenes reliability work on the hosted CSMS backend, laying the groundwork for handling more concurrent chargepoint connections in a future release. No visible change today.
v1.8.4 2026-09-16
Homepage Headline Corrected, Motto Added
  • Fixed: the homepage badge, headline, and page title listed “EVs” as a third simulated role alongside chargepoints and CSMS — but a virtual EV only ever connects to SimItNow’s own simulated charge point, never a real external one, and doesn’t simulate the EV-to-chargepoint communication protocol itself. Virtual EV simulation is still real and still described (see the “Realistic EV Simulation” feature card), just no longer listed as if it were a third protocol-speaking role.
  • New: the homepage now states SimItNow’s own motto, “Simulate It Now,” under the headline.
v1.8.3 2026-09-16
Homepage Wording Cleaned Up
  • Updated: tightened the homepage headline and description text from v1.8.2 (repeated phrasing, no new information). Still names chargepoints, EVs, and the hosted CSMS. Copy only, no functional change.
v1.8.2 2026-09-16
Homepage Now Describes the Full Simulated Ecosystem
  • Updated: the homepage headline, description, and page title used to describe SimItNow only as a chargepoint/EV simulator — they now also call out the hosted CSMS you can register a chargepoint against, so a first-time visitor sees the full picture (chargepoints, EVs, and CSMS) without having to scroll to the feature list. Copy only, no functional change.
v1.8.1 2026-09-16
Chargepoint API Endpoints Moved Under Your CSMS Instance
  • Fixed: registering or deleting a chargepoint via the API now uses PUT/DELETE /v2/csms/cp/{cb_id}, nested under your CSMS instance, instead of the old top-level /v2/cp/{cb_id} — a chargepoint only ever exists in the context of your own CSMS instance, so the URL now says so. The old path no longer works; if you scripted against it, update to the new one.
v1.8.0 2026-09-16
Host a Public, Unauthenticated CSMS for Quick Chargepoint Testing
  • New: your CSMS instance can now be switched to public mode (PUT /v2/csms with {"public": true}) — any chargepoint can connect with no registration and no credentials at all (OCPP Security Profile 0), so you can point a chargepoint at it and start testing immediately. Concurrent connections are capped per account. Switch back to private any time to require registration and a password again.
  • New: GET /v2/csms reports your instance's current mode, connection limit, and how many chargepoints are connected right now.
  • Attempting to register a chargepoint (PUT /v2/cp/{cb_id}) while public now fails clearly — a public instance has no allow-list to add it to.
v1.7.0 2026-09-16
Host Your Own CSMS: Test a Chargepoint Against SimItNow
  • New: create a CSMS instance from the v2 API (PUT /v2/csms) and register chargepoints under it (PUT /v2/cp/{cb_id}) — the same capability the dashboard’s “Chargepoints (CSMS)” section already offered, now available programmatically. Deliberately v2-only, with no v1 equivalent.
  • New: DELETE /v2/csms clears every chargepoint registered under your CSMS instance in one call; DELETE /v2/cp/{cb_id} removes a single one.
  • The landing page and API docs now describe this feature for the first time — it previously shipped (v1.6.0–v1.6.2) without any public-facing explanation of what it does or how to use it.
v1.6.2 2026-09-15
Chargepoint Connection URLs Are Now Unique Per Account
  • Fixed: registering a chargepoint under “Chargepoints (CSMS)” with an id already used by another account (e.g. an obvious choice like CP-001) no longer fails — chargepoint ids are scoped to your own account now, not shared across every SimItNow customer.
  • Breaking change to the connection URL: a chargepoint’s wss:// connection URL now includes an extra, account-specific path segment. If you already registered a chargepoint under the old URL shape, re-register it (or copy the new URL shown for it in the dashboard) and update your chargepoint’s configuration — the old URL will no longer connect.
v1.6.1 2026-09-15
OCPP Backends Is Now CSMS Targets
  • Renamed: the dashboard’s “OCPP Backends” card is now “CSMS Targets” — the same saved list of external CSMS server URLs your charging stations connect to, just renamed so “CSMS” is the one term for the OCPP-server role across the product. No functional change — your existing saved entries are unaffected.
v1.6.0 2026-09-15
A Hosted CSMS to Test Your Chargepoint Against
  • New: SimItNow now runs its own OCPP 1.6 Central System (CSMS) reference backend, so you can point a real or simulated chargepoint at it instead of only simulating the chargepoint side. Register a chargepoint from the dashboard’s new “Chargepoints (CSMS)” section to get a one-time Basic Auth password and a wss:// connection URL.
  • Supports the core transaction lifecycle — boot, heartbeat, status, authorize (accept-all), start/stop transaction, and meter values — and answers any unsupported request with a spec-correct OCPP error instead of ignoring it, the same way a real CSMS would.
  • Remote Start and Remote Stop are available from the dashboard for any currently connected chargepoint.
v1.5.0 2026-09-12
Stations Keep Working While Disconnected
  • A disconnected station no longer sits idle. Meters keep advancing, connector status keeps changing, and a charging session can still be started for an RFID tag held in the station’s local authorization list — the same way a real charge point behaves during a network outage.
  • Transaction messages produced while offline are now queued and delivered in order once the connection returns, instead of being lost. On OCPP 1.6 the station runs on a temporary transaction id and adopts the one your CSMS assigns during delivery; on OCPP 2.0.1 the replayed events are marked offline so your CSMS bills from the time they happened, not the time they arrived.
  • New API call: POST /v2/cs/{cb_id}/network/power-loss simulates a power cut — every active session stops with reason PowerLoss, and then the station goes offline. This was previously only available on the v1 API.
  • Station info now reports whether a station is connected and how many messages it is holding back, so an outage test can be observed from the outside.
v1.4.2 2026-09-11
Remote Start Now Works On A Timed-Out Connector
  • Fixed: if a cable was left plugged in long enough for the connection timeout to pass, a remote start sent from your CSMS was answered “accepted” but the charging session never actually began. The station now starts the session as its answer promised.
  • A remote start that is accepted but cannot be carried out now leaves a diagnostic trail for support instead of failing silently.
v1.4.1 2026-09-09
Internal Reliability Improvements
  • Internal reliability improvements — no visible changes in this release.
v1.4.0 2026-09-09
Account-Wide Service Announcements
  • We can now send an email to every registered account for important service updates — you may occasionally receive one of these from us going forward, separate from support-ticket replies.
v1.3.7 2026-09-06
Docs Link Simplified to the Footer Only
  • The Docs link has been removed from the main site nav — the API reference page is still one click away from every public page, now solely via the footer link added last release.
v1.3.6 2026-09-06
Docs Link Added to the Footer
  • The API reference page is now linked from the footer of every public page, alongside News, Status, and Contact us — not just from the main site nav, so it's one click away no matter which page you're on.
v1.3.5 2026-09-06
The API Reference Is Now Public
  • The API reference page no longer requires signing in — anyone can now read it, including a placeholder key in every example instead of a real one. It's also indexable by search engines, so it can be found directly from the web now, not just from a link inside the product.
  • Signed-in visitors still see their own real API key baked into the examples, exactly as before.
  • Added a Docs link to the main site nav, so the API reference is now one click away from the homepage, the articles page, and the news page — not just reachable by URL.
v1.3.4 2026-09-06
Several v2 API Actions Are Now Reachable
  • Fixed several v2 API actions — charge point fault reporting, network connect/disconnect, transactions, security events, and EV connection/discharge — that were incorrectly rejected with a “not found” error when called through api.simitnow.com. These now work exactly as documented in the API reference.
v1.3.3 2026-09-06
Improved Dashboard Deployment Reliability
  • Fixed an issue that could prevent a new dashboard release from starting up — already-running dashboards kept serving normally throughout, so this was never visible as downtime, only as a delay before the newest release became available.
v1.3.2 2026-09-05
The Current Version Is Now Shown in the Footer
  • Every page now shows the running version in the footer, linked straight to this page, so you can always tell which release you're on without having to check here first.
v1.3.1 2026-09-05
Three More OCPP 1.6 Conformance Fixes
  • Reserving “any connector” is now correctly rejected. Stations don't support reserving connector 0 (the standard way a CSMS asks for any free connector). Previously this was misreported as the station being occupied; it's now reported as unsupported, so it's clear a specific connector is required.
  • A reservation now recognizes a related card, not just the exact one used to make it. If a presented card isn't the reservation's own card but is registered in the station's local authorization list or cache as belonging to the same group, the reservation is now honored for it too — matching how a real station groups cards under one account.
  • Setting a meter or billing data field to a measurement type the station can't produce is now rejected instead of silently accepted. Affects the four configuration keys that control which readings appear in meter values and end-of-transaction billing data.
v1.3.0 2026-09-05
Trigger a Security Event On Demand
  • Trigger security events on demand. A new API call makes a station report a security event — tamper detection, a failed maintenance login, a cleared security log, or any of the other standard types, plus your own vendor-specific ones. Security events are reported by the station rather than requested by the CSMS, so there was previously no way to exercise your CSMS's handling of them.
v1.2.10 2026-09-05
Three OCPP 1.6 Conformance Fixes
  • Remote start without a connector number now works. If your CSMS sends a remote start request without naming a connector — the usual way to say “start on any free connector” — the station now picks one and replies normally. It previously answered with a protocol error, so the transaction could never begin.
  • A plugged-in cable that is never authorized now settles correctly. When a cable is connected but no valid ID is presented before the connection timeout, the connector reports Finishing instead of returning to Available. This prevents a second driver's card from starting a session on someone else's cable, and the connector frees itself as soon as the cable is unplugged.
  • Connector phase rotation is now reported. Stations answer the standard phase-rotation configuration request, so CSMS conformance checks no longer flag it as missing.
v1.2.9 2026-09-05
API Requests No Longer Fail During High-Volume EV Redistribution
  • Under very high load — specifically, a large number of electric vehicles being redistributed across simulator instances at once — API requests could previously come back as a bare, unhelpful server error. They now come back as a proper “temporarily unavailable, please retry” response with guidance on how long to wait before retrying, and no internal error details are exposed in the response.
  • A large EV redistribution now runs with an internal concurrency limit, so it can no longer consume so many resources at once that it starves unrelated, ordinary API requests.
v1.2.8 2026-09-05
The Dashboard Now Tells You When Your Session Has Ended
  • A dashboard left open until its sign-in session expired kept showing the counts, simulator lists and tickets it had loaded earlier, with nothing to say they had stopped updating. It now stops refreshing and shows a Session expired notice with a link back to sign-in, so stale numbers are never mistaken for live ones.
  • The page also stops retrying in the background once the session has ended. Previously each panel kept requesting fresh data every few seconds indefinitely — one browser tab left open produced hundreds of rejected requests an hour and never recovered on its own.
  • Replying to, closing or opening a support ticket after the session has ended now raises the same notice instead of quietly doing nothing. Whatever you typed stays on the page, so you can copy it before signing in again.
v1.2.7 2026-09-05
API Documentation Now Shows One Address That Actually Works
  • The REST API section on the home page listed endpoints under /api/v1/cs/..., while the “Get started” steps said /cs/create/{id} and the copy-paste examples right beside them used https://api.simitnow.com/v1/cs/create/CP-001 — three different addresses for the same API, and only the last one worked. Anyone who copied a row out of the reference table got a 404 and had no way to tell it was the documentation that was wrong, not their API key. Every path on the page now shows the full working address.
  • The same mix-up appeared in the API reference page, where cross-references such as “poll GET /api/v2/cs/{cb_id}” still carried an /api prefix that is not part of the public address. Those now match the endpoint headers on the same page.
v1.2.6 2026-09-05
Log and Security Log Retrieval Now Simulates a Realistic Upload
  • Retrieving a diagnostics or security log from a charging station now walks through the same realistic upload sequence as a diagnostics file: Uploading → Uploaded on success, or Uploading → Upload Failure → Idle on a simulated failure. Previously the station only reported a single, immediate “Idle” status regardless of the request, which did not exercise a CSMS's own upload-progress handling.
  • Two new configuration keys let you control the simulated outcome: LogSimulatedOutcome (Uploaded or UploadFailure, defaults to Uploaded) and LogSimulatedDelaySeconds (defaults to 0), matching the existing DiagnosticsSimulatedOutcome/DiagnosticsSimulatedDelaySeconds keys already used for diagnostics file retrieval.
v1.2.4 2026-09-02
OCPP 2.0.1 Meter Readings and Stop Reasons Now Pass CSMS Validation
  • OCPP 2.0.1 charging stations now send meter readings as numbers instead of text. A CSMS that validates incoming messages against the OCPP 2.0.1 schema was rejecting every reading with FormatViolation — “must be number”, which meant energy, power and state-of-charge values never reached it during a transaction. OCPP 1.6 stations are unaffected: that version of the protocol defines the same field as text, and they continue to send text.
  • The stop reason reported when an OCPP 2.0.1 transaction ends is now a valid OCPP 2.0.1 reason. Ending a transaction previously reported values such as RemoteStop or StopAuthorized, which are not valid stop reasons in the protocol, so a validating CSMS rejected the final transaction message too. Remote stops now report Remote, local stops Local, and emergency stop and power loss are each reported distinctly instead of both arriving as the same reason.
v1.2.3 2026-09-02
Dashboard Simulators List Now Stays in Sync
  • The dashboard's Simulators list now refreshes automatically when a charging station or electric vehicle is created or deleted somewhere else — another browser tab, the admin panel, or an automated process. Previously only the CS/EV count updated live; the list of simulators itself stayed as it was when the page was loaded until you refreshed the page.
v1.2.2 2026-09-01
More Search Terms Covered on the Homepage
  • The homepage now also uses the terms charge point emulator, virtual charge point (VCP), staging environment testing, OCPP conformance testing, interoperability and protocol validation testing, and EV charging stress testing / load testing at scale — all naming things SimItNow already does, just under terminology some teams search for instead of the terms already on the page. A new FAQ answers whether SimItNow can be used for OCPP interoperability and protocol validation testing. No behavior change.
v1.2.1 2026-09-01
CPMS Terminology Added Across the Site
  • The homepage, FAQ, and several OCPP articles now also use the term CPMS (Charge Point Management System) alongside CSMS — they name the same backend, just under different vendor and regional terminology. No behavior change, just easier to find if that's the term you search for.
v1.2.0 2026-08-28
Links Now Point At www.simitnow.com Everywhere
  • Every link this site generates about itself — what shows up in search results, what social previews use, and the confirmation link in the account-verification email — now points at www.simitnow.com instead of the retired simit.ddosoft.com address. Old links you already have keep working (they still redirect), this just means new ones are direct.
  • Articles now link to related articles at the bottom of the page, so you can go straight from one OCPP topic to another instead of returning to the article list each time.
v1.1.1 2026-08-27
New Contact Address: info@simitnow.com
  • Everywhere the site invites you to write to us — the pricing plans, the trial request, the FAQ, the footer's “Contact us” link and your dashboard — now shows info@simitnow.com instead of the old DDOSoft address. Ticket notification emails come from the same address. Mail sent to the old address still reaches us, so nothing you have already saved stops working.
v1.1.0 2026-08-27
Support Can Now Confirm Your Account By Hand
  • If a verification email never arrives — a spam filter ate it, or the address has a typo we can see and you can't — support can now mark your account confirmed directly, instead of you resending the link and hoping. Nothing changes for accounts that confirm the normal way.
  • Security hardening on the admin console: email addresses are now escaped everywhere they are displayed, so an address containing HTML or quote characters can no longer affect the page it is shown on. Addresses containing an apostrophe (o'brien@example.com) also no longer break the confirmation prompts on that screen.
v1.0.1 2026-08-26
Fixed Broken Example URLs In The API Reference And Dashboard
  • Every example request on the API reference page, the dashboard's "run a transaction" quickstart, and the landing page's getting-started sample now points at a real, reachable address (api.simitnow.com) instead of a path that no longer exists.
  • The v2 tab's warning about being unreachable from outside is gone — v2 is reachable at api.simitnow.com now, though it's still the newer, evolving surface, so v1 stays the recommended default for now.
v1.0.0 2026-08-26
Legacy SIMIT-API-KEY Header Removed
  • Breaking change: the deprecated SIMIT-API-KEY header name is no longer accepted. Every API request must use SIMITNOW-API-KEY.
  • A request that still sends only SIMIT-API-KEY now gets the same response as a request with no key header at all — your API key itself is unchanged, only the header name it must travel in.
  • If your integration hasn't switched yet, update it before upgrading: change the header name from SIMIT-API-KEY to SIMITNOW-API-KEY everywhere you call the API.
v0.25.3 2026-08-26
Status Page Now Has Its Own Address
  • The Status link in the footer now takes you straight to status.simitnow.com instead of redirecting through /status first.
v0.25.2 2026-08-25
Sitemap Now Matches the Domain You Visit
  • sitemap.xml now lists URLs on whichever domain served the request — www.simitnow.com or simit.ddosoft.com — instead of always pointing search engines at one fixed address.
v0.25.1 2026-08-25
Status Page Footer Now Credits DDOSoft
  • The footer on the status page now reads "© 2026 DDOSoft" instead of naming the product itself.
v0.25.0 2026-08-25
We're Now SimItNow
  • SimIt is now SimItNow. You'll see the new name across the dashboard, docs, emails, and the status page — your account, API key, and everything you've built keep working exactly as before.
  • No action needed: URLs, headers, and integrations are unchanged by this rename.
v0.24.0 2026-08-25
New API Key Header Name: SIMITNOW-API-KEY
  • API requests can now send your key in a SIMITNOW-API-KEY header, matching the SimItNow name.
  • The existing SIMIT-API-KEY header keeps working exactly as before — nothing you have running today needs to change, and your API key itself is unchanged.
  • SIMIT-API-KEY is now deprecated and will be removed in a future release, so use the new name in new code. If a request carries both headers, the value in SIMITNOW-API-KEY is the one used.
  • The documentation and the sample commands on your dashboard now show the new header.
v0.21.1 2026-08-21
Favicon Now Shows Up Correctly in Browser Tabs and Search Results
  • Fixed: the site icon was embedded directly in the page instead of served as a real file, so it never appeared in Google search results (a generic globe icon showed instead) and could be unreliable in some browsers.
  • The icon is now served from a stable address (simit.ddosoft.com/favicon.ico) across every page, including the dashboard, docs, and admin area.
v0.20.2 2026-08-19
Stations Reconnecting After a CSMS Rejection Now Scatter Instead of Syncing Up
  • When a CSMS rejects a station repeatedly (rate limiting, or a wrong credential/URL), SimItNow slows the retry rate down progressively — this part is unchanged, and a station never stops retrying.
  • The maximum wait between attempts is now one minute, down from five.
  • Fixed: once a station's wait reached the ceiling, every station in the same situation waited the exact same amount, every time — no variation. If you had many stations hit the same rejection together, they stayed locked in step, all retrying at the same instant indefinitely.
  • Stations at the ceiling now wait a random amount between roughly 30 and 60 seconds on every attempt, so a large batch of simultaneously-rejected stations spreads its reconnect attempts out instead of hitting your CSMS all at once, over and over.
v0.20.1 2026-08-19
Fixed SoC Showing 0% at Session Start
  • The very first meter reading of a session (sent the instant a transaction starts) now correctly reports the EV's configured starting battery level instead of always showing 0%.
v0.20.0 2026-08-19
Instant Start/Stop Meter Readings for Every Session
  • OCPP 1.6 stations now report a meter reading (including SoC) at the exact moment a session stops, out of the box — no CSMS configuration needed. Previously the last reading a CSMS saw was whatever the periodic interval happened to catch, which could be stale by minutes.
  • OCPP 2.0.1 stations now include a meter reading (energy, power, SoC) with every transaction start and stop event, not just periodic updates during the session.
v0.18.2 2026-08-19
Simplified High-Volume Plans Into One Enterprise Tier
  • Scale+ and Performance are now a single "Enterprise" plan for 500+ chargepoints — reach out and we'll size a plan to your volume.
v0.18.1 2026-08-18
Updated Team and Load Plan Pricing
  • Team is now $199/mo and Load is now $649/mo, reflecting the value of the concurrent simulator capacity included in each plan.
  • Free and Dev pricing are unchanged.
v0.18.0 2026-08-18
Clearer Pricing — A Recommended Plan, Annual Savings, and a Way to Reach Us on Every Tier
  • The Team plan is now marked as our recommended starting point for small teams.
  • Every plan now has a clear next step: sign up instantly on Free, or reach out directly on any paid tier — previously only the free-trial offer had one.
  • Dev, Team, and Load now show an annual price alongside the monthly one, saving about two months a year.
  • Scale+ and Performance are now "Contact us" plans, so we can tailor pricing to your volume instead of a fixed number.
v0.15.0 2026-08-18
Support Tickets Now Send Email Notifications
  • When you open a ticket or reply to one, our support team now gets an email right away instead of relying on someone noticing it in the admin panel.
  • When support replies to your ticket, you now get an email too — no need to keep the dashboard open to know someone answered.
v0.14.2 2026-08-18
Support Ticket Messages Now Show When They Were Sent
  • Every message in a support ticket thread — yours and ours — now shows the date and time it was sent, on both the dashboard ticket view and the support team's side.
v0.14.1 2026-08-17
The API Docs Now Open On The Version You Can Actually Call
  • The API reference was opening on the v2 tab, but v2 is still in beta and is not published on the public API — so every example on that tab returned 404 to anyone who copied it. The docs now open on v1, which is the version to build against today.
  • The v2 tab is still there and still marked Beta, now with a note explaining that those paths are not reachable from outside yet.
  • The ?probe=1 connection check added in v0.14.0 is now documented on the v1 create endpoint as well, where callers can actually use it.
v0.14.0 2026-08-16
SimItNow Tells You Why A Station Will Not Connect
  • When you add an OCPP backend or create a charging station, SimItNow now opens a real connection to your CSMS first and tells you straight away if it cannot get through — credentials refused, a path the server does not recognise, an unreachable host, an untrusted certificate, or an address that is not an OCPP endpoint at all.
  • Each result is plain language with a suggested fix and a stage-by-stage breakdown showing exactly how far the connection got, instead of a status code you have to look up. Until now that reason was only visible in a station's log panel, after you already had a station quietly failing.
  • Nothing is ever blocked. If your CSMS is not running yet, "Create anyway" is one click away, and your settings — including Basic auth credentials and client certificates — are carried across without ever appearing in the page.
  • The same check is available to API users as POST /api/v1/cs/probe, and as an optional ?probe=1 when creating a station. Bulk creation is untouched unless you ask for it.
  • The onboarding checklist now marks "create a charging station" complete only once a station has genuinely connected, rather than as soon as one is created.
v0.13.2 2026-08-16
A Misconfigured Station No Longer Floods Your Logs
  • When a CSMS rejects a station because its credentials are wrong or its URL points somewhere that does not exist, SimItNow used to retry roughly every ten seconds indefinitely — a single mistyped station could add thousands of identical failure lines a day and bury every other problem in your log.
  • These rejections now slow down progressively, up to five minutes between attempts, the same way SimItNow already handles a CSMS that is busy or at capacity.
  • Each attempt still reports exactly why it was refused, so you can see whether it is a credential or an address problem — you just see it at a readable rate instead of on repeat.
  • Your station never stops trying. Once the CSMS side is put right — the station registered, or its credentials accepted — it reconnects on its own within five minutes, with nothing to restart. If the mistake is in the station's own address, that is still a delete and re-create, since a station's CSMS URL is fixed when you create it.
v0.13.1 2026-08-13
Your Simulators Start Reliably After An Update
  • Fixed a problem where, right after a SimItNow update that changed how your simulator settings are stored, a service could fail to start and keep retrying instead of coming back. Your stations and vehicles stayed offline until someone intervened.
  • Startup is now resilient: if SimItNow cannot load your saved simulators on its first attempt, it starts anyway and keeps working on it in the background, rather than restarting in a loop and serving nothing at all.
  • No change to your simulators, settings, or API — this only affects how SimItNow behaves while starting up.
v0.13.0 2026-08-13
Stations That Refuse Remote Start
  • New station setting emulateRemoteStartRejected. Turn it on and the station answers Rejected to every remote start request your CSMS sends, so you can test how your own software handles a refusal.
  • A refused request changes nothing on the station: the connector stays as it was, no session is opened, and any charging profile sent with the request is ignored. Send the same request to a normal station and it behaves exactly as before.
  • Works for both OCPP 1.6 (RemoteStartTransaction) and OCPP 2.0.1 (RequestStartTransaction).
  • This is different from the existing emulateRemoteStartFailsToStartCharging setting, which accepts the request and then never starts charging. Use the new one for an outright refusal, the old one for a station that agrees and then does nothing.
  • The setting is off by default and is remembered across restarts, like the rest of a station's configuration.
v0.12.11 2026-08-12
Stations Back Off When Your CSMS Accepts Them And Immediately Hangs Up
  • If you configure more charging stations than your CSMS can hold at once, the ones that don't fit no longer retry every couple of seconds forever. SimItNow now recognises a connection that is accepted and then dropped before the station ever completes its boot sequence, and slows those attempts down progressively — the same way it already handled an outright "too many connections" rejection.
  • This matters because many CSMS implementations enforce their connection limit by accepting the connection and closing it, rather than refusing it outright. Previously only the outright refusal was recognised, so the more common case ran unthrottled and generated a continuous stream of pointless connection attempts against your system.
  • Stations that are working normally are unaffected: a disconnect after a successful boot still reconnects promptly, and a single dropped connection is still retried right away. Only a station stuck in a repeating, never-succeeding loop is slowed down.
  • No station ever gives up — when capacity frees up on your CSMS, the waiting stations come back on their own.
  • Your logs now say when a station is stuck in this loop, including how many times in a row it has happened, instead of only listing each individual disconnect.
v0.12.10 2026-08-12
Your Dashboard No Longer Undercounts Running Simulators
  • Fixed a problem where simulators that were running normally — connected to your CSMS and exchanging messages — could stop being counted on your dashboard. The count could stay stuck at a handful while hundreds of stations were in fact live, making it look as though your simulators had vanished.
  • The periodic maintenance that keeps your dashboard figures accurate now recovers from a temporary database or cache hiccup and carries on, instead of quietly stopping for the rest of the day. Previously a single momentary failure could leave the figures frozen until the service was restarted.
  • Whenever SimItNow has to repair a simulator's bookkeeping, it now records it in the logs — so a discrepancy leaves a trace instead of passing unnoticed.
v0.12.9 2026-08-10
Charging Stations Now Back Off When Your CSMS Says "Too Many Connections"
  • When your CSMS rejects connections because it has hit its own connection limit or is rate-limiting, charging stations now wait progressively longer between attempts instead of retrying every few seconds indefinitely. If your CSMS caps connections below the number of stations you have configured, the ones that can't get in no longer hammer it continuously.
  • If your CSMS sends a Retry-After instruction with the rejection, SimItNow now honours it.
  • Stations still keep trying indefinitely and return to normal speed as soon as your CSMS accepts connections again — no station ever gives up permanently.
  • Connection and login failures unrelated to rate limiting are unaffected and still retry promptly, so real configuration problems surface just as quickly as before.
v0.12.8 2026-08-10
Fixed Usage Counters Drifting Out of Sync With Your Actual Simulators
  • Your charging station / EV usage counters (shown on your dashboard) could drift upward over time and never correct themselves — even after simulators were removed — sometimes showing a count higher than your account limit. Counters now always reflect your actual active simulator count.
  • Improved stability when running large numbers of charging stations or EVs across multiple simulator instances — load is now shared more evenly between instances, reducing unexpected restarts.
v0.12.1 2026-07-22
Fixed Charge Points Getting Permanently Stuck After a Failed Create
  • If creating a charging station or EV was interrupted partway through (a dropped connection, or a simulator instance restarting at just the wrong moment), that ID could become permanently unusable — every future attempt to create it failed with "already exists", and even "Clear Simulators" couldn't free it up. Interrupted creates are now cleaned up automatically, and a background check periodically releases any that still slip through.
v0.12.0 2026-07-21
EVs Now Recover Automatically After a Pod Crash
  • EV simulators left behind by a replaced or crashed instance now come back online automatically on a running deployment, instead of staying offline until every instance restarted.
v0.11.8 2026-07-21
Fixed Charging Stations Not Recovering After a Deployment
  • Charging station simulators left behind by a replaced instance now come back online correctly on the next deployment — previously they could stay permanently offline while EV simulators recovered normally.
v0.11.7 2026-07-21
Improved Connection Stability When Scaling Up
  • Charging stations and EVs already connected no longer get disconnected and reassigned when a new simulator instance joins a running deployment — existing connections now stay put, and only newly added simulators pick up the new capacity.
v0.11.3 2026-07-12
Fixed Dashboard Quota Display
  • The dashboard usage panel no longer flips your simulator limit back to 1 a few seconds after loading — the live counter now reads the same account data as the rest of the dashboard on deployments using the newer database-backed storage option.
  • Simulator counts can no longer go negative after deleting simulators — the counter now stops at zero.
v0.11.2 2026-07-06
Fixed Dashboard Simulator List Not Updating
  • Charging stations and electric vehicles you create now appear in your dashboard's simulator list right away, instead of being missing until you manually refreshed the page.
v0.11.1 2026-07-06
Fixed Homepage Simulator Count
  • The "simulators registered" count on the homepage now reflects the actual number of configured charging stations and EVs across all accounts, instead of always showing zero on deployments using the newer database-backed storage option.
v0.11.0 2026-07-05
More Reliable Simulator Configuration Persistence
  • Simulator configurations now persist more reliably across restarts, reducing the chance of losing a charging station or EV setup during maintenance or unexpected downtime.
v0.9.3 2026-07-02
Health Endpoint No Longer Requires an API Key
  • The /metrics endpoint no longer requires a SIMIT-API-KEY header, so orchestration platforms like Kubernetes can use it for readiness and liveness checks without extra configuration.
v0.9.2 2026-06-28
Getting Started Checklist and API Quickstart
  • The dashboard now shows a Getting Started checklist that guides new users through the four setup steps: generating an API key, adding a CSMS backend, creating a charging station, and creating a virtual EV. The checklist disappears automatically once all steps are complete, or you can dismiss it manually.
  • When a charging station exists, the Simulators card shows a collapsible API quickstart with a ready-to-run curl example for starting a transaction — pre-filled with your API key and station ID.
v0.9.1 2026-06-13
CSMS URL Validation When Adding a Backend
  • When adding an OCPP backend, SimItNow now checks the URL and shows an amber warning if the scheme is ws:// (unencrypted), the hostname cannot be resolved via DNS, or the hostname resolves to a private or loopback address that SimItNow's servers cannot reach.
  • The backend is always saved regardless of warnings — you are not blocked from testing.
  • The backend URL field now defaults to a wss:// example to guide new users toward encrypted connections.
v0.8.2 2026-06-08
OCPP 2.0.1 Simulator Support Is Live
  • Connect charging stations using the OCPP 2.0.1 protocol alongside existing 1.6 stations — specify protocol: "ocpp2.0.1" at create time.
  • Charge session lifecycle: BootNotification, Authorization, StatusNotification, TransactionEvent (Started/Updated/Ended), periodic meter reporting, and remote start/stop all work out of the box.
  • Multi-EVSE and multi-connector charging scenarios are covered for both OCPP 1.6 and OCPP 2.0.1.
  • Smart charging, device model, security, firmware/log, reservation, availability, and display-message handlers are wired with protocol-correct responses for CSMS testing.
v0.7.1 2026-06-02
Startup Recovery Progress
  • The admin panel now shows saved simulator totals and per-key restore progress while Redis-backed CS/EV simulators are being recreated after restart.
v0.7.0 2026-06-01
Per-Type Simulator Clear Buttons
  • The "Clear Simulators" button has been split into two separate buttons — Clear CS and Clear EV — placed directly on each usage counter. Click one to clear only that type, or both to clear all simulators.
v0.5.21 May 2025
OCPP 1.6 Behavioral Completeness

A landmark release bringing SimItNow's OCPP 1.6 simulator to full specification coverage. Every major message flow now behaves exactly as a real charge point would — authorization caching, correct MeterValues timing, scheduled availability changes, clock-aligned intervals, and graceful reset handling.

Transaction & Metering
feat StopTransaction now sends transaction_end MeterValues immediately before the StopTransaction call, as required by OCPP 1.6 §5.11. The final meter reading and id_tag are correctly included in the stop payload.
feat MeterValuesSampledData config respected — the simulator reads the comma-separated measurand list from OCPP configuration and builds only the requested SampledValues, matching real hardware behavior.
feat ClockAlignedDataInterval MeterValues — periodic meter readings now fire on absolute clock boundaries (e.g. :00, :15, :30, :45) rather than relative offsets, matching §5.8.
Reset & Boot
feat Soft Reset gracefully stops active transactions — sends StopTransaction with reason SoftReset before reconnecting, instead of cutting the WebSocket mid-session.
feat BootNotification Pending status handled — the simulator waits for the CSMS-specified interval and retries boot without starting any periodic tasks, matching §4.2 state machine.
Authorization
feat Authorization cache with LocalAuthorizeOffline fallback — the local authorization list is checked first, then the CSMS. Responses are cached so that when the CSMS is unreachable and LocalAuthorizeOffline=true, the last known result is used instead of rejecting the card.
Availability & Reservations
feat ChangeAvailability returns Scheduled on charging connectors — the change is queued and applied automatically when the active transaction ends, with a StatusNotification sent after application. Supports connector_id=0 (apply to all connectors).
feat Reservation auto-expiry — a background task fires at expiry_date and sends a StatusNotification returning the connector to Available, matching §5.12.
Bug Fixes
fix Temperature measurand no longer sent twice per sample when send_empty_meter_values is enabled.
fix Clock-aligned MeterValues task no longer spawns a duplicate on reconnect — only one task runs at a time.
v0.5.20 May 2025
Dashboard — Persistent Collapsible Cards

The user dashboard gets a major usability overhaul: every information panel is now collapsible, and the open/closed state persists across page reloads via localStorage.

ux All dashboard cards are now collapsible — API Key, Usage, OCPP Backends, Simulators, and Logs panels use native <details> elements with smooth transitions.
ux Card state persisted in localStorage — your preferred panel layout is remembered between sessions.
feat Periodic log loading — the Logs card auto-refreshes while expanded, pauses when the tab is hidden.
ux Log rows compacted and reformatted for single-line display; horizontal scrollbars hidden; response type shown inline.
v0.5.6 April 2025
Live OCPP Traffic Logs

Real-time WebSocket message logging lands in the dashboard. Every OCPP frame flowing between your simulated charge points and the CSMS is captured and displayed per API key.

feat Dashboard OCPP log tap — every <<< receive and >>> send is captured from the WebSocket layer and streamed to the dashboard Logs panel.
feat Admin scoped logs per API key — the admin panel now shows expanded cards with per-key OCPP traffic for support and debugging.
feat DataTransfer support — improved handling of vendor-specific DataTransfer messages in both directions.
ux Dashboard OCPP Backends card added — view and manage CSMS connection targets from the dashboard without using the REST API.
v0.5.1 March 2025
Dashboard Quota Auto-Refresh

Quota counters now update live — no page reload needed when simulators are created or deleted.

feat Live quota counters — the Usage panel polls /dashboard/quota every few seconds and updates CS/EV counts without a full page reload.
feat Simulator management from the dashboard — create and delete CS/EV simulators directly from the UI alongside the REST API.
v0.5.0 March 2025
Multi-Connector EVSE & Connector Interlock

Charging stations can now simulate multi-connector EVSEs with realistic connector interlock behavior — sibling connectors lock and unlock as charging sessions start and end.

feat Connector interlock — when charging starts on connector A, sibling connectors on the same EVSE transition to Unavailable automatically.
feat Preparing interlock — sibling connectors transition to Preparing when an EV plugs in, before charging begins.
feat Auto-unlock on session end — sibling connectors return to Available after StopTransaction completes.
v0.4.3 February 2025
Security Profile 1 — Basic Auth over WebSocket

OCPP Security Whitepaper SP-1 support: charge points can now authenticate to the CSMS using HTTP Basic Auth on the WebSocket handshake.

security SP-1 Basic Authentication — provide a username/password when creating a charge point; SimItNow sends the encoded Authorization header on every WebSocket connection attempt.
security Client certificate support — TLS mutual authentication via client certificate for CSMS endpoints that require it.
feat Security credentials are persisted and restored automatically on restart — no need to re-configure charge points after a deployment.
v0.4.2 February 2025
Stability & Reliability
fix General stability improvements and code quality hardening — fewer edge-case failures under load.
v0.4.0 February 2025
REST API v2

A cleaner, more ergonomic API surface. v2 routes use a consistent resource path structure for creating and managing both OCPP 1.6 and OCPP 2.0.1 simulators.

feat API v2 routes registered — /api/v2/cs/ and /api/v2/ev/ endpoints with a versioned URL switcher in the docs.
fix Deleting a charge point now reliably cleans up its state regardless of which instance receives the request.
ux Docs page gets a v1/v2 version switcher with sticky tab bar so endpoint lists stay readable while scrolling.