FHEM-Plugin für checkMK

Begonnen von erdo_king, 30 Dezember 2016, 17:35:26

Vorheriges Thema - Nächstes Thema

erdo_king

#90
Uii da muss ich meine eigene CheckMK Instanz erstmal updaten ... bin noch bei 1.5.0p18
Ich schau mir das mal an!




edit:
knapp 90min debuggen später weiß ich nur das CheckMK IRGENDEIN Problem mit meiner Wato-Konfiguration hat ...
Die Datei hat mittlerweile 878 Zeilen... Muss die wohl mal komplett neu bauen -> das wird aber leider dauern!

Ich vergesse es aber nicht.

f-zappa

Zitat von: erdo_king am 11 Oktober 2019, 19:26:11
knapp 90min debuggen später weiß ich nur das CheckMK IRGENDEIN Problem mit meiner Wato-Konfiguration hat ...
Die Datei hat mittlerweile 878 Zeilen... Muss die wohl mal komplett neu bauen -> das wird aber leider dauern!

Es hat mich gerade wieder genervt und ich wurde im update.log fündig:
Failed to load plugin /omd/sites/bokel/local/share/check_mk/web/plugins/wato/fhem.py: 'ascii' codec can't decode byte 0xc2 in position 7: ordinal not in range(128)
Traceback (most recent call last):
  File "/omd/sites/bokel/lib/python/cmk/gui/utils.py", line 173, in load_web_plugins
    execfile(file_path, globalvars)
  File "/omd/sites/bokel/local/share/check_mk/web/plugins/wato/fhem.py", line 207, in <module>
    help = _("exp. 17°C [dewp] vs 20°C [temp] (r: dewpoint) "),
  File "/omd/sites/bokel/lib/python/cmk/gui/i18n.py", line 60, in _
    return unicode(message)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 7: ordinal not in range(128)


Er scheint sich am Grad-Symbol zu stoßen. Der simple Workaround: ich hab es durch ein Leerzeichen ersetzt. Seitdem kann ich wieder Regeln für FHEM-Checks anlegen (die alten Regeln sind leider weg, hat vermutlich das Update weggeworfen).
Irgendwie kann man das Grad-Symbol sicherlich regelkonform wieder einbauen. Ist mir erst mal egal, das ist Kosmetik.

erdo_king

@f-zappa:
Volltreffer! das war es!!!

Ich verstehe nur nicht warum mein update.log komplett leer ist und deins Fehler anzeigt  :o :o
Du hast mir mehrere Tage Debuggen erspart! Den Fehler hätte ich nur gefunden indem ich Blockweise die Konfiguration zusammengewürfelt hätte, leider hat mir da CheckMK keine detaillierten Fehler angeboten.




Hier der Fix:
https://github.com/erdoking/mk_fhem/commit/63d5bad83d88b79130e7dd8f6e6ce8c625e577f6

Ich habe direkt eine neue Version gebaut (0.9.4)
https://github.com/erdoking/mk_fhem/releases/tag/v0.9.4




Noch eins in eigener Sache:

Eines hat mir das debuggen aber gebracht -> Die Wato-Konfiguration wird (leider) so bleiben wie sie ist.
Am liebsten hätte ich diese aufgedröselt und mehrere separate Einstellungsmöglichkeiten daraus gemacht. Das scheint aber nicht zu funktionieren  :'(

Falls sich jemand daran austoben möchte:
Die Zuordnung von Check zu Wato-Konfiguration geht über Gruppen (bei mir fhem).
Offenbar kann man immer nur eine 1-zu-1 Beziehung machen, sprich ein Check zu einer Wato-Konfiguration.

Im Prinzip müsste man für jeden Hersteller einen anderen Service-Typ erstellen und dem dann die Konfiguration zuordnen.
Das würde funktionieren, aber dann fallen alle "unbekannten" Geräte hinten raus. Um 100% flexibel zu bleiben werde ich - vorerst - bei dieser Konfigurationsmethode bleiben.

Vielleicht schreib ich mal den Kettner direkt an und schlag denen mal eine Anpassung am Core-Code vom CheckMK vor  ;D ;D

f-zappa

Zitat von: erdo_king am 21 Oktober 2019, 10:52:37
Ich verstehe nur nicht warum mein update.log komplett leer ist und deins Fehler anzeigt  :o :o
Das erste war bei mir auch leer. Ich hab inzwischen auf die 1.6.0p5 hochgezogen (die 1.6 scheint generell ein paar nervige Kinderkrankheiten zu haben), dabei hat es den Fehler angezeigt.

An der Wato-Konfiguration herumzuspielen ist für mich eine Nummer zu groß. Ich hab gerade (ohne jegliche Python-Kenntnisse) einen eigenen Check geschrieben (Überwachung eines Vigor165 mit ADSL-LINE-MIB), und dem fehlt dieser Teil selbst noch. Offenbar hat sich die Programmierung von Plugins aber in der 1.6 massiv gegenüber früher verändert (wie man an den eingebauten Checks sieht), es gibt aber (noch) keine Dokumentation dazu, nur die eh nicht so prickelnde Legacy-Doku. Das macht es nicht leichter. Naja, falls ich die Zeit hab, schau ich mal weiter - Zwischenstand ist erst mal, dass ich an Python so langsam Gefallen finde :)

onkel-tobi

Hi zusammen,

ich hoffe es ist ok, wenn ich den Thread für folgende Frage "missbrauche":
hat eigtl. jemand von euch zufällig auch die http Schnittstelle in checkmk als Monitor eingebunden?
Habe das bei mir mal probiert, aber ich bekomme da immer timeouts. Andere http checks hingegen laufen wunderbar.
Liegt das evtl. am header?

Habe es auch mit follow redirect usw. probiert, aber den timout bekomme ich trotzdem. Die Verbindung als solche steht, denn wenn ich den check via CLI ausführe und den timout hochsetze kommt nach 2 Minuten teilw. was. Auf allen anderen Geräten wird die http Seite aber innerhalb von Sekunden.

Hat da wer eine Idee / das ganze am laufen?

Danke 6 Gruß,
Tobi

erdo_king

Einsetzen tue ich das nicht.

Ich vermute das liegt an den Longpolls von FHEM (irgendwie sowas). FHEM "lässt sich Zeit" mit Antworten, bzw aktualisiert sich selbsttätig alle paar minuten ... das scheint den check zu verwirren.
Aber wirklich verstehen tue ich das auch nicht ... Sorry das hat aber nichts mit dem Plugin zu tun, daher debugge ich hier auch nichts.

Falls du das Thema weiter aufgreifen willst mach bitte einen extra Thread dafür, dass ist in meinen Augen kein CheckMK Problem sondern geht Richtung FHEM-Konfiguration

gadget

Hallo,

Ich habe mir das Plugin rein interessehalber heute mal angeschaut. Bin mir aber noch nicht so ganz klar ob die Kombination cmk und fhem für mich Sinn macht. Ist aber auf jeden Fall eine interessante Idee und ich schließe mich dem Lob an den Autor vollumfänglich an.

Was mir aufgefallen ist und wofür ich keine Lösung gefunden habe:

AVM FBDECT Funkschalter (fhem Modul FBDECT) lieferen u.a. ein reading "mode". Das steht bei mir auf "manuell", weil ich den Schalter nicht über irgendwelche Timer in der Fritzbox schalte, sondern von fhem aus bzw. weil ich den Funkschalter nur zur Energiemessung nutze.

Im plugin output schaut das so aus


FBDECT_waschmaschine    FBDECT_waschmaschine TYPE                 FBDECT
                     2020-02-15 16:13:39  FBDECT_waschmaschine   AIN                  09711 0128412
                     2020-02-15 16:13:39  FBDECT_waschmaschine   FBNAME               Waschmaschine
                     2020-02-15 16:13:39  FBDECT_waschmaschine   FBPROP               microphone,powerMeter,tempSensor,switch
                     2020-02-15 16:13:39  FBDECT_waschmaschine   FBTYPE               FRITZ!DECT 200
                     2020-02-15 16:13:39  FBDECT_waschmaschine   ID                   17
                     2020-02-15 16:13:39  FBDECT_waschmaschine   devicelock           no
                     2020-02-15 16:13:39  FBDECT_waschmaschine   energy               1136067 Wh
                     2020-02-15 16:13:39  FBDECT_waschmaschine   fwversion            04.16
                     2017-09-30 14:10:47  FBDECT_waschmaschine   humidity             0
                     2020-02-15 16:13:39  FBDECT_waschmaschine   locked               no
                     2020-02-15 16:13:39  FBDECT_waschmaschine   mode                 manuell
                     2020-02-15 16:13:39  FBDECT_waschmaschine   power                1.85 W
                     2020-02-15 16:13:39  FBDECT_waschmaschine   present              yes
                     2020-02-15 16:13:39  FBDECT_waschmaschine   state                on
                     2020-02-15 16:13:39  FBDECT_waschmaschine   tempadjust           0.0 C
                     2020-02-15 16:13:39  FBDECT_waschmaschine   temperature          28.0 C (measured)
                     2020-02-15 16:13:39  FBDECT_waschmaschine   voltage              233.013 V



In cmk führt das dann zu einem CRIT wegen "mode: manuell (expected: auto)".
Ich vermute, das ist eigentlich für Homematic gedacht, aber lt. Online Hilfe zur WATO Regel sollte der Default ja eigentlich "ignore" sein.

Ich hab mir die Implentierung nicht genauer angeschaut, aber ich vermute, dass das deutsch geschriebene "manuell" ein edge case ist ... :-)

Viele Grüße,

gadget.




erdo_king

Hi gadget,

erst einmal danke für deine - durchaus positive - Rückmeldung :)

Den Tippfehler habe ich korrigiert. Fließt in das nächste Release mit ein.
https://github.com/erdoking/mk_fhem/commit/4b6574a33a00d553683f2168b37c0e3a85174f05

Zu deinem Problem:
Das wird tatsächlich an der deutschen Übersetzung liegen.

Du kannst unter "Manufacturer -> HomeMatic -> Control Mode" den Wert auf "custom" ändern und dort einen beliebigen Wert hinterlegen (zB. "manuell")
Das sollte dein Problem lösen.

Der eigentliche Check ist dumm, das ist ein reiner String-Vergeich.
Ich wǘsste hier keine Lösung - außer eine Art Wörterbuch für alle möglichen Übersetzungen zu hinterlegen, das sprengt den Rahmen. Genau dafür kann man den Filter custom setzen ..

Grüße
erdo

gadget

Hallo,

soweit verstanden, aber mein Problem wäre erst dann 100% gelöst, wenn man den mode tatsächlich per WATO Regel ignorieren könnte. IMHO sollte das ignorieren eigentlich auch der default sein.

Eilt aber nicht, ich hab die Fritzdect jetzt insgesamt aus dem inventory geworfen, die brauche ich in cmk nicht unbedingt.


ignored_services = [
{'condition': {'service_description': [{'$regex': u'FHEM\\ FBDECT\\_'}]}, 'value': True, 'options': {'description': u'keine FBDECT'}},
] + ignored_services


Grüße, gadget


erdo_king

Oha, stimmt ignorieren darf man den Wert nicht ...
Das werde ich ändern! Wobei der default-Wert "auto" meiner Meinung nach zumindest für Homematic-Benutzer am meisten Sinn macht ... Ob das nun für alle Anwender gilt ... mhmmm kp

Ich setze CheckMK vor allem für Konfigurationsüberwachung ein, daher ist der default - für mich - korrekt gewählt ...

f-zappa

Moin,
ich erwäge den Upgrade auf das neue Checkmk 2.0 - aber funktioniert das fhem-Plugin auch mit dieser Version?

Gruß, Uli

gadget

Versuch macht kluch:

Falls deine OMD Site den Namen prod hat:

omd stop prod
omd cp prod test
omd start prod
omd start test

-> Schauen ob test Site funktioniert

omd stop test

Neue cmk-Version installieren

omd update test
omd start test

-> Ausprobieren

omd stop test
omd rm test

Wenn alles funktioniert auch die prod updaten.

no_Legend

Zitat von: erdo_king am 30 Dezember 2016, 17:35:26
Hallo Community,

ich bin begeisterter Fan von FHEM und von checkMK.
Da lag es nur nahe beide System zu verbinden ...

Ich habe mein Plugin nach etlichen Monaten Entwicklung soeben im GitHub veröffentlicht.
https://github.com/erdoking/mk_fhem

Somit wandern nun die Daten meiner Haussteuerung auch in mein Monitoring und werden dort grafisch aufgearbeitet im Jahresverlauf präsentiert ...
Ich hoffe auf (rege) Begeisterung und diversen Hinweise von andern Technik-begeisterten Personen!



History:
21.10.2019 | v0.9.4: Kompatibilität mit CheckMK 1.6
15.10.2018 | v0.9.3: Unterstützung für MAX! / Unterstützung für XiaomiFlowerSens
03.07.2018 | v0.9.2: weitere Readings für Luxtronik / min. Version auf 1.2.8 geändert
25.06.2018 | v0.9.1: Unterstützung für Luxtronik / HomeMatic reading 'activity' konfigurierbar
20.06.2018 | v0.9.0: Kompletter Rewrite der WATO Konfiguration, nun mit Kategorien



Die aktuellste MKP immer im Github

Gerade über den Beitrag gestolpert.
Ich hab auch nun seit ein paar Wochen die 2.0 am laufen.

Noch habe ich es nicht probiert wie es mit 2.0 ist.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

f-zappa

Zitat von: gadget am 22 April 2021, 11:02:58
Versuch macht kluch:
[ ... ]
Danke für den kleinen Wink, mir war tatsächlich nicht klar, dass checkMK es mir hier so einfach macht :-)

Der Check selbst funktioniert noch, aber  Regeln dazu sind nicht mehr editierbar (bzw die alten Regeln sind auch weg). Beim Upgrade auf die 1.6 hatte ich das gleiche Phänomen, damals war es aber vergleichsweise leicht zu beheben. Ich hoffe, dass erdo_king noch mal gucken kann ...

Gruß, Uli

erdo_king

Oha - CheckMK 2.0 ist stable?

Seitdem ich CheckMK nicht mehr als Admin betreue, sondern nur als Anwender benutze lese ich die Veröffentlichungen nicht mehr Tagesaktuell mit ;)
Ich prüfe das bei Gelegenheit, scheint ja doch einige Anwender außer mir zu geben... Stand heute rate ich allen von einem Wechsel auf 2.0 ab, wenn das FHEM-Plugin weiterhin laufen soll!

Aktuell habe ich noch 1.6.0p22 im Einsatz, da sind mir zumindest keine größeren Probleme bekannt.


P.s.:
Ich fürchte ich muss den Code doch mal sauber programmieren, zumindest der Python-Anteil ist in einer Teaminternen Review  böse bewertet worden  ::)
Ich bin nun mal Admin und kein Entwickler, eine Kollegin aus dem Entwicklungsbereich hat mich darauf aufmerksam gemacht, dass der Check JEDESMAL einen Fehler wirft, den ich nur hart ignoriere ... Mein Perl ist eindeutig besser wir mein Python!