Check MK für die CCU

diverse Zusatzsoftware

Moderator: Co-Administratoren

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von jmaus » 08.04.2019, 10:19

BTW:
-=FuF=- hat geschrieben:
08.04.2019, 00:30
[...]
Falls es jemand direkt haben möchte:

check_mk_agent-Plugin, zu kopieren nach /usr/local/addons/check_mk_agent/plugins/alarm.tcl:
Bitte bei deinem "alarm.tcl" beachten das du die Alarm-Status abfrage nicht exakt korrekt machst da RaspberryMatic es ja z.B. erlaubt Servicemeldungen auszublenden bzw. Geräte in den Sommer/Winterschlaf zu setzen. Die folgende Abfrage:

Code: Alles auswählen

  if ( (oTmp.ValueSubType() == istAlarm) && (oTmp.AlState() == asOncoming) ) { ... }
Müsste also wie folgt aussehen:

Code: Alles auswählen

  if ( (oTmp.ValueSubType() == istAlarm) && (oTmp.AlState() == asOncoming) && (oTmp.Used() == true) && (oTmp.Enabled() == true) ) { ... }
D.h. du solltest den Used() und Enabled() check noch hinzufügen wenn du es ganz korrekt machen willst.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von deimos » 08.04.2019, 10:39

Hi,
jmaus hat geschrieben:
08.04.2019, 10:19
Bitte bei deinem "alarm.tcl" beachten das du die Alarm-Status abfrage nicht exakt korrekt machst da RaspberryMatic es ja z.B. erlaubt Servicemeldungen auszublenden bzw. Geräte in den Sommer/Winterschlaf zu setzen. Die folgende Abfrage:

[...]

D.h. du solltest den Used() und Enabled() check noch hinzufügen wenn du es ganz korrekt machen willst.
Was passiert, wenn ich Used() und Enabled() aufrufe und auf eine CCU3 oder noch auf einer CCU2 unterwegs bin?

Viele Grüße
Alex

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von jmaus » 08.04.2019, 10:42

deimos hat geschrieben:
08.04.2019, 10:39
jmaus hat geschrieben:
08.04.2019, 10:19
Bitte bei deinem "alarm.tcl" beachten das du die Alarm-Status abfrage nicht exakt korrekt machst da RaspberryMatic es ja z.B. erlaubt Servicemeldungen auszublenden bzw. Geräte in den Sommer/Winterschlaf zu setzen. Die folgende Abfrage:

[...]

D.h. du solltest den Used() und Enabled() check noch hinzufügen wenn du es ganz korrekt machen willst.
Was passiert, wenn ich Used() und Enabled() aufrufe und auf eine CCU3 oder noch auf einer CCU2 unterwegs bin?
Nichts, denn dort sind die beiden Werte für Used() und Enabled() einer Alarmvariable immer true und können via WebUI nicht auf false gesetzt werden.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von deimos » 08.04.2019, 10:46

Hi,
jmaus hat geschrieben:
08.04.2019, 10:42
deimos hat geschrieben:
08.04.2019, 10:39
jmaus hat geschrieben:
08.04.2019, 10:19
Bitte bei deinem "alarm.tcl" beachten das du die Alarm-Status abfrage nicht exakt korrekt machst da RaspberryMatic es ja z.B. erlaubt Servicemeldungen auszublenden bzw. Geräte in den Sommer/Winterschlaf zu setzen. Die folgende Abfrage:

[...]

D.h. du solltest den Used() und Enabled() check noch hinzufügen wenn du es ganz korrekt machen willst.
Was passiert, wenn ich Used() und Enabled() aufrufe und auf eine CCU3 oder noch auf einer CCU2 unterwegs bin?
Nichts, denn dort sind die beiden Werte für Used() und Enabled() einer Alarmvariable immer true und können via WebUI nicht auf false gesetzt werden.
D.h. die beiden Werte existieren auch bei einen alten (nicht Community) Rega in einer CCU2?

Viele Grüße
Alex

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: Check MK für die CCU

Beitrag von -=FuF=- » 08.04.2019, 11:04

deimos hat geschrieben:
08.04.2019, 09:18
Ich dachte, die Alarmmeldungen kommen als Servicemeldung über "dom.GetObject(ID_SERVICES)" rein und nicht über "dom.GetObject(ID_SYSTEM_VARIABLES)". Und diese werden auch jetzt schon komplett an den check_mk Server übertragen.
Wenn ich mich da irre, dann würde es absolut Sinn machen, dass nicht als Plugin einzubauen, sondern direkt in den Core, alleine schon deswegen, weil das dann keinen zusätzlichen Prozess erzeugt.
Bei meinen Tests kamen die Alarmmeldungen nie rein, mir ist das jetzt auch erst aufgefallen, seit die neue RaspberryMatic mit monit doch etwas "geschwätziger" wurde (und ich meine neuen Wassermelder bekommen habe). So wie ich das sehe sind Alarmmeldungen auch vom Typ her komplett unterschiedlich. Während Servicemeldungen immer an ein Gerät gebunden zu sein scheinen, haben die Alarmmeldungen das DPInfo-Freifeld, Auslösezähler, etc. Ich habe auch bisher nichts gefunden (außer RaspberryMatic/Monit), was die Alarme automatisch triggern würde, d.h. ich habe extra Scripte für meine neuen Wassermelder, die halt Text in das DPInfo-Feld schreiben und den Alarm triggern. Das ist natürlich ein bisschen unschön generisch als Check_mk-Check zu machen.

Das alarm.tcl existiert nur als Plugin, weil ich erstmal Deinen Code nicht anfassen wollte, ich sehe das auch im Core besser aufgehoben.

Christian

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von jmaus » 08.04.2019, 11:10

deimos hat geschrieben:
08.04.2019, 10:46
D.h. die beiden Werte existieren auch bei einen alten (nicht Community) Rega in einer CCU2?
Ja, diese Funktionen gab es schon immer in der ReGa. Insofern ist das vollkommen abwärtskompatibel.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
jmaus
Beiträge: 9844
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: Check MK für die CCU

Beitrag von jmaus » 08.04.2019, 11:15

-=FuF=- hat geschrieben:
08.04.2019, 11:04
Ich habe auch bisher nichts gefunden (außer RaspberryMatic/Monit), was die Alarme automatisch triggern würde, d.h. ich habe extra Scripte für meine neuen Wassermelder, die halt Text in das DPInfo-Feld schreiben und den Alarm triggern.
Unter RaspberryMatic existiert ein /bin/triggerAlarm.tcl Skript standardmäßig installiert das dir erlauben sollte auf der kommandozeile oder via system.Exec() rega aufruf einen generischen Alarm mit einer selbst gewählten Meldung in DPInfo() zu erzeugen. Schau dir das einfach mal unter RaspberryMatic an. Das Skript sollte übrigens so 1:1 auch auf einer CCU2 oder CCU3 laufen wenn du es in /usr/local/bin kopierst. Ggf. wird das aber ohnehin in Zukunft in die CCU3 Firmware direkt aufgenommen werden.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: Check MK für die CCU

Beitrag von -=FuF=- » 08.04.2019, 11:20

jmaus hat geschrieben:
08.04.2019, 11:15
-=FuF=- hat geschrieben:
08.04.2019, 11:04
Ich habe auch bisher nichts gefunden (außer RaspberryMatic/Monit), was die Alarme automatisch triggern würde, d.h. ich habe extra Scripte für meine neuen Wassermelder, die halt Text in das DPInfo-Feld schreiben und den Alarm triggern.
Unter RaspberryMatic existiert ein /bin/triggerAlarm.tcl Skript standardmäßig installiert [..]
Das war blöd ausgedrückt von mir. Ich meinte damit, dass ich kein Gerät kenne (außer RaspberryMatic/Monit mit eben diesem Script), das automatisch Alarmmeldungen generiert. Habe z.B. keine Rauchmelder, weiß nicht, was die machen. Geräte erzeugen gelegentlich automatisch Servicemeldungen, aber Alarme hat man eigentlich erst, wenn man sie selber per Script programmiert und auslöst. Daher ist es wahrscheinlich nie aufgefallen, dass das Check_MK-Addon bisher keine anzeigt.

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: Check MK für die CCU

Beitrag von -=FuF=- » 08.04.2019, 11:26

Hallo Jens,
jmaus hat geschrieben:
08.04.2019, 10:19
Bitte bei deinem "alarm.tcl" beachten das du die Alarm-Status abfrage nicht exakt korrekt machst da RaspberryMatic es ja z.B. erlaubt Servicemeldungen auszublenden bzw. Geräte in den Sommer/Winterschlaf zu setzen.
Danke für den Hinweis, aber hier geht's ja um Alarmmeldungen, die haben ja erstmal nichts mit Geräten zu tun, sondern nur mit Variablen vom Typ Alarm?
D.h. du solltest den Used() und Enabled() check noch hinzufügen wenn du es ganz korrekt machen willst.
Wenn ich das mache, dann gibt mein Check bei meinem Beispielalarm

Code: Alles auswählen

dom.GetObject("Alarmzone 1").State(true);
dom.GetObject("Alarmzone 1").DPInfo("irgendein Text");
nichts mehr aus. Ohne Used()/Enabled() schon.

Code: Alles auswählen

# tclsh plugins/alarm.tcl
ALARM_MSG;Alarmzone 1;unbekannt;ausgel▒st;2019-04-08 11:11:04
Christian

-=FuF=-
Beiträge: 97
Registriert: 30.12.2013, 21:08
Hat sich bedankt: 2 Mal

Re: Check MK für die CCU

Beitrag von -=FuF=- » 09.04.2019, 14:02

Hi,

hier ist noch der Check_MK Check für Steckdosen mit Leistungsmessung (HM-ES-PMSw1-Pl). Wie gehabt Steckdose zu Gewerk "Monitored" hinzufügen und diesen Code

Code: Alles auswählen

def inventory_homematic_power_measurement(parsed):
  for line in parsed:
    data = parsed[line]
    if isinstance(data, dict):
      current = data.get('CURRENT', None)
      power = data.get('POWER', None)
      #voltage =  data.get('VOLTAGE', None)
      #frequency = data.get('FREQUENCY', None)
      #energy_counter = data.get('ENERGY_COUNTER', None)
      hsstype = data.get('HSSTYPE', None)

      if power is not None:
        yield line, { }

def check_homematic_power_measurement(item, params, parsed):
  for line in parsed:
    if line == item:
      data = parsed[line]

      # if data.get('HSSTYPE') == 'HM-ES-PMSw1-Pl':
      current = data.get('CURRENT', [0,None])
      power = data.get('POWER', None)
      voltage =  data.get('VOLTAGE', None)
      frequency = data.get('FREQUENCY', None)
      energy_counter = data.get('ENERGY_COUNTER', None)

      if power is None:
        return 3, 'Power is not available'

      date = power[1]
      power = float(power[0])
      current = float(current[0])/1000 # (mA)
      #voltage = float(voltage[0])
      #frequency = float(frequency[0])
      #energy_counter = float(energy_counter[0])

      if power <= params['critical'][0] or power >= params['critical'][1]:
        state = 2
      elif power <= params['warning'][0] or power >= params['warning'][1]:
        state = 1
      else:
        state = 0

      message = "Power: %f, Current: %f (last change: %s)" % (power, current, date)
      perfdata = [
        ('power', power),
        ('current', current),
      #  ('voltage', voltage),
      #  ('frequency', frequency),
      #  ('energy_counter', energy_counter),
      ]

      return state, message, perfdata

factory_settings['homematic_power_measurement_default_levels'] = {
    'warning' : (0, 99999),
    'critical': (0, 99999),
}

homematic_power_measurement_default_levels = { }

check_info['homematic.power_measurement'] = {
  'check_function':          check_homematic_power_measurement,
  'inventory_function':      inventory_homematic_power_measurement,
  'service_description':     "Power %s",
  'group':                   'homematic_power_measurement',
  'default_levels_variable': 'homematic_power_measurement_default_levels',
  'has_perfdata':            True,
}
nach ~<sitename>/local/share/check_mk/checks/homematic_power_measurement kopieren und omd neu starten.

Netzfrequenz und -spannung zu graphen macht imho keinen Sinn, daher auskommentiert. Grenzwerte habe ich auch erstmal keine (erreichbaren) festgelegt.

check_mk-power.png

Antworten

Zurück zu „Sonstige Addons“