Check MK für die CCU
Moderator: Co-Administratoren
- deimos
- Beiträge: 5407
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Check MK für die CCU
Hi,
wie auch auf GitHub geschrieben: Bitte mehr Infos über deine Umgebung: Ich konnte es problemlos installieren, auch auf 2.29.23
Viele Grüße
Alex
wie auch auf GitHub geschrieben: Bitte mehr Infos über deine Umgebung: Ich konnte es problemlos installieren, auch auf 2.29.23
Viele Grüße
Alex
- deimos
- Beiträge: 5407
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Check MK für die CCU
Hi,
ich konnte das Problem eingrenzen und habe grade Version 1.3 auf GitHub hochgeladen. Da das Problem rein die Installation betrifft, ist ein Update bei bestehenden Installationen nicht notwendig.
Viele Grüße
Alex
ich konnte das Problem eingrenzen und habe grade Version 1.3 auf GitHub hochgeladen. Da das Problem rein die Installation betrifft, ist ein Update bei bestehenden Installationen nicht notwendig.
Viele Grüße
Alex
Re: Check MK für die CCU
Hab's gesehen - vielen Dank.
Der check ist echt klasse und performance-technisch unproblematisch, soweit ich das nach 24 h sagen kann.
Der check ist echt klasse und performance-technisch unproblematisch, soweit ich das nach 24 h sagen kann.
Re: Check MK für die CCU
Ist hier auf original CCU2 seit Sommer in Betrieb und definitiv kein Problem, außer als Antreiber was gegen die Servicemeldungen zu machenrobbyb hat geschrieben:Der check ist echt klasse und performance-technisch unproblematisch, soweit ich das nach 24 h sagen kann.
Re: Check MK für die CCU
Ich habe eine Frage zur Installation. In der Beschreibung steht, dass gepackte Installationpakete dabei sind. Ich kann die in Git aber nicht finden. Auch eine MKP Datei kann ich nicht finden.
Kann mir da jemand weiterhelfen?
Kann mir da jemand weiterhelfen?
- deimos
- Beiträge: 5407
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Check MK für die CCU
Hi,
Klar sind die auf Github: https://github.com/alexreinert/homemati ... k/releases
Viele Grüße
Alex
Klar sind die auf Github: https://github.com/alexreinert/homemati ... k/releases
Viele Grüße
Alex
Re: Check MK für die CCU
Ahh ok sorry. Ich kenne mich zu schlecht mit Git aus. Ich habe das nicht gefunden.
Vielen Dank!
Vielen Dank!
Re: Check MK für die CCU
Mit Raspberrymatic 3.41.11.20190126 ersetzt chrony ntp, folgende triviale Änderung dafür in der server.tcl des check_mk_agents repariert dies:
Im Original-Agent wird noch ein Fehler unterdrückt, sollte chrony nicht laufen, das habe ich mit meinen miesen tclsh-Kenntnissen nicht nachbauen können, der ||-Operator funktioniert nicht im exec. Das cat im obigen patch ist daher wahrscheinlich auch überflüssig.
Christian
Code: Alles auswählen
# diff server.tcl.1.3.orig server.tcl
--- server.tcl.orig
+++ server.tcl
@@ -70,6 +70,11 @@
puts $channelId "<<<ntp>>>"
puts $channelId "[exec ntpq -np | sed -e 1,2d -e {s/^\(.\)/\1 /} -e {s/^ /%/}]"
}
+
+ if { [file exists /usr/bin/chronyc] == 1 } {
+ puts $channelId "<<<chrony>>>"
+ puts $channelId "[exec chronyc -n tracking | cat]"
+ }
puts $channelId "<<<homematic:sep(59)>>>"
puts $channelId [string trim [get_homematic_check_result]]
Christian
Re: Check MK für die CCU
Hi Alex,
ich habe noch ein bisschen am check und am agent gebastelt.
Ich habe einen bug report bezüglich Gewerk "Monitored": Meine HM-TC-IT-WM-W-EU im Gewerk "Monitored" werden zwar vom Check übertragen, aber es passiert einfach nichts. Das liegt daran, dass sie nicht den DP HUMIDITY vewenden, sondern ACTUAL_HUMIDITY
Ich habe weiterhin ein tclsh-Addon für Nicht-Acknowledged-ALARM-Meldungen und den passenden Check_MK Check dafür und einen Check für "Monitored"-Leistungsmesser, d.h. HM-ES-PMSw1-Pl, aber der ist noch in der Test-Phase.
Wie möchtest Du sowas am liebsten haben. Gitub-Push-Request? Oder einfach hier? Die Code schnippsel sind recht kurz, das ALARM-Addon ist eigentlich fast nur Alchy Code
Falls es jemand direkt haben möchte:
check_mk_agent-Plugin, zu kopieren nach /usr/local/addons/check_mk_agent/plugins/alarm.tcl:
Im Check_MK: der check /opt/omd/sites/<sitename>/local/share/check_mk/checks/homematic_alarms
Das ergibt dann bei z.B.
folgenden Check_MK Alarm:
-=FuF=-
(Christiian)
ich habe noch ein bisschen am check und am agent gebastelt.
Ich habe einen bug report bezüglich Gewerk "Monitored": Meine HM-TC-IT-WM-W-EU im Gewerk "Monitored" werden zwar vom Check übertragen, aber es passiert einfach nichts. Das liegt daran, dass sie nicht den DP HUMIDITY vewenden, sondern ACTUAL_HUMIDITY
Code: Alles auswählen
OMD[fufnet]:/tmp$ diff homematic.orig /opt/omd/sites/fufnet/local/share/check_mk/checks/homematic
69c69,70
< humidity = data.get('HUMIDITY', None)
---
> # humidity = data.get('HUMIDITY', None)
> humidity = data.get('HUMIDITY', data.get('ACTUAL_HUMIDITY', None))
79c80,81
< humidity = data.get('HUMIDITY', None)
---
> # humidity = data.get('HUMIDITY', None)
> humidity = data.get('HUMIDITY', data.get('ACTUAL_HUMIDITY', None))
Wie möchtest Du sowas am liebsten haben. Gitub-Push-Request? Oder einfach hier? Die Code schnippsel sind recht kurz, das ALARM-Addon ist eigentlich fast nur Alchy Code
Falls es jemand direkt haben möchte:
check_mk_agent-Plugin, zu kopieren nach /usr/local/addons/check_mk_agent/plugins/alarm.tcl:
Code: Alles auswählen
#!/bin/tclsh
#
load tclrega.so
load tclrpc.so
proc get_homematic_alarms { } {
array set result [rega_script {
object oTmpArray = dom.GetObject(ID_SYSTEM_VARIABLES);
string sTmp;
string slist ="";
foreach(sTmp, oTmpArray.EnumIDs())
{
object oTmp = dom.GetObject(sTmp);
if ( (oTmp.ValueSubType() == istAlarm) && (oTmp.AlState() == asOncoming) )
{
string sTriggerDesc = "keine Beschreibung";
string sLastTriggerOut= "unbekannt";
object oLastTriggerDP = dom.GetObject( oTmp.LastTriggerID() );
if (oLastTriggerDP)
{
string sLastTriggerChannel = dom.GetObject(oLastTriggerDP.Channel());
string sLastTriggerChHssType = dom.GetObject(sLastTriggerChannel).HssType();
object oLastTriggerDevice = dom.GetObject(sLastTriggerChannel.Device());
string sLastTriggerDeviceHssType = oLastTriggerDevice.HssType();
string sLastTriggerDeviceSerial = oLastTriggerDevice.Address();
! sLastTriggerOut = sLastTriggerChannel.Name() #" ( Serial: "#sLastTriggerDeviceSerial #" Typ: " #sLastTriggerDeviceHssType #" )" ;
sLastTriggerOut = sLastTriggerChannel.Name();
}
string sTriggerDesc = oTmp.DPInfo();
! oTmp.Name() Wasseralarm
! oTmp.AlCounter() # Auslöungen
! oTmp.ValueName() ausgelöst, nicht ausgelöst
! oTmp.Timestamp().ToString("%d.%m.%y %H:%M Uhr") letzte Auslösung
! sLastTriggerOut Wassermelder Aquarium (HmIP-SWD 001898A9A36CF2:1)
! sTriggerDesc DPInfo()
WriteLine("ALARM_MSG;" # oTmp.Name() # ";" # sLastTriggerOut # ";" # oTmp.ValueName() # ";" # oTmp.Timestamp().ToString("%Y-%m-%d %H:%M:%S") )
}
}
}]
return $result(STDOUT)
}
puts [string trim [get_homematic_alarms]]
Code: Alles auswählen
#!/usr/bin/python
def parse_homematic_alarms(info):
result = { }
for line in info:
key = line[0]
device = result.get(key)
if key == 'ALARM_MSG':
if device is None:
device = []
result[key] = device
device.append(line[1:])
return result
def inventory_homematic_alarms(parsed):
yield 'ALARM Messages', None
def check_homematic_alarms(item, params, parsed):
messages = parsed.get('ALARM_MSG', None);
state = 0
devices = []
if messages is not None:
#with open("/tmp/bla", "aw") as bla:
# bla.write(repr(messages))
for msg,attr in messages.items():
if item == 'ALARM Messages':
state = 2
devices.append(msg + ": " + attr[0] + ", state: " + attr[1] + " (last: " + attr[2] + ")")
if state == 0:
return 0, 'No issues reported'
return state, ', '.join(devices)
check_info['homematic.alarms'] = {
'check_function': check_homematic_alarms,
'inventory_function': inventory_homematic_alarms,
'parse_function': parse_homematic_alarms,
'service_description': "Homematic %s",
}
folgenden Check_MK Alarm:
-=FuF=-
(Christiian)
- deimos
- Beiträge: 5407
- Registriert: 20.06.2017, 10:38
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Leimersheim
- Hat sich bedankt: 121 Mal
- Danksagung erhalten: 962 Mal
- Kontaktdaten:
Re: Check MK für die CCU
Hi,
mir ist der der Sinn des TCL Addons nicht ganz klar (das mag aber auch meinen rudimentären Kenntnissen der Rega geschuldet sein).
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. Die Plugins sind an sich nur für wirklich Benutzerspezifische Sachen gedacht, bei einem Check für Alarmmeldungen bin ich sofort dazu bereit, dass als Teil des Kerns zu betrachten.
Viele Grüße
Alex
mir ist der der Sinn des TCL Addons nicht ganz klar (das mag aber auch meinen rudimentären Kenntnissen der Rega geschuldet sein).
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. Die Plugins sind an sich nur für wirklich Benutzerspezifische Sachen gedacht, bei einem Check für Alarmmeldungen bin ich sofort dazu bereit, dass als Teil des Kerns zu betrachten.
Viele Grüße
Alex