Suche im Log nach String und Auswertung

Begonnen von AlterMann, 10 März 2018, 12:06:14

Vorheriges Thema - Nächstes Thema

AlterMann

Hi,

ich habe für mein Gerät danalock_V3 eine eigne Logdatei, in die wird der Status des Schlosses geschrieben aber sonst nirgendwo anders hin.


2018-03-09_18:22:09 danalock_V3 doorLockOperation: mode: unsecured outsideHandles: 0001 insideHandles: 0001 door: open bolt: [i][b]unlocked[/b][/i] latch: open timeoutSeconds: not_supported
2018-03-09_18:22:33 danalock_V3 alarm_AccessControl: Auto Lock Locked Operation, notificationIsOn
2018-03-09_18:22:34 danalock_V3 doorLockOperation: mode: secured outsideHandles: 0001 insideHandles: 0001 door: closed bolt: [i][b]locked[/b][/i] latch: closed timeoutSeconds: not_supported


Wichtig ist nur locked oder unlocked und dann nur jeweils die letzte Meldung. Ich habe natürlich das Forum etc durchforstet und einen Tread mit dem Hinweis mit grep gesehen.
Wenn ich aber zum Testen in die oberste Zeile eingebe:

grep -a locked /opt/fhem/log/danalock_V3-2018.log

kommt "unbekanntes Kommando"

Ich denke da das Pearl ist, muss das in geschweifte Klammern, dann kommt aber:

"Search pattern not terminated at (eval 20873) line 1."

Ziel ist es den Wert zu suchen und daraus dann eine Anzeige zu machen. Was muss ich lesen um weiter zu kommen? Bitte keine fertige Lösung, nur sagen wo ich falsch denke! Ich will es ja begreifen und lernen!

Schönes Wochenende AM
Ich bin Techniker und Anwender, kein Programmierer und genau deshalb will ich in FHEM einsteigen. Bald hab ich viel Zeit und Unkraut jäten is nich mein Ding.....

Otto123

Hi,

grep ist ein system Befehl, mit oberster Zeile meinst Du die Kommandozeile von FHEM richtig? Dort kannst Du keine system Befehle auf diese Art eingeben.
Ginge in der Art "Befehl" allerdings landet die Ausgabe (stdout) im Logfile.

Doku dazu -> https://fhem.de/commandref_DE.html#command

Allerdings hilft das noch nicht zu Deinem Problem.
Es gibt FHEM (Perl) Funktionen die eventuell helfen können -> https://wiki.fhem.de/wiki/DevelopmentModuleAPI

BTW: Pearl wäre der Internet Versender :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Einfach mit putty oder einem anderen ssh client mit dem FHEM Server verbinden und in der Konsole
grep "locked" /opt/fhem/log/danalock_V3-2018.log
eingeben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

herrmannj

AlterMann:
was möchtest Du erreichen und wie kommen die Daten ins log ?
Ist Danalock ein fhem device ?
Produziert es events ? und ist "locked" und "unlocked" teil der events (oder rein reading des device) ?

AlterMann

Hi zu den Fragen,

Es geht ums Türschloss DanalockV3 und das ist über ZWave in FHEM mit Security eingebunden. Dafür habe ich ein eigenes Log erstellt weril es erst gar nicht redete. Jetzt redet es und im Log und  bei Readings erscheint unter:

doorLockOperation  "mode: secured outsideHandles: 0001 insideHandles: 0001 door: closed bolt: locked latch: closed timeoutSeconds: not_supported"

ich brauche nur locked  oder eben unlocked um daraus irgendwie ne Anzeige grafische Anzeige zu basteln.....

Im Moment seht ich auf dem Schlauch zu wenig Wissen. Deshalb brauche ich Futter und bei dem Wust an Infos hier den richtigen link...

Grüße und Sorry ihr dürft ruhig dern Kopf schütteln aber ich bastele seit einer Woche um das Teil zum reden zu bekommen, jetzt redet es und ich bin zu doof es auszuwerten!

AM
Ich bin Techniker und Anwender, kein Programmierer und genau deshalb will ich in FHEM einsteigen. Bald hab ich viel Zeit und Unkraut jäten is nich mein Ding.....

KernSani

Wenn das im Reading steht würde es sich anbieten, ein userreading zu erstellen, das den Status per regex abgreift.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

AlterMann

Userreadings ok danke für den Tip, bin wohl etwas tröge heute....

AM
Ich bin Techniker und Anwender, kein Programmierer und genau deshalb will ich in FHEM einsteigen. Bald hab ich viel Zeit und Unkraut jäten is nich mein Ding.....

herrmannj

stell mal ein list vom lock und ein list vom filelog ein.

AlterMann

Hi Herrmannj, im Eventmonitor sehe ich unter anderem das:

Zitat
2018-03-12 11:38:27 ZWave danalock_V3 alarm_AccessControl: Auto Lock Locked Operation, notificationIsOn
2018-03-12 11:38:27 ZWave danalock_V3 doorLockOperation: mode: secured outsideHandles: 0001 insideHandles: 0001 door: closed bolt: locked latch: closed timeoutSeconds: not_supported

wie schon erwähnt habe ich für das Danalock einen eigenen Log: 
FileLog_danalock_V3 danalock_V3-2018.log text

in dem steht das Gleiche und im Device bei Redings steht dann:

Zitat
alarm_AccessControl:  Auto Lock Locked Operation, notificationIsOn 2018-03-12 11:38:27
doorLockOperation mode: secured outsideHandles: 0001 insideHandles: 0001 door: closed bolt: locked latch: closed timeoutSeconds: not_supported 2018-03-12 11:38:27
state doorLockOperation open 2018-03-12 11:37:48
timeToAck 0.030 2018-03-12 11:38:27
transmit OK 2018-03-12 11:38:27

ich habe nur das gelistet was sich verändert. Wenn ich das Schloss mit dem Wohnungstür-Dummy öffne tut sich bei den Readings vom Device gar nix, is aber nicht schlimm da das Dummy ja ein State-reading "off" bringt. Is eher ein Danalock Problem also Herstellerspezifisch...

Ich habe jetzt einiges gelesen und schau mal was ich wie tun kann. Wichtiger war das Schloss über FHEM öffenen zu können, damit ich es von fern kann. Das Symbol nach Zustand ist dann eher noch eine kosmetische Angelegenheit, Später will ich daraus mal ne Folgereaktion machen, wie Tür auf Kamera aus oder Licht im Flur an. Eventuell ist auch noch das öffen bei Annäherung dran. Das geht mit der App nicht richtig weil Bluetooth oft zu dröge ist. So weit denke ich aber noch nicht mit meinen vier Geräten in FHEM  :D

Liebe Grüße Alter Mann
 
Ich bin Techniker und Anwender, kein Programmierer und genau deshalb will ich in FHEM einsteigen. Bald hab ich viel Zeit und Unkraut jäten is nich mein Ding.....

binford6000

Hallo,
ich habe mir mal sowas ähnliches für WARNING und ERROR in FHEM-Log gebaut:
fhemlogparse.DUM ist ein dummy. tail -1 gibt nur den jeweils letzten Eintrag des Logfiles aus.
#!/bin/bash
warning=$(grep -a WARNING /opt/fhem/log/fhem-$(date +%Y-%m-%d).log | tail -1)
error=$(grep -a ERROR /opt/fhem/log/fhem-$(date +%Y-%m-%d).log | tail -1)
if [ "$warning" != "" ]; then
perl /opt/fhem/fhem.pl 7072 "setreading fhemlogparse.DUM warning $warning" &>/dev/null
else
perl /opt/fhem/fhem.pl 7072 "setreading fhemlogparse.DUM warning keine"
fi
if [ "$error" != "" ]; then
perl /opt/fhem/fhem.pl 7072 "setreading fhemlogparse.DUM error $error" &>/dev/null
else
perl /opt/fhem/fhem.pl 7072 "setreading fhemlogparse.DUM error keine"
fi

Das kannst Du dann regelmäßig ausführen lassen - entweder im System per CRON oder in FHEM mit einem cmdalias und at/doif/notify...
Der cmdalias bei mir sieht so aus (als RAW):
defmod fhemlog cmdalias logcheck AS "/opt/fhem/scripts/fhemlogparse.sh"
VG Sebastian