Holu Hou

Romano Pauli's profile picture
“Their staff is knowledgeable, open to feedback, and intelligent.”
Romano Pauli
Vice President

Client


Description

Holu Hou is a US-based provider of solar energy systems and energy storage, a company of technology experts and enthusiasts, eager to promote fuel-free and eco-friendly energy production, using renewable energy resources. Holu Hou serves industrial and commercial objects as well as private households. The company provides a full-service cycle from individual power system design, construction, and installation, through ongoing maintenance.


Challenge

The main challenge of the project was to create fully functional and well-tested software in the absence of a connection with an actual controller device to provide real-life data and receive and process commands from the software. While the Waverley software development team was working on the web and mobile software, the controller device was in the active development phase on the client’s side. Our software engineers could only work with the available product documentation and requirements, which was insufficient given the scope of the product. As a result, our team took an active part in setting the strategy for the feature set development. In addition, our development team created an emulator software that could be programmed to reproduce the work of a physical controller device. They carefully studied the client’s documentation describing the work and functionality of the future controller and designed a data generator that produced life-like controller data and could process the signals sent by the software. This way, we were able to do software testing long before the client provided the connection with a real controller device.


Solution

An iOS and Android mobile application, a web app for admin functions, iOS and Android mobile apps, as well as a web application for users of the system. To develop the cross-platform mobile applications for Android and iOS, the Waverley team used Flutter – a UI development toolkit from Google written in the Dart programming language. For web applications, we used Angular for front-end and Node.JS with Nest.JS framework for back-end development. The project development also relied heavily on Amazon Web Services with infrastructure setup, software deployment and build-up on Amazon. AWS IoT Core was used to set interactions between the customer’s controller device and the mobile and web applications. AWS Kinesis was employed for real-time processing of data from the controller device. Amazon Cognito was used to help synchronize user identification data across applications securely. DevOps activities also involved a number of AWS services (CodePipeline, CodeBuild, CodeCommit, CodeDeploy, CloudFormation). For the mobile app development CI/CD cycle, we chose Bitrise. Architecture: The customer’s system includes the solar panels, PV batteries (storage), an inverter, and the controller device. The solution we delivered includes 4 separate applications: 2 admin apps, a web app and a mobile iOS/Android app; and 2 user apps, also for both mobile and web. The corresponding mobile and web applications are designed to deliver the same functionality. All the applications communicate with the controller device through the Amazon IoT Core service. The controller device itself is connected to the solar panels, PV batteries, inverter, and the user’s home appliances–for example, a water heater or an AC unit, or an EV charger. The mobile and web software applications communicate with the controller, which has no local HMI(Human-Machine Interface) to manage the solar energy system and monitor the power load on the connected appliances. The controller device and mobile and web applications can exchange data through a shared WiFi network or Bluetooth connection.


Image Gallery