If you are looking forward to implement the next great IoT application for connected vehicles, Carvoyant and scriptr.io have what you need.

Carvoyant is a connected car platform that allows applications to be built around connected cars without being concerned as to how the car is connected. Carvoyant focuses exclusively on a connected car API that allows developers to retrieve data collected by a Carvoyant device, simply plugged into cars. Applications built using Carvoyant can be accessed by other drivers to broaden distribution and extract the maximum value of the data flow.

At scriptr.io, we really like what Carvoyant is achieving and therefore, we implemented a connector to simplify and streamline the way scriptr.io’s developers access Carvoyant’s APIs. Using a few native objects, developers can directly access cars’ data from within their scripts and thus, create sophisticated IoT applications and processes around connected vehicles.

Apps for connected vehicles: a plethora of use cases

You woke up late this morning and you rush in order not to miss a very important meeting. You jump into your car and… nothing happens. Your car’s battery died over night! Great (sic): now you have to call an auto-repair shop to replace it, call a taxi and, worse part, you are going to be late…

Wouldn’t it have been better if your car was regularly informing an application about its battery status, allowing the app to predict the potential failure and accordingly, schedule for an appointment at an auto-repair shop? No emergency to handle, no delays.

The above example is just a simple illustration of the many use cases that you can tackle combining the power of connected vehicles to an orchestration platform such as scriptr.io:

  • Overhaul management: a fleet of vehicle (transportation companies, car dealers) sends data to a control application that schedules and triggers maintenance and part provisioning processes
  • Customer care: an application is notified of a vehicle crash and automatically triggers the appropriate processes such as rescue (eCall), insurance claim, vehicle repair, etc.
  • Pay as you go: based on accurate data retrieved in near real-time from a vehicle (trips, fuel consumption, driver’s behavior), an application calculates the exact premium customers have to pay
  • Improved vehicle design: data that is retrieved from vehicles is processed, analyzed and turned into useful information that is injected into the systems of automakers to improve the design of their vehicles
  • … and many more

The GSMA predicts that the overall connected vehicle market will reach around US$ 40 Billions in 2018. Other studies lead by Booze and PWC estimate the market to reach US$ 149 Billions in 2020. All agree that this market is expanding at a tremendous pace and that there is a lot of business opportunities to grasp. With Carvoyant and scriptr.io, you have the tools to be part of it.

Example: pay-as-you-go

In this very simple example, we demonstrate how easy it is to implement a pay-as-you-go solution for car rental, using scriptr.io’s connector for Carvoyant. The script connects to a Carvoyant connected car and retrieves the mileage of the last trip taken by this car. Based on a predefined value saved in scriptr.io’s storage, the script computes the price that has to be paid by the customer and returns it. Oh, and in the process, we also subscribe to notifications sent by the car’s battery, just in case… ­čśë
Note: in the below, we assume we already obtained an authorization token for the carvoyant user. Kindly refer to the README.md file for more on how to obtain this token

// require the carvoyant user module (the only module you need)
var userModule = require("modules/carvoyant/user.js");
// create an instance of User from a carvoyant subscriber name
var user = new userModule.User({username:"edison"});
// obtain a reference to an instance of Vehicle, based on a carvoyant vehicle id
var vehicle = user.getVehicle("1234567");
// subscribe to battery voltage notifications
sub = {
      "notificationType": "LOWBATTERY",
      "notificationPeriod": "CONTINUOUS"
    };
    
vehicle.subscribeToNotification(sub); // by default, notification are sent by email to the driver
// ask for the details of the last trip 
var tripDetails = vehicle.getLastTrip();
var mileage = tripDetails.mileage;
var price = mileage * storage.global.mileCost;
return price;