OH 2: Systeminfo Binding over multiple openHAB instances via MQTT

Hi guys, I have not yet seen that there is already a solution for this. However, I am still using openHAB 2 and the old MQTT 1 binding. But maybe there are people who will write a newer tutorial on this, just because I still haven’t made any progress with conversions.

Motivation and Background
What I am generally trying to do is to have each device display information in an administrative overview. In a simple case, this goes from a simple display of the network binding and ping to whether various devices are switched on or reachable. I am currently starting, stopping/shutting down or restarting openHAB and the devices on which openHAB is running. From this way of thinking, a first step was to use the Systeminfo Binding to get more information about the status of the devices, such as the CPU load, the memory used, etc. The goal is to make the entire system as maintainable as possible.

The problem

The problem is actually relatively simple to explain. The Systeminfo Binding requires a Thing. This refers to the local computer. Depending on the setup of the entire openHAB system, it is not possible to exchange the system information.

Preparation

At first you have to install the MQTT bindings. In my case:

  1. openHAB → PaperUI → Settings → Configuration → System → Addon Management → Include Legacy 1.x Bindings → Save

  1. openHAB → PaperUI → Addons → Bindings → MQTT Action (1.x) → install

  1. openHAB → PaperUI → Addons → Actions → MQTT Binding (1.x) → install

  1. openHAB → PaperUI → Addons → Bindings → System Info Binding → install

This installation is the same on all openHAB devices.

MQTT configuration

I use an Ubuntu VM with openHAB installed and 8 Raspberry Pi`s running openHABian. The VM publishes the item states and subscribes the commands of the items.

cat $OPENHAB_CONF/services/mqtt.cfg:

#
# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with an ID you choose.
#

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
MQTTBroker.url=tcp://localhost:1883

# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a random default is generated.
#<broker>.clientId=<clientId>

# Optional. True or false. If set to true, allows the use of clientId values
# up to 65535 characters long. Defaults to false.
# NOTE: clientId values longer than 23 characters may not be supported by all
# MQTT servers. Check the server documentation.
#<broker>.allowLongerClientIds=false

# Optional. User id to authenticate with the broker.
#MQTTBroker.user=

# Optional. Password to authenticate with the broker.
#MQTTBroker.pwd=

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.
MQTTBroker.qos=0

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.
#<broker>.retain=<retain>

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.
MQTTBroker.async=false

# Optional. Defines the last will and testament that is sent when this client goes offline
# Format: topic:message:qos:retained <br/>
#<broker>.lwt=<last will definition>

cat $OPENHAB_CONF/services/mqtt-eventbus.cfg:

# Name of the broker as it is defined in the openhab.cfg. If this property is not available, no event bus MQTT binding will be created.
broker=MQTTBroker

# When available, all status updates which occur on the openHAB event bus are published to the provided topic. The message content will
# be the status. The variable ${item} will be replaced during publishing with the item name for which the state was received.
statePublishTopic=/messages/states/${item}

# When available, all commands which occur on the openHAB event bus are published to the provided topic. The message content will be the
# command. The variable ${item} will be replaced during publishing with the item name for which the command was received.
#commandPublishTopic=

# When available, all status updates received on this topic will be posted to the openHAB event bus. The message content is assumed to be
# a string representation of the status. The topic should include the variable ${item} to indicate which part of the topic contains the
# item name which can be used for posting the received value to the event bus.
#stateSubscribeTopic=

# When available, all commands received on this topic will be posted to the openHAB event bus. The message content is assumed to be a
# string representation of the command. The topic should include the variable ${item} to indicate which part of the topic contains the
# item name which can be used for posting the received value to the event bus.
commandSubscribeTopic=/messages/commands/${item}

And on the Raspberry Pi’s I have a configuration like that:

cat $OPENHAB_CONF/services/mqtt.cfg:

#
# Define your MQTT broker connections here for use in the MQTT Binding or MQTT
# Persistence bundles. Replace <broker> with an ID you choose.
#

# URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
MQTTBroker.url=tcp://192.168.0.X:1883

# Optional. Client id (max 23 chars) to use when connecting to the broker.
# If not provided a default one is generated.
#<broker>.clientId=<clientId>

# Optional. User id to authenticate with the broker.
#MQTTBroker.user=

# Optional. Password to authenticate with the broker.
#MQTTBroker.pwd=

# Optional. Set the quality of service level for sending messages to this broker.
# Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
# (Deliver exactly once). Defaults to 0.
#<broker>.qos=<qos>

# Optional. True or false. Defines if the broker should retain the messages sent to
# it. Defaults to false.
#MQTTBroker.retain=false

# Optional. True or false. Defines if messages are published asynchronously or
# synchronously. Defaults to true.
MQTTBroker.async=false

# Optional. Defines the last will and testament that is sent when this client goes offline
# Format: topic:message:qos:retained <br/>
#<broker>.lwt=<last will definition>

cat $OPENHAB_CONF/services/mqtt-eventbus.cfg:

# Name of the broker as it is defined in the openhab.cfg. If this property is not available, no event bus MQTT binding will be created.
broker=MQTTBroker

# When available, all status updates which occur on the openHAB event bus are published to the provided topic. The message content will
# be the status. The variable ${item} will be replaced during publishing with the item name for which the state was received.
#statePublishTopic=

# When available, all commands which occur on the openHAB event bus are published to the provided topic. The message content will be the
# command. The variable ${item} will be replaced during publishing with the item name for which the command was received.
commandPublishTopic=/messages/commands/${item}

# When available, all status updates received on this topic will be posted to the openHAB event bus. The message content is assumed to be
# a string representation of the status. The topic should include the variable ${item} to indicate which part of the topic contains the
# item name which can be used for posting the received value to the event bus.
stateSubscribeTopic=/messages/states/${item}

# When available, all commands received on this topic will be posted to the openHAB event bus. The message content is assumed to be a
# string representation of the command. The topic should include the variable ${item} to indicate which part of the topic contains the
# item name which can be used for posting the received value to the event bus.
#commandSubscribeTopic=

(The rule files could also work without this setup.)

So in my setup, the Raspberry Pi and the VM would have system information independently. The VM does not know the values of the individual Raspberry Pi`s. So it only has null values or undef values.

Get the local system infos

The first thing to do is to get the local system information on each device.

cat $OPENHAB_CONF/things/system.things:

Thing exec:command:uptime [command="/etc/openhab2/scripts/uptime.sh", interval=60, timeout=2]
Thing systeminfo:computer:shlPiGeneral [interval_high=2, interval_medium=60]

or:

Thing exec:command:uptime [command="/etc/openhab2/scripts/uptime.sh", interval=60, timeout=2]
Thing systeminfo:computer:OpenHABVM [interval_high=2, interval_medium=60]

As you can see on the VM I named the thing OpenHABVM and on one of the Raspberry Pi`s shlPiGeneral. On both you can name the thing as you want. For example local or localmachine. The second thing you noticed is that I followd this tutorial to show the server and the openHAB uptime. This is not needed, but if you are already interested in, very helpful.

Then you need an item for the local system infos. Let call it system.items:

/* Network information*/
String Network_AdapterName        "Adapter name"        <network>        { channel="systeminfo:computer:work:network#networkDisplayName" }
String Network_Name               "Name"                <network>        { channel="systeminfo:computer:work:network#networkName" }
String Network_IP                 "IP address"          <network>        { channel="systeminfo:computer:work:network#ip" }
String Network_Mac                "Mac address"         <network>        { channel="systeminfo:computer:work:network#mac" }
Number Network_DataSent           "Data sent"           <flowpipe>       { channel="systeminfo:computer:work:network#dataSent" }
Number Network_DataReceived       "Data received"       <returnpipe>     { channel="systeminfo:computer:work:network#dataReceived" }
Number Network_PacketsSent        "Packets sent"        <flowpipe>       { channel="systeminfo:computer:work:network#packetsSent" }
Number Network_PacketsReceived    "Packets received"    <returnpipe>     { channel="systeminfo:computer:work:network#packetsReceived" }

/* CPU information*/
String CPU_Name                   "Name"                <none>           { channel="systeminfo:computer:work:cpu#name" }
String CPU_Description            "Description"         <none>           { channel="systeminfo:computer:work:cpu#description" }
Number CPU_Load1                  "Load (1 min)"        <none>           { channel="systeminfo:computer:work:cpu#load1" }
Number CPU_Load5                  "Load (5 min)"        <none>           { channel="systeminfo:computer:work:cpu#load5" }
Number CPU_Load15                 "Load (15 min)"       <none>           { channel="systeminfo:computer:work:cpu#load15" }
Number CPU_Threads                "Threads"             <none>           { channel="systeminfo:computer:work:cpu#threads" }
Number CPU_Uptime                 "Uptime"              <time>           { channel="systeminfo:computer:work:cpu#uptime" }

/* Drive information*/
String Drive_Name                 "Name"                <none>           { channel="systeminfo:computer:work:drive#name" }
String Drive_Model                "Model"               <none>           { channel="systeminfo:computer:work:drive#model" }
String Drive_Serial               "Serial"              <none>           { channel="systeminfo:computer:work:drive#serial" }

/* Storage information*/
String Storage_Name               "Name"                <none>           { channel="systeminfo:computer:work:storage#name" }
String Storage_Type               "Type"                <none>           { channel="systeminfo:computer:work:storage#type" }
String Storage_Description        "Description"         <none>           { channel="systeminfo:computer:work:storage#description" }
Number Storage_Available          "Available"           <none>           { channel="systeminfo:computer:work:storage#available" }
Number Storage_Used               "Used"                <none>           { channel="systeminfo:computer:work:storage#used" }
Number Storage_Total              "Total"               <none>           { channel="systeminfo:computer:work:storage#total" }
Number Storage_Available_Percent  "Available (%)"       <none>           { channel="systeminfo:computer:work:storage#availablePercent" }
Number Storage_Used_Percent       "Used (%)"            <none>           { channel="systeminfo:computer:work:storage#usedPercent" }

/* Memory information*/
Number Memory_Available           "Available"           <none>           { channel="systeminfo:computer:work:memory#available" }
Number Memory_Used                "Used"                <none>           { channel="systeminfo:computer:work:memory#used" }
Number Memory_Total               "Total"               <none>           { channel="systeminfo:computer:work:memory#total" }
Number Memory_Available_Percent   "Available (%)"       <none>           { channel="systeminfo:computer:work:memory#availablePercent" }
Number Memory_Used_Percent        "Used (%)"            <none>           { channel="systeminfo:computer:work:memory#usedPercent" }

/* Swap memory information*/
Number Swap_Available             "Available"           <none>           { channel="systeminfo:computer:work:swap#available" }
Number Swap_Used                  "Used"                <none>           { channel="systeminfo:computer:work:swap#used" }
Number Swap_Total                 "Total"               <none>           { channel="systeminfo:computer:work:swap#total" }
Number Swap_Available_Percent     "Available (%)"       <none>           { channel="systeminfo:computer:work:swap#availablePercent" }
Number Swap_Used_Percent          "Used (%)"            <none>           { channel="systeminfo:computer:work:swap#usedPercent" }

/* Battery information*/
String Battery_Name               "Name"                <batterylevel>   { channel="systeminfo:computer:work:battery#name" }
Number Battery_RemainingCapacity  "Remaining Capacity"  <batterylevel>   { channel="systeminfo:computer:work:battery#remainingCapacity" }
Number Battery_RemainingTime      "Remaining Time"      <batterylevel>   { channel="systeminfo:computer:work:battery#remainingTime" }

/* Display information*/
String Display_Description        "Display description" <screen>         { channel="systeminfo:computer:work:display#information" }

/* Sensors information*/
Number Sensor_CPUTemp             "CPU Temperature"     <temperature>    { channel="systeminfo:computer:work:sensors#cpuTemp" }
Number Sensor_CPUVoltage          "CPU Voltage"         <energy>         { channel="systeminfo:computer:work:sensors#cpuVoltage" }
Number Sensor_FanSpeed            "Fan speed"           <fan>            { channel="systeminfo:computer:work:sensors#fanSpeed" }

/* Process information*/
Number Process_load               "Load"                <none>           { channel="systeminfo:computer:work:process#load" }
Number Process_used               "Used"                <none>           { channel="systeminfo:computer:work:process#used" }
String Process_name               "Name"                <none>           { channel="systeminfo:computer:work:process#name" }
Number Process_threads            "Threads"             <none>           { channel="systeminfo:computer:work:process#threads" }
String Process_path               "Path"                <none>           { channel="systeminfo:computer:work:process#path" }

Inside the VM is replaced work with OpenHABVM and on the Raspberry Pi I replaced it with shlPiGeneral. So please remember that you have to use the given name of the thing. So if you call it local or localmachine then you have to use it.

Note: I think a good practice is to name your Thing equal to the hostname of the computer.

Inside your sitemap you have to add following:

Text label="Systeminfo" {
    Frame label="Network Information" {
        Default item=Network_AdapterName
        Default item=Network_Name
        Default item=Network_IP
        Default item=Network_Mac
        Default item=Network_DataSent
        Default item=Network_DataReceived
        Default item=Network_PacketsSent
        Default item=Network_PacketsReceived
    }
    Frame label="CPU Information" {
        Default item=CPU_Name
        Default item=CPU_Description
        Default item=CPU_Load1
        Default item=CPU_Load5
        Default item=CPU_Load15
        Default item=CPU_Threads
        Default item=CPU_Uptime
    }
    Frame label="Drive Information" {
        Default item=Drive_Name
        Default item=Drive_Model
        Default item=Drive_Serial
    }
    Frame label="Storage Information" {
        Default item=Storage_Name
        Default item=Storage_Type
        Default item=Storage_Description
        Default item=Storage_Available
        Default item=Storage_Used
        Default item=Storage_Total
        Default item=Storage_Available_Percent
        Default item=Storage_Used_Percent
    }
    Frame label="Memory Information" {
        Default item=Memory_Available
        Default item=Memory_Used
        Default item=Memory_Total
        Default item=Memory_Available_Percent
        Default item=Memory_Used_Percent
    }
    Frame label="Swap Memory Information" {
        Default item=Swap_Available
        Default item=Swap_Used
        Default item=Swap_Total
        Default item=Swap_Available_Percent
        Default item=Swap_Used_Percent
    }
    Frame label="Battery, Display and Sensor Information" {
        Default item=Battery_Name
        Default item=Battery_RemainingCapacity
        Default item=Battery_RemainingTime
        Default item=Display_Description
        Default item=Sensor_CPUTemp
        Default item=Sensor_CPUVoltage
        Default item=Sensor_FanSpeed
    }
    Frame label="Process Information" {
        Default item=Process_load
        Default item=Process_used
        Default item=Process_name
        Default item=Process_threads
        Default item=Process_path
    }
}

Congratulation, the first important step is done. Check if it work. As example you can see something like that:


Share the system infos

So which is in my opinion a better aproach is that you not use as example the item name Network_AdapterName on multiple devices. I used a prefix like the machine hostname. So I used OpenHABVM_Network_AdapterName and shlPiGeneral_Network_AdapterName in my example. So one every device I don`t use the example names for the items which was given in the documentation.

Be careful that you have to update the sitemap as well!

For sharing the local system infos you need a rule file. Let`s call it sytem.rules. Here I have following example for you:

cat $OPENHAB_CONF/rules/system.rules

var loggerName = "system rules"

var device = "OpenHABVM"
var broker = "MQTTBroker"
var topic = "/messages/states"

rule "System State rule"
when
    // jede Minute
    Time cron "0 0/1 * * * ?"
then
    publish(broker, topic + "/" + device+ "/" + "Network_AdapterName", OpenHABVM_Network_AdapterName.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_Name", OpenHABVM_Network_Name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_IP", OpenHABVM_Network_IP.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_Mac", OpenHABVM_Network_Mac.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_DataSent", OpenHABVM_Network_DataSent.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_DataReceived", OpenHABVM_Network_DataReceived.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_PacketsSent", OpenHABVM_Network_PacketsSent.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Network_PacketsReceived", OpenHABVM_Network_PacketsReceived.state.toString)

    /* CPU information*/
    publish(broker, topic + "/" + device+ "/" + "CPU_Name", OpenHABVM_CPU_Name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Description", OpenHABVM_CPU_Description.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Load1", OpenHABVM_CPU_Load1.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Load5", OpenHABVM_CPU_Load5.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Load15", OpenHABVM_CPU_Load15.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Threads", OpenHABVM_CPU_Threads.state.toString)
    publish(broker, topic + "/" + device+ "/" + "CPU_Uptime", OpenHABVM_CPU_Uptime.state.toString)

    /* Drive information*/
    publish(broker, topic + "/" + device+ "/" + "Drive_Name", OpenHABVM_Drive_Name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Drive_Model", OpenHABVM_Drive_Model.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Drive_Serial", OpenHABVM_Drive_Serial.state.toString)

    /* Storage information*/
    publish(broker, topic + "/" + device+ "/" + "Storage_Name", OpenHABVM_Storage_Name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Type", OpenHABVM_Storage_Type.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Description", OpenHABVM_Storage_Description.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Available", OpenHABVM_Storage_Available.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Used", OpenHABVM_Storage_Used.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Total", OpenHABVM_Storage_Total.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Available_Percent", OpenHABVM_Storage_Available_Percent.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Storage_Used_Percent", OpenHABVM_Storage_Used_Percent.state.toString)


    /* Memory information*/
    publish(broker, topic + "/" + device+ "/" + "Memory_Available", OpenHABVM_Memory_Available.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Memory_Used", OpenHABVM_Memory_Used.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Memory_Total", OpenHABVM_Memory_Total.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Memory_Available_Percent", OpenHABVM_Memory_Available_Percent.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Memory_Used_Percent", OpenHABVM_Memory_Used_Percent.state.toString)

    /* Swap memory information*/
    publish(broker, topic + "/" + device+ "/" + "Swap_Available", OpenHABVM_Swap_Available.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Swap_Used", OpenHABVM_Swap_Used.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Swap_Total", OpenHABVM_Swap_Total.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Swap_Available_Percent", OpenHABVM_Swap_Available_Percent.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Swap_Used_Percent", OpenHABVM_Swap_Used_Percent.state.toString)

    /* Battery information*/
    publish(broker, topic + "/" + device+ "/" + "Battery_Name", OpenHABVM_Battery_Name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Battery_RemainingCapacity", OpenHABVM_Battery_RemainingCapacity.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Battery_RemainingTime", OpenHABVM_Battery_RemainingTime.state.toString)

    /* Display information*/
    publish(broker, topic + "/" + device+ "/" + "Display_Description", OpenHABVM_Display_Description.state.toString)

    /* Sensors information*/
    publish(broker, topic + "/" + device+ "/" + "Sensor_CPUTemp", OpenHABVM_Sensor_CPUTemp.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Sensor_CPUVoltage", OpenHABVM_Sensor_CPUVoltage.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Sensor_FanSpeed", OpenHABVM_Sensor_FanSpeed.state.toString)

    /* Process information*/
    publish(broker, topic + "/" + device+ "/" + "Process_load", OpenHABVM_Process_load.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Process_used", OpenHABVM_Process_used.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Process_name", OpenHABVM_Process_name.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Process_threads", OpenHABVM_Process_threads.state.toString)
    publish(broker, topic + "/" + device+ "/" + "Process_path", OpenHABVM_Process_path.state.toString)

A few things you maybe have to change:

  • var device = "OpenHABVM" on each device the name of the device because you will later subscribe separated by the device name.
  • var broker = "MQTTBroker" you have to use the given name from your mqtt.cfg file.
  • var topic = "/messages/states" you have to use the given base path from your mqtt-eventbus.cfg file.

And last but not least you have to change the prefix for each device.

Note: If you use Visual Studio Code press Ctrl + H and search for OpenHABVM and do a replace all with your local machine name.

Get the global system infos

In my example I can retrieve the Name of the network adapter from /messages/states/OpenHABVM/NetworkAdapterName and from /messages/states/OpenHABVM_Network_AdapterName but /messages/states/shlPiGeneral_Network_AdapterName would be empty unless I subscribed from /messages/states/shlPiGeneral/NetworkAdapterName. And that`s the point. You can not change the MQTT config that all devices will publish and subscribe commands and states because of an endless or infinity loop. The states will be overwritten and never changed.

With this solution you can subscribe easily the same information only by seperating the name of the device:

  • /messages/states/OpenHABVM/NetworkAdapterName
  • /messages/states/shlPiGeneral/NetworkAdapterName
  • /messages/states/<localmachine>/NetworkAdapterName
  • /messages/states/<your-device-name>/NetworkAdapterName

A quite simple solution. But you have to be careful how to use it correctly. Inside the VM I used following item file:

Group            gSmartHome                    "Smart-Home (Fakultaet IN    )"           <house>
Group            gSystemInfo                   "Systeminfo"                              <group>               (gSmartHome)

Number System_CPU_Uptime "Betriebszeit Server [JS(duration.js):%s]" { channel="systeminfo:computer:OpenHABVM:cpu#uptime" }

String System_openHAB_Uptime_output "Betriebszeit openHAB [%s]" { channel="exec:command:uptime:output" }
Number System_openHAB_Uptime "Betriebszeit openHAB [JS(duration.js):%s]"

Group gSystemInfoOpenHABVM  "OpenHABVM" <settings>   (gSystemInfo)

Group gSystemInfoOpenHABVM_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* Network information*/
String OpenHABVM_Network_AdapterName        "Adaptername"        <network>    (gSystemInfoOpenHABVM_Network)    { channel="systeminfo:computer:OpenHABVM:network#networkDisplayName" }
String OpenHABVM_Network_Name               "Name"                <network>   (gSystemInfoOpenHABVM_Network)     { channel="systeminfo:computer:OpenHABVM:network#networkName" }
String OpenHABVM_Network_IP                 "IP-Adresse"          <network>    (gSystemInfoOpenHABVM_Network)    { channel="systeminfo:computer:OpenHABVM:network#ip" }
String OpenHABVM_Network_Mac                "MAC-Adresse"         <network>    (gSystemInfoOpenHABVM_Network)    { channel="systeminfo:computer:OpenHABVM:network#mac" }
Number OpenHABVM_Network_DataSent           "Gesendete Daten"           <flowpipe>    (gSystemInfoOpenHABVM_Network)   { channel="systeminfo:computer:OpenHABVM:network#dataSent" }
Number OpenHABVM_Network_DataReceived       "Empfangene Daten"       <returnpipe>  (gSystemInfoOpenHABVM_Network)   { channel="systeminfo:computer:OpenHABVM:network#dataReceived" }
Number OpenHABVM_Network_PacketsSent        "Gesendete Pakete"        <flowpipe>   (gSystemInfoOpenHABVM_Network)    { channel="systeminfo:computer:OpenHABVM:network#packetsSent" }
Number OpenHABVM_Network_PacketsReceived    "Empfangene Pakete"    <returnpipe>  (gSystemInfoOpenHABVM_Network)   { channel="systeminfo:computer:OpenHABVM:network#packetsReceived" }

Group gSystemInfoOpenHABVM_CPU  "CPU-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* CPU information*/
String OpenHABVM_CPU_Name                   "Name"                <none>      (gSystemInfoOpenHABVM_CPU)     { channel="systeminfo:computer:OpenHABVM:cpu#name" }
String OpenHABVM_CPU_Description            "Beschreibung"         <none>       (gSystemInfoOpenHABVM_CPU)    { channel="systeminfo:computer:OpenHABVM:cpu#description" }
Number OpenHABVM_CPU_Load1                  "Auslastung (1 min)"        <none>   (gSystemInfoOpenHABVM_CPU)        { channel="systeminfo:computer:OpenHABVM:cpu#load1" }
Number OpenHABVM_CPU_Load5                  "Auslastung (5 min)"        <none>   (gSystemInfoOpenHABVM_CPU)        { channel="systeminfo:computer:OpenHABVM:cpu#load5" }
Number OpenHABVM_CPU_Load15                 "Auslastung (15 min)"       <none>   (gSystemInfoOpenHABVM_CPU)        { channel="systeminfo:computer:OpenHABVM:cpu#load15" }
Number OpenHABVM_CPU_Threads                "Threads"             <none>      (gSystemInfoOpenHABVM_CPU)     { channel="systeminfo:computer:OpenHABVM:cpu#threads" }
Number OpenHABVM_CPU_Uptime                 "Betriebszeit"              <time>    (gSystemInfoOpenHABVM_CPU)       { channel="systeminfo:computer:OpenHABVM:cpu#uptime" }

Group gSystemInfoOpenHABVM_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* Drive information*/
String OpenHABVM_Drive_Name                 "Name"                <none>     (gSystemInfoOpenHABVM_Drive)      { channel="systeminfo:computer:OpenHABVM:drive#name" }
String OpenHABVM_Drive_Model                "Modell"               <none>     (gSystemInfoOpenHABVM_Drive)      { channel="systeminfo:computer:OpenHABVM:drive#model" }
String OpenHABVM_Drive_Serial               "Seriennummer"              <none>   (gSystemInfoOpenHABVM_Drive)        { channel="systeminfo:computer:OpenHABVM:drive#serial" }

Group gSystemInfoOpenHABVM_Storage  "Festplattenspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Storage information*/
String OpenHABVM_Storage_Name               "Name"                <none>     (gSystemInfoOpenHABVM_Storage)      { channel="systeminfo:computer:OpenHABVM:storage#name" }
String OpenHABVM_Storage_Type               "Typ"                <none>      (gSystemInfoOpenHABVM_Storage)     { channel="systeminfo:computer:OpenHABVM:storage#type" }
String OpenHABVM_Storage_Description        "Beschreibung"         <none>    (gSystemInfoOpenHABVM_Storage)       { channel="systeminfo:computer:OpenHABVM:storage#description" }
Number OpenHABVM_Storage_Available          "verfügbar"           <none>     (gSystemInfoOpenHABVM_Storage)      { channel="systeminfo:computer:OpenHABVM:storage#available" }
Number OpenHABVM_Storage_Used               "gebraucht"                <none>   (gSystemInfoOpenHABVM_Storage)        { channel="systeminfo:computer:OpenHABVM:storage#used" }
Number OpenHABVM_Storage_Total              "Gesamt"               <none>       (gSystemInfoOpenHABVM_Storage)    { channel="systeminfo:computer:OpenHABVM:storage#total" }
Number OpenHABVM_Storage_Available_Percent  "verfügbar (%)"       <none>       (gSystemInfoOpenHABVM_Storage)    { channel="systeminfo:computer:OpenHABVM:storage#availablePercent" }
Number OpenHABVM_Storage_Used_Percent       "gebraucht (%)"            <none>     (gSystemInfoOpenHABVM_Storage)      { channel="systeminfo:computer:OpenHABVM:storage#usedPercent" }

Group gSystemInfoOpenHABVM_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Memory information*/
Number OpenHABVM_Memory_Available           "verfügbar"           <none>      (gSystemInfoOpenHABVM_Memory)     { channel="systeminfo:computer:OpenHABVM:memory#available" }
Number OpenHABVM_Memory_Used                "gebraucht"                <none>    (gSystemInfoOpenHABVM_Memory)       { channel="systeminfo:computer:OpenHABVM:memory#used" }
Number OpenHABVM_Memory_Total               "Gesamt"               <none>      (gSystemInfoOpenHABVM_Memory)     { channel="systeminfo:computer:OpenHABVM:memory#total" }
Number OpenHABVM_Memory_Available_Percent   "verfügbar (%)"       <none>       (gSystemInfoOpenHABVM_Memory)    { channel="systeminfo:computer:OpenHABVM:memory#availablePercent" }
Number OpenHABVM_Memory_Used_Percent        "gebraucht (%)"            <none>   (gSystemInfoOpenHABVM_Memory)        { channel="systeminfo:computer:OpenHABVM:memory#usedPercent" }

Group gSystemInfoOpenHABVM_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Swap memory information*/
Number OpenHABVM_Swap_Available             "verfügbar"           <none>      (gSystemInfoOpenHABVM_Swap)     { channel="systeminfo:computer:OpenHABVM:swap#available" }
Number OpenHABVM_Swap_Used                  "gebraucht"                <none>     (gSystemInfoOpenHABVM_Swap)      { channel="systeminfo:computer:OpenHABVM:swap#used" }
Number OpenHABVM_Swap_Total                 "Gesamt"               <none>      (gSystemInfoOpenHABVM_Swap)     { channel="systeminfo:computer:OpenHABVM:swap#total" }
Number OpenHABVM_Swap_Available_Percent     "verfügbar (%)"       <none>      (gSystemInfoOpenHABVM_Swap)     { channel="systeminfo:computer:OpenHABVM:swap#availablePercent" }
Number OpenHABVM_Swap_Used_Percent          "gebraucht (%)"            <none>    (gSystemInfoOpenHABVM_Swap)       { channel="systeminfo:computer:OpenHABVM:swap#usedPercent" }

Group gSystemInfoOpenHABVM_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoOpenHABVM)

/* Battery information*/
String OpenHABVM_Battery_Name               "Name"                <batterylevel>  (gSystemInfoOpenHABVM_BatteryDisplaySensor) { channel="systeminfo:computer:OpenHABVM:battery#name" }
Number OpenHABVM_Battery_RemainingCapacity  "Verbleibende Kapazität"  <batterylevel>   (gSystemInfoOpenHABVM_BatteryDisplaySensor){ channel="systeminfo:computer:OpenHABVM:battery#remainingCapacity" }
Number OpenHABVM_Battery_RemainingTime      "Verbleibende Zeit"      <batterylevel> (gSystemInfoOpenHABVM_BatteryDisplaySensor)  { channel="systeminfo:computer:OpenHABVM:battery#remainingTime" }

/* Display information*/
String OpenHABVM_Display_Description        "Monitor-Beschreibung" <screen>   (gSystemInfoOpenHABVM_BatteryDisplaySensor)      { channel="systeminfo:computer:OpenHABVM:display#information" }

/* Sensors information*/
Number OpenHABVM_Sensor_CPUTemp             "CPU-Temperatur"     <temperature>  (gSystemInfoOpenHABVM_BatteryDisplaySensor)  { channel="systeminfo:computer:OpenHABVM:sensors#cpuTemp" }
Number OpenHABVM_Sensor_CPUVoltage          "Spannung CPU"         <energy>     (gSystemInfoOpenHABVM_BatteryDisplaySensor)    { channel="systeminfo:computer:OpenHABVM:sensors#cpuVoltage" }
Number OpenHABVM_Sensor_FanSpeed            "Drezhzahl Lüfter"           <fan>      (gSystemInfoOpenHABVM_BatteryDisplaySensor)      { channel="systeminfo:computer:OpenHABVM:sensors#fanSpeed" }

Group gSystemInfoOpenHABVM_Process  "Prozesse" <settings>   (gSystemInfoOpenHABVM)

/* Process information*/
Number OpenHABVM_Process_load               "geladen"                <none>      (gSystemInfoOpenHABVM_Process)     { channel="systeminfo:computer:OpenHABVM:process#load" }
Number OpenHABVM_Process_used               "gebraucht"                <none>   (gSystemInfoOpenHABVM_Process)        { channel="systeminfo:computer:OpenHABVM:process#used" }
String OpenHABVM_Process_name               "Name"                <none>      (gSystemInfoOpenHABVM_Process)     { channel="systeminfo:computer:OpenHABVM:process#name" }
Number OpenHABVM_Process_threads            "Threads"             <none>     (gSystemInfoOpenHABVM_Process)      { channel="systeminfo:computer:OpenHABVM:process#threads" }
String OpenHABVM_Process_path               "Pfad"                <none>     (gSystemInfoOpenHABVM_Process)      { channel="systeminfo:computer:OpenHABVM:process#path" }

Group gSystemInfoShlPiGeneral  "shlPiGeneral" <settings>   (gSystemInfo)

Group gSystemInfoShlPiGeneral_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* Network information*/
String shlPiGeneral_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiGeneral_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_AdapterName:state:default]"}
String shlPiGeneral_Network_Name               "Name [%s]"                <network>  (gSystemInfoShlPiGeneral_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_Name:state:default]"}
String shlPiGeneral_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiGeneral_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_IP:state:default]"}
String shlPiGeneral_Network_Mac                "MAC-Adresse [%s]"         <network>  (gSystemInfoShlPiGeneral_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_Mac:state:default]"}
Number shlPiGeneral_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>   (gSystemInfoShlPiGeneral_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_DataSent:state:default]"}
Number shlPiGeneral_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe>  (gSystemInfoShlPiGeneral_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_DataReceived:state:default]"}
Number shlPiGeneral_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>     (gSystemInfoShlPiGeneral_Network)  {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_PacketsSent:state:default]"}
Number shlPiGeneral_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoShlPiGeneral_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiGeneral_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* CPU information*/
String shlPiGeneral_CPU_Name                   "Name [%s]"                <none>      (gSystemInfoShlPiGeneral_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Name:state:default]"}
String shlPiGeneral_CPU_Description            "Beschreibung [%s]"         <none>     (gSystemInfoShlPiGeneral_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Description:state:default]"}
Number shlPiGeneral_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>     (gSystemInfoShlPiGeneral_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Load1:state:default]"}
Number shlPiGeneral_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>     (gSystemInfoShlPiGeneral_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Load5:state:default]"}
Number shlPiGeneral_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>   (gSystemInfoShlPiGeneral_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Load15:state:default]"}
Number shlPiGeneral_CPU_Threads                "Threads [%.0f]"             <none>     (gSystemInfoShlPiGeneral_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Threads:state:default]"}
Number shlPiGeneral_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>    (gSystemInfoShlPiGeneral_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiGeneral_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* Drive information*/
String shlPiGeneral_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiGeneral_Drive)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Drive_Name:state:default]"}
String shlPiGeneral_Drive_Model                "Modell [%s]"               <none>       (gSystemInfoShlPiGeneral_Drive)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Drive_Model:state:default]"}
String shlPiGeneral_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiGeneral_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Drive_Serial:state:default]"}

Group gSystemInfoShlPiGeneral_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Storage information*/
String shlPiGeneral_Storage_Name               "Name [%s]"                <none>       (gSystemInfoShlPiGeneral_Storage)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Name:state:default]"}
String shlPiGeneral_Storage_Type               "Typ [%s]"                <none>        (gSystemInfoShlPiGeneral_Storage)   {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Type:state:default]"}
String shlPiGeneral_Storage_Description        "Beschreibung [%s]"         <none>       (gSystemInfoShlPiGeneral_Storage)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Description:state:default]"}
Number shlPiGeneral_Storage_Available          "verfügbar [%.0f]"           <none>        (gSystemInfoShlPiGeneral_Storage)   {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Available:state:default]"}
Number shlPiGeneral_Storage_Used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiGeneral_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Used:state:default]"}
Number shlPiGeneral_Storage_Total              "Gesamt [%.0f MB]"               <none>       (gSystemInfoShlPiGeneral_Storage)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Total:state:default]"}
Number shlPiGeneral_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiGeneral_Storage)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Available_Percent:state:default]"}
Number shlPiGeneral_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>    (gSystemInfoShlPiGeneral_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiGeneral_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Memory information*/
Number shlPiGeneral_Memory_Available           "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiGeneral_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Memory_Available:state:default]"}
Number shlPiGeneral_Memory_Used                "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiGeneral_Memory)       {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Memory_Used:state:default]"}
Number shlPiGeneral_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiGeneral_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Memory_Total:state:default]"}
Number shlPiGeneral_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiGeneral_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Memory_Available_Percent:state:default]"}
Number shlPiGeneral_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>    (gSystemInfoShlPiGeneral_Memory)       {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiGeneral_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Swap memory information*/
Number shlPiGeneral_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiGeneral_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Swap_Available:state:default]"}
Number shlPiGeneral_Swap_Used                  "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiGeneral_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Swap_Used:state:default]"}
Number shlPiGeneral_Swap_Total                 "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiGeneral_Swap)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Swap_Total:state:default]"}
Number shlPiGeneral_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiGeneral_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Swap_Available_Percent:state:default]"}
Number shlPiGeneral_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>    (gSystemInfoShlPiGeneral_Swap)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiGeneral_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiGeneral)

/* Battery information*/
String shlPiGeneral_Battery_Name               "Name [%s]"                <batterylevel>  (gSystemInfoShlPiGeneral_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Battery_Name:state:default]"}
Number shlPiGeneral_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel> (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Battery_RemainingCapacity:state:default]"}
Number shlPiGeneral_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel> (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiGeneral_Display_Description        "Monitor-Beschreibung [%s]" <screen>    (gSystemInfoShlPiGeneral_BatteryDisplaySensor)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiGeneral_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature>  (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Sensor_CPUTemp:state:default]"}
Number shlPiGeneral_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>      (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Sensor_CPUVoltage:state:default]"}
Number shlPiGeneral_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>  (gSystemInfoShlPiGeneral_BatteryDisplaySensor)         {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiGeneral_Process  "Prozesse" <settings>   (gSystemInfoShlPiGeneral)

/* Process information*/
Number shlPiGeneral_Process_load               "geladen [%.1f %%]"                <none>   (gSystemInfoShlPiGeneral_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Process_load:state:default]"}
Number shlPiGeneral_Process_used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiGeneral_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Process_used:state:default]"}
String shlPiGeneral_Process_name               "Name [%s]"                <none>      (gSystemInfoShlPiGeneral_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Process_name:state:default]"}
Number shlPiGeneral_Process_threads            "Threads [%.0f]"             <none>   (gSystemInfoShlPiGeneral_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Process_threads:state:default]"}
String shlPiGeneral_Process_path               "Pfad [%s]"                <none>     (gSystemInfoShlPiGeneral_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Process_path:state:default]"}

Group gSystemInfoShlPiAlexa  "shlPiAlexa" <settings>   (gSystemInfo)

Group gSystemInfoShlPiAlexa_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiAlexa)

/* Network information*/
String shlPiAlexa_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiAlexa_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_AdapterName:state:default]"}
String shlPiAlexa_Network_Name               "Name [%s]"                <network>   (gSystemInfoShlPiAlexa_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_Name:state:default]"}
String shlPiAlexa_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiAlexa_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_IP:state:default]"}
String shlPiAlexa_Network_Mac                "MAC-Adresse [%s]"         <network>   (gSystemInfoShlPiAlexa_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_Mac:state:default]"}
Number shlPiAlexa_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>   (gSystemInfoShlPiAlexa_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_DataSent:state:default]"}
Number shlPiAlexa_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe>  (gSystemInfoShlPiAlexa_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_DataReceived:state:default]"}
Number shlPiAlexa_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>   (gSystemInfoShlPiAlexa_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_PacketsSent:state:default]"}
Number shlPiAlexa_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe> (gSystemInfoShlPiAlexa_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiAlexa_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiAlexa)

/* CPU information*/
String shlPiAlexa_CPU_Name                   "Name [%s]"                <none>      (gSystemInfoShlPiAlexa_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Name:state:default]"}
String shlPiAlexa_CPU_Description            "Beschreibung [%s]"         <none>     (gSystemInfoShlPiAlexa_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Description:state:default]"}
Number shlPiAlexa_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>   (gSystemInfoShlPiAlexa_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Load1:state:default]"}
Number shlPiAlexa_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>    (gSystemInfoShlPiAlexa_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Load5:state:default]"}
Number shlPiAlexa_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>   (gSystemInfoShlPiAlexa_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Load15:state:default]"}
Number shlPiAlexa_CPU_Threads                "Threads [%.0f]"             <none>       (gSystemInfoShlPiAlexa_CPU)    {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Threads:state:default]"}
Number shlPiAlexa_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>    (gSystemInfoShlPiAlexa_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiAlexa_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiAlexa)

/* Drive information*/
String shlPiAlexa_Drive_Name                 "Name [%s]"                <none>   (gSystemInfoShlPiAlexa_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Drive_Name:state:default]"}
String shlPiAlexa_Drive_Model                "Modell [%s]"               <none>     (gSystemInfoShlPiAlexa_Drive)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Drive_Model:state:default]"}
String shlPiAlexa_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiAlexa_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Drive_Serial:state:default]"}

Group gSystemInfoShlPiAlexa_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiAlexa)

/* Storage information*/
String shlPiAlexa_Storage_Name               "Name [%s]"                <none>      (gSystemInfoShlPiAlexa_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Name:state:default]"}
String shlPiAlexa_Storage_Type               "Typ [%s]"                <none>      (gSystemInfoShlPiAlexa_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Type:state:default]"}
String shlPiAlexa_Storage_Description        "Beschreibung [%s]"         <none>    (gSystemInfoShlPiAlexa_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Description:state:default]"}
Number shlPiAlexa_Storage_Available          "verfügbar [%.0f]"           <none>   (gSystemInfoShlPiAlexa_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Available:state:default]"}
Number shlPiAlexa_Storage_Used               "gebraucht [%.0f MB]"                <none>     (gSystemInfoShlPiAlexa_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Used:state:default]"}
Number shlPiAlexa_Storage_Total              "Gesamt [%.0f MB]"               <none>    (gSystemInfoShlPiAlexa_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Total:state:default]"}
Number shlPiAlexa_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>     (gSystemInfoShlPiAlexa_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Available_Percent:state:default]"}
Number shlPiAlexa_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiAlexa_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiAlexa_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiAlexa)

/* Memory information*/
Number shlPiAlexa_Memory_Available           "verfügbar [%.0f MB]"           <none>     (gSystemInfoShlPiAlexa_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Memory_Available:state:default]"}
Number shlPiAlexa_Memory_Used                "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiAlexa_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Memory_Used:state:default]"}
Number shlPiAlexa_Memory_Total               "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiAlexa_Memory)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Memory_Total:state:default]"}
Number shlPiAlexa_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiAlexa_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Memory_Available_Percent:state:default]"}
Number shlPiAlexa_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiAlexa_Memory)         {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiAlexa_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiAlexa)

/* Swap memory information*/
Number shlPiAlexa_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiAlexa_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Swap_Available:state:default]"}
Number shlPiAlexa_Swap_Used                  "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiAlexa_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Swap_Used:state:default]"}
Number shlPiAlexa_Swap_Total                 "Gesamt [%.0f MB]"               <none>    (gSystemInfoShlPiAlexa_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Swap_Total:state:default]"}
Number shlPiAlexa_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiAlexa_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Swap_Available_Percent:state:default]"}
Number shlPiAlexa_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiAlexa_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiAlexa_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiAlexa)

/* Battery information*/
String shlPiAlexa_Battery_Name               "Name [%s]"                <batterylevel>  (gSystemInfoShlPiAlexa_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Battery_Name:state:default]"}
Number shlPiAlexa_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel>  (gSystemInfoShlPiAlexa_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Battery_RemainingCapacity:state:default]"}
Number shlPiAlexa_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel>  (gSystemInfoShlPiAlexa_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiAlexa_Display_Description        "Monitor-Beschreibung [%s]" <screen>    (gSystemInfoShlPiAlexa_BatteryDisplaySensor)     {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiAlexa_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature>  (gSystemInfoShlPiAlexa_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Sensor_CPUTemp:state:default]"}
Number shlPiAlexa_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>    (gSystemInfoShlPiAlexa_BatteryDisplaySensor)    {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Sensor_CPUVoltage:state:default]"}
Number shlPiAlexa_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>    (gSystemInfoShlPiAlexa_BatteryDisplaySensor)       {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiAlexa_Process  "Prozesse" <settings>   (gSystemInfoShlPiAlexa)

/* Process information*/
Number shlPiAlexa_Process_load               "geladen [%.1f %%]"                <none>     (gSystemInfoShlPiAlexa_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Process_load:state:default]"}
Number shlPiAlexa_Process_used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiAlexa_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Process_used:state:default]"}
String shlPiAlexa_Process_name               "Name [%s]"                <none>     (gSystemInfoShlPiAlexa_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Process_name:state:default]"}
Number shlPiAlexa_Process_threads            "Threads [%.0f]"             <none>   (gSystemInfoShlPiAlexa_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Process_threads:state:default]"}
String shlPiAlexa_Process_path               "Pfad [%s]"                <none>     (gSystemInfoShlPiAlexa_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiAlexa/Process_path:state:default]"}

Group gSystemInfoShlPiBad  "shlPiBad" <settings>   (gSystemInfo)

Group gSystemInfoShlPiBad_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiBad)

/* Network information*/
String shlPiBad_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiBad_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_AdapterName:state:default]"}
String shlPiBad_Network_Name               "Name [%s]"                <network>  (gSystemInfoShlPiBad_Network)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_Name:state:default]"}
String shlPiBad_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiBad_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_IP:state:default]"}
String shlPiBad_Network_Mac                "MAC-Adresse [%s]"         <network>   (gSystemInfoShlPiBad_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_Mac:state:default]"}
Number shlPiBad_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>    (gSystemInfoShlPiBad_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_DataSent:state:default]"}
Number shlPiBad_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe> (gSystemInfoShlPiBad_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_DataReceived:state:default]"}
Number shlPiBad_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>   (gSystemInfoShlPiBad_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_PacketsSent:state:default]"}
Number shlPiBad_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>   (gSystemInfoShlPiBad_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiBad_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiBad)

/* CPU information*/
String shlPiBad_CPU_Name                   "Name [%s]"                <none>       (gSystemInfoShlPiBad_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Name:state:default]"}
String shlPiBad_CPU_Description            "Beschreibung [%s]"         <none>       (gSystemInfoShlPiBad_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Description:state:default]"}
Number shlPiBad_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>    (gSystemInfoShlPiBad_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Load1:state:default]"}
Number shlPiBad_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>   (gSystemInfoShlPiBad_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Load5:state:default]"}
Number shlPiBad_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>   (gSystemInfoShlPiBad_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Load15:state:default]"}
Number shlPiBad_CPU_Threads                "Threads [%.0f]"             <none>      (gSystemInfoShlPiBad_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Threads:state:default]"}
Number shlPiBad_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>   (gSystemInfoShlPiBad_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiBad/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiBad_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiBad)

/* Drive information*/
String shlPiBad_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiBad_Drive)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Drive_Name:state:default]"}
String shlPiBad_Drive_Model                "Modell [%s]"               <none>      (gSystemInfoShlPiBad_Drive)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Drive_Model:state:default]"}
String shlPiBad_Drive_Serial               "Seriennummer [%s]"              <none>  (gSystemInfoShlPiBad_Drive)          {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Drive_Serial:state:default]"}

Group gSystemInfoShlPiBad_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiBad)

/* Storage information*/
String shlPiBad_Storage_Name               "Name [%s]"                <none>     (gSystemInfoShlPiBad_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Name:state:default]"}
String shlPiBad_Storage_Type               "Typ [%s]"                <none>     (gSystemInfoShlPiBad_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Type:state:default]"}
String shlPiBad_Storage_Description        "Beschreibung [%s]"         <none>    (gSystemInfoShlPiBad_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Description:state:default]"}
Number shlPiBad_Storage_Available          "verfügbar [%.0f]"           <none>      (gSystemInfoShlPiBad_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Available:state:default]"}
Number shlPiBad_Storage_Used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiBad_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Used:state:default]"}
Number shlPiBad_Storage_Total              "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiBad_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Total:state:default]"}
Number shlPiBad_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiBad_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Available_Percent:state:default]"}
Number shlPiBad_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiBad_Storage)          {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiBad_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiBad)

/* Memory information*/
Number shlPiBad_Memory_Available           "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiBad_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Memory_Available:state:default]"}
Number shlPiBad_Memory_Used                "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiBad_Memory)         {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Memory_Used:state:default]"}
Number shlPiBad_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiBad_Memory)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Memory_Total:state:default]"}
Number shlPiBad_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiBad_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Memory_Available_Percent:state:default]"}
Number shlPiBad_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>    (gSystemInfoShlPiBad_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiBad_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiBad)

/* Swap memory information*/
Number shlPiBad_Swap_Available             "verfügbar [%.0f MB]"           <none>     (gSystemInfoShlPiBad_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Swap_Available:state:default]"}
Number shlPiBad_Swap_Used                  "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiBad_Swap)          {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Swap_Used:state:default]"}
Number shlPiBad_Swap_Total                 "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiBad_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Swap_Total:state:default]"}
Number shlPiBad_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiBad_Swap)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Swap_Available_Percent:state:default]"}
Number shlPiBad_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiBad_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiBad_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiBad)

/* Battery information*/
String shlPiBad_Battery_Name               "Name [%s]"                <batterylevel>  (gSystemInfoShlPiBad_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Battery_Name:state:default]"}
Number shlPiBad_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel>  (gSystemInfoShlPiBad_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Battery_RemainingCapacity:state:default]"}
Number shlPiBad_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel> (gSystemInfoShlPiBad_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiBad_Display_Description        "Monitor-Beschreibung [%s]" <screen>    (gSystemInfoShlPiBad_BatteryDisplaySensor)      {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiBad_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature>  (gSystemInfoShlPiBad_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Sensor_CPUTemp:state:default]"}
Number shlPiBad_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>    (gSystemInfoShlPiBad_BatteryDisplaySensor)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Sensor_CPUVoltage:state:default]"}
Number shlPiBad_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>   (gSystemInfoShlPiBad_BatteryDisplaySensor)         {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiBad_Process  "Prozesse" <settings>   (gSystemInfoShlPiBad)

/* Process information*/
Number shlPiBad_Process_load               "geladen [%.1f %%]"                <none>  (gSystemInfoShlPiBad_Process)          {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Process_load:state:default]"}
Number shlPiBad_Process_used               "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiBad_Process)          {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Process_used:state:default]"}
String shlPiBad_Process_name               "Name [%s]"                <none>       (gSystemInfoShlPiBad_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Process_name:state:default]"}
Number shlPiBad_Process_threads            "Threads [%.0f]"             <none>     (gSystemInfoShlPiBad_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Process_threads:state:default]"}
String shlPiBad_Process_path               "Pfad [%s]"                <none>     (gSystemInfoShlPiBad_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiBad/Process_path:state:default]"}

Group gSystemInfoShlPiIoT  "shlPiIoT" <settings>   (gSystemInfo)

Group gSystemInfoShlPiIoT_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiIoT)

/* Network information*/
String shlPiIoT_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiIoT_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_AdapterName:state:default]"}
String shlPiIoT_Network_Name               "Name [%s]"                <network>  (gSystemInfoShlPiIoT_Network)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_Name:state:default]"}
String shlPiIoT_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiIoT_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_IP:state:default]"}
String shlPiIoT_Network_Mac                "MAC-Adresse [%s]"         <network>    (gSystemInfoShlPiIoT_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_Mac:state:default]"}
Number shlPiIoT_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>   (gSystemInfoShlPiIoT_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_DataSent:state:default]"}
Number shlPiIoT_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe>  (gSystemInfoShlPiIoT_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_DataReceived:state:default]"}
Number shlPiIoT_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>    (gSystemInfoShlPiIoT_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_PacketsSent:state:default]"}
Number shlPiIoT_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoShlPiIoT_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiIoT_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiIoT)

/* CPU information*/
String shlPiIoT_CPU_Name                   "Name [%s]"                <none>       (gSystemInfoShlPiIoT_CPU)    {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Name:state:default]"}
String shlPiIoT_CPU_Description            "Beschreibung [%s]"         <none>      (gSystemInfoShlPiIoT_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Description:state:default]"}
Number shlPiIoT_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>     (gSystemInfoShlPiIoT_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Load1:state:default]"}
Number shlPiIoT_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>     (gSystemInfoShlPiIoT_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Load5:state:default]"}
Number shlPiIoT_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>     (gSystemInfoShlPiIoT_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Load15:state:default]"}
Number shlPiIoT_CPU_Threads                "Threads [%.0f]"             <none>        (gSystemInfoShlPiIoT_CPU)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Threads:state:default]"}
Number shlPiIoT_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>    (gSystemInfoShlPiIoT_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiIoT_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiIoT)

/* Drive information*/
String shlPiIoT_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiIoT_Drive)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Drive_Name:state:default]"}
String shlPiIoT_Drive_Model                "Modell [%s]"               <none>       (gSystemInfoShlPiIoT_Drive)    {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Drive_Model:state:default]"}
String shlPiIoT_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiIoT_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Drive_Serial:state:default]"}

Group gSystemInfoShlPiIoT_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiIoT)

/* Storage information*/
String shlPiIoT_Storage_Name               "Name [%s]"                <none>     (gSystemInfoShlPiIoT_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Name:state:default]"}
String shlPiIoT_Storage_Type               "Typ [%s]"                <none>      (gSystemInfoShlPiIoT_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Type:state:default]"}
String shlPiIoT_Storage_Description        "Beschreibung [%s]"         <none>    (gSystemInfoShlPiIoT_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Description:state:default]"}
Number shlPiIoT_Storage_Available          "verfügbar [%.0f]"           <none>    (gSystemInfoShlPiIoT_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Available:state:default]"}
Number shlPiIoT_Storage_Used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiIoT_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Used:state:default]"}
Number shlPiIoT_Storage_Total              "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiIoT_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Total:state:default]"}
Number shlPiIoT_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiIoT_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Available_Percent:state:default]"}
Number shlPiIoT_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiIoT_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiIoT_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiIoT)

/* Memory information*/
Number shlPiIoT_Memory_Available           "verfügbar [%.0f MB]"           <none>       (gSystemInfoShlPiIoT_Memory)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Memory_Available:state:default]"}
Number shlPiIoT_Memory_Used                "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiIoT_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Memory_Used:state:default]"}
Number shlPiIoT_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiIoT_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Memory_Total:state:default]"}
Number shlPiIoT_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiIoT_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Memory_Available_Percent:state:default]"}
Number shlPiIoT_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiIoT_Memory)         {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiIoT_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiIoT)

/* Swap memory information*/
Number shlPiIoT_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiIoT_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Swap_Available:state:default]"}
Number shlPiIoT_Swap_Used                  "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiIoT_Swap)         {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Swap_Used:state:default]"}
Number shlPiIoT_Swap_Total                 "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiIoT_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Swap_Total:state:default]"}
Number shlPiIoT_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiIoT_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Swap_Available_Percent:state:default]"}
Number shlPiIoT_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiIoT_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiIoT_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiIoT)

/* Battery information*/
String shlPiIoT_Battery_Name               "Name [%s]"                <batterylevel>  (gSystemInfoShlPiIoT_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Battery_Name:state:default]"}
Number shlPiIoT_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel>  (gSystemInfoShlPiIoT_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Battery_RemainingCapacity:state:default]"}
Number shlPiIoT_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel> (gSystemInfoShlPiIoT_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiIoT_Display_Description        "Monitor-Beschreibung [%s]" <screen>    (gSystemInfoShlPiIoT_BatteryDisplaySensor)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiIoT_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature> (gSystemInfoShlPiIoT_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Sensor_CPUTemp:state:default]"}
Number shlPiIoT_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>      (gSystemInfoShlPiIoT_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Sensor_CPUVoltage:state:default]"}
Number shlPiIoT_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>     (gSystemInfoShlPiIoT_BatteryDisplaySensor)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiIoT_Process  "Prozesse" <settings>   (gSystemInfoShlPiIoT)

/* Process information*/
Number shlPiIoT_Process_load               "geladen [%.1f %%]"                <none>      (gSystemInfoShlPiIoT_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Process_load:state:default]"}
Number shlPiIoT_Process_used               "gebraucht [%.0f MB]"                <none>     (gSystemInfoShlPiIoT_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Process_used:state:default]"}
String shlPiIoT_Process_name               "Name [%s]"                <none>    (gSystemInfoShlPiIoT_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Process_name:state:default]"}
Number shlPiIoT_Process_threads            "Threads [%.0f]"             <none>   (gSystemInfoShlPiIoT_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Process_threads:state:default]"}
String shlPiIoT_Process_path               "Pfad [%s]"                <none>      (gSystemInfoShlPiIoT_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiIoT/Process_path:state:default]"}

Group gSystemInfoShlPiKonferenz  "shlPiKonferenz" <settings>   (gSystemInfo)

Group gSystemInfoShlPiKonferenz_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiKonferenz)

/* Network information*/
String shlPiKonferenz_Network_AdapterName        "Adaptername [%s]"        <network>    (gSystemInfoShlPiKonferenz_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_AdapterName:state:default]"}
String shlPiKonferenz_Network_Name               "Name [%s]"                <network>   (gSystemInfoShlPiKonferenz_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_Name:state:default]"}
String shlPiKonferenz_Network_IP                 "IP-Adresse [%s]"          <network>    (gSystemInfoShlPiKonferenz_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_IP:state:default]"}
String shlPiKonferenz_Network_Mac                "MAC-Adresse [%s]"         <network>    (gSystemInfoShlPiKonferenz_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_Mac:state:default]"}
Number shlPiKonferenz_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>    (gSystemInfoShlPiKonferenz_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_DataSent:state:default]"}
Number shlPiKonferenz_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe> (gSystemInfoShlPiKonferenz_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_DataReceived:state:default]"}
Number shlPiKonferenz_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>    (gSystemInfoShlPiKonferenz_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_PacketsSent:state:default]"}
Number shlPiKonferenz_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoShlPiKonferenz_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiKonferenz_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiKonferenz)

/* CPU information*/
String shlPiKonferenz_CPU_Name                   "Name [%s]"                <none>     (gSystemInfoShlPiKonferenz_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Name:state:default]"}
String shlPiKonferenz_CPU_Description            "Beschreibung [%s]"         <none>       (gSystemInfoShlPiKonferenz_CPU)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Description:state:default]"}
Number shlPiKonferenz_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>    (gSystemInfoShlPiKonferenz_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Load1:state:default]"}
Number shlPiKonferenz_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>    (gSystemInfoShlPiKonferenz_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Load5:state:default]"}
Number shlPiKonferenz_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>    (gSystemInfoShlPiKonferenz_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Load15:state:default]"}
Number shlPiKonferenz_CPU_Threads                "Threads [%.0f]"             <none>     (gSystemInfoShlPiKonferenz_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Threads:state:default]"}
Number shlPiKonferenz_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>     (gSystemInfoShlPiKonferenz_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiKonferenz_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiKonferenz)

/* Drive information*/
String shlPiKonferenz_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiKonferenz_Drive)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Drive_Name:state:default]"}
String shlPiKonferenz_Drive_Model                "Modell [%s]"               <none>     (gSystemInfoShlPiKonferenz_Drive)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Drive_Model:state:default]"}
String shlPiKonferenz_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiKonferenz_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Drive_Serial:state:default]"}

Group gSystemInfoShlPiKonferenz_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiKonferenz)

/* Storage information*/
String shlPiKonferenz_Storage_Name               "Name [%s]"                <none>     (gSystemInfoShlPiKonferenz_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Name:state:default]"}
String shlPiKonferenz_Storage_Type               "Typ [%s]"                <none>      (gSystemInfoShlPiKonferenz_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Type:state:default]"}
String shlPiKonferenz_Storage_Description        "Beschreibung [%s]"         <none>    (gSystemInfoShlPiKonferenz_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Description:state:default]"}
Number shlPiKonferenz_Storage_Available          "verfügbar [%.0f]"           <none>    (gSystemInfoShlPiKonferenz_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Available:state:default]"}
Number shlPiKonferenz_Storage_Used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiKonferenz_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Used:state:default]"}
Number shlPiKonferenz_Storage_Total              "Gesamt [%.0f MB]"               <none>   (gSystemInfoShlPiKonferenz_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Total:state:default]"}
Number shlPiKonferenz_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>     (gSystemInfoShlPiKonferenz_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Available_Percent:state:default]"}
Number shlPiKonferenz_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>      (gSystemInfoShlPiKonferenz_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiKonferenz_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiKonferenz)

/* Memory information*/
Number shlPiKonferenz_Memory_Available           "verfügbar [%.0f MB]"           <none>     (gSystemInfoShlPiKonferenz_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Memory_Available:state:default]"}
Number shlPiKonferenz_Memory_Used                "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiKonferenz_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Memory_Used:state:default]"}
Number shlPiKonferenz_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiKonferenz_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Memory_Total:state:default]"}
Number shlPiKonferenz_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiKonferenz_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Memory_Available_Percent:state:default]"}
Number shlPiKonferenz_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiKonferenz_Memory)         {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiKonferenz_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiKonferenz)

/* Swap memory information*/
Number shlPiKonferenz_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiKonferenz_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Swap_Available:state:default]"}
Number shlPiKonferenz_Swap_Used                  "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiKonferenz_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Swap_Used:state:default]"}
Number shlPiKonferenz_Swap_Total                 "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiKonferenz_Swap)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Swap_Total:state:default]"}
Number shlPiKonferenz_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiKonferenz_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Swap_Available_Percent:state:default]"}
Number shlPiKonferenz_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiKonferenz_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiKonferenz_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiKonferenz)

/* Battery information*/
String shlPiKonferenz_Battery_Name               "Name [%s]"                <batterylevel> (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Battery_Name:state:default]"}
Number shlPiKonferenz_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel>  (gSystemInfoShlPiKonferenz_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Battery_RemainingCapacity:state:default]"}
Number shlPiKonferenz_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel> (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiKonferenz_Display_Description        "Monitor-Beschreibung [%s]" <screen>   (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiKonferenz_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature> (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Sensor_CPUTemp:state:default]"}
Number shlPiKonferenz_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>     (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Sensor_CPUVoltage:state:default]"}
Number shlPiKonferenz_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>  (gSystemInfoShlPiKonferenz_BatteryDisplaySensor)         {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiKonferenz_Process  "Prozesse" <settings>   (gSystemInfoShlPiKonferenz)

/* Process information*/
Number shlPiKonferenz_Process_load               "geladen [%.1f %%]"                <none>      (gSystemInfoShlPiKonferenz_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Process_load:state:default]"}
Number shlPiKonferenz_Process_used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiKonferenz_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Process_used:state:default]"}
String shlPiKonferenz_Process_name               "Name [%s]"                <none>        (gSystemInfoShlPiKonferenz_Process)   {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Process_name:state:default]"}
Number shlPiKonferenz_Process_threads            "Threads [%.0f]"             <none>   (gSystemInfoShlPiKonferenz_Process)        {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Process_threads:state:default]"}
String shlPiKonferenz_Process_path               "Pfad [%s]"                <none>     (gSystemInfoShlPiKonferenz_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiKonferenz/Process_path:state:default]"}

Group gSystemInfoShlPiKueche  "shlPiKueche" <settings>   (gSystemInfo)

Group gSystemInfoShlPiKueche_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiKueche)

/* Network information*/
String shlPiKueche_Network_AdapterName        "Adaptername [%s]"        <network>     (gSystemInfoShlPiKueche_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_AdapterName:state:default]"}
String shlPiKueche_Network_Name               "Name [%s]"                <network>   (gSystemInfoShlPiKueche_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_Name:state:default]"}
String shlPiKueche_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiKueche_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_IP:state:default]"}
String shlPiKueche_Network_Mac                "MAC-Adresse [%s]"         <network>   (gSystemInfoShlPiKueche_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_Mac:state:default]"}
Number shlPiKueche_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>   (gSystemInfoShlPiKueche_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_DataSent:state:default]"}
Number shlPiKueche_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe> (gSystemInfoShlPiKueche_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_DataReceived:state:default]"}
Number shlPiKueche_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>  (gSystemInfoShlPiKueche_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_PacketsSent:state:default]"}
Number shlPiKueche_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>   (gSystemInfoShlPiKueche_Network)  {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiKueche_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiKueche)

/* CPU information*/
String shlPiKueche_CPU_Name                   "Name [%s]"                <none>      (gSystemInfoShlPiKueche_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Name:state:default]"}
String shlPiKueche_CPU_Description            "Beschreibung [%s]"         <none>     (gSystemInfoShlPiKueche_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Description:state:default]"}
Number shlPiKueche_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>  (gSystemInfoShlPiKueche_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Load1:state:default]"}
Number shlPiKueche_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>   (gSystemInfoShlPiKueche_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Load5:state:default]"}
Number shlPiKueche_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>   (gSystemInfoShlPiKueche_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Load15:state:default]"}
Number shlPiKueche_CPU_Threads                "Threads [%.0f]"             <none>        (gSystemInfoShlPiKueche_CPU)   {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Threads:state:default]"}
Number shlPiKueche_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>    (gSystemInfoShlPiKueche_CPU)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiKueche_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiKueche)

/* Drive information*/
String shlPiKueche_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiKueche_Drive)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Drive_Name:state:default]"}
String shlPiKueche_Drive_Model                "Modell [%s]"               <none>     (gSystemInfoShlPiKueche_Drive)      {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Drive_Model:state:default]"}
String shlPiKueche_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiKueche_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Drive_Serial:state:default]"}

Group gSystemInfoShlPiKueche_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiKueche)

/* Storage information*/
String shlPiKueche_Storage_Name               "Name [%s]"                <none>      (gSystemInfoShlPiKueche_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Name:state:default]"}
String shlPiKueche_Storage_Type               "Typ [%s]"                <none>      (gSystemInfoShlPiKueche_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Type:state:default]"}
String shlPiKueche_Storage_Description        "Beschreibung [%s]"         <none>      (gSystemInfoShlPiKueche_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Description:state:default]"}
Number shlPiKueche_Storage_Available          "verfügbar [%.0f]"           <none>     (gSystemInfoShlPiKueche_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Available:state:default]"}
Number shlPiKueche_Storage_Used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiKueche_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Used:state:default]"}
Number shlPiKueche_Storage_Total              "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiKueche_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Total:state:default]"}
Number shlPiKueche_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiKueche_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Available_Percent:state:default]"}
Number shlPiKueche_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>    (gSystemInfoShlPiKueche_Storage)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiKueche_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiKueche)

/* Memory information*/
Number shlPiKueche_Memory_Available           "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiKueche_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Memory_Available:state:default]"}
Number shlPiKueche_Memory_Used                "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiKueche_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Memory_Used:state:default]"}
Number shlPiKueche_Memory_Total               "Gesamt [%.0f MB]"               <none>       (gSystemInfoShlPiKueche_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Memory_Total:state:default]"}
Number shlPiKueche_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiKueche_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Memory_Available_Percent:state:default]"}
Number shlPiKueche_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiKueche_Memory)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiKueche_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiKueche)

/* Swap memory information*/
Number shlPiKueche_Swap_Available             "verfügbar [%.0f MB]"           <none>       (gSystemInfoShlPiKueche_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Swap_Available:state:default]"}
Number shlPiKueche_Swap_Used                  "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiKueche_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Swap_Used:state:default]"}
Number shlPiKueche_Swap_Total                 "Gesamt [%.0f MB]"               <none>       (gSystemInfoShlPiKueche_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Swap_Total:state:default]"}
Number shlPiKueche_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiKueche_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Swap_Available_Percent:state:default]"}
Number shlPiKueche_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiKueche_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiKueche_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiKueche)

/* Battery information*/
String shlPiKueche_Battery_Name               "Name [%s]"                <batterylevel>  (gSystemInfoShlPiKueche_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Battery_Name:state:default]"}
Number shlPiKueche_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel> (gSystemInfoShlPiKueche_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Battery_RemainingCapacity:state:default]"}
Number shlPiKueche_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel>  (gSystemInfoShlPiKueche_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiKueche_Display_Description        "Monitor-Beschreibung [%s]" <screen>     (gSystemInfoShlPiKueche_BatteryDisplaySensor)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiKueche_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature> (gSystemInfoShlPiKueche_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Sensor_CPUTemp:state:default]"}
Number shlPiKueche_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>     (gSystemInfoShlPiKueche_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Sensor_CPUVoltage:state:default]"}
Number shlPiKueche_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>  (gSystemInfoShlPiKueche_BatteryDisplaySensor)         {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiKueche_Process  "Prozesse" <settings>   (gSystemInfoShlPiKueche)

/* Process information*/
Number shlPiKueche_Process_load               "geladen [%.1f %%]"                <none>    (gSystemInfoShlPiKueche_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Process_load:state:default]"}
Number shlPiKueche_Process_used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiKueche_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Process_used:state:default]"}
String shlPiKueche_Process_name               "Name [%s]"                <none>       (gSystemInfoShlPiKueche_Process)    {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Process_name:state:default]"}
Number shlPiKueche_Process_threads            "Threads [%.0f]"             <none>    (gSystemInfoShlPiKueche_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Process_threads:state:default]"}
String shlPiKueche_Process_path               "Pfad [%s]"                <none>      (gSystemInfoShlPiKueche_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiKueche/Process_path:state:default]"}

Group gSystemInfoShlPiMultimedia  "shlPiMultimedia" <settings>   (gSystemInfo)

Group gSystemInfoShlPiMultimedia_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiMultimedia)

/* Network information*/
String shlPiMultimedia_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiMultimedia_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_AdapterName:state:default]"}
String shlPiMultimedia_Network_Name               "Name [%s]"                <network>   (gSystemInfoShlPiMultimedia_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_Name:state:default]"}
String shlPiMultimedia_Network_IP                 "IP-Adresse [%s]"          <network>    (gSystemInfoShlPiMultimedia_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_IP:state:default]"}
String shlPiMultimedia_Network_Mac                "MAC-Adresse [%s]"         <network>    (gSystemInfoShlPiMultimedia_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_Mac:state:default]"}
Number shlPiMultimedia_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>   (gSystemInfoShlPiMultimedia_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_DataSent:state:default]"}
Number shlPiMultimedia_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe>  (gSystemInfoShlPiMultimedia_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_DataReceived:state:default]"}
Number shlPiMultimedia_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>   (gSystemInfoShlPiMultimedia_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_PacketsSent:state:default]"}
Number shlPiMultimedia_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoShlPiMultimedia_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiMultimedia_CPU "CPU-Informationen" <settings>   (gSystemInfoShlPiMultimedia)

/* CPU information*/
String shlPiMultimedia_CPU_Name                   "Name [%s]"                <none>       (gSystemInfoShlPiMultimedia_CPU)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Name:state:default]"}
String shlPiMultimedia_CPU_Description            "Beschreibung [%s]"         <none>        (gSystemInfoShlPiMultimedia_CPU)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Description:state:default]"}
Number shlPiMultimedia_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>     (gSystemInfoShlPiMultimedia_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Load1:state:default]"}
Number shlPiMultimedia_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>     (gSystemInfoShlPiMultimedia_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Load5:state:default]"}
Number shlPiMultimedia_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>  (gSystemInfoShlPiMultimedia_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Load15:state:default]"}
Number shlPiMultimedia_CPU_Threads                "Threads [%.0f]"             <none>      (gSystemInfoShlPiMultimedia_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Threads:state:default]"}
Number shlPiMultimedia_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>  (gSystemInfoShlPiMultimedia_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiMultimedia_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiMultimedia)

/* Drive information*/
String shlPiMultimedia_Drive_Name                 "Name [%s]"                <none>        (gSystemInfoShlPiMultimedia_Drive)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Drive_Name:state:default]"}
String shlPiMultimedia_Drive_Model                "Modell [%s]"               <none>        (gSystemInfoShlPiMultimedia_Drive)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Drive_Model:state:default]"}
String shlPiMultimedia_Drive_Serial               "Seriennummer [%s]"              <none>    (gSystemInfoShlPiMultimedia_Drive)       {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Drive_Serial:state:default]"}

Group gSystemInfoShlPiMultimedia_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiMultimedia)

/* Storage information*/
String shlPiMultimedia_Storage_Name               "Name [%s]"                <none>      (gSystemInfoShlPiMultimedia_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Name:state:default]"}
String shlPiMultimedia_Storage_Type               "Typ [%s]"                <none>        (gSystemInfoShlPiMultimedia_Storage)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Type:state:default]"}
String shlPiMultimedia_Storage_Description        "Beschreibung [%s]"         <none>      (gSystemInfoShlPiMultimedia_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Description:state:default]"}
Number shlPiMultimedia_Storage_Available          "verfügbar [%.0f]"           <none>        (gSystemInfoShlPiMultimedia_Storage)   {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Available:state:default]"}
Number shlPiMultimedia_Storage_Used               "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiMultimedia_Storage)         {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Used:state:default]"}
Number shlPiMultimedia_Storage_Total              "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiMultimedia_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Total:state:default]"}
Number shlPiMultimedia_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiMultimedia_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Available_Percent:state:default]"}
Number shlPiMultimedia_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiMultimedia_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiMultimedia_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiMultimedia)

/* Memory information*/
Number shlPiMultimedia_Memory_Available           "verfügbar [%.0f MB]"           <none>    (gSystemInfoShlPiMultimedia_Memory)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Memory_Available:state:default]"}
Number shlPiMultimedia_Memory_Used                "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiMultimedia_Memory)       {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Memory_Used:state:default]"}
Number shlPiMultimedia_Memory_Total               "Gesamt [%.0f MB]"               <none>     (gSystemInfoShlPiMultimedia_Memory)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Memory_Total:state:default]"}
Number shlPiMultimedia_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiMultimedia_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Memory_Available_Percent:state:default]"}
Number shlPiMultimedia_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>      (gSystemInfoShlPiMultimedia_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiMultimedia_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiMultimedia)

/* Swap memory information*/
Number shlPiMultimedia_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiMultimedia_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Swap_Available:state:default]"}
Number shlPiMultimedia_Swap_Used                  "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiMultimedia_Swap)         {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Swap_Used:state:default]"}
Number shlPiMultimedia_Swap_Total                 "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiMultimedia_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Swap_Total:state:default]"}
Number shlPiMultimedia_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiMultimedia_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Swap_Available_Percent:state:default]"}
Number shlPiMultimedia_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>  (gSystemInfoShlPiMultimedia_Swap)        {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiMultimedia_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiMultimedia)

/* Battery information*/
String shlPiMultimedia_Battery_Name               "Name [%s]"                <batterylevel> (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Battery_Name:state:default]"}
Number shlPiMultimedia_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel>  (gSystemInfoShlPiMultimedia_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Battery_RemainingCapacity:state:default]"}
Number shlPiMultimedia_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel> (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiMultimedia_Display_Description        "Monitor-Beschreibung [%s]" <screen>    (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiMultimedia_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature>  (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Sensor_CPUTemp:state:default]"}
Number shlPiMultimedia_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>      (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Sensor_CPUVoltage:state:default]"}
Number shlPiMultimedia_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>   (gSystemInfoShlPiMultimedia_BatteryDisplaySensor)        {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiMultimedia_Process  "Prozesse" <settings>   (gSystemInfoShlPiMultimedia)

/* Process information*/
Number shlPiMultimedia_Process_load               "geladen [%.1f %%]"                <none>      (gSystemInfoShlPiMultimedia_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Process_load:state:default]"}
Number shlPiMultimedia_Process_used               "gebraucht [%.0f MB]"                <none>     (gSystemInfoShlPiMultimedia_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Process_used:state:default]"}
String shlPiMultimedia_Process_name               "Name [%s]"                <none>       (gSystemInfoShlPiMultimedia_Process)    {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Process_name:state:default]"}
Number shlPiMultimedia_Process_threads            "Threads [%.0f]"             <none>    (gSystemInfoShlPiMultimedia_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Process_threads:state:default]"}
String shlPiMultimedia_Process_path               "Pfad [%s]"                <none>      (gSystemInfoShlPiMultimedia_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiMultimedia/Process_path:state:default]"}

Group gSystemInfoShlPiWasserkocher  "shlPiWasserkocher" <settings>   (gSystemInfo)

Group gSystemInfoShlPiWasserkocher_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiWasserkocher)

/* Network information*/
String shlPiWasserkocher_Network_AdapterName        "Adaptername [%s]"        <network>    (gSystemInfoShlPiWasserkocher_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_AdapterName:state:default]"}
String shlPiWasserkocher_Network_Name               "Name [%s]"                <network>   (gSystemInfoShlPiWasserkocher_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_Name:state:default]"}
String shlPiWasserkocher_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoShlPiWasserkocher_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_IP:state:default]"}
String shlPiWasserkocher_Network_Mac                "MAC-Adresse [%s]"         <network>    (gSystemInfoShlPiWasserkocher_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_Mac:state:default]"}
Number shlPiWasserkocher_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>    (gSystemInfoShlPiWasserkocher_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_DataSent:state:default]"}
Number shlPiWasserkocher_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe> (gSystemInfoShlPiWasserkocher_Network)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_DataReceived:state:default]"}
Number shlPiWasserkocher_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>  (gSystemInfoShlPiWasserkocher_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_PacketsSent:state:default]"}
Number shlPiWasserkocher_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoShlPiWasserkocher_Network)   {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Network_PacketsReceived:state:default]"}

Group gSystemInfoShlPiWasserkocher_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiWasserkocher)

/* CPU information*/
String shlPiWasserkocher_CPU_Name                   "Name [%s]"                <none>      (gSystemInfoShlPiWasserkocher_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Name:state:default]"}
String shlPiWasserkocher_CPU_Description            "Beschreibung [%s]"         <none>      (gSystemInfoShlPiWasserkocher_CPU)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Description:state:default]"}
Number shlPiWasserkocher_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>     (gSystemInfoShlPiWasserkocher_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Load1:state:default]"}
Number shlPiWasserkocher_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>   (gSystemInfoShlPiWasserkocher_CPU)        {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Load5:state:default]"}
Number shlPiWasserkocher_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>  (gSystemInfoShlPiWasserkocher_CPU)         {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Load15:state:default]"}
Number shlPiWasserkocher_CPU_Threads                "Threads [%.0f]"             <none>     (gSystemInfoShlPiWasserkocher_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Threads:state:default]"}
Number shlPiWasserkocher_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>     (gSystemInfoShlPiWasserkocher_CPU)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/CPU_Uptime:state:default]"}

Group gSystemInfoShlPiWasserkocher_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiWasserkocher)

/* Drive information*/
String shlPiWasserkocher_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoShlPiWasserkocher_Drive)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Drive_Name:state:default]"}
String shlPiWasserkocher_Drive_Model                "Modell [%s]"               <none>       (gSystemInfoShlPiWasserkocher_Drive)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Drive_Model:state:default]"}
String shlPiWasserkocher_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoShlPiWasserkocher_Drive)        {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Drive_Serial:state:default]"}

Group gSystemInfoShlPiWasserkocher_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiWasserkocher)

/* Storage information*/
String shlPiWasserkocher_Storage_Name               "Name [%s]"                <none>     (gSystemInfoShlPiWasserkocher_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Name:state:default]"}
String shlPiWasserkocher_Storage_Type               "Typ [%s]"                <none>       (gSystemInfoShlPiWasserkocher_Storage)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Type:state:default]"}
String shlPiWasserkocher_Storage_Description        "Beschreibung [%s]"         <none>     (gSystemInfoShlPiWasserkocher_Storage)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Description:state:default]"}
Number shlPiWasserkocher_Storage_Available          "verfügbar [%.0f]"           <none>      (gSystemInfoShlPiWasserkocher_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Available:state:default]"}
Number shlPiWasserkocher_Storage_Used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoShlPiWasserkocher_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Used:state:default]"}
Number shlPiWasserkocher_Storage_Total              "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiWasserkocher_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Total:state:default]"}
Number shlPiWasserkocher_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoShlPiWasserkocher_Storage)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Available_Percent:state:default]"}
Number shlPiWasserkocher_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiWasserkocher_Storage)        {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Storage_Used_Percent:state:default]"}

Group gSystemInfoShlPiWasserkocher_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiWasserkocher)

/* Memory information*/
Number shlPiWasserkocher_Memory_Available           "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiWasserkocher_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Memory_Available:state:default]"}
Number shlPiWasserkocher_Memory_Used                "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiWasserkocher_Memory)         {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Memory_Used:state:default]"}
Number shlPiWasserkocher_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiWasserkocher_Memory)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Memory_Total:state:default]"}
Number shlPiWasserkocher_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiWasserkocher_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Memory_Available_Percent:state:default]"}
Number shlPiWasserkocher_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>       (gSystemInfoShlPiWasserkocher_Memory)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Memory_Used_Percent:state:default]"}

Group gSystemInfoShlPiWasserkocher_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiWasserkocher)

/* Swap memory information*/
Number shlPiWasserkocher_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoShlPiWasserkocher_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Swap_Available:state:default]"}
Number shlPiWasserkocher_Swap_Used                  "gebraucht [%.0f MB]"                <none>  (gSystemInfoShlPiWasserkocher_Swap)         {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Swap_Used:state:default]"}
Number shlPiWasserkocher_Swap_Total                 "Gesamt [%.0f MB]"               <none>      (gSystemInfoShlPiWasserkocher_Swap)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Swap_Total:state:default]"}
Number shlPiWasserkocher_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoShlPiWasserkocher_Swap)    {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Swap_Available_Percent:state:default]"}
Number shlPiWasserkocher_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoShlPiWasserkocher_Swap)       {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Swap_Used_Percent:state:default]"}

Group gSystemInfoShlPiWasserkocher_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiWasserkocher)

/* Battery information*/
String shlPiWasserkocher_Battery_Name               "Name [%s]"                <batterylevel> (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Battery_Name:state:default]"}
Number shlPiWasserkocher_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel> (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Battery_RemainingCapacity:state:default]"}
Number shlPiWasserkocher_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel>  (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Battery_RemainingTime:state:default]"}

/* Display information*/
String shlPiWasserkocher_Display_Description        "Monitor-Beschreibung [%s]" <screen>       (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Display_Description:state:default]"}

/* Sensors information*/
Number shlPiWasserkocher_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature> (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Sensor_CPUTemp:state:default]"}
Number shlPiWasserkocher_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>      (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Sensor_CPUVoltage:state:default]"}
Number shlPiWasserkocher_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>    (gSystemInfoShlPiWasserkocher_BatteryDisplaySensor)       {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Sensor_FanSpeed:state:default]"}

Group gSystemInfoShlPiWasserkocher_Process  "Prozesse" <settings>   (gSystemInfoShlPiWasserkocher)

/* Process information*/
Number shlPiWasserkocher_Process_load               "geladen [%.1f %%]"                <none>     (gSystemInfoShlPiWasserkocher_Process)      {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Process_load:state:default]"}
Number shlPiWasserkocher_Process_used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoShlPiWasserkocher_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Process_used:state:default]"}
String shlPiWasserkocher_Process_name               "Name [%s]"                <none>         (gSystemInfoShlPiWasserkocher_Process)  {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Process_name:state:default]"}
Number shlPiWasserkocher_Process_threads            "Threads [%.0f]"             <none>    (gSystemInfoShlPiWasserkocher_Process)       {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Process_threads:state:default]"}
String shlPiWasserkocher_Process_path               "Pfad [%s]"                <none>      (gSystemInfoShlPiWasserkocher_Process)     {mqtt="<[MQTTBroker:/messages/states/shlPiWasserkocher/Process_path:state:default]"}

At least I used groups instead of frames so the sitemap looks like:

...
  Frame label="Systemzustand" icon="pantry"
  {
    Group item=gSystemInfoOpenHABVM
    Group item=gSystemInfoShlPiGeneral
    Group item=gSystemInfoShlPiAlexa
    Group item=gSystemInfoShlPiBad
    Group item=gSystemInfoShlPiIoT
    Group item=gSystemInfoShlPiKonferenz
    Group item=gSystemInfoShlPiKueche
    Group item=gSystemInfoShlPiMultimedia
    Group item=gSystemInfoShlPiWasserkocher
  }
...

The difference is that now everything is displayed categorised in sub-pages.

The important part is that if you want to show all devices on each device that you only have to subscribe the remote system infos. For the local machine you have something like

String OpenHABVM_Network_AdapterName        "Adaptername"        <network>    (gSystemInfoOpenHABVM_Network)    { channel="systeminfo:computer:OpenHABVM:network#networkDisplayName" }

and for a remote device

String shlPiGeneral_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoShlPiGeneral_Network)     {mqtt="<[MQTTBroker:/messages/states/shlPiGeneral/Network_AdapterName:state:default]"}

For subscribing you have to use as example:

{mqtt="<[<Your-Broker-Name>:<Your-Base-Path>/<Your-Remote-Device>/Network_AdapterName:state:default]"}

Well to see what it means we will have a look at the shlPiGeneral device. There you will have:

String shlPiGeneral_Network_AdapterName        "Adaptername"        <network>    (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#networkDisplayName" }

and for a remote device

String OpenHABVM_Network_AdapterName        "Adaptername [%s]"        <network>   (gSystemInfoOpenHABVM_Network)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_AdapterName:state:default]"}

So there the item file changed to:

Group            gSmartHome                    "Smart-Home (Fakultaet IN    )"           <house>
Group            gSystemInfo                   "Systeminfo"                              <group>               (gSmartHome)

Number shlPiGeneral_System_CPU_Uptime "Betriebszeit Server [JS(duration.js):%s]" { channel="systeminfo:computer:shlPiGeneral:cpu#uptime" }

String System_openHAB_Uptime_output "Betriebszeit openHAB [%s]" { channel="exec:command:uptime:output" }
Number System_openHAB_Uptime "Betriebszeit openHAB [JS(duration.js):%s]"

Group gSystemInfoShlPiGeneral  "shlPiGeneral" <settings>   (gSystemInfo)

Group gSystemInfoShlPiGeneral_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* Network information*/
String shlPiGeneral_Network_AdapterName        "Adaptername"        <network>    (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#networkDisplayName" }
String shlPiGeneral_Network_Name               "Name"                <network>    (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#networkName" }
String shlPiGeneral_Network_IP                 "IP-Adresse"          <network>    (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#ip" }
String shlPiGeneral_Network_Mac                "MAC-Adresse"         <network>    (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#mac" }
Number shlPiGeneral_Network_DataSent           "Gesendete Daten"           <flowpipe>   (gSystemInfoShlPiGeneral_Network)    { channel="systeminfo:computer:shlPiGeneral:network#dataSent" }
Number shlPiGeneral_Network_DataReceived       "Empfangene Daten"       <returnpipe>  (gSystemInfoShlPiGeneral_Network)   { channel="systeminfo:computer:shlPiGeneral:network#dataReceived" }
Number shlPiGeneral_Network_PacketsSent        "Gesendete Pakete"        <flowpipe> (gSystemInfoShlPiGeneral_Network)      { channel="systeminfo:computer:shlPiGeneral:network#packetsSent" }
Number shlPiGeneral_Network_PacketsReceived    "Empfangene Pakete"    <returnpipe>  (gSystemInfoShlPiGeneral_Network)   { channel="systeminfo:computer:shlPiGeneral:network#packetsReceived" }

Group gSystemInfoShlPiGeneral_CPU  "CPU-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* CPU information*/
String shlPiGeneral_CPU_Name                   "Name"                <none>      (gSystemInfoShlPiGeneral_CPU)     { channel="systeminfo:computer:shlPiGeneral:cpu#name" }
String shlPiGeneral_CPU_Description            "Beschreibung"         <none>      (gSystemInfoShlPiGeneral_CPU)     { channel="systeminfo:computer:shlPiGeneral:cpu#description" }
Number shlPiGeneral_CPU_Load1                  "Auslastung (1 min)"        <none>   (gSystemInfoShlPiGeneral_CPU)        { channel="systeminfo:computer:shlPiGeneral:cpu#load1" }
Number shlPiGeneral_CPU_Load5                  "Auslastung (5 min)"        <none>   (gSystemInfoShlPiGeneral_CPU)        { channel="systeminfo:computer:shlPiGeneral:cpu#load5" }
Number shlPiGeneral_CPU_Load15                 "Auslastung (15 min)"       <none>  (gSystemInfoShlPiGeneral_CPU)         { channel="systeminfo:computer:shlPiGeneral:cpu#load15" }
Number shlPiGeneral_CPU_Threads                "Threads"             <none>        (gSystemInfoShlPiGeneral_CPU)   { channel="systeminfo:computer:shlPiGeneral:cpu#threads" }
Number shlPiGeneral_CPU_Uptime                 "Betriebszeit"              <time>   (gSystemInfoShlPiGeneral_CPU)        { channel="systeminfo:computer:shlPiGeneral:cpu#uptime" }

Group gSystemInfoShlPiGeneral_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoShlPiGeneral)

/* Drive information*/
String shlPiGeneral_Drive_Name                 "Name"                <none>       (gSystemInfoShlPiGeneral_Drive)    { channel="systeminfo:computer:shlPiGeneral:drive#name" }
String shlPiGeneral_Drive_Model                "Modell"               <none>       (gSystemInfoShlPiGeneral_Drive)    { channel="systeminfo:computer:shlPiGeneral:drive#model" }
String shlPiGeneral_Drive_Serial               "Seriennummer"              <none>    (gSystemInfoShlPiGeneral_Drive)       { channel="systeminfo:computer:shlPiGeneral:drive#serial" }

Group gSystemInfoShlPiGeneral_Storage  "Festplattenspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Storage information*/
String shlPiGeneral_Storage_Name               "Name"                <none>      (gSystemInfoShlPiGeneral_Storage)     { channel="systeminfo:computer:shlPiGeneral:storage#name" }
String shlPiGeneral_Storage_Type               "Typ"                <none>      (gSystemInfoShlPiGeneral_Storage)     { channel="systeminfo:computer:shlPiGeneral:storage#type" }
String shlPiGeneral_Storage_Description        "Beschreibung"         <none>    (gSystemInfoShlPiGeneral_Storage)       { channel="systeminfo:computer:shlPiGeneral:storage#description" }
Number shlPiGeneral_Storage_Available          "verfügbar"           <none>     (gSystemInfoShlPiGeneral_Storage)      { channel="systeminfo:computer:shlPiGeneral:storage#available" }
Number shlPiGeneral_Storage_Used               "gebraucht"                <none>    (gSystemInfoShlPiGeneral_Storage)       { channel="systeminfo:computer:shlPiGeneral:storage#used" }
Number shlPiGeneral_Storage_Total              "Gesamt"               <none>       (gSystemInfoShlPiGeneral_Storage)    { channel="systeminfo:computer:shlPiGeneral:storage#total" }
Number shlPiGeneral_Storage_Available_Percent  "verfügbar (%)"       <none>       (gSystemInfoShlPiGeneral_Storage)    { channel="systeminfo:computer:shlPiGeneral:storage#availablePercent" }
Number shlPiGeneral_Storage_Used_Percent       "gebraucht (%)"            <none>    (gSystemInfoShlPiGeneral_Storage)       { channel="systeminfo:computer:shlPiGeneral:storage#usedPercent" }

Group gSystemInfoShlPiGeneral_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Memory information*/
Number shlPiGeneral_Memory_Available           "verfügbar"           <none>      (gSystemInfoShlPiGeneral_Memory)     { channel="systeminfo:computer:shlPiGeneral:memory#available" }
Number shlPiGeneral_Memory_Used                "gebraucht"                <none>   (gSystemInfoShlPiGeneral_Memory)        { channel="systeminfo:computer:shlPiGeneral:memory#used" }
Number shlPiGeneral_Memory_Total               "Gesamt"               <none>      (gSystemInfoShlPiGeneral_Memory)     { channel="systeminfo:computer:shlPiGeneral:memory#total" }
Number shlPiGeneral_Memory_Available_Percent   "verfügbar (%)"       <none>       (gSystemInfoShlPiGeneral_Memory)    { channel="systeminfo:computer:shlPiGeneral:memory#availablePercent" }
Number shlPiGeneral_Memory_Used_Percent        "gebraucht (%)"            <none>    (gSystemInfoShlPiGeneral_Memory)       { channel="systeminfo:computer:shlPiGeneral:memory#usedPercent" }

Group gSystemInfoShlPiGeneral_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoShlPiGeneral)

/* Swap memory information*/
Number shlPiGeneral_Swap_Available             "verfügbar"           <none>       (gSystemInfoShlPiGeneral_Swap)    { channel="systeminfo:computer:shlPiGeneral:swap#available" }
Number shlPiGeneral_Swap_Used                  "gebraucht"                <none>   (gSystemInfoShlPiGeneral_Swap)        { channel="systeminfo:computer:shlPiGeneral:swap#used" }
Number shlPiGeneral_Swap_Total                 "Gesamt"               <none>       (gSystemInfoShlPiGeneral_Swap)    { channel="systeminfo:computer:shlPiGeneral:swap#total" }
Number shlPiGeneral_Swap_Available_Percent     "verfügbar (%)"       <none>       (gSystemInfoShlPiGeneral_Swap)    { channel="systeminfo:computer:shlPiGeneral:swap#availablePercent" }
Number shlPiGeneral_Swap_Used_Percent          "gebraucht (%)"            <none>        (gSystemInfoShlPiGeneral_Swap)   { channel="systeminfo:computer:shlPiGeneral:swap#usedPercent" }

Group gSystemInfoShlPiGeneral_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoShlPiGeneral)

/* Battery information*/
String shlPiGeneral_Battery_Name               "Name"                <batterylevel>  (gSystemInfoShlPiGeneral_BatteryDisplaySensor) { channel="systeminfo:computer:shlPiGeneral:battery#name" }
Number shlPiGeneral_Battery_RemainingCapacity  "Verbleibende Kapazität"  <batterylevel> (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  { channel="systeminfo:computer:shlPiGeneral:battery#remainingCapacity" }
Number shlPiGeneral_Battery_RemainingTime      "Verbleibende Zeit"      <batterylevel> (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  { channel="systeminfo:computer:shlPiGeneral:battery#remainingTime" }

/* Display information*/
String shlPiGeneral_Display_Description        "Monitor-Beschreibung" <screen>    (gSystemInfoShlPiGeneral_BatteryDisplaySensor)     { channel="systeminfo:computer:shlPiGeneral:display#information" }

/* Sensors information*/
Number shlPiGeneral_Sensor_CPUTemp             "CPU-Temperatur"     <temperature>  (gSystemInfoShlPiGeneral_BatteryDisplaySensor)  { channel="systeminfo:computer:shlPiGeneral:sensors#cpuTemp" }
Number shlPiGeneral_Sensor_CPUVoltage          "Spannung CPU"         <energy>     (gSystemInfoShlPiGeneral_BatteryDisplaySensor)    { channel="systeminfo:computer:shlPiGeneral:sensors#cpuVoltage" }
Number shlPiGeneral_Sensor_FanSpeed            "Drezhzahl Lüfter"           <fan>   (gSystemInfoShlPiGeneral_BatteryDisplaySensor)         { channel="systeminfo:computer:shlPiGeneral:sensors#fanSpeed" }

Group gSystemInfoShlPiGeneral_Process  "Prozesse" <settings>   (gSystemInfoShlPiGeneral)

/* Process information*/
Number shlPiGeneral_Process_load               "geladen"                <none>      (gSystemInfoShlPiGeneral_Process)     { channel="systeminfo:computer:shlPiGeneral:process#load" }
Number shlPiGeneral_Process_used               "gebraucht"                <none>   (gSystemInfoShlPiGeneral_Process)        { channel="systeminfo:computer:shlPiGeneral:process#used" }
String shlPiGeneral_Process_name               "Name"                <none>       (gSystemInfoShlPiGeneral_Process)    { channel="systeminfo:computer:shlPiGeneral:process#name" }
Number shlPiGeneral_Process_threads            "Threads"             <none>      (gSystemInfoShlPiGeneral_Process)     { channel="systeminfo:computer:shlPiGeneral:process#threads" }
String shlPiGeneral_Process_path               "Pfad"                <none>     (gSystemInfoShlPiGeneral_Process)      { channel="systeminfo:computer:shlPiGeneral:process#path" }

...

Group gSystemInfoOpenHABVM_Network  "Netzwerk-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* Network information*/
String OpenHABVM_Network_AdapterName        "Adaptername [%s]"        <network>    (gSystemInfoOpenHABVM_Network)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_AdapterName:state:default]"}
String OpenHABVM_Network_Name               "Name [%s]"                <network>   (gSystemInfoOpenHABVM_Network)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_Name:state:default]"}
String OpenHABVM_Network_IP                 "IP-Adresse [%s]"          <network>   (gSystemInfoOpenHABVM_Network)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_IP:state:default]"}
String OpenHABVM_Network_Mac                "MAC-Adresse [%s]"         <network>    (gSystemInfoOpenHABVM_Network)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_Mac:state:default]"}
Number OpenHABVM_Network_DataSent           "Gesendete Daten [%.0f MB]"           <flowpipe>    (gSystemInfoOpenHABVM_Network)   {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_DataSent:state:default]"}
Number OpenHABVM_Network_DataReceived       "Empfangene Daten [%.0f MB]"       <returnpipe> (gSystemInfoOpenHABVM_Network)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_DataReceived:state:default]"}
Number OpenHABVM_Network_PacketsSent        "Gesendete Pakete [%.0f]"        <flowpipe>  (gSystemInfoOpenHABVM_Network)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_PacketsSent:state:default]"}
Number OpenHABVM_Network_PacketsReceived    "Empfangene Pakete [%.0f]"    <returnpipe>  (gSystemInfoOpenHABVM_Network)   {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Network_PacketsReceived:state:default]"}

Group gSystemInfoOpenHABVM_CPU  "CPU-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* CPU information*/
String OpenHABVM_CPU_Name                   "Name [%s]"                <none>      (gSystemInfoOpenHABVM_CPU)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Name:state:default]"}
String OpenHABVM_CPU_Description            "Beschreibung [%s]"         <none>      (gSystemInfoOpenHABVM_CPU)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Description:state:default]"}
Number OpenHABVM_CPU_Load1                  "Auslastung (1 min) [%.1f]"        <none>     (gSystemInfoOpenHABVM_CPU)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Load1:state:default]"}
Number OpenHABVM_CPU_Load5                  "Auslastung (5 min) [%.1f]"        <none>   (gSystemInfoOpenHABVM_CPU)        {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Load5:state:default]"}
Number OpenHABVM_CPU_Load15                 "Auslastung (15 min) [%.1f]"       <none>  (gSystemInfoOpenHABVM_CPU)         {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Load15:state:default]"}
Number OpenHABVM_CPU_Threads                "Threads [%.0f]"             <none>     (gSystemInfoOpenHABVM_CPU)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Threads:state:default]"}
Number OpenHABVM_CPU_Uptime                 "Betriebszeit [%.0f Minutes]"              <time>     (gSystemInfoOpenHABVM_CPU)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/CPU_Uptime:state:default]"}

Group gSystemInfoOpenHABVM_Drive  "Laufwerk-Informationen" <settings>   (gSystemInfoOpenHABVM)

/* Drive information*/
String OpenHABVM_Drive_Name                 "Name [%s]"                <none>      (gSystemInfoOpenHABVM_Drive)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Drive_Name:state:default]"}
String OpenHABVM_Drive_Model                "Modell [%s]"               <none>       (gSystemInfoOpenHABVM_Drive)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Drive_Model:state:default]"}
String OpenHABVM_Drive_Serial               "Seriennummer [%s]"              <none>   (gSystemInfoOpenHABVM_Drive)        {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Drive_Serial:state:default]"}

Group gSystemInfoOpenHABVM_Storage  "Festplattenspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Storage information*/
String OpenHABVM_Storage_Name               "Name [%s]"                <none>     (gSystemInfoOpenHABVM_Storage)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Name:state:default]"}
String OpenHABVM_Storage_Type               "Typ [%s]"                <none>       (gSystemInfoOpenHABVM_Storage)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Type:state:default]"}
String OpenHABVM_Storage_Description        "Beschreibung [%s]"         <none>     (gSystemInfoOpenHABVM_Storage)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Description:state:default]"}
Number OpenHABVM_Storage_Available          "verfügbar [%.0f]"           <none>      (gSystemInfoOpenHABVM_Storage)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Available:state:default]"}
Number OpenHABVM_Storage_Used               "gebraucht [%.0f MB]"                <none>   (gSystemInfoOpenHABVM_Storage)        {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Used:state:default]"}
Number OpenHABVM_Storage_Total              "Gesamt [%.0f MB]"               <none>      (gSystemInfoOpenHABVM_Storage)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Total:state:default]"}
Number OpenHABVM_Storage_Available_Percent  "verfügbar (%) [%.1f %%]"       <none>      (gSystemInfoOpenHABVM_Storage)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Available_Percent:state:default]"}
Number OpenHABVM_Storage_Used_Percent       "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoOpenHABVM_Storage)        {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Storage_Used_Percent:state:default]"}

Group gSystemInfoOpenHABVM_Memory  "Arbeitsspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Memory information*/
Number OpenHABVM_Memory_Available           "verfügbar [%.0f MB]"           <none>      (gSystemInfoOpenHABVM_Memory)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Memory_Available:state:default]"}
Number OpenHABVM_Memory_Used                "gebraucht [%.0f MB]"                <none>  (gSystemInfoOpenHABVM_Memory)         {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Memory_Used:state:default]"}
Number OpenHABVM_Memory_Total               "Gesamt [%.0f MB]"               <none>      (gSystemInfoOpenHABVM_Memory)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Memory_Total:state:default]"}
Number OpenHABVM_Memory_Available_Percent   "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoOpenHABVM_Memory)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Memory_Available_Percent:state:default]"}
Number OpenHABVM_Memory_Used_Percent        "gebraucht (%) [%.1f %%]"            <none>       (gSystemInfoOpenHABVM_Memory)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Memory_Used_Percent:state:default]"}

Group gSystemInfoOpenHABVM_Swap  "Swap Arbeitsspeicher" <settings>   (gSystemInfoOpenHABVM)

/* Swap memory information*/
Number OpenHABVM_Swap_Available             "verfügbar [%.0f MB]"           <none>      (gSystemInfoOpenHABVM_Swap)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Swap_Available:state:default]"}
Number OpenHABVM_Swap_Used                  "gebraucht [%.0f MB]"                <none>  (gSystemInfoOpenHABVM_Swap)         {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Swap_Used:state:default]"}
Number OpenHABVM_Swap_Total                 "Gesamt [%.0f MB]"               <none>      (gSystemInfoOpenHABVM_Swap)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Swap_Total:state:default]"}
Number OpenHABVM_Swap_Available_Percent     "verfügbar (%) [%.1f %%]"       <none>       (gSystemInfoOpenHABVM_Swap)    {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Swap_Available_Percent:state:default]"}
Number OpenHABVM_Swap_Used_Percent          "gebraucht (%) [%.1f %%]"            <none>   (gSystemInfoOpenHABVM_Swap)       {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Swap_Used_Percent:state:default]"}

Group gSystemInfoOpenHABVM_BatteryDisplaySensor  "Akku-, Monitor- und Sensor" <settings>   (gSystemInfoOpenHABVM)

/* Battery information*/
String OpenHABVM_Battery_Name               "Name [%s]"                <batterylevel> (gSystemInfoOpenHABVM_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Battery_Name:state:default]"}
Number OpenHABVM_Battery_RemainingCapacity  "Verbleibende Kapazität [%.0f %%]"  <batterylevel> (gSystemInfoOpenHABVM_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Battery_RemainingCapacity:state:default]"}
Number OpenHABVM_Battery_RemainingTime      "Verbleibende Zeit [%.0f Minutes]"      <batterylevel>  (gSystemInfoOpenHABVM_BatteryDisplaySensor) {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Battery_RemainingTime:state:default]"}

/* Display information*/
String OpenHABVM_Display_Description        "Monitor-Beschreibung [%s]" <screen>       (gSystemInfoOpenHABVM_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Display_Description:state:default]"}

/* Sensors information*/
Number OpenHABVM_Sensor_CPUTemp             "CPU-Temperatur [%.1f °C]"     <temperature> (gSystemInfoOpenHABVM_BatteryDisplaySensor)   {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Sensor_CPUTemp:state:default]"}
Number OpenHABVM_Sensor_CPUVoltage          "Spannung CPU [%.1f V]"         <energy>      (gSystemInfoOpenHABVM_BatteryDisplaySensor)  {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Sensor_CPUVoltage:state:default]"}
Number OpenHABVM_Sensor_FanSpeed            "Drezhzahl Lüfter [%.0f rpm]"           <fan>    (gSystemInfoOpenHABVM_BatteryDisplaySensor)       {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Sensor_FanSpeed:state:default]"}

Group gSystemInfoOpenHABVM_Process  "Prozesse" <settings>   (gSystemInfoOpenHABVM)

/* Process information*/
Number OpenHABVM_Process_load               "geladen [%.1f %%]"                <none>     (gSystemInfoOpenHABVM_Process)      {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Process_load:state:default]"}
Number OpenHABVM_Process_used               "gebraucht [%.0f MB]"                <none>    (gSystemInfoOpenHABVM_Process)       {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Process_used:state:default]"}
String OpenHABVM_Process_name               "Name [%s]"                <none>         (gSystemInfoOpenHABVM_Process)  {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Process_name:state:default]"}
Number OpenHABVM_Process_threads            "Threads [%.0f]"             <none>    (gSystemInfoOpenHABVM_Process)       {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Process_threads:state:default]"}
String OpenHABVM_Process_path               "Pfad [%s]"                <none>      (gSystemInfoOpenHABVM_Process)     {mqtt="<[MQTTBroker:/messages/states/OpenHABVM/Process_path:state:default]"}

So it`s not possible to use the same items file on each device. You have to seperate which system infos you will have to subscribe and which not! On each device you have different items, things and rules. Maybe a different sitemap, too.

So at least the sitemap will look like this:

For all devices the sub menu:

For as example OpenHABVM:

For as example shlPiGeneral:

Outlook

For the MQTT 2.x binding, you would no longer need to install an MQTT Action Binding, as the ability to publish to rules is already provided by the binding.

Conclusion

It is quite easy to view the system information of other openHAB devices. This is not really different from displaying information from a HomeMatic device, for example, or via another binding, except that here the system info binding is used to “export” aka publish the data from the local device.

I really cringe when I see a new tutorial that uses any 1.x binding but most especially the MQTT 1.x binding. Essentially this tutorial is a dead end as MQTT 1.x is not supported on OH 3 at all. We’ve been working really hard on this forum to push people to the MQTT 2.x binding for at least two years now.

We really do appreciate the time and effort put into this tutorial and are glad you posted it. But in the long run it’s going to be a problem for us and many OH users as it’s impossible to use with OH 3.

For how to configure an MQTT Event Bus in the MQTT 2/3 binding see MQTT 2.5 Event Bus. This should actually make your Item configurations easier because you won’t need to apply any binding configuration to your subscriber Items. It is also “future proof” in that users of OH 3+ can actually implement this.

Or, if you are on OH 3, you can skip the MQTT entirely and use the Remote openHAB Binding.

2 Likes