HansOS

Ersteinrichtung — Admin-Konto anlegen

{{ error }}

HansOS

Schneider Baiersbronn

{{ error }}
{{ sleepClock.time }}
{{ sleepClock.date }}
Keine Verbindung zum Server seit {{ new Date(offlineSince).toLocaleTimeString('de-DE', { hour:'2-digit', minute:'2-digit' }) }} – angezeigte Werte sind veraltet
Home
Energie
Geräte
Alarmanlage
Wärmepumpe
Auswertung
batcontrol
Überwachung
Konfiguration
Benutzer
Kachel festhalten und ziehen (Touch: kurz gedrückt halten), Bereiche an der lila Leiste. Jede Kachel lässt sich zwischen „Status“ und eigenen Bereichen verschieben. Wird sofort für alle Geräte gespeichert. –
⠿Energiefluss – Bereich verschieben
Fronius-Daten werden geladen …
⠿Status – Bereich verschieben
{{ d.name }}
{{ devText(d).v }}{{ devText(d).u }}
{{ d.room || d.type_label }}
Aktualisiert: {{ wmpLastUpdate }} Lade Daten...
Status
Betriebsmodus
{{ modes[wmp.betriebsmodus] ?? '–' }}
Party für {{ wmp.party_hours }} h
Urlaub für {{ wmp.urlaub_tage }} Tage
Wärmepumpe
{{ wpStatusText() }}
Leistung
{{ wmp.wp_power_w != null ? (wmp.wp_power_w / 1000).toFixed(2).replace('.', ',') : '–' }} kW
L1 {{ wmp.wp_power_phases[0] }} · L2 {{ wmp.wp_power_phases[1] }} · L3 {{ wmp.wp_power_phases[2] }} W
{{ wmp.wp_power_w != null ? (wpPwrSrc === 'knx' ? 'über KNX' : 'Shelly') : wpPwrSrc === 'knx' ? 'keine Werte vom KNX-Zähler' : 'Shelly nicht erreichbar' }}
Smart-Steuerung
{{ hc.status }}
{{ hc.state_label }} {{ hcK(hc.delta_k) }}
Schattenmodus
aus
{{ ind.label }}: {{ ind.text }}
{{ pm.label }}: {{ pm.on == null ? '–' : pm.on ? 'an' : 'aus' }}
Zentral-Temperaturen
{{ t.label }}
{{ fmt(t.pair[0]) }}/{{ fmt(t.pair[1]) }}°C
{{ fmt(t.ist) }}{{ t.unit || '°C' }}
Soll {{ fmt(t.soll) }} °C
{{ t.sub }}
{{ t.extra }}
{{ hcTileNote(t.hc) }}
Ofen {{ ofen.burning ? 'an' + (ofen.on_since ? ' seit ' + new Date(ofen.on_since * 1000).toLocaleTimeString('de-DE', {hour:'2-digit', minute:'2-digit'}) : '') : 'aus' }} EVU-Sperre aktiv KNX nicht verbunden Bus: {{ ofen.read.ok }} von {{ ofen.read.total }} Adressen antworten · {{ new Date(ofen.read.ts * 1000).toLocaleTimeString('de-DE', {hour:'2-digit', minute:'2-digit'}) }}
{{ ofen.error }}
{{ t.label }}
{{ t.pair[0] }}/{{ t.pair[1] }}{{ t.u }}
{{ t.v }}{{ t.u }}
{{ t.sub }}
{{ t.extra }}
Stand vor {{ t.stale }} – keine neuen Werte
Verlauf
{{ l.label }} {{ deNum(l.last, 1) }} °C {{ ofenChart.onKey === 'ofen_an' ? 'Ofen an' : 'Ladepumpe an' }} EVU-Sperre
{{ g.v }}° {{ t.label }}
{{ ofenChart.hover.time }}
{{ p.label }} {{ deNum(p.v, 1) }} °C
Ladepumpe {{ ofenChart.hover.pump ? 'an' : 'aus' }}
Noch keine Verlaufsdaten – werden ab jetzt alle 5 Minuten aufgezeichnet.
Aufzeichnung läuft seit {{ ofenChart.since }} – die Linien wachsen nach rechts weiter.
Ofen · Erkennung & EVU-Sperre
Ofen {{ ofen.burning ? 'an' : 'aus' }} Wassertasche {{ ofen.rise >= 0 ? '+' : '' }}{{ deNum(ofen.rise, 1) }} K in {{ ofen.cfg?.rise_min }} min EVU-Sperre: {{ !ofen.cfg?.ga?.lock ? 'keine Adresse' : ofen.locked ? 'aktiv seit ' + new Date(ofen.lock_since * 1000).toLocaleTimeString('de-DE', {hour:'2-digit', minute:'2-digit'}) : 'frei' }}
{{ ofen.lock_err }}
Ofen an: Wassertasche steigt in {{ ofen.cfg.rise_min }} min um mindestens {{ deNum(ofen.cfg.rise_k, 1) }} K. Ofen aus: Wassertasche unter {{ deNum(ofen.cfg.off_c, 1) }} °C und steigt nicht mehr (frühestens 15 min nach „an“).
{{ ofen.cfg.notify ? ' Meldung per Pushover.' : '' }}
liest jede Ofen-Adresse einzeln und zeigt, ob sie antwortet
DatenpunktAdresseLeseanfrageletztes Telegrammvon Gerät
{{ r.label }}{{ r.ga }} {{ r.ok ? '✓ ' + (typeof r.value === 'boolean' ? (r.value ? 'ein' : 'aus') : deNum(r.value, 1)) + ' (' + r.ms + ' ms)' : '✗ ' + (r.error || 'keine Antwort') }} {{ r.seen ? new Date(r.seen * 1000).toLocaleTimeString('de-DE', {hour:'2-digit', minute:'2-digit'}) : 'seit Start keins' }} {{ r.src || '–' }}
{{ ofenProbe.err }}
{{ e.text }}
{{ ofen.msg.text }}
Ofen · Einstellungen (Gruppenadressen, Schwellen)
Smart-Steuerung
{{ hc.loadError }}
Smart-Steuerung
{{ hc.status }} {{ hc.state_label }} {{ hcK(hc.delta_k) }}
seit {{ hcTime(hc.since) }} · ausgelöst: {{ hc.reason }}
jetzt {{ String(Math.round(hc.plan[0].price * 1000) / 10).replace('.', ',') }} ct{{ hc.want && hc.want !== hc.state ? ' · ' + ({normal:'Normal', absenken:'Absenken', anheben:'Anheben'}[hc.want]) + ' geplant' + (hc.want_reason ? ': ' + hc.want_reason : '') : '' }}
Schattenmodus – würde jetzt: {{ {absenken:'Absenken', anheben:'Anheben'}[hc.want] }} {{ hcK(hc.want === 'absenken' ? -hc.settings.absenk_k : hc.settings.anheb_k) }} · {{ hc.want_reason }}
Schattenmodus – plant nur, schreibt nichts{{ hc.want_reason ? ' · ' + hc.want_reason : '' }}
ausgeschaltet
{{ hc.want_reason || 'keine Verschiebung lohnt sich gerade' }}
{{ hc.pv_live_info }}
pausiert bis {{ hcTime(hc.paused_until) }}
{{ hc.error }}
{{ hc.loadError }}
zuletzt geprüft {{ hc.last_eval ? hcTime(hc.last_eval) : '–' }} · alle 5 min jetzt prüfen
{{ c.label }}: {{ !c.available ? 'nicht verfügbar' : c.needs_base ? 'Grundeinstellung fehlt – nicht gesteuert' : !c.active ? 'nicht gesteuert' : c.ww ? ('Soll ' + (c.soll_c ?? '–') + ' °C' + (c.value_k ? ' (' + hcK(c.value_k) + ')' : '')) : (c.value_k != null ? 'Parallelverschiebung ' + hcK(c.value_k) + (c.base_k != null && c.base_k !== c.value_k ? ' (sonst ' + hcK(c.base_k) + ')' : '') : 'gesteuert') }}
⚠ Abweichung von der Grundeinstellung: {{ hc.deviation.join(' · ') }}
{{ l.label }} {{ l.error ? '–' : hcK(l.value_k) }}
Gelesen {{ hcInsp.at }}. Bei HK2/HK3 schaltet die App dafür kurz die Heizkreis-Auswahl um und stellt sie danach zurück.
{{ hcInsp.msg.text }}
{{ a.label }} PV-Prognose (kW, rechte Achse; gestrichelt = ab hier deckt PV die WP) Balken = Wärmepreis: Strompreis bzw. {{ hc.settings.feed_in_ct }} ct, wenn PV die WP deckt (☀)
{{ t.v }} ct ☀ {{ t.label }}
{{ hcPlan.tip.title }}
{{ row.label }}: {{ row.text }}
Prognose: {{ hc.forecast_source === 'batcontrol' ? 'batcontrol (Preise + PV' + (hc.pv_kwp ? ', ' + String(hc.pv_kwp).replace('.', ',') + ' kWp' : '') + ')' : hc.forecast_source === 'tibber' ? 'Tibber-Preise (ohne PV – batcontrol läuft nicht)' : '–' }}
Noch keine Prognose – es werden Preise von batcontrol oder Tibber benötigt.
Eingriffe ({{ hc.log.length }})
{{ hcTime(e.ts, true) }}
{{ e.to === 'normal' ? 'Normal' : ({absenken:'Absenken', anheben:'Anheben'}[e.to] + ' ' + hcK(e.k)) }} · {{ e.reason || '–' }}{{ e.mode !== 'active' ? ' (Schatten)' : '' }}
{{ e.values }}
Fußbodenheizung Räume {{ fbhSummary }}
RaumIstSollAbw.Ventil
{{ r.name }}{{ r.via === 'cloud' ? 'CLOUD' : 'WLAN' }} {{ fmt(r.ist) }} °C {{ fmt(r.soll) }} °C {{ r.delta != null ? (r.delta >= 0 ? '+' : '−') + Math.abs(r.delta).toFixed(1).replace('.', ',') : '–' }} {{ r.tuya ? (r.on === false ? 'aus' : r.ventil == null ? '–' : (r.ventil ? 'heizt' : 'aus') + (r.est ? '*' : '')) : (r.ventil != null ? r.ventil + ' %' : '–') }}
Energie & Effizienz
{{ c.label }}
{{ c.text ?? (c.value != null ? c.value.toLocaleString('de-DE') : '--') }}{{ c.unit }}
{{ line }}
Zählerstände {{ new Date().getFullYear() }} nachpflegen

Stand am 1.1. und Stand heute, jeweils vom selben Zähler abgelesen. Ab heute rechnet das Dashboard mit den Live-Zählern weiter. Wärme: am Display unter „Wärmemengen“ den Wert „Wärmepumpe gesamt“ (Heizen + Warmwasser) nehmen.

Der Strom kommt aus der importierten Strom-Historie. Die Stromfelder kannst du leer lassen.

{{ jazSeedError }}
Betriebszeiten je Tag
{{ wpaRange.label }} – {{ wpaRange.label }}
{{ wpa.error }}
{{ p.name }}{{ wpaH(p.h) }} {{ p.pct }} % · Ø {{ wpaH(p.perDay) }}/Tag
{{ t.v }} {{ l.t }} {{ wpa.loading ? 'lädt …' : 'Noch keine Daten – die Aufzeichnung läuft ab jetzt' }}
{{ wpaTip.title }}
{{ r.l }}
Zeit je Zustand laut Statusmeldung der WPM (alle 10 s erfasst). Ohne KNX-Verbindung wird nichts gezählt – der Rest bis 24 h bleibt dann leer.
Konfiguration
{{ c.label }}{{ c.hint }}
{{ wmp[c.key] != null ? (c.bool ? (wmp[c.key] ? 'Aktiv' : 'Inaktiv') : wmp[c.key] + ' ' + c.unit) : '–' }}
{{ dispVal(c.key) }} {{ c.unit }}
Alarmanlage
{{ alStateText }}
{{ al.alarm_by?.text }} · {{ alTime(al.alarm_since, true) }}
{{ al.armed ? 'scharf' : 'unscharf' }} seit {{ alTime(al.since, true) }}{{ al.by_text ? ' · ' + al.by_text : '' }}
Offen: {{ al.blockers.join(', ') }}
{{ al.msg.text }}
{{ al.error }}
Zeitschaltuhr
Keine Zeitschaltuhr – nur von Hand, über KNX oder Apple Home.
Überwachte Auslöser
{{ label }}{{ alTrigInfo(k) }}
Handlungen bei Alarm
Pushover{{ al.cfg?.actions?.pushover?.enabled ? AL_PRIO[al.cfg.actions.pushover.priority] : 'aus' }}
Lampen einschalten{{ al.cfg?.actions?.lights?.enabled ? (al.cfg.actions.lights.ids || []).length + ' Lampen' : 'aus' }}
KNX Alarm-Ausgang{{ al.cfg.ga_alarm }}
KNX & Apple Home
Schalten (1 = scharf){{ al.cfg?.ga_arm || '–' }}
Status (lesbar){{ al.cfg?.ga_status || (al.cfg?.ga_arm ? al.cfg.ga_arm : '–') }}
{{ feat('homekit') ? 'In Apple Home als Sicherheitssystem „Alarmanlage“ (Abwesend = scharf).' : 'HomeKit-Bridge ist aus – in Apple Home nicht sichtbar.' }}
Fenster & Türen {{ al.watched.filter(w => w.open).length }} offen
{{ w.name }}{{ w.kind === 'doors' ? 'Tür' : '' }}{{ w.open == null ? '?' : w.tilted ? 'gekippt' : w.type === 'lock' ? (w.open ? 'entriegelt' : 'verriegelt') : w.open ? 'offen' : 'zu' }}
Protokoll
Noch keine Einträge.
{{ alTime(e.ts, true) }}{{ e.text }}

Geräte

{{ dev.list.length }} Geräte
Noch keine Geräte eingerichtet.

Energieverbrauch & Strompreise

PV & Verbrauch Live
Fronius-Daten werden geladen…
Autarkie
{{ frAutonomy.toFixed(0) }}%
{{ c.label }}
{{ c.text }}{{ c.unit }}
{{ line }}
{{ tibberError }}
Aktueller Monat
Strompreis jetzt
{{ (tibber.current_price.total * 100).toFixed(1).replace('.', ',') }}ct/kWh
{{ tibberLevelText(tibber.current_price.level) }}
Energie {{ (tibber.current_price.energy * 100).toFixed(1).replace('.', ',') }} · Steuern & Abgaben {{ (tibber.current_price.tax * 100).toFixed(1).replace('.', ',') }} ct
Strompreise
{{ l.label }}
{{ t.v }} ct morgen {{ t.label }}
{{ tpChart.tip.title }}
Preis: {{ tpChart.tip.price }}
{{ tpChart.tip.level }}
Min {{ tpChart.stats.min }} Max {{ tpChart.stats.max }} Ø {{ tpChart.stats.avg }} (gestrichelt) günstigste Stunde {{ tpChart.stats.cheapest }}
Preise für morgen kommen meist ab ca. 13 Uhr.
Verbrauchsanalyse
{{ anRange.label }} – {{ anRange.label }}
{{ an.error }}
{{ an.hidden.length ? 'Auswahl' : 'Verbrauch' }}{{ anKwh(anSum.sel) }}kWh von {{ anKwh(anSum.total) }} kWh gesamt
PV erzeugt{{ anKwh(anSum.pv) }}kWh {{ anKwh(anSum.pv_direct) }} direkt · Einspeisung {{ anKwh(anSum.export) }}
Netzbezug{{ anKwh(anSum.grid_total) }}kWh {{ anKwh(anSum.grid) }} ins Haus · {{ anKwh(anSum.grid_charge) }} in die Batterie
Batterie{{ anKwh(anSum.battery) }}kWh geladen {{ anKwh(anSum.charge) }} kWh
Autarkie{{ anSum.autarky != null ? anSum.autarky + ' %' : '–' }} aus PV und Batterie
{{ t.v }} {{ l.t }} {{ an.loading ? 'lädt …' : 'Keine Daten im Zeitraum' }}
{{ anTip.title }}
{{ r.l }}: {{ r.v }}
links Verbraucher {{ c.name }} rechts Herkunft PV direktBatterie NetzNetz → BatterieEinspeisung
{{ p.name }} {{ anKwh(p.kwh) }} kWh{{ p.pct }} %
Aus der eigenen Aufzeichnung (kWh-Zähler je Verbraucher und Quelle). Der laufende Abschnitt zählt bis jetzt.

Energie-Auswertung

{{ edError }}
Stromverbrauch {{ edYear }} nach Verbraucher
{{ sr.label }}
{{ t.label }} {{ b.name }} · {{ seg.label }}: {{ fmtKwh(seg.v) }} kWh {{ b.name }}: {{ b.tip }} {{ fmtKwh(b.total) }} {{ n }}
Noch keine Daten für {{ edYear }}. Gesamtverbrauch und PV kommen aus den Fronius-Zählern, aufgezeichnet ab dem ersten Tagesstand.
Monatswerte {{ edYear }}
Eingetragene Werte ersetzen den automatischen Wert (grau im Feld). Feld leeren = wieder automatisch. {{ plant.names.main }}, Eigenverbrauch, Effizienz und Kosten werden daraus neu berechnet.
{{ n }}{{ edYear }}
Fronius-Werte (Gesamtverbrauch, PV, Netzbezug) werden ab {{ ed.fronius_since || 'dem ersten Tagesstand' }} aufgezeichnet. Gesamtverbrauch = Netzbezug + PV-Erzeugung − Einspeisung. Effizienz = Wärme ÷ Strom Wärmepumpe im selben Zeitraum. Kosten {{ plant.names.other }} = kWh × {{ edPriceLabel }} €/kWh, Heizung {{ plant.names.other }} = Heizung × {{ ed.settings.mum_heat_share }} % × Preis.

batcontrol

{{ bc.engine === 'eigen' ? 'eigene Steuerung aktiv' : !bc.installed ? 'nicht installiert' : bc.running ? (bc.fresh ? 'läuft' : 'läuft, wartet auf Daten') : (bc.autostart ? 'abgestürzt – Neustart folgt' : 'gestoppt') }} v{{ bc.version }}
{{ bcMsg.text }}
Demo-Modus: batcontrol nutzt einen simulierten Wechselrichter und ändert nichts an der Anlage. Unter Konfiguration den Wechselrichter auf fronius_gen24 stellen, um wirklich zu steuern.
Aktueller Status · veraltet, Stand {{ new Date(bc.last_msg*1000).toLocaleString('de-DE',{day:'2-digit',month:'2-digit',hour:'2-digit',minute:'2-digit'}) }}
Modus
{{ bc.mode_label || (bc.running ? 'noch keine Entscheidung' : '–') }}
{{ bc.health_reason }}
{{ bc.problem_hint }}
Log: {{ bc.problem }}
Ladeleistung {{ fmtW(bc.charge_rate) }} W
Ladelimit {{ fmtW(bc.limit_battery_charge_rate) }} W
Akku
{{ bc.soc != null ? bc.soc.toFixed(0) : '–' }}%
{{ (bc.stored_energy/1000).toFixed(1).replace('.', ',') }} von {{ ((bc.max_energy||0)/1000).toFixed(1).replace('.', ',') }} kWh
Strompreis jetzt
{{ bc.price != null ? (bc.price*100).toFixed(1).replace('.', ',') : '–' }}ct/kWh
{{ bc.utility_type || '' }}
Bedarf in teuren Stunden
{{ bc.reserved_energy != null ? (bc.reserved_energy/1000).toFixed(1).replace('.', ',') : '–' }}kWh
im Akku nutzbar: {{ (bc.usable_energy/1000).toFixed(1).replace('.', ',') }} kWh
PV-Überschuss erwartet: {{ (bc.solar_surplus_wh/1000).toFixed(1).replace('.', ',') }} kWh
Letzte Auswertung
{{ bc.last_evaluation ? new Date(bc.last_evaluation*1000).toLocaleTimeString('de-DE',{hour:'2-digit',minute:'2-digit'}) : '–' }}
eigene Steuerung · Modbus TCP
MQTT {{ bc.mqtt?.connected ? 'verbunden' : 'getrennt' }} · {{ bc.broker_mode === 'intern' ? 'interner Broker' : bc.mqtt?.broker }}
Entscheidung: {{ bc.decision }}
Eigene Steuerung · ohne batcontrol und MQTT
{{ boLabel(bo.st.decision || bo.st.plan_mode) }} {{ bo.st.mode === 'shadow' ? '(nur geplant)' : '' }}{{ bo.st.decision === '-1' && bo.st.charge_w ? ' · ' + fmtW(bo.st.charge_w) + ' W' : '' }}
aus
{{ bo.st.reason }}
batcontrol: {{ bo.st.other_mode ? boLabel(bo.st.other_mode) : 'keine Daten' }}
{{ bo.st.error }}
Preise: {{ bo.st.sources.prices }} · PV: {{ bo.st.sources.pv }} · Verbrauch: {{ bo.st.sources.cons }} · Akku: {{ bo.st.sources.soc }}{{ bo.st.capacity_wh ? ', ' + deNum(bo.st.capacity_wh / 1000, 1) + ' kWh' : '' }}
{{ bo.msg.text }}
ZeitPreisPVVerbr.AkkuPlan
{{ new Date(x.t * 1000).toLocaleTimeString('de-DE', {hour:'2-digit', minute:'2-digit'}) }} {{ deNum(x.price * 100, 1) }} {{ deNum(x.pv_wh / 1000, 1) }} {{ deNum(x.cons_wh / 1000, 1) }} {{ x.soc != null ? Math.round(x.soc) + ' %' : '–' }} {{ boLabel(x.action) }}
kWh je Abschnitt · Akku = erwarteter Ladestand am Ende · Vorschau, wird jede Minute neu berechnet
Abweichungen von batcontrol ({{ bo.st.compare.last.length }})
{{ new Date(e.ts * 1000).toLocaleString('de-DE', {day:'2-digit', month:'2-digit', hour:'2-digit', minute:'2-digit'}) }}: eigene {{ boLabel(e.mine) }}, batcontrol {{ boLabel(e.bc) }} – {{ e.reason }}
Einstellungen & Wechselrichter
{{ bo.msg.text }}
Ladestand (Modbus){{ deNum(bo.st.inverter.soc, 1) }} % Max. Ladeleistung{{ fmtW(bo.st.inverter.w_cha_max) }} W Reserve am Wechselrichter{{ deNum(bo.st.inverter.min_rsv_pct, 0) }} % Steuerung gerade{{ bo.st.inverter.ctl_mod === 0 ? 'frei (Wechselrichter regelt)' : 'begrenzt (Modus ' + bo.st.inverter.ctl_mod + ')' }} · Entladen {{ deNum(bo.st.inverter.out_pct, 0) }} % · Laden {{ deNum(bo.st.inverter.in_pct, 0) }} % Netzladung erlaubt{{ bo.st.inverter.grid_charge ? 'ja' : 'nein' }}
Am Fronius unter Kommunikation → Modbus: „Modbus TCP“ ein, „SunSpec Model Type: int + SF“ und „Wechselrichter-Steuerung über Modbus“ erlauben. Im Modus Aktiv wird batcontrol beendet und HansOS steuert den Akku selbst. Jede Vorgabe gilt nur für die Rückfallzeit und wird laufend erneuert – fällt HansOS aus, regelt der Wechselrichter danach wieder selbst. Schatten plant nur und vergleicht mit batcontrol.
Strompreis-Prognose (ct/kWh)
günstig mittel teuer jetzt Einordnung im Vergleich zu den kommenden Stunden · Ø {{ bcPriceChart.avg }} ct
{{ t.v }} ct {{ t.label }}
{{ bcPriceChart.tip.title }}
{{ row.label }}: {{ row.text }}
Grundlage für die Lade- und Sperrentscheidungen von batcontrol.
Was batcontrol bewirkt hat
{{ m.label }}
{{ t.label }} {{ b.label }} · {{ seg.label }}: {{ seg.v.toFixed(1).replace('.', ',') }} h {{ b.short }}
Stunden je Modus. {{ bcPeriod === 'tag' ? 'Letzte 14 Tage' : bcPeriod === 'woche' ? 'Letzte 12 Wochen' : 'Letzte 12 Monate' }}.
ZeitraumNetzladungØ LadepreisEntladenØ Wert Entladung EntladesperreBezug in SperreWechselEffekt (Schätzung)
{{ r.label }} {{ bcKwh(r.grid_charge_kwh) }} {{ bcCt(r.avg_charge_price) }} {{ bcKwh(r.discharge_kwh) }} {{ bcCt(r.avg_discharge_price) }} {{ r.hours['0'] ? r.hours['0'].toFixed(1).replace('.', ',') + ' h' : '–' }} {{ bcKwh(r.hold_import_kwh) }} {{ r.days ? r.switches : '–' }} {{ r.effect_eur != null && r.days ? (r.effect_eur > 0 ? '+' : '') + fmtEur(r.effect_eur) + ' €' : '–' }}
Gemessen minütlich über die Fronius-Akku- und Netzleistung, bewertet mit dem Preis aus batcontrol. Effekt = daraus entladene Menge (Netzladung × {{ String(bcStats.eta).replace('.', ',') }} Wirkungsgrad, höchstens die Entlademenge) × Ø Wert der Entladung − Kosten der Netzladung, plus durch die Entladesperre verschobene PV-Energie (Entladung ohne den Netzlade-Anteil, höchstens der Bezug in der Sperre) × (Ø Wert der Entladung − Ø Preis in der Sperre). Jede entladene kWh zählt nur einmal. Aufteilung beim Darüberfahren über den Effekt. Eine Schätzung, keine Abrechnung.
Letzte Umschaltungen
Noch keine Ereignisse.
{{ new Date(e.ts*1000).toLocaleString('de-DE',{day:'2-digit',month:'2-digit',hour:'2-digit',minute:'2-digit'}) }}
{{ e.kind === 'crash' ? 'Abgestürzt' : 'Gestoppt' }} {{ e.soc != null ? ' · SOC ' + Math.round(e.soc) + ' %' : '' }}{{ e.price != null ? ' · ' + bcCt(e.price) : '' }}{{ e.note ? ' · ' + e.note : '' }}
{{ e.decision }}
Log
{{ bcLog || 'Noch kein Log.' }}

Konfiguration

Übersicht aller Funktionen dieser Anlage. Zum Ändern ein Thema antippen.

Gespeichert – wirksam nach Neustart der App.

Wertüberwachung & Pushover

{{ monEditId ? 'Regel bearbeiten' : 'Neue Überwachungsregel' }}
{{ k.label }} · {{ k.manual ? 'eigene Adresse' : 'aus KNX-Projekt' }} {{ k.ga || k.key }}
{{ monError }}
Aktive Regeln ({{ monRules.length }})
{{ rule.label }}
{{ rule.ga ? 'KNX ' + rule.ga : rule.key }}
= {{ monFmtCondVal(rule.cond_val, rule.key) }} ≠ {{ monFmtCondVal(rule.cond_val, rule.key) }} Min: {{ rule.min }} Max: {{ rule.max }} Aktuell: {{ monCurVal(rule.key) }}
Keine Überwachungsregeln definiert. Wähle oben einen Datenpunkt oder gib eine KNX-Gruppenadresse ein und lege Grenzen fest.
Rauchmelder Überwachung {{ monSmokeAnyAlarm ? '🚨 ALARM' : monSmokeAnyOffline ? '⚠️ Geräte offline' : '✓ Alle OK' }}
Rauchmelder werden automatisch überwacht sobald Meross konfiguriert ist. Alarm → Notfall-Push (wiederholt bis bestätigt) · Batterie/Offline → Normale Push-Nachricht
{{ dev.alarm ? '🚨' : !dev.online ? '⚫' : '🟢' }}
{{ dev.name }}
{{ dev.alarm ? 'RAUCHALARM!' : dev.online ? 'OK' : 'Offline' }}
Automatische Überwachung alle 5 Min · Rauchalarm = Emergency-Push (Priority 2, wiederholt alle 60s) · Batterie/Offline = Normale Push
Live-Status ({{ monStatusItems.length }} Werte) {{ monStatusAlerts }} Alarm{{ monStatusAlerts > 1 ? 'e' : '' }} ✓ Alles OK
{{ item.alert ? '🔴' : item.value == null ? '⚪' : '🟢' }}
{{ item.label }}
{{ item.value != null ? (typeof item.value === 'boolean' ? (item.value ? 'AN':'AUS') : item.value) : '--' }}

Benutzerverwaltung

Benutzer anlegen
{{ userError }}
Bestehende Benutzer
Lade…
Benutzer Rolle Pushover Aktionen
{{ u.username }} (du)
Pushover je Benutzer: eigene Nachrichten nur zu ausgewählten Themen – im selben Pushover-Konto auf einem anderen Gerät oder mit eigenem Konto (User-Key).
Berechtigungen
Admin — Vollzugriff: alles bedienen, Konfiguration und Einstellungen (Wärmepumpe, Smart-Steuerung, batcontrol, Alarmanlage, Geräte, KNX …), Home anordnen, Überwachungsregeln, Benutzer verwalten
Benutzer (bedienen) — Alles einsehen und bedienen: Geräte und Lampen schalten (Tab Geräte und Home), Mähroboter, Alarmanlage scharf/unscharf, Gegensprechen an der Haustür. Keine Konfiguration – Konfigurations- und Benutzer-Tab sowie alle Einrichten-Links sind ausgeblendet.
Nur Lesen — Alle Werte und Status einsehen, aber nichts schalten und nichts ändern