P44-xx - Advanced Configuration and Scripting
plan44.ch develops and produces various devices for controlling lights, shades, controls and sensors in home automation, especially for the digitalSTROM system, but also custom devices for special LED effects in exhibitions and for art and theater projects.
All these products are built on a common software foundation developed by plan44 as OpenSource (GPLv3 license). It is a collection of modules that can be assembled into an application as needed, covering many subtasks needed for controller devices. The p44utils framework serves as the basis for all control applications. For the connection to digitalSTROM there is p44vdc, for driving complex graphics and animations based on smart LEDs (WS28xx etc.) the p44lrgraphics graphics library, and for special hardware in exhibition and art projects the p44features collection.
While the various devices each have their own configuration options and interfaces appropriate to the application, the options for advanced configuration and programming of sequences are the same in many places.
This documentation is about these common "subsystems" and how they are used. Whether it is a "feature light" in a digitalSTROM installation or an LED ticker for a theater project, both are defined with p44lrgraphics. Likewise, calculations and sequences, whether they occur in P44-DSB evaluators, in P44-LC triggers, or as the main program of an effect light installation with P44-LC LED controllers, are part of the p44script scripting language. Rather exotic, project specific functionalities like 24-fold RFID detector or controlling of mechanical split flap displays are mapped as p44feature to provide a unified API for control from local scripts or via network from a higher level control application.
Not every subsystem is included in every product. This documentation describes the complete functionality, if necessary with subchapters referring to single products.
Incomplete - Documentation under construction!
This documentation in this form is a brand new project, and is therefore still quite at the beginning. With time more and more information will be added.
Please note: Machine Translation
Most of this documentation was written in German and then machine translated to English using deepl. Probably, deepl's English is better than mine anyway, but still, please apologize if some parts might sound a bit weird.