PHAL plugins¶
The Plugin based Hardware Abstraction Layer plugins allow you to interact with system components such as Wi-Fi, GPIO, NetworkManager, etc... but not only.
Note
The PHAL plugins are handled by the ovos_phal and ovos_phal_admin containers.
ovos_phal_admin is a privileged container
The ovos_phal_admin purpose is to run plugins that require accesses to some devices, files or services.
Plugins installed in this container have to be enabled into ~/ovos/config/mycroft.conf in order to get loaded, this acts as an extra layer of security.
The ovos_phal container comes with few pre-installed PHAL plugins such as:
ovos-PHAL-plugin-alsacontrols system volume with ALSAovos-PHAL-plugin-ipgeoprovides geolocation information via the message busovos-PHAL-plugin-systemhandles bus events to interact with the operating system
If the existing PHAL plugins are not enough then you can install yours by following the same principle as for the STT plugins by adding a phal.list or phal_admin.list files within the ~/ovos/config/ directory, this file acts as a Python requirements.txt file.
Plugins requirements
These plugins have to be compatible with the pip install method which requires a setup.py file.
When the ovos_phal or ovos_phal_admin containers start, they will look for these files and install the skpluginsills defined in there.
ovos-phal-plugin-ipgeo==0.0.1 # Specific plugin version on PyPi
ovos-PHAL-plugin-pulse # Latest plugin version on PyPi
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-homeassistant.git@fix/whatever # Specific branch of a plugin on GitHub
The ovos_phal or ovos_phal_admin containers must be restarted if a change occurs in the phal.list or phal_admin.lis files.