Tinkerforce Serverraumüberwachung 2.0

Hallo liebe checkmk Community,

schön das es hier ein Forum gibt :slight_smile:

Ich habe bei Tinkerforce diesen Artikel hier gekauft:
https://www.tinkerforge.com/de/shop/kits/starter-kit-server-room-monitoring-v2.html

Per Netzwerk ist dieser auch ansprechbar und über die Software werden auch die Werte ausgegeben. Per CheckMK und Special Agent bekomme ich nur folgende Werte zurück:
<<tinkerforge:sep(44)>>
master,0.0.6F3kXP,0,0,2839
master,6F3kXP.1.6LYCz8,0,0,2749

Gleiches Ergebnis auch auf der CLI. Schaue ich mir aber den Agent selber an, kann dieser wohl die Werte der Sensoren auslesen. Wo ist mein Fehler?

Ich danke vielmals für Eure Hilfe.

Freundliche Grüße
Samuel Lodyga

Hi @Sam

Wow, sieht cool aus das Teil! Ich hab bisher nur mit den “einzelnen” Sensoren rumgespielt.
Nun, zu Deiner Frage: Ich… verstehe sie nicht ganz, aber habe eine Vermutung was Du meinen koenntest:

Hast Du denn bei Deinem “Host” in CMK auch folgende Einstellung fuer den Agent ausgewaehlt:

image

Danach sollten mit einer Discovery alle Ergebnisse im CMK interface eintrudeln.

Gruesse,
Thomas

1 Like

Hallo @openmindz

vielen Dank für die schnelle Antwort :+1:

Ja, das habe ich schon gemacht. Danach kommt das oben genannte Ergebnis zu stande.
Agent:
<<tinkerforge:sep(44)>>
master,0.0.6F3kXP,0,0,2820
master,6F3kXP.1.6LYCz8,0,0,2764

Die Werte kann er dann auch interpretieren

Aber leider nicht die der eigentlichen Sensoren.

Gruß
Samuel

Dann müsstest dir den Special Agent anschauen, da dieser scheinbar keine Daten liefert für die Sensoren.

Der Special Agent kennt die folgenden Sensoren.

for dev_id, module_name, clazz, handler in [
    (13, "brick_master", "BrickMaster", print_master),
    (21, "bricklet_ambient_light", "BrickletAmbientLight", print_ambient_light),
    (259, "bricklet_ambient_light_v2", "BrickletAmbientLightV2", print_ambient_light_v2),
    (216, "bricklet_temperature", "BrickletTemperature", print_temperature),
    (226, "bricklet_ptc", "BrickletPTC", print_temperature_ext),
    (27, "bricklet_humidity", "BrickletHumidity", print_humidity),
    (233, "bricklet_motion_detector", "BrickletMotionDetector", print_motion_detector)
]:

Jetzt müsstest mal schauen was bei dir verbaut ist.
Es gibt scheinbar ja auch verschiedene Versionen von den einzelnen Sensoren.

Danke für den Hinweis.

Das hier sind die verbauten Sensoren:
grafik
Dann scheint tatsächlich das 2.0 oder 3.0 ein Problem zu sein. Wie bekomme ich die am besten trotzdem in CheckMK rein?

Hi @Sam

Also meine Tinkerforge Geraete sind sehr sehr alt, wahrscheinlich 1. Generation,
und ich habe wie gesagt gerade einmal ein Master Brick, einen Feuchtigkeitssensor
und einen Temperatursensor. Obwohl ich den special agent dafuer noch nicht ausprobiert hab,
wuerden die wahrscheinlich funktionieren. Wenn ich spaeter heute Zeit habe, probiere ich’s mal aus.

Vielleicht kannst Du diesen check fuer Deine Zwecke “missbrauchen”:

https://exchange.icinga.com/netways/check_tinkerforge

Ansonsten wahrscheinlich nur ueber ein selbstgestricktes Skript.

Gruesse,
Thomas

Der Netways Check kennt auch kein Temperature v2 oder Ambient Light v3.
Im Endeffekt geht es um die Library von Tinkerforge. Die installierte Version muss die neuen Bricklets unterstützen und du musst den Special Agent um die neuen Device IDs und Namen der Module erweitern.

Vielen Dank für die Rückmeldungen.

Mit dem Netways Check hatte ich es auch versucht, leider keinen Erfolg.

Leider bin ich noch Neuling in CheckMK und wüsste nicht ganz genau, wie ich den Agent erweitern kann. Die Dateien habe ich zwar mir schon angeschaut, aber so richtig komme ich damit nicht weiter. Kannst Du mir da noch einen Tipp geben @andreas-doehler ?

Ok zu den Device IDs gibt es eine Doku bei TinkerForge
https://www.tinkerforge.com/de/doc/Software/Device_Identifier.html#device-identifier

Der Codeabschnitt den ich oben schon mal gepostet hab ist nun zu erweitern, dass die eigenen Bricklets auch erkannt werden.

Für Ambient Light v3 würde die Zeile ca. so aussehen. Testen muss man natürlich ob das funktioniert danach.

(2131, "bricklet_ambient_light_v3", "BrickletAmbientLightV3", print_ambient_light),

In der Art sind alle fehlenden Bricklets erstmal hinzuzufügen.
Alles unter der Voraussetzung, dass die bestehenden print Funktionen die Daten auch richtig ausgeben.

Guten abend @Sam,

Obwohl Andreas’ Antworten fuer Dich bestimmt allgemein hilfreicher ausfallen als meine, wollte ich aus Neugierde dennoch - wie versprochen - das mk_tinkerforge.py plugin mit meinem alten Tinkerforge Master Brick und meinen Temperature/Humidity Bricklets ausprobieren.

Tja… Die geben Werte zurueck:

<<<tinkerforge:sep(44)>>>
master,0.0.68yjQZ,0,0,273
humidity,68yjQZ.a.dd5,548
temperature,68yjQZ.b.dFE,1718

Ich bin nur gerade auf einem Rechner wo ich keinen Zugang zu einer CMK Instanz habe, aber ich nehme an, dass ich somit nun auch den special agent usw. normal darin konfigurieren koennte.

Wie dem auch sei, meine Antwort poste ich hier eher der Vollstaendigkeit wegen, als das Dir das wirklich was bringt, das ist mir durchaus bewusst. Also… viel Glueck damit weiterhin.

Gruesse,
Thomas

Hallo,

vielen Dank Euch allen, mit Eurer Hilfe habe ich es geschafft.

Tatsächlich muss man die Liste erweitern:
for dev_id, module_name, clazz, handler in [
(13, “brick_master”, “BrickMaster”, print_master),
(21, “bricklet_ambient_light”, “BrickletAmbientLight”, print_ambient_light),
(259, “bricklet_ambient_light_v2”, “BrickletAmbientLightV2”, print_ambient_light_v2),
(2131, “bricklet_ambient_light_v3”, “BrickletAmbientLightV3”, print_ambient_light_v3),
(216, “bricklet_temperature”, “BrickletTemperature”, print_temperature),
(2113, “bricklet_temperature_v2”,“BrickletTemperatureV2”, print_temperature_v2),
(226, “bricklet_ptc”, “BrickletPTC”, print_temperature_ext),
(2101, “bricklet_ptc_v2”, “BrickletPTCV2”, print_temperature_ext_v2),
(27, “bricklet_humidity”, “BrickletHumidity”, print_humidity),
(283, “bricklet_humidity_v2”, “BrickletHumidityV2”, print_humidity_v2),
(233, “bricklet_motion_detector”, “BrickletMotionDetector”, print_motion_detector)

Aber auch die einzelnen def einfügen:
def print_ambient_light_v3(conn, settings, uid):
from tinkerforge.bricklet_ambient_light_v3 import BrickletAmbientLightV3
br = BrickletAmbientLightV3(uid, conn)
print_generic(settings, “ambient”, br.get_identity(), 0.01, “L”, br.get_illuminance())

def print_temperature_v2(conn, settings, uid):
from tinkerforge.bricklet_temperature_v2 import BrickletTemperatureV2
br = BrickletTemperatureV2(uid, conn)
print_generic(settings, “temperature”, br.get_identity(), 0.01, u"\N{DEGREE SIGN}C",
br.get_temperature())

def print_temperature_ext_v2(conn, settings, uid):
from tinkerforge.bricklet_ptc_v2 import BrickletPTCV2
br = BrickletPTCV2(uid, conn)
print_generic(settings, “temperature.ext”, br.get_identity(), 0.01, u"\N{DEGREE SIGN}C",
br.get_temperature())

def print_humidity_v2(conn, settings, uid):
from tinkerforge.bricklet_humidity_v2 import BrickletHumidityV2
br = BrickletHumidityV2(uid, conn)
print_generic(settings, “humidity”, br.get_identity(), 0.1, “RH”, br.get_humidity()/10)

Die Ausgabe sieht dann so aus:
<<tinkerforge:sep(44)>>
master,0.0.6F3kXP,0,0,2956
ambient,6F3kXP.a.P3P,162
temperature,6F3kXP.b.Qvf,2057
temperature.ext,6F3kXP.c.NiF,1874
master,6F3kXP.1.6LYCz8,0,0,2858
humidity,6LYCz8.a.NQD,3786

Und in CheckMK selbst:

Vielen Dank nochmal und vielleicht hilft es jemandem, der auch V2,V3 oder neuere Sensoren kauft :slight_smile:

Coole Sache @Sam! Dann hab ich glaube ich jetzt schon einen Weihnachtswunsch…:slight_smile:

Vielleicht sieht ja auch ein DEV diesen thread der das plugin entsprechend
erweitert, sodass es zum naechsten Release bereits fertig ist…