Zähler
Verfolgen Sie Nebenkostenzählerstände für Ihre Objekte
Was sind Zähler?
Zähler ermöglichen die Verfolgung der Zählerstände von Messgeräten für Ihre Objekte: Strom, Wasser, Gas, Heizung und andere Nebenkosten. Jeder Zähler speichert Seriennummer, Anfangszählerstand und Historie aller Zählerstände.
Hauptfunktionen
- Verknüpft mit Ausgabentypen (Strom, Wasser, Gas usw.)
- Dokumentanhänge für Zähler und Ablesungen (Fotos, PDFs, bis 20 MB)
- Vollständige Zählerstandshistorie mit Daten
- Automatische Validierung: neue Zählerstände müssen größer oder gleich den vorherigen sein
- Unterstützung für Mehrzonen-Stromtarife (Einzonen, Zweizonen, Dreizonen)
Stromtarifzonen
Für Stromzähler können Sie verschiedene Tariftypen je nach den Fähigkeiten Ihres Zählers auswählen.
| Tariftyp | Zonen | Beschreibung |
|---|---|---|
| Einzonen | 1 Zone | Standard-Zähler mit einem Zählerstand. Standard für alle Ausgabentypen. |
| Zweizonen | T1 (Tag (T1)), T2 (Nacht (T2)) | Tag-/Nacht-Zähler. Geben Sie beide Zonen ein, die Summe wird automatisch berechnet. |
| Dreizonen | T1 (Spitze (T1)), T2 (Halbspitze (T2)), T3 (Nacht (T3)) | Spitzen-/Halbspitzen-/Nacht-Zähler. Alle Zonen erforderlich. |
Wichtig
Mehrzonen-Tarife sind nur für Ausgabentypen verfügbar, die sie unterstützen (z.B. Elektrizität). Beim Hinzufügen eines Zählerstands für einen Mehrzonen-Zähler müssen Werte für alle Zonen eingegeben werden.
Wie erstelle ich einen Zähler?
Gehen Sie zu Ihrem Objekt
Öffnen Sie die Objektseite, auf der Sie einen Zähler hinzufügen möchten.
Zähler-Abschnitt öffnen
Klicken Sie auf "Zähler" im Objektmenü, um vorhandene Zähler zu sehen oder einen neuen hinzuzufügen.
Zählerdaten ausfüllen
Wählen Sie den Ausgabentyp, geben Sie die Seriennummer, den Anfangszählerstand ein und laden Sie optional ein Foto des Zählers hoch.
Zählerstände hinzufügen
Nach dem Erstellen eines Zählers können Sie Zählerstände hinzufügen, um den Verbrauch im Zeitverlauf zu verfolgen.
Validierungsregeln
Neue Zählerstände müssen größer oder gleich den vorherigen sein. Das System akzeptiert keine kleineren Werte, um die Datenintegrität zu gewährleisten.
Dokumente anhängen
Laden Sie Fotos des Zählerdisplays oder PDF-Dokumente mit jeder Ablesung als Nachweis und Referenz hoch.
Verfolgen Sie Daten
Geben Sie immer das genaue Datum der Zählerstandsablesung ein, um den Verbrauch genau zu verfolgen.
Regelmäßige Updates
Fügen Sie regelmäßig (monatlich) Zählerstände hinzu, um Verbrauchsmuster zu verfolgen und Probleme frühzeitig zu erkennen.
Anpassungen und Korrekturen
Manchmal müssen Zählerstände aufgrund von Zählerrückstellung, Austausch oder Korrektur vom Dienstleister angepasst werden.
Verbrauch
Normale Zählerstände. Der neue Wert muss größer oder gleich dem vorherigen Zählerstand sein.
Anpassung
Korrekturzählerstände. Verwenden Sie dies, wenn der Zähler ausgetauscht, zurückgesetzt oder vom Dienstleister korrigiert wurde.
Wann sollte eine Anpassung verwendet werden?
- Zähleraustausch - neuer Zähler beginnt mit einem niedrigeren Wert
- Zählerrückstellung nach Erreichen des Maximalwertes
- Korrektur vom Dienstleister nach Neuberechnung
- Korrektur eines Fehlers in einem zuvor eingegebenen Zählerstand
Wichtig
Korrekturzählerstände werden als negative Werte gespeichert und von automatischen Abrechnungsberechnungen ausgeschlossen.
Mit Abrechnungen verknüpfte Zählerstände
Wenn eine Abrechnung basierend auf Zählerständen erstellt wird, verknüpft das System automatisch den Zählerstand mit der Abrechnung.
Zählerstand ist mit keiner Abrechnung verknüpft. Kann vom Eigentümer/Vertreter bearbeitet oder gelöscht werden.
Zählerstand ist mit einer Abrechnung verknüpft. Kann nicht bearbeitet oder gelöscht werden, um die Datenintegrität zu gewährleisten.
Automatische Verknüpfung
Bei der Erstellung einer Abrechnung für zählerbasierte Ausgaben findet und verknüpft das System automatisch den letzten nicht verknüpften Zählerstand.
Verknüpfungsregeln
| Zählerstandstyp | Kann verknüpft werden | Grund |
|---|---|---|
| Normaler Verbrauch | Ja | Normale Zählerstände zeigen tatsächlichen Verbrauch |
| Anpassung/Korrektur | Nein | Negative Werte können keinen Verbrauch für die Zahlung darstellen |
| Anfangszählerstand | Nein | Anfangszählerstände sind Startpunkte, kein Verbrauch |
Abrechnungen erstellen
Bei der Erstellung einer Abrechnung für zählerbasierte Ausgaben wählen Sie einen vorhandenen Zählerstand anstatt Werte manuell einzugeben. Dies gewährleistet Datenintegrität und korrekte Erfassung.
Zählerstand hinzufügen
Fügen Sie zunächst einen neuen Zählerstand mit dem aktuellen Wert hinzu.
Abrechnung erstellen
Gehen Sie zur Ausgabe und erstellen Sie eine neue Abrechnung. Wählen Sie den Zählerstand aus der Liste.
Automatische Berechnung
Das System berechnet automatisch den Verbrauch basierend auf der Differenz zwischen dem ausgewählten und dem vorherigen Zählerstand.
Keine unverknüpften Zählerstände?
Wenn keine unverknüpften Zählerstände verfügbar sind, können Sie keine Abrechnung erstellen. Fügen Sie zunächst einen neuen Zählerstand hinzu und kehren Sie dann zurück, um die Abrechnung zu erstellen.
Abrechnungen über API erstellen
# 1. Get available unlinked readings:
GET /api/v1/properties/{propertyId}/expenses/{expenseId}/unlinked-readings
# Response:
{
"has_counters": true,
"has_unlinked_readings": true,
"counters": [
{
"counter_id": 5,
"serial_number": "ABC-123456",
"unlinked_readings": [
{
"id": 12,
"date": "2026-01-15",
"value": "1500.00",
"previous_value": "1350.00",
"consumption": "150.0000"
}
]
}
]
}
# 2. Create charge with selected reading:
POST /api/v1/properties/{propertyId}/expenses/{expenseId}/charges
{
"charge_date": "2026-01-21",
"period_start": "2025-12-01",
"period_end": "2025-12-31",
"counter_value_ids": [12]
}
Zugriffsrechte
Verschiedene Objektteilnehmer haben unterschiedliche Rechte für Zähler und Zählerstände.
Rechte für Zähler
| Aktion | Wer kann dies tun |
|---|---|
| Zähler anzeigen | Alle Objektteilnehmer |
| Zähler erstellen | Alle Objektteilnehmer |
| Zähler bearbeiten | Alle Objektteilnehmer |
| Zähler löschen | Nur Eigentümer und Vertreter |
Rechte für Zählerstände
| Aktion | Wer kann dies tun |
|---|---|
| Zählerstände anzeigen | Alle Objektteilnehmer |
| Zählerstände hinzufügen | Alle Objektteilnehmer |
| Zählerstände bearbeiten | Nur Eigentümer und Vertreter |
| Zählerstände löschen | Nur Eigentümer und Vertreter |
Rollen im Objekt
- Eigentümer (PROPERTY_LANDLORD): Voller Zugriff auf alle Operationen
- Vertreter (PROPERTY_LANDLORD_AGENT): Kann Zähler und Zählerstände bearbeiten und löschen
- Andere Teilnehmer: Können anzeigen, Zähler erstellen und neue Zählerstände hinzufügen
Zählerstatus
Zähler können je nachdem, ob sie derzeit verwendet werden, aktiviert oder deaktiviert werden.
Zähler wird verwendet. Neue Zählerstände können hinzugefügt werden, und der Zähler wird für automatische Abrechnungsberechnungen verwendet.
Zähler ist deaktiviert. Er bleibt im System für historische Aufzeichnungen, wird aber nicht für neue Berechnungen verwendet.
Wann sollte ein Zähler deaktiviert werden?
- Zähler wurde durch einen neuen ersetzt
- Zähler funktioniert vorübergehend nicht
- Zähler ist für das Objekt nicht mehr relevant
Wichtig
Inaktive Zähler werden von der automatischen Abrechnungsberechnung ausgeschlossen. Wenn Sie den Zähler wieder verwenden müssen, aktivieren Sie ihn einfach.
Zähler löschen
Um die Datenintegrität zu wahren, können Zähler mit verknüpften Abrechnungen nicht gelöscht werden.
Kann gelöscht werden
Der Zähler hat keine Zählerstände, die mit Abrechnungen verknüpft sind. Die gesamte Historie wird endgültig gelöscht.
Kann nicht gelöscht werden
Der Zähler hat Zählerstände, die mit Abrechnungen verknüpft sind. Deaktivieren Sie stattdessen den Zähler, um historische Daten zu bewahren.
Alternative zum Löschen
Wenn Sie einen Zähler nicht löschen können, deaktivieren Sie ihn. Deaktivierte Zähler verbleiben im System zur Referenz, werden aber nicht in neuen Berechnungen verwendet.
REST API
Alle API-Endpunkte erfordern JWT-Authentifizierung.
Service-Layer-Hinweis
Zähler-API
GET /api/v1/properties/{propertyId}/counters # List counters for property
POST /api/v1/properties/{propertyId}/counters # Create counter
GET /api/v1/properties/{propertyId}/counters/{id} # Counter details with readings
PUT /api/v1/properties/{propertyId}/counters/{id} # Update counter
DELETE /api/v1/properties/{propertyId}/counters/{id} # Delete counter (if no linked charges)
POST /api/v1/properties/{propertyId}/counters/{id}/toggle # Toggle active/inactive status
Zählerstände-API
POST /api/v1/properties/{propertyId}/counters/{counterId}/values # Add reading
PUT /api/v1/properties/{propertyId}/counters/{counterId}/values/{id} # Edit reading
DELETE /api/v1/properties/{propertyId}/counters/{counterId}/values/{id} # Delete reading
Zählerdokumente
POST /properties/{propertyId}/counters/{id}/documents/upload # Upload document (multipart/form-data)
POST /properties/{propertyId}/counters/{id}/documents/{documentId}/delete # Delete document
Ablesungsdokumente
POST /properties/{propertyId}/counters/{id}/values/{valueId}/documents/upload # Upload document (multipart/form-data)
POST /properties/{propertyId}/counters/{id}/values/{valueId}/documents/{documentId}/delete # Delete document
Dateilimits
Maximale Dateigröße: 20 MB. Unterstützte Formate: JPEG, PNG, GIF, WebP, HEIC, PDF. Mehrere Dateien können an jeden Zähler oder jede Ablesung angehängt werden.
Beispiel: Zähler erstellen
POST /api/v1/properties/1/counters
Content-Type: application/json
Authorization: Bearer <token>
{
"expense_type_id": 1,
"serial_number": "ABC-123456",
"tariff_type": "TWO_ZONE",
"initial_value": "100.500",
"initial_value_t1": "60.300",
"initial_value_t2": "40.200",
"initial_value_date": "2026-01-01"
}
Beispiel: Zählerstand hinzufügen
POST /api/v1/properties/1/counters/5/values
Content-Type: application/json
Authorization: Bearer <token>
# Single-zone counter (regular consumption):
{ "value": "1350.75", "date": "2026-01-07" }
# Multi-zone counter (total auto-calculated):
{
"value_t1": "150.300",
"value_t2": "80.200",
"date": "2026-01-07"
}
# Adjustment reading (correction):
{
"value": "50.000",
"date": "2026-01-07",
"is_adjustment": true
}
Zählerdokumente: Upload
POST /properties/1/counters/5/documents/upload
Content-Type: multipart/form-data
documents[] — file (jpg, jpeg, png, gif, webp, heic, pdf), max 20 MB
comment — string (optional)
# Response:
{ "success": true, "uploaded": 1 }
Ablesungsdokumente: Upload
POST /properties/1/counters/5/values/12/documents/upload
Content-Type: multipart/form-data
documents[] — file (jpg, jpeg, png, gif, webp, heic, pdf), max 20 MB
comment — string (optional)
# Response:
{ "success": true, "uploaded": 2 }
Beispielantwort
{
"id": 12,
"value": "230.500",
"value_t1": "150.300",
"value_t2": "80.200",
"value_t3": null,
"date": "2026-01-07",
"is_initial": false,
"is_adjustment": false,
"has_linked_charge": true,
"expense_charge_id": 45,
"can_edit": false,
"can_delete": false,
"documents_count": 2,
"created_at": "2026-01-07T10:30:00+00:00"
}
Verwandte Abschnitte
Swagger / OpenAPI
Vollständige API-Dokumentation ist in Swagger UI verfügbar: /api/v1/doc