Sürücünün kartsız, yalnızca telefonundaki uygulamayla veya bir QR kodu okutarak şarj başlatabilmesi, OCPP'deki RemoteStartTransaction komutu sayesinde mümkündür. Bu komut aynı zamanda müşteri hizmetlerinin, kartını unutan bir sürücü için şarjı uzaktan başlatmasını da sağlar.
Akış nasıl işler?
- Sürücü mobil uygulamada istasyonu ve konnektörü seçer ya da soketin üzerindeki QR kodu okutur.
- Uygulama, CSMS'e "bu kullanıcı adına şu konnektörde şarj başlat" der.
- CSMS, kullanıcının yetkisini, limitlerini ve ödeme durumunu kontrol eder.
- CSMS cihaza RemoteStartTransaction gönderir.
- Cihaz isteği kabul ederse cevap Accepted, edemezse Rejected olur.
- Kablo takılıysa veya takılınca cihaz normal akışla StartTransaction gönderir ve oturum başlar.
Önemli nokta: Accepted cevabı, şarjın başladığı anlamına gelmez; yalnızca cihazın isteği kabul ettiğini gösterir. Oturumun gerçekten başladığını StartTransaction mesajından anlarsınız.
Mesaj içeriği
OCPP 1.6J'de RemoteStartTransaction şu alanları içerir:
- idTag (zorunlu): Oturumun hangi kimlik adına başlatılacağı. Mobil uygulama kullanıcıları için CSMS genellikle kullanıcıya özel sanal bir kimlik kullanır.
- connectorId (isteğe bağlı): Hangi konnektör. Belirtilmezse cihaz uygun bir konnektör seçer; çok soketli cihazlarda mutlaka belirtilmelidir.
- chargingProfile (isteğe bağlı): Oturuma özel bir güç sınırı (TxProfile).
Örnek:
[2, "5001", "RemoteStartTransaction", {"connectorId": 2, "idTag": "APP-7F3A21"}]
OCPP 2.0.1 ve 2.1'de karşılığı RequestStartTransaction mesajıdır; yapı benzerdir, ancak idToken ve evseId alanları kullanılır ve CSMS bir remoteStartId atar.
Cihaz yeniden yetkilendirme yapar mı?
Bu, AuthorizeRemoteTxRequests ayarına bağlıdır. Ayar true ise cihaz, uzaktan gelen idTag için önce Authorize mesajı gönderir; false ise doğrudan başlatır. CSMS zaten kontrolü yaptığı için çoğu kurulumda false tercih edilir ve bu da sürücünün bekleme süresini kısaltır. Ayrıntılar için AuthorizeRemoteTxRequests yazımıza bakın.
Neden Rejected döner?
- Konnektör meşgul, rezerve veya hizmet dışı.
- Konnektör numarası cihazda yok.
- Cihaz bir arıza durumunda (Faulted).
- Cihaz uzaktan başlatmayı desteklemiyor veya bu özellik kapalı.
Rejected durumunda kullanıcıya anlaşılır bir mesaj göstermek gerekir: "Bu soket şu anda kullanılamıyor, lütfen başka bir soket seçin" gibi.
Kablo takılmazsa ne olur?
Cihaz isteği kabul ettikten sonra kullanıcı kabloyu belirli bir süre içinde takmazsa, cihaz bekleme süresi dolunca hazırlığı iptal eder. Bu süre OCPP 1.6J'de ConnectionTimeOut ayarıyla belirlenir. Ayrıntılar: ConnectionTimeOut ayarı.
QR kodla şarj
QR kod, genellikle istasyonu ve konnektörü tanımlayan bir bağlantıyı içerir. Kullanıcı bağlantıyı açar, giriş yapar veya ödeme bilgisini girer; arka planda yine RemoteStartTransaction kullanılır. Bu yöntem, kart dağıtmadan şarj hizmeti sunmanın en pratik yoludur. Ayrıntılar için QR kod ile şarj başlatma yazımıza göz atın.
Sık görülen sorunlar
- Accepted geliyor ama şarj başlamıyor: Kablo takılmamış, araç şarjı reddediyor veya ConnectionTimeOut dolmuş olabilir. Loglarda StartTransaction olup olmadığına bakın.
- Yanlış konnektör başlıyor: connectorId gönderilmemiş olabilir.
- Gecikme: Cihaz bağlantısı yavaşsa komut birkaç saniye gecikebilir; kullanıcıya bekleme durumu gösterin.
Güvenlik ve kötüye kullanımın önlenmesi
Uzaktan başlatma isteği yalnızca CSMS'ten gelebildiği için güvenli bir kanaldır; ancak mobil uygulama tarafında kullanıcının gerçekten o soketin başında olduğundan emin olmak gerekir. Aksi halde biri başka bir sürücünün kablosu takılı aracına kendi hesabından şarj başlatabilir veya yanlış soketi seçebilir. QR kodun soketi doğrudan tanımlaması, uygulamada konum kontrolü yapılması ve başlatma isteğinin kısa bir süre içinde kablo takılmasıyla eşleşmesi bu riskleri azaltır.
Sonuç
RemoteStartTransaction, kartsız şarj deneyiminin ve uzaktan müşteri desteğinin temelidir. Accepted cevabı ile oturumun gerçekten başlamasını ayırt etmek, doğru konnektörü belirtmek ve zaman aşımlarını iyi yönetmek, sorunsuz bir kullanıcı deneyimi sağlar. Üreticy'nin OCPP yazılımı, uzaktan komutların sonucunu kaydeder; API üzerinden kendi uygulamanızdan şarj başlatmanıza da olanak tanır.
