Signale vom Empfängern loggen

Begonnen von sash.sc, 16 März 2017, 12:05:06

Vorheriges Thema - Nächstes Thema

sash.sc

Hallo zusammen.

ich habe nix passendes hier im Forum gefunden.

Ich möchte ein LogFile erstellen, welches mir alle Signale von einem Empfänger in ein entsprechendes LogFile schreibt. Dabei nach Möglichkeit diese Einträge dann aus dem HauptLogFile raus lässt.

Gibt es da eine Möglichkeit ? Ist es überhaupt möglich ?

z.B. von ein nanoCUL oder Signalduino nur dessen empfangene Nachrichten !!!!!


Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

r00t2

#1
Könnte mir vorstellen (ungetestet!) dass das mit user Readings und einem einfachen Textlog funktioniert.
Bezüglich des FHEM Logs wird es wohl aufs herabsetzen der Verbosity herauslaufen. Alternativ könnte suppressReading ein Ansatz sein.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

rabehd

ZitatSignale von einem Empfänger
Nach meinem Verständnis ist es dann ein Sender.  ::)

Mit mehr Informationen könnte man sich was vorstellen, so...
Was für ein Device?
Was tut es?
Was klappt nicht?
Auch funktionierende Lösungen kann man hinterfragen.

r00t2

#3
Steht doch denke ich alles da, oder?

Er möchte, dass alle Signale (genauer: nur der Nachrichtenteil der Signale), die von einem Empfänger (z. B. einem SIGNALduino) empfangen werden (unabhängig davon, wer diese Signale gesendet hat) in ein eigenes Logfile geschrieben werden und dafür nicht im FHEM Log auftauchen.

Ich verstehe das so:
Ein Sender sendet eine Nachricht, die dann vom SIGNALduino im FHEM Log angezeigt wird. Z. B.:
2016.01.30 19:45:14 4: sduino/msg READ:  MU;P0=356;P1=-320;P2=677;P3=-647;P4=-9993;D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;CP=0;O;
2016.01.30 19:45:14 4: sduino: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2016.01.30 19:45:14 5: sduino: Starting demodulation at Position 2
2016.01.30 19:45:14 5: sduino: applying filterfunc SIGNALduino_filterSign
2016.01.30 19:45:14 4: sduino: Fingerprint for MU Protocol id 27 -> remote27 matches, trying to demodulate
2016.01.30 19:45:14 5: sduino: Starting demodulation at Position 2


Der TE möchte nun diese Meldung nicht im FHEM Log haben, sondern stattdessen in einem anderen Log so etwas in der Art stehen haben:
2016.01.30 19:45:14 4: sduino/msg READ:  MU;P0=356;P1=-320;P2=677;P3=-647;P4=-9993;D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;CP=0;O;

Ggf. noch mehr reduziert auf die "reine Nachricht":
2016.01.30 19:45:14 4: sduino/msg D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

sash.sc

Zitat von: r00t2 am 16 März 2017, 13:06:38
Steht doch denke ich alles da, oder?

Er möchte, dass alle Signale (genauer: nur der Nachrichtenteil der Signale), die von einem Empfänger (z. B. einem SIGNALduino) empfangen werden (unabhängig davon, wer diese Signale gesendet hat) in ein eigenes Logfile geschrieben werden und dafür nicht im FHEM Log auftauchen.

Ich verstehe das so:
Ein Sender sendet eine Nachricht, die dann vom SIGNALduino im FHEM Log angezeigt wird. Z. B.:
2016.01.30 19:45:14 4: sduino/msg READ:  MU;P0=356;P1=-320;P2=677;P3=-647;P4=-9993;D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;CP=0;O;
2016.01.30 19:45:14 4: sduino: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2016.01.30 19:45:14 5: sduino: Starting demodulation at Position 2
2016.01.30 19:45:14 5: sduino: applying filterfunc SIGNALduino_filterSign
2016.01.30 19:45:14 4: sduino: Fingerprint for MU Protocol id 27 -> remote27 matches, trying to demodulate
2016.01.30 19:45:14 5: sduino: Starting demodulation at Position 2


Der TE möchte nun diese Meldung nicht im FHEM Log haben, sondern stattdessen in einem anderen Log so etwas in der Art stehen haben:
2016.01.30 19:45:14 4: sduino/msg READ:  MU;P0=356;P1=-320;P2=677;P3=-647;P4=-9993;D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;CP=0;O;

Ggf. noch mehr reduziert auf die "reine Nachricht":
2016.01.30 19:45:14 4: sduino/msg D=01212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212301230123012301230403012123012301230123012304030121230123012301230123040301212;


Genau so !!!!!!!!!!!!!

Einer der mich versteht !  8) ;)

Wie kann man das anstellen ?

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

r00t2

#5
Zitat von: sash.sc am 16 März 2017, 14:19:53...Wie kann man das anstellen ?...
Hatte doch oben schon meine Ideen geschrieben.

Ein wenig Eigeninitiative Deinerseits wäre hier sicherlich nicht schlecht :)
Wenn Du was ausprobiert hast und es nicht klappt, kannst Du den Thread ja wieder mit genügend Infos füttern und man kann sehen, wo es ggf. hängt.
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

sash.sc

Zitat von: r00t2 am 16 März 2017, 15:19:53
Hatte doch oben schon meine Ideen geschrieben.

Ein wenig Eigeninitiative Deinerseits wäre hier sicherlich nicht schlecht :)
Wenn Du was ausprobiert hast und es nicht klappt, kannst Du den Thread ja wieder mit genügend Infos füttern und man kann sehen, wo es ggf. hängt.

Kein Problem.

Habe da schon etwas länger ein LOG definiert.
Bekomme aber nicht die Daten die ich gerne haben möchte.


Internals:
   DEF        ./log/sduino-%Y-%W.log sduino:.*|sduino:RAWMSG.*|sduino:UNKNOWNCODE.*
   NAME       sduinolog
   NOTIFYDEV  sduino
   NR         305
   NTFY_ORDER 50-sduinolog
   REGEXP     sduino:.*|sduino:RAWMSG.*|sduino:UNKNOWNCODE.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/sduino-2017-11.log
   logfile    ./log/sduino-%Y-%W.log
   Readings:
     2017-03-16 16:12:58   linesInTheFile  2888
Attributes:
   room       99_Logs
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Sidey

Ich hab mir das auch schon mal überlegt, ob ich da was als Ersteller des Modules machen kann.

Soweit ich das verstanden habe, kann man mit Filelog Reading Updates weiterleiten.
Meldungen, die mit Log3 ausgegeben werden kommen da nicht an.
Schlussfolgerung: Die Daten müssten in ein Reading und dann kann man es in ein filelog leiten.

Wenn das doch mit log3 geht habe ich auch nichts dagegen :)


Welche Daten willst Du denn im Log haben. Alle die derzeit im Fhem Log auftauchen oder nur Signaldaten?

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

Am flexibelsten wäre es, wenn man es mit einer regular expression machen würde die man in einem Attribut definieren kann

z.B.

my $msgRegexp = AttrVal($iohash->{NAME},"msgRegexp",undef);
if (defined($msgRegexp) && $rmsg =~ m/$msgRegexp/) {
...
}


Ich denke Sinn macht die raw message ($rmsg) und evtl die dispatch message ($dmsg)

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

sash.sc

Zitat von: Sidey am 16 März 2017, 17:57:35
Ich hab mir das auch schon mal überlegt, ob ich da was als Ersteller des Modules machen kann.

Soweit ich das verstanden habe, kann man mit Filelog Reading Updates weiterleiten.
Meldungen, die mit Log3 ausgegeben werden kommen da nicht an.
Schlussfolgerung: Die Daten müssten in ein Reading und dann kann man es in ein filelog leiten.

Wenn das doch mit log3 geht habe ich auch nichts dagegen :)


Welche Daten willst Du denn im Log haben. Alle die derzeit im Fhem Log auftauchen oder nur Signaldaten?

Grüße Sidey

Eigentlich nur die Signaldaten, also was ab verbose 4 rein kommt.
Wie ralf9 es schon gesagt hat. DMSG und RAWMSG.

Was würde mehr Sinn machen? Das Empfänger spezifisch zu machen ? Oder als globales Modul, so das es für Jeden Empfänger zu gebrauchen ist ?

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Sidey

Rawmsg und dmsg sind bereits internals.. Die laufen vermutlich nicht in das filelog nehme ich an
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

sash.sc

Jepp. Leider ........

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ralf9

Zitat von: Sidey am 16 März 2017, 22:23:56
Rawmsg und dmsg sind bereits internals.. Die laufen vermutlich nicht in das filelog nehme ich an
Damit sie ins filelog laufen, muß ein event erzeugt werden. Dies geht auch ohne readings mit DoTrigger.
Da es im filelog schon eine regexp gibt, müsste es auch ausreichen, wenn das erzeugen von events mit einem Attribut ein- und ausgeschaltet werden kann
z.B.
." msgEvent:none,RAWMSG,DMSG,RAWMSG+DMSG"

Die extra regexp in einem sduino Attribut hätte den Vorteil, daß eine Empfänger spezifische Filterung möglich wäre.

Gruß Ralf

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

sash.sc

Muss das im Modul programmiert werden, oder als attribut?

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

sash.sc

Zitat von: Ralf9 am 16 März 2017, 23:46:21
Damit sie ins filelog laufen, muß ein event erzeugt werden. Dies geht auch ohne readings mit DoTrigger.
Da es im filelog schon eine regexp gibt, müsste es auch ausreichen, wenn das erzeugen von events mit einem Attribut ein- und ausgeschaltet werden kann
z.B.
." msgEvent:none,RAWMSG,DMSG,RAWMSG+DMSG"

Die extra regexp in einem sduino Attribut hätte den Vorteil, daß eine Empfänger spezifische Filterung möglich wäre.

Gruß Ralf
Wie muss denn da eine Definition für ein filelog aussehen, damit die Nachrichten ins log geschrieben werden.

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb