Quality is our top business priority

Vilia delivers top-quality IIoT solutions based on PTC ThingWorx and AWS technology. We are based in Monaco and employ Top-5% of worldwide talent. Since 2017 we have successfully delivered 13 customer projects in Air & Defense, Medical Devices, Pharmaceuticals, Chemicals, and Finance.

IoT Solutions

Every project is different, yet they have a lot in common. We reuse as much as we can, so that YOU can create truly innovative products.

Base package

We start with a base package, which is 80% standard and includes the most common set of functions, that we find in most of the IoT projects.

Common functionality

This is where we usually spend most of our time. “Common functionality” is what we’ve already done few times in the past, so it seems to be relatively widespread. However we couldn’t “standardize” it because we always find significant differences, varying from project to project.

Advanced functionality

This is our favorite part, where real innovation begins and our experience shines. We implemented each of those in the past, but every time it was a learn-something-new type of experience. There are no one-size-fits-all solutions here and specifying each of those typically requires dedicated workshops.

Open Source projects

We invest into building Open Source ecosystem around ThingWorx

Lack of static typing in ThingWorx provides great productivity benefits for small projects, but becomes somewhat of an issue as soon as the code base grows beyond some limit. Unit testing is essential to addressing this problem. Unfortunately PTC hasn't included any unit testing facility into the core platform (yet). This project is here to try filling this gap.

TwxUnit is an Apache 2.0-licensed unit testing framework for PTC ThingWorx platform, compatible with JUnit semantics and existing tooling for JUnit 2+. It is the first such solution that we are aware of, and as such it is actively developed. It allows you to do this:

// -- QueryTestSuite.TestWithFilters()
// Tests that QueryUtility.Query() returns exactly three rows
// The rows are added in me.Before() and deleted in me.After()

var things = Things["QueryUtility"].Query({ filters: { tag: "testdata" } });
assertNotNull(things, "Query returned null");
assertEquals(3, things.rows.count, "Count is not 3");

View on GitHub

Amazon Managed Streaming for Apache Kafka extension package.

Tested with ThingWorx 9.3.5 and AWS MSK with public access enabled. Authenticates via plain username + password over SASL / SCRAM. This extension can be used for implementing prototypes and demos.

View on GitHub

A trivial extension (33 lines of JavaScript code!) permitting you to use Expression and Validator widgets for INFOTABLEs.

Using it is trivial too -- just drop it on your mashup and bind it like this:

(Sertice) --[INFOTABLE]--> [Data](InfotableToJson)[Output] --[JSON]--> (Expression)

This extension can serve as an example of a truly trivial, yet functional example. It's a good starting point if you are new to authoring ThingWorx extensions.

View on GitHub

This is a simple ThingWorx extension wrapping sc command-line utility from Windows SDK (see details in Windows Dev Center). Currently it supports only querying Windows services, allowing you to get the list and state of all configured services on the Windows box where ThingWorx is running. Usage is trivial:

try {
    var windowsServices = Resources["WindowsServicesFunctions"].QueryServices();
} catch (ex) {
    // Unsupported platform (Linux, Docker, no SDK, etc.)
}

This returns an INFOTABLE of WindowsService shape like this:

name description type state
AdobeARMservice Adobe Acrobat Update Service WIN32OWNPROCESS RUNNING
Appinfo Application Information WIN32 RUNNING
AppMgmt Application Management WIN32 RUNNING

View on GitHub