VB-Makro & Zabbix
Subs: Init · Tick · KNXPaket · Alternate
· BoolWechsel · Zeitplan · ShutDown
· Intervall 30 s
Makro
Zabbix
zabbix_get -s HOST -p 10052 -k knx.address.discovery
API / Datenstrukturen (AlterNET nicht in Blazor möglich)
' ============================================================
' BBasic KNX Anlage – VB.NET Makro
'
' AlterNET-Editor (WinForms) ist hier nicht einbindbar
' (Blazor + MAUI-WebView). Diese Datei ist die Referenz.
'
' Pflicht-Subs:
' Sub Init(Anlagenname As String)
' Sub Tick(Anlagenstatus As PlantStatusSnapshot)
' Sub KNXPaket(paket As KnxPacketInfo, Anlagenstatus As PlantStatusSnapshot)
' Sub Alternate(paket As KnxPacketInfo, Anlagenstatus As PlantStatusSnapshot) ' jedes Paket
' Sub BoolWechsel(paket As KnxPacketInfo, alt As Boolean, neu As Boolean, Anlagenstatus As PlantStatusSnapshot)
' Sub Zeitplan(ev As ScheduleEventInfo, Anlagenstatus As PlantStatusSnapshot) ' ev.Setpoint noch änderbar
' Sub MakroBool(ev As MacroBoolEventInfo, Anlagenstatus As PlantStatusSnapshot) ' optional, Makro-Bool gewechselt
' alternativ: Sub MakroBool(name As String, wert As Boolean [, Anlagenstatus As PlantStatusSnapshot])
' (Alias-Name OnMacroBool) · name = Id des Makro-Bools
' Sub ShutDown()
'
' Hilfen:
' Log(msg)
' RegisterAddress / RegisterAdress key [, bezeichnung, knxAddress, dpt, einheit, rolle]
' SetValue(key, value) Zabbix knx.address.value[key]
' GetKNXBool("0/1/2") As Boolean letzter Bool aus Cache (GA oder Role)
' GetKNXTemp("0/0/6") As Double letzte Temperatur °C
' GetKNXProzent("0/0/1") As Double letzter Prozentwert
' Knx.Connected As Boolean
' Knx.WriteBool(roleOderGA, wert)
' Knx.WritePercent(roleOderGA, 0..100)
' Knx.WriteByte(roleOderGA, 0..255)
' Knx.WriteTemp(roleOderGA, celsius)
' Knx.WriteRole(role, wert)
' Knx.WriteAddress(ga, wert, Optional dpt := "1.001")
' Knx.WriteBool("macro:<id>", wert) Makro-Bool setzen → Ziele + Event MakroBool
' GetMakroBool("<id>") As Boolean letzter Makro-Bool-Wert (False wenn unbekannt)
' GetKnxStatus("<GA>") As Double Rückmeldung (Status-GA) zur Schreib-GA: 1/0 bzw. Wert, -1 = unbekannt
' Adressen überall: KNX-GA "0/1/2", "shelly:<id>:switch:0", "url:<id>", "macro:<id>"
'
' ----- PlantStatusSnapshot (Anlagenstatus) -----
' Gesamt: TempOutdoor, OutdoorSourceText, Connected, SeasonMode, SeasonText
' CentralFlowTemp, CentralReturnTemp, MasterPumpOn, HeatDemand
' SolarRoofTemp, SolarActive, StatusText, HeatReason, …
' Listen (flexibel, 0..n):
' Anlagenstatus.Aussensensoren Name, Address, Value, HasValue
' Anlagenstatus.Lueftungsanlagen Name, AirRatio, TempSupplyAfterHeater, HxPercent, …
' Anlagenstatus.Heizkreise Name, TempFlow, RoomAverage, PumpOn, Setpoint, …
' Anlagenstatus.SolarPuffer Name, TempTop, TempBottom, ChargeValve, …
' Anlagenstatus.Heizquellen Name, Active, BurnerTemp, Fault, SourceKind, Online, ThermalPowerKw, ElectricalPowerKw, OperatingState, TempFlow, ...
' Anlagenstatus.Warmwasser Name, TempTop, TempBottom, Charge, Setpoint, …
' Beispiel:
' For Each lv In Anlagenstatus.Lueftungsanlagen
' Log(lv.Name & " Zuluft " & lv.TempSupplyAfterHeater.ToString("0.0"))
' Next
'
' ----- KnxPacketInfo (paket) -----
' Address, Role, Key, Name, Label, DisplayName, Dpt
' AsBool, AsPercent, AsTemperature, ValueText
' Label = "Hauptpumpe (0/0/11)" wenn Name bekannt
'
' ----- MacroBoolEventInfo (ev) -----
' Id, Name, Address ("macro:<id>"), Value, OldValue, First (erstes Schreiben seit Start), Time
' Ausgelöst bei Wertwechsel (und erstem Schreiben). Ziele bekommen jeden Schreibvorgang.
' Beispiel:
' Sub MakroBool(ev As MacroBoolEventInfo, Anlagenstatus As PlantStatusSnapshot)
' If ev.Id = "sperre_wp" Then Log("WP-Sperre " & ev.Value)
' End Sub
'
' ----- ScheduleEventInfo (ev) -----
' Kind ("ww"|"heizung"|"lueftung"), Name, CircuitId
' FromId, FromName, ToId, ToName, IsDefault
' Setpoint, SetpointBottom ' noch änderbar
' Apply ' False = Umschaltung verwerfen
' ============================================================Registrierte Adressen (Zabbix LLD)
| Key | Name | Adresse | DPT | Wert | Quelle |
|---|---|---|---|---|---|
Analog_L_ftung_Abluft |
Analog Lüftung Abluft | 2/0/10 | 5.001 | 78.8 | config |
Analog_L_ftung_W_rmetauscher |
Analog Lüftung Wärmetauscher | 2/0/12 | 5.001 | 100 | config |
Analog_L_ftung_Zuluft |
Analog Lüftung Zuluft | 2/0/11 | 5.001 | 80 | config |
Aussenlicht_gross_Lager_Werkstatt |
Aussenlicht gross Lager-Werkstatt | 0/0/1 | 1.001 | 0 | config |
Aussentemp |
Aussentemp | 1/1/0 | 9.001 | 7.9 | config |
B_ro_1_OG_Flurseite |
Büro 1 OG Flurseite | 0/2/24 | 1.001 | config | |
B_ro_1_OG_Stra_e |
Büro 1 OG Straße | 0/2/23 | 1.001 | config | |
B_ro_2_OG_Licht |
Büro 2 OG Licht | 0/2/22 | 1.001 | config | |
B_ro_3_OG_Licht_Flurseite |
Büro 3 OG Licht Flurseite | 0/2/21 | 1.001 | config | |
B_ro_3_OG_Licht_Stra_enseite |
Büro 3 OG Licht Straßenseite | 0/2/20 | 1.001 | config | |
Bewegung_Flur_Meldung |
Bewegung Flur (Meldung) | 0/2/12 | 1.001 | config | |
Bewegung_Veranstaltung |
Bewegung Veranstaltung | 1/2/0 | 1.001 | config | |
Datum |
Datum | 1/3/1 | 11.001 | config | |
FanExhaustStatus |
FanExhaustStatus | 78.4 | script | ||
FanSupplyStatus |
FanSupplyStatus | 80 | script | ||
Flur_OG_Licht |
Flur OG Licht | 0/2/25 | 1.001 | config | |
HeatExchangerStatus |
HeatExchangerStatus | 100 | script | ||
HeatingCircuit.hk_3og.TempFlow |
HeatingCircuit.hk_3og.TempFlow | 20.9 | script | ||
HeatingCircuit.hk_3og.TempReturn |
HeatingCircuit.hk_3og.TempReturn | 21 | script | ||
Heizregister_Veranstaltung |
Heizregister Veranstaltung | 2/0/17 | 1.001 | 1 | config |
HeizregisterVeranstaltung |
HeizregisterVeranstaltung | 1 | script | ||
Helligkeit_aussen |
Helligkeit aussen | 1/0/0 | 9.004 | 0.4 | config |
HelligkeitAussen |
HelligkeitAussen | 0.4 | script | ||
IstDunkel |
IstDunkel | 1/0/1 | 1.001 | 1 | config |
Klappe_Zuluft_3_Stock |
Klappe Zuluft 3 Stock | 2/0/18 | 1.001 | config | |
Konferenz_OG_Parkplatzseite |
Konferenz OG Parkplatzseite | 0/2/13 | 1.001 | config | |
Licht |
Licht | 0/1/2 | config | ||
Licht_2 |
Licht | 0/1/3 | config | ||
Licht_3 |
Licht | 0/2/8 | config | ||
Licht_4 |
Licht | 0/2/9 | config | ||
Licht_Bad_Arek |
Licht Bad Arek+ | 0/1/1 | 1.001 | 0 | config |
Licht_Besprechnung |
Licht Besprechnung | 0/2/6 | 1.001 | config | |
Licht_Decke_Arek |
Licht Decke Arek | 0/1/0 | 1.001 | 1 | config |
Licht_Flur |
Licht Flur | 0/2/7 | 1.001 | config | |
Licht_TAA_Links |
Licht TAA Links | 0/2/5 | 1.001 | config | |
Licht_TAA_Rechts |
Licht TAA Rechts | 0/2/4 | 1.001 | config | |
Licht_VHL_S |
Licht VHL-S | 0/2/0 | 1.001 | config | |
Licht_VHL_TL_VV |
Licht VHL TL VV | 0/2/3 | 1.001 | config | |
Licht_VHL1 |
Licht VHL1 | 0/2/1 | 1.001 | config | |
Licht_VHL2 |
Licht VHL2 | 0/2/2 | 1.001 | config | |
Motorstatus_Abluft |
Motorstatus Abluft | 2/0/14 | 5.001 | 78.4 | config |
Motorstatus_W_rmetauscher |
Motorstatus Wärmetauscher | 2/0/16 | 5.001 | 100 | config |
Motorstatus_Zuluft |
Motorstatus Zuluft | 2/0/15 | 5.001 | 80 | config |
Notbetrieb_L_ftung |
Notbetrieb Lüftung | 2/0/13 | 1.001 | config | |
OG_Konferenz_Lager_Seite |
OG Konferenz Lager Seite | 0/2/14 | 1.001 | config | |
OutdoorTemp1 |
OutdoorTemp1 | 7.9 | script | ||
Pausenraum_Licht |
Pausenraum Licht | 0/2/15 | 1.001 | config | |
plant.air.ratio |
Luftmenge | 80 | system | ||
plant.connected |
KNX verbunden | 1 | system | ||
plant.demand |
Bedarf | Hochbetrieb · WW Duschzeit | system | ||
plant.dhw.bottom |
WW unten | 0 | system | ||
plant.dhw.heating |
WW heizen | 0 | system | ||
plant.dhw.setpoint |
WW Soll | 54 | system | ||
plant.dhw.top |
WW oben | 0 | system | ||
plant.flow.actual |
Vorlauf Ist | 20.9 | system | ||
plant.flow.setpoint |
Vorlauf Soll | 37.9 | system | ||
plant.heat.demand |
Heizbedarf | 1 | system | ||
plant.heat.source |
Aktive Heizquelle | system | |||
plant.heating.season |
Heizperiode | 1 | system | ||
plant.high.summer |
Hochsommer | 0 | system | ||
plant.hk.hk_3og.flow |
Heizkreis 3OG / Veranstaltung Vorlauf | 20.9 | system | ||
plant.hk.hk_3og.pump |
Heizkreis 3OG / Veranstaltung Pumpe | 1 | system | ||
plant.hk.hk_3og.return |
Heizkreis 3OG / Veranstaltung Rücklauf | 21 | system | ||
plant.hk.hk_3og.room |
Heizkreis 3OG / Veranstaltung Raummittel | 17.9 | system | ||
plant.hk.hk_3og.setpoint |
Heizkreis 3OG / Veranstaltung Soll | 20 | system | ||
plant.hs.none.active |
Keine Wärmequelle in XML aktiv | 0 | system | ||
plant.hs.none.burner |
Keine Wärmequelle in XML Brennertemp | 0 | system | ||
plant.hs.none.fault |
Keine Wärmequelle in XML Störung | 0 | system | ||
plant.hs.none.stage2 |
Keine Wärmequelle in XML Stufe2 | 0 | system | ||
plant.name |
Anlagenname | MargotKalinke | system | ||
plant.room.setpoint |
Zimmer-Soll | 20 | system | ||
plant.season |
Saison | Winter (Schwellwert 10 °C, Außen 9.3 °C) | system | ||
plant.season.mode |
Saisonmodus | Winter | system | ||
plant.solar.active |
Solar aktiv | 0 | system | ||
plant.solar.buffer.max |
Puffer max | 0 | system | ||
plant.solar.buffer.min |
Puffer min | 0 | system | ||
plant.solar.roof |
Solar Dach | 0 | system | ||
plant.status |
Status | Heizperiode · Basis 75% <10+5% → 80% · Zuluft min 20.0 °C · WRG·Winter Max 100% · WRG·Winter Max 100% | system | ||
plant.temp.exhaust |
Abluft | 14.9 | system | ||
plant.temp.outdoor |
Außentemperatur (Steuerung) | 9.25 | system |
Log
19:13:14 Tick 159 · Außen 9.3 °C · KNX=True 19:12:43 Tick 158 · Außen 9.3 °C · KNX=True 19:12:13 Tick 157 · Außen 9.3 °C · KNX=True 19:11:43 Tick 156 · Außen 9.3 °C · KNX=True 19:11:13 Tick 155 · Außen 9.3 °C · KNX=True 19:10:43 Tick 154 · Außen 9.3 °C · KNX=True 19:10:13 Tick 153 · Außen 9.3 °C · KNX=True 19:09:43 Tick 152 · Außen 9.3 °C · KNX=True 19:09:13 Tick 151 · Außen 9.4 °C · KNX=True 19:08:43 Tick 150 · Außen 9.4 °C · KNX=True 19:08:12 Tick 149 · Außen 9.4 °C · KNX=True 19:07:42 Tick 148 · Außen 9.4 °C · KNX=True 19:07:12 Tick 147 · Außen 9.3 °C · KNX=True 19:06:42 Tick 146 · Außen 9.3 °C · KNX=True 19:06:12 Tick 145 · Außen 9.3 °C · KNX=True 19:05:42 Tick 144 · Außen 9.3 °C · KNX=True 19:05:12 Tick 143 · Außen 9.4 °C · KNX=True 19:04:42 Tick 142 · Außen 9.4 °C · KNX=True 19:04:12 Tick 141 · Außen 9.4 °C · KNX=True 19:03:41 Tick 140 · Außen 9.4 °C · KNX=True 19:03:11 Tick 139 · Außen 9.3 °C · KNX=True 19:02:41 Tick 138 · Außen 9.3 °C · KNX=True 19:02:11 Tick 137 · Außen 9.3 °C · KNX=True 19:01:41 Tick 136 · Außen 9.3 °C · KNX=True 19:01:13 Bool Licht Bad Arek+ (0/1/1): True → False 19:01:11 Tick 135 · Außen 9.3 °C · KNX=True 19:01:04 Bool Licht Bad Arek+ (0/1/1): False → True 19:00:41 Tick 134 · Außen 9.3 °C · KNX=True 19:00:11 Tick 133 · Außen 9.3 °C · KNX=True 19:00:00 Zeitplan ww: Default → Duschzeit 19:00:00 Zeitplan ww Default → Duschzeit 18:59:40 Tick 132 · Außen 9.3 °C · KNX=True 18:59:10 Tick 131 · Außen 9.3 °C · KNX=True 18:58:40 Tick 130 · Außen 9.4 °C · KNX=True 18:58:10 Tick 129 · Außen 9.4 °C · KNX=True 18:57:40 Tick 128 · Außen 9.4 °C · KNX=True 18:57:10 Tick 127 · Außen 9.4 °C · KNX=True 18:56:40 Tick 126 · Außen 9.4 °C · KNX=True 18:56:10 Tick 125 · Außen 9.4 °C · KNX=True 18:55:39 Tick 124 · Außen 9.4 °C · KNX=True 18:55:09 Tick 123 · Außen 9.4 °C · KNX=True 18:54:39 Tick 122 · Außen 9.4 °C · KNX=True 18:54:09 Tick 121 · Außen 9.5 °C · KNX=True 18:53:39 Tick 120 · Außen 9.5 °C · KNX=True 18:53:09 Tick 119 · Außen 9.5 °C · KNX=True 18:52:39 Tick 118 · Außen 9.5 °C · KNX=True 18:52:09 Tick 117 · Außen 9.5 °C · KNX=True 18:51:38 Tick 116 · Außen 9.5 °C · KNX=True 18:51:08 Tick 115 · Außen 9.5 °C · KNX=True 18:50:38 Tick 114 · Außen 9.5 °C · KNX=True 18:50:08 Tick 113 · Außen 9.5 °C · KNX=True 18:49:38 Tick 112 · Außen 9.5 °C · KNX=True 18:49:08 Tick 111 · Außen 9.5 °C · KNX=True 18:48:38 Tick 110 · Außen 9.5 °C · KNX=True 18:48:08 Tick 109 · Außen 9.5 °C · KNX=True 18:47:37 Tick 108 · Außen 9.6 °C · KNX=True 18:47:07 Tick 107 · Außen 9.6 °C · KNX=True 18:46:37 Tick 106 · Außen 9.6 °C · KNX=True 18:46:07 Tick 105 · Außen 9.7 °C · KNX=True 18:45:37 Tick 104 · Außen 9.7 °C · KNX=True 18:45:07 Tick 103 · Außen 9.7 °C · KNX=True 18:44:37 Tick 102 · Außen 9.7 °C · KNX=True 18:44:07 Tick 101 · Außen 9.7 °C · KNX=True 18:43:36 Tick 100 · Außen 9.7 °C · KNX=True 18:43:06 Tick 99 · Außen 9.7 °C · KNX=True 18:42:36 Tick 98 · Außen 9.7 °C · KNX=True 18:42:06 Tick 97 · Außen 9.7 °C · KNX=True 18:41:36 Tick 96 · Außen 9.7 °C · KNX=True 18:41:06 Tick 95 · Außen 9.7 °C · KNX=True 18:40:36 Tick 94 · Außen 9.7 °C · KNX=True 18:40:06 Tick 93 · Außen 9.7 °C · KNX=True 18:39:36 Tick 92 · Außen 9.7 °C · KNX=True 18:39:05 Tick 91 · Außen 9.7 °C · KNX=True 18:38:35 Tick 90 · Außen 9.7 °C · KNX=True 18:38:05 Tick 89 · Außen 9.7 °C · KNX=True 18:37:35 Tick 88 · Außen 9.7 °C · KNX=True 18:37:29 Bool Licht Bad Arek+ (0/1/1): True → False 18:37:05 Tick 87 · Außen 9.9 °C · KNX=True 18:36:35 Tick 86 · Außen 9.9 °C · KNX=True 18:36:05 Tick 85 · Außen 9.9 °C · KNX=True