/Inside-The-Loxone-Miniserver

Inside The Loxone Miniserver – various documentation about the Loxone Link/Tree protocol and hardware

Primary LanguagePython

Inside Loxone Miniserver, Extensions and Devices

I talk about three different device types in this document:

  • Miniserver: the server hardware. At least one is required for a home.
  • Extensions: connected to the Miniserver via the Loxone Link bus.
  • Devices: connected to one of the two Tree Busses behind a Tree Extension or via IPv6 868MHz to an Air Base Extension.

I've split up the documentation into separate parts to make it easier to read, also because Legacy and NAT protocols are completely independent, you only need to care about the one that matters for you.

I am also providing a collection of Python scripts for the Miniserver, feel free to look into them, to see if they are helpful for you.

Code Examples

  • unpackLoxoneMiniserverFirmwareUpdate.py - Uncompresses an *.upd firmware update, which contains the firmware for the Miniserver as well as an update for the Miniserver filesystem.

  • analyzeLoxoneExtensionUpdates.py - Analyzes the firmware updates for Loxone extension and devices (Name, Type, Version, CPU, ROM-Usage, RAM-Usage)

  • loadLoxoneMiniserverStatistics.py - Example on how to load the statistics from the Miniserver via FTP and parse the files for further processing.

  • loadMiniserverConfigurationFile.py - Load the current configuration from the Miniserver and uncompress it, so it can be opened with a text editor. Also describes the load order of configurations.

  • LoxoneMonitorServer.py - A Loxone Monitor Server proxy example to simulate the debugging options Loxone has on your server.

  • LoxoneWeather.py - A Loxone Weather Service proxy, which uses Darksky instead. It supports CSV and XML replies and also tries to match the icons.

  • parseLoxoneSD.py - Parse a ZIP compressed disk image of the Micro-SD card. This can be used to recover files from the SD card directly.

  • decompressMiniserverArchive.py - Decompresses the /commonv2.agz and /images.zip into ./web/. The Miniserver keeps these files compressed and only the webserver serves them uncompressed. There are more files in the /web/ hierarchy, as can be seen with an FTP client:

    • /data/LoxAPP3.json - a simplified version of the configuration
    • /data/weatheru.bin - Recent weather data in 108 byte chunks, see in the network section under Weather Server
    • /stats/index.html - Dynamic webpage with the server statistics
    • /stats/styles.css - CSS for the statistics webpage
  • LoxoneLink.py - Python sample code to analyze the Loxone Link/Loxone Tree protocol, as well as a sample implementation of many extensions and tree devices. Not intended for production, but for learning. It uses USBtin, but you can probably adjust it to other devices with minimal effort.

  • LoxLink - STM32 ARM based sample code can be found here https://github.com/sarnau/LoxLink