Hausverwaltung für private Vermieter
Wenn für die Installation nicht Docker verwendet werden kann oder soll, muss eine Installation als System-Service erfolgen:
cd /; sudo tar xzf /path/to/mibasmserver-<version>.tgz/opt/mibasmserver/mibasmserver.sh -p /etc/mibasmserver/mibasmserver.conf.yaml müssen die Passwörter für die GUI verschlüsselt werden und in den Konfigurationsfile eingetragen werdensudo systemctl enable --now /opt/mibasmserver/mibasmserver.service wird der Service eingerichtet und gestartetZum Update oder für eine Änderung der Konfiguration sind die folgenden Schritte nötig:
sudo systemctl stop mibasmserver zum Stoppen des Servicecd /tmp; tar xzf /path/to/mibasmserver-<version>.tgzsudo rm -r /opt/mibasmserver/*sudo mv /tmp/mibasmserver/* /opt/mibasmserversudo systemctl reloadsudo systemctl start mibasmserverFalls mehrere Häuser verwaltet werden sollen, müssen für jedes Haus
Danach kann die Passwortvergabe und der Start für jeden Service durchgeführt werden.
Eine Instanz des Smartmeter-Servers kann immer nur ein Haus bedienen.
Es ist aber einfach, die Docker-Umgebung so zu erweitern, dass für jedes Haus eine Instanz gestartet wird.
Dazu muss docker-compose.yaml für 2 Häuser so erweitert werden:
version: "3.9"
services:
haus1:
image: hphalle/mibasmserver
restart: always
dns:
- <ip-address>
ports:
- "8088:8088"
volumes:
- "./haus1/data:/data"
- "./haus1/config:/config"
haus2:
image: hphalle/mibasmserver
restart: always
dns:
- <ip-address>
ports:
- "8188:8088"
volumes:
- "./haus2/data:/data"
- "./haus2/config:/config"
Statt haus1 und haus2 können beliebige Namen verwendet werde, sie dürfen aber nur aus Kleinbuchstabe, Ziffern und Minuszeichen bestehen.
Leerzeichen sind nicht erlaubt.
Dann verschieben sie die Verzeichnisse config und data in ein neues Verzeichnis mit dem Namen haus1 bzw. dem eben gewählten Namen dafür.
Für das zweite Haus wird genau so ein Verzeichnis haus2 mit den Unterverzeichnissen config und data angelegt.
In config muss dann ein Konfigurationsfile für das 2. Haus angelegt werden.
Nach dem Start ist die Web-Oberfläche für haus1 unter der Portnummer 8088 erreichbar, für haus2 unter 8188.
Der Aufbau des Application-Servers vom The-Things-Network unterscheidet sich etwas vom ChirpStack:
Im folgenden Beispiel sind die Defaultwerte in () gesetzt
# Abschnitt für The-Things-network
ttn:
# Es sind beliebig viele Unterabschnitte für MQTT-Verbindungen möglich. Die Namen können frei gewählt werden.
# Die Inhalte für Verbindungen zum öffentlichen oder zu eigenen Servern unterscheiden sich leicht.
# Dieses ist ein Beispiel für eine Verbindung zu einem privaten Server
private-ttn:
# Je nach Konfiguration muss die Verbindung mit oder ohne Verschlüsselung durch SSL aufgebaut werden (true)
ssl: false
# Die IP-Adresse des TTN-Servers
address: <ip-adresse>
# Portnummer des Servers (1883 ohne SSL, 8883 mit SSL)
port: 1883
# Die Application-ID muss wie bei der Anlage angegeben werden
applicationId: my-application-id
# Als username wird der Name des Users angegeben, unter der die Konfiguration im TTN-Server angelegt worden ist
username: admin
# API-Key, wie er bei der Anlage des Keys im TTN-Server erzeugt worden ist
apiKey: NNSXS.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
# Dieser Abschnitt beschreibt eine Verbindung zum öffentlichen Server
public-ttn:
# SSL ist immer eingeschaltet und die Portnummer ist Standard. Diese Elemente können deshalb entfallen.
# Die IP-Adresse ist immer eu1.cloud.thethings.network
address: eu1.cloud.thethings.network
# Die Application-ID muss wie bei der Anlage angegeben werden
applicationId: my-application-id
# Der Username besteht immer aus der Application-ID und "@ttn"
username: my-application-id@ttn
# API-Key, wie er bei der Anlage des Keys im TTN-Server erzeugt worden ist
apiKey: NNSXS.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Der Mibakus-Smartmeter-Server ist eigenständig und benötigt das Desktop-Programm zum Betrieb nicht.
Allerdings benötigt er die Daten des Desktop-Programms, um die E-Mails mit den Verbrauchinformationen an die Mieter versenden zu können.
Diese Hausbeschreibung kann aber auch über die Web-GUI aus der Seite System werden.
Die Hausbeschreibung benutzt das Format JSON. Ein Beispiel ist unten mit einigen Erläuterungen zu sehen.
Achtung! Im Format JSON sind Kommentare nicht zulässig. Im hochgeladenen File dürfen die mit “//” beginnenden Zeilen deshalb nicht enthalten sein.
{
// Format-Version, muss immer 1 sein
"version" : 1,
// Bezeichnung des Hauses. Wird für die Unterscheidung in der Web-GUI benutzt
"name" : "Goethestraße",
// Adresse
"address" : "Goethestraße 56",
// Ort
"city" : "Sonstwo",
// Absenderangabe des Vermieters. Wird in Verbrauchsberechnungen für Mieter ohne E-Mail-Adresse benutzt, um einen einfachen Ausdruck zu ermöglichen
"sendersAddress" : "Vermieter - Goethestraße 56 - 12345 Sonstwo",
// Liste mit Zählern, die verwendet werden
"meterDescriptions" : {
// Zähler-ID, kann beliebig gewählt werden, wird in den Formeln weiter unten benutzt
"z-eg-ww" : {
// Beliebiger Name
"name" : "Warmwasserzähler EG",
// Device-ID aus ID des LoRaWAN-Gerätes und dem Namen des Zählerwertes
"hardwareId" : "eg-ww.volume",
// Einheit
"unit" : "m³"
},
"z-og-ww" : {
"name" : "Warmwasserzähler OG",
"hardwareId" : "og-ww.volume",
"unit" : "m³"
},
"z-eg-wz" : {
"name" : "Wärmezähler EG",
"hardwareId" : "eg-waerme.energy",
"unit" : "kWh"
},
"z-og-wz" : {
"name" : "Wärmezähler OG",
"hardwareId" : "og-waerme.energy",
"unit" : "kWh"
}
},
// Liste der Mietverträge
"contractDescriptions" : [ {
// Beliebige ID
"id" : "eg-1",
// Bezeichnung der Wohnung
"objectName" : "EG",
// Beheizbare Fläche
"heatingArea" : 70,
// Mittlerer Wärmeverbrauch einer vergleichbaren Wohnung pro m²
"meanYearlyHeatConsumptionPerM2" : 120.0,
// Name des Mieters
"name" : "Mieter",
// Vorname
"forename" : "Heinz",
// Adresse 1
"street1" : "Goethestraße 56",
// Adresse 2
"street2" : null,
// PLZ
"zip" : "12345",
"city" : "Sonstwo",
// E-Mail-Adresse des Mieters
"email" : "mieter@provider.de",
// Anrede in der E-Mail
"title" : "Hallo Heinz",
// Begin des Mietvertrags (Jahr, Monat, Tag)
"start" : [ 2004, 1, 1 ],
// Ende = letzter Tag des Mietvertrags (Jahr, Monat, Tag)
"end" : null,
// Formeln für die Verbrauchsberechnung
"computations" : {
// Typ der Berechnung. Muss eins sein von hot-water, cold-water, heat-energy.
"hot-water" : {
// Bezeichnung in der Mail
"description" : "Warmwasser-Verbrauch",
// Berechnung. Hier wird angenommen, dass der Zähler im OG hinter dem Zähler im EG ist
"formula" : "z-eg-ww - z-og-ww"
},
"heat-energy" : {
"description" : "Wärmeverbrauch",
"formula" : "z-eg-wz"
}
}
}, {
"id" : "og-1",
"objectName" : "OG",
"heatingArea" : 55,
"meanYearlyHeatConsumptionPerM2" : 120.0,
"name" : "Mieter2",
"forename" : "Erna und Gerd",
"street1" : "Goethestraße 56",
"street2" : null,
"zip" : "12345",
"city" : "Sonstwo",
// Mieter ohne E-Mail-Adresse
"email" : null,
"title" : "Sehr geehrtes Ehepaar Mieter2",
"start" : [ 2020, 12, 1 ],
"end" : null,
"computations" : {
"hot-water" : {
"description" : "Warmwasser-Verbrauch",
"formula" : "z-og-ww"
},
"heat-energy" : {
"description" : "Wärmeverbrauch",
"formula" : "z-og-wz"
}
}
} ]
}
In der Definition der Sensoren oder in den Zählernummern in der Mibakus Desktop-Applikation müssen eindeutige Namen verwendet werden, um einen Sensor bzw. Zähler zu selektieren. Weil in einem LoRaWAN-Gerät mehrere Sensoren enthalten sein können, besteht die Adresse aus 2 Anteilen, die durch einen ‘.’ getrennt werden: