For several years I have put most of my free time into developing, documenting and supporting this open source project. I made a conscious decision to make this software available free of charge and to continuously expand it with features that could be of interest to as many users as possible. By using this software, electricity costs can be significantly reduced by maximizing the use of self-generated electricity. I would consider it an acknowledgment of my work if a portion of this saving were used to help support this project. This can easily be done using Paypal or bank transfer (account owner: Axel Mueller, IBAN: DE83 5185 0079 1140 0764 37, BIC: HELADEF1FRI, Details: support for Smart Appliance Enabler)
The Smart Appliance Enabler is a software for integrating any device (Wallbox, heat pump, washing machine, dishwasher, ...) with the Sunny Home Manager by SMA to maximize the use of self-generated electricity obtained by photovoltaic systems.
For that, the Smart Appliance Enabler reports demands of these devices to the Sunny Home Manager in order to enable optimal planning of self-consumption. According to this planning, the Smart Appliance Enabler receives switching commands, which it forwards to the devices it manages. If individual, digital electricity meters are used for these devices, the power cosumption can be read and reported to the Sunny Home Manager to support it in learning the consumption characteristics and visualize power consumption in the Sunny Portal.
The following graphic from the Sunny Portal shows a sunny autumn day on which the Wallbox was optimally controlled to charge the electric car while avoiding grid purchase. At the same time, the Sunny Home Manager had to run the dishwasher and washing machine according to the set requirements. In addition, the heat pump (hot water and heating) and the espresso machine were switched on at times, which are not controlled by the Sunny Home Manager, but of course also consume electricity.
The Smart Appliance Enabler was implemented in Java and basically runs on any device for which a Java Virtual Machine with Java 11 exists. In addition to the compiled code, various scripts are provided in which Linux is assumed to be the operating system. If devices are to be connected via GPIO, the Smart Appliance Enabler requires a Raspberry Pi as hardware.
The Smart Appliance Enabler currently supports the following options for measuring the power consumption of a device in order to report it to the Sunny Home Manager:
Protocol | Products |
---|---|
GPIO | S0 meter |
Modbus | Modbus meter |
HTTP | HTTP meter in general |
MQTT | MQTT meter |
More details about these meters and other software based meters (e.g. master/slave meter)
The Smart Appliance Enabler currently supports the following options for switching a device on/off:
Protocol | Products |
---|---|
GPIO | GPIO switch level switch PWM switch |
Modbus | Modbus switch level switch wallbox |
HTTP | HTTP switch level switch |
MQTT | MQTT switch level switch |
If the Smart Appliance Enabler is to be operated on a Raspberry Pi, the Assembly Instructions should be observed.
The standard installation runs automatically and requires no Linux knowledge.
If necessary, the manual installation can also be selected as an alternative, in which all commands in the documentation must be executed manually.
Installing updates enables the use of new functions and bug fixes.
If desired, the Smart Appliance Enabler can also be operated in a container with the provided Docker-Images.
The configuration of the Smart Appliance Enabler is done with the web browser.
The status of all controllable devices is clearly displayed in the Status display, whereby the status of each device is visualized by a traffic light. The traffic light can also be used for manual control.
In addition, the Smart Appliance Enabler supports Node-RED by exporting flows for the configured devices so that they can be visualized in the Node-RED dashboard. In addition, the MQTT messages of the Smart Appliance Enabler can be used to integrate with other automation platforms.
In the following video you can get an impression of the configuration of the Smart Appliance Enabler. This video was created as part of conducting automated tests to ensure the quality of the Smart Appliance Enabler.
In addition to being controlled by the Sunny Home Manager, the Smart Appliance Enabler enables the integration of devices into Sunny Portal.
This page hopefully leads to the solution in case of problems. Based on frequently asked questions, answers are given as well as references to relevant parts of the documentation.
Discussions and questions about the Smart Appliance Enabler are correctly placed in Github Discussion.
In addition, I offer personal, individual, fee-based support with advice - so to speak, the "all-round carefree package".
To contribute you don't have to be a programmer! Anyone can contribute in many different ways! Your application scenarios for the Smart Appliance Enabler help others!
All information about the development of the Smart Appliance Enabler including the documentation of the build and test environments.
The Smart Appliance Enabler project was supported by SMA by providing a Sunny Home Manager 2.0!
The Smart Appliance Enabler would not exist without the following tools and frameworks, whose developers I would like to thank and acknowledge:
- Angular for the web frontend
- Angular Material for material design components of the web frontend
- Browserstack for automated multi-browser tests and a free license for open source projects
- Cling for UPnP protocol implementation (part for the SEMP protocol)
- Docker for its container platform
- Docker Hub for its repository to exchange docker images
- GitHub for its platform for project repositories
- IntelliJ for the best IDE (especially with Linux) and free license for open source projects
- Jenkins for a build/test automation server
- pigpioj for a library providing access to Raspberry Pi GPIO
- Spring Boot for Spring-based applications with embedded web container
- Testcafe for easy testing of web applications
- WebStorm for the best IDE (especially with Linux) and free license for open source projects
The contents of this repository are licensed under the GNU GENERAL PUBLIC LICENSE unless otherwise noted.