[halb gelöst] DebianMail: Aktuelle Zeit im Betreff mitsenden

Begonnen von Tom111, 17 Oktober 2021, 12:27:01

Vorheriges Thema - Nächstes Thema

Tom111

Hallo,

Ich hab schon 3 Jahre nichts mehr mit FHEM gemacht und den Raspberry einfach nur laufen lassen, alles funktioniert wie eh und jeh und immer noch mit der selben SD-Karte, bin begeistert.
Jetzt bin ich wieder mal dabei etwas aufzurüsten und da ich kein Linux oder Perl-Profi bin stoß ich hin und wieder mal auf irgendwelche (für mich) unlösbaren Probleme.

Was ich gemacht habe: Ich lasse mir beim Wechsel der IP-Adresse, diese per Mail auf mein Handy senden und auf mein XORO-Display anzeigen, klappt jetzt auch soweit sogut.
Ich würde mir gerne auch die aktuelle Zeit per Mail mitsenden lassen bzw. auf dem XORO anzeigen lassen. Ich habe jetzt jede Menge ausprobiert, aber nichts führt zum Erfolg. Kann mir da irgend jemand helfen? Danke!

Hier Mein Code:

defmod myIP1 HTTPMOD https://www.wieistmeineip.de/ 30
attr myIP1 userattr reading01Name reading01Regex
attr myIP1 reading01Name IP
attr myIP1 reading01Regex (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
attr myIP1 stateFormat IP
attr myIP1 event-on-change-reading .*
attr myIP1 event-on-update-reading IP:
attr myIP1 icon it_i-net
attr myIP1 fp_Grundriss 38,562,0,,

define myIP1_Log FileLog ./log/myIP1-%Y.log myIP1
attr myIP1_Log archivedir ./log-archive/
attr myIP1_Log logtype text

# externe IP-Adresse per Mail versenden

define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1"));;}}
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

#1
Vielleicht hilft das:

https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit
(generelles bzgl. Uhrzeiten)

https://forum.fhem.de/index.php?topic=52164.0
(Datum/Uhrzeit eines Readings -> könnte ja reichen bzw. das sein was du suchst?)

Zitat
Ich habe jetzt jede Menge ausprobiert, aber nichts führt zum Erfolg.
Konnte jetzt nichts entdecken wo du schon mal was mit Uhrzeit versucht hast oder ich hab's übersehen...

Anmerkung: ich würde statt Value ReadingsVal bzw. ReadingsNum nehmen, weil: Value STATE (also das INTERNAL!! abfrägt und nicht das Reading state! / und STATE kann z.B. durch stateFormat beeinflusst/verändert werden)

Noch ne Anmerkung: gratuliere, dass es schon so lange läuft! Aber: Backup-/Restore-Strategie vorhanden? Und auch getestet, dass sie tut/tun würde für den Fall dass? Und: welches System/OS? Weil evtl. kommen irgendwann Probleme bzgl. ssl/https etc. wenn das System zu alt ist...

EDIT: und da bist du dir auch sicher mit dem Doppelpunkt? attr myIP1 event-on-update-reading IP: ? Heißt das Reading tatsächlich IP: oder nur IP? Mit einem list vom Device statt DEF/Auszug aus fhem.cfg hätte man das sehen können ;)

EDIT: vermutlich doch nur IP? attr myIP1 stateFormat IP -> darum funktioniert auch Value wie du willst ;) Wenn du das mal änderst (weitere Werte/andere Darstellung willst) nicht mehr ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tom111

Zitat von: MadMax-FHEM am 17 Oktober 2021, 12:50:17
Vielleicht hilft das:

https://wiki.fhem.de/wiki/Zeitangaben,_rechnen_mit
(generelles bzgl. Uhrzeiten)

https://forum.fhem.de/index.php?topic=52164.0
(Datum/Uhrzeit eines Readings -> könnte ja reichen bzw. das sein was du suchst?)
Konnte jetzt nichts entdecken wo du schon mal was mit Uhrzeit versucht hast oder ich hab's übersehen...

Anmerkung: ich würde statt Value ReadingsVal bzw. ReadingsNum nehmen, weil: Value STATE (also das INTERNAL!! abfrägt und nicht das Reading state! / und STATE kann z.B. durch stateFormat beeinflusst/verändert werden)

Noch ne Anmerkung: gratuliere, dass es schon so lange läuft! Aber: Backup-/Restore-Strategie vorhanden? Und auch getestet, dass sie tut/tun würde für den Fall dass? Und: welches System/OS? Weil evtl. kommen irgendwann Probleme bzgl. ssl/https etc. wenn das System zu alt ist...

EDIT: und da bist du dir auch sicher mit dem Doppelpunkt? attr myIP1 event-on-update-reading IP: ? Heißt das Reading tatsächlich IP: oder nur IP? Mit einem list vom Device statt DEF/Auszug aus fhem.cfg hätte man das sehen können ;)

EDIT: vermutlich doch nur IP? attr myIP1 stateFormat IP -> darum funktioniert auch Value wie du willst ;) Wenn du das mal änderst (weitere Werte/andere Darstellung willst) nicht mehr ;)

Gruß, Joachim

Ja, Danke für den Versuch, aber ich komme nicht weiter, ich weiß nicht wie ich was, wo anhängen muss damit mir die Zeit bei DebianMail mitgesendet wird. Ich komm keinen Schritt weiter.
Vielleicht könnte ja einer so freundlich sein wo ich was hinschreiben muss in folgendem Code:
define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1"));;}}

Diesen Code habe ich auch nur aus mehreren Schnipseln zusammengebaut und eine ganze Zeit dran gesessen bis es funktioniert hat. Nur mit der aktuellen Zeit, die hier noch mitgesendet werden muss komm ich ganz einfach nicht weiter!

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

#3
Mal angenommen das funktioniert:

Zitat
define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1"));;}}

Dann einfach z.B. Uhrzeit/Datum des IP-Readings mitsenden:


define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1").' DatumUhrzeit: '.ReadingsTimestamp("myIP1","IP","00:00:00"));;}}


Wobei wie geschrieben wäre etwas mehr Info schon auch nett.
Z.B. an welche Stelle beim Senden denn der Betreff gehört.
EDIT: laut Wiki wohl eher da wo du jetzt IP stehen hast? Dann halt den Code dort hin...
Ein list des Devices auf welches dein notify wirkt/wirken soll, damit man eben sehen kann welches Reading man abfragen könnte sollte...
...daher habe ich einfach mal das Reading "IP" genommen, in der Annahme, dass das Reading so heißt und auch der Zeitstempel da passt...

Ansonsten halt an diese Stelle einfach eine der Uhrzeit-/Datumfunktionen aus dem Wiki-Link nehmen, falls die Readingzeit nicht passt/gefällt...

Anmerkungen (teilweise nochmal):

ReadingsVal / ReadingsNum statt Value

Die Abfrage von/mittels Oldreading ist unnötig, wenn event-on-change-reading genutzt würde...

Bessere/"schärfere" Regex beim notify, weil aktuell triggert das notify auf ALLES was von myIP1 kommt...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tom111

Zitat von: MadMax-FHEM am 17 Oktober 2021, 19:00:38
Mal angenommen das funktioniert:

Dann einfach z.B. Uhrzeit/Datum des IP-Readings mitsenden:


define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1").' DatumUhrzeit:'.'ReadingsTimestamp("myIP1","IP","00:00:00"));;}}


Wobei wie geschrieben wäre etwas mehr Info schon auch nett.
Z.B. an welche Stelle beim Senden denn der Betreff gehört.
EDIT: laut Wiki wohl eher da wo du jetzt IP stehen hast? Dann halt den Code dort hin...
Ein list des Devices auf welches dein notify wirkt/wirken soll, damit man eben sehen kann welches Reading man abfragen könnte sollte...
...daher habe ich einfach mal das Reading "IP" genommen, in der Annahme, dass das Reading so heißt und auch der Zeitstempel da passt...

Ansonsten halt an diese Stelle einfach eine der Uhrzeit-/Datumfunktionen aus dem Wiki-Link nehmen, falls die Readingzeit nicht passt/gefällt...

Anmerkungen (teilweise nochmal):

ReadingsVal / ReadingsNum statt Value

Die Abfrage von/mittels Oldreading ist unnötig, wenn event-on-change-reading genutzt würde...

Bessere/"schärfere" Regex beim notify, weil aktuell triggert das notify auf ALLES was von myIP1 kommt...

Gruß, Joachim

Hallo Joachim,

danke für deine Hilfe,
zuerst einmal, JA, das funktioniert einwandfrei:
Zitatdefine MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1"));;}}

und bevor ich sonst irgendwas ändere, würde ich gerne die Zeit mitsenden lassen bevor ich beginn Schönheitsreparaturen vorzunehmen.
Immerhinn muss ich für jede Änderung die Konfiguration neu einlesen bzw. FHEM neu laden und dann auch noch immer die IP Adresse ändern, das ist mir im Moment einfach zu viel, ich hoffe du verstehst das!?
Ich habe mal deine Version getestet und sie funktioniert so leider nicht.
Zitatdefine MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1").' DatumUhrzeit:'.'ReadingsTimestamp("myIP1","IP","00:00:00"));;}}

Folgende Fehlermeldung läuft dann im LOG auf:
Zitat2021.10.17 19:24:09 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1"),'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1").' DatumUhrzeit:'.'ReadingsTimestamp("myIP1","IP:","00:00:00"));}}: Can't find string terminator "'" anywhere before EOF at (eval 398) line 1.

2021.10.17 19:24:09 3: MAIL_myIP return value: Can't find string terminator "'" anywhere before EOF at (eval 398) line 1.

Danke nochmals für deine Bemühungen, ich seh schon, das wird etwas länger dauern bis ich das hinbekomme!

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

#5
Ja da hab ich einen einzelnen Anführungszeichen vergessen: du darfst ruhig drüber schauen und versuchen zu verstehen was gepostet wird.

Letztendlich ist es DEIN System...

Und: fhem cfg neu laden und fhem neu starten etc.: KOMPLETTER QUATSCH!!

Du kannst doch beim notify (von dem es immer noch kein list gibt, genausowenig wie von anderen beteiligten Devices) in DEF klicken und anpassen.
Modify INKL: PRÜFUNG! drücken fertig.

Editierst du manuell in der fhem.cfg? -> LASS ES!!

Und wie geschrieben: der Betreff ist denke ich da wo bei dir das mit IP steht...

Und: es sind keine kosmetischen Dinge sondern u.U. "lebensnotwendige" Dinge (siehe z.B. Begründung warum nicht Value und auch bzgl. RegEx bei notify: irgendwann ändert sich da was und dann reagiert das notify nicht wie gewünscht/gedacht)...
...aber musst du wissen.

EDIT: weil es mir grad auffällt: das ist doch auch Käse
ZitatReadingsVal("myIP1","reading01Regex","IP:")
weil reading01Regex doch kein Reading sondern ein Attribut ist!? Aber wie geschrieben: ohne dass du endlich mal ein list lieferst kann man nicht wirklich helfen, sondern nur mutmasen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

und mit Value() zu arbeiten, ist generell eine ganz schlechte Idee...

Das Ganze geht übrigens auch ohne HTTPMOD, sofern es beispielsweise irgdeneinen DynDNS Namen für das gesuchte System gibt.


sub test {
  use Socket;
  return inet_ntoa((gethostbyname("ownHostName"))[4]);
}


In dem return könnte man natürlich auch das komplette subject für die email zusammenbauen und dann einfach den Funktionsaufruf in den Mailversand einbauen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Tom111

#7
Also, unter LISTS ist wohl das hier gemeint!?
Internals:
   BUSY       0
   DEF        https://www.wieistmeineip.de/ 30
   FUUID      6161d2d2-f33f-7267-a1a7-6b19ec950e3bde63
   Interval   30
   MainURL    https://www.wieistmeineip.de/
   ModuleVersion 4.1.10 - 6.7.2021
   NAME       myIP1
   NOTIFYDEV  global
   NR         917
   NTFY_ORDER 50-myIP1
   STATE      2.243.64.24
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   HTTPCookieHash:
     session;/:
       Name       session
       Options    path=/; domain=.wieistmeineip.de
       Path       /
       Value      22am06vj0f771riuprv3aui2g4
   HttpUtils:
     NAME       
     addr       https://www.wieistmeineip.de:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.wieistmeineip.de/
     header     Cookie: session=22am06vj0f771riuprv3aui2g4
     host       www.wieistmeineip.de
     httpheader HTTP/1.1 200 OK
Date: Mon, 18 Oct 2021 14:50:01 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 10298
Connection: close
Server: Apache
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Language: de-DE
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Access-Control-Allow-Origin: *
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /
     protocol   https
     redirects  0
     timeout    2
     url        https://www.wieistmeineip.de/
     sslargs:
   QUEUE:
   READINGS:
     2021-10-18 16:50:01   IP              2.243.64.24
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.wieistmeineip.de/
   defptr:
     readingBase:
       IP         reading
     readingNum:
       IP         01
     readingOutdated:
     requestReadings:
       update:
         IP         reading 01
Attributes:
   alias      externe IPv4
   devStateStyle style="color:red;text-align:middle;font-size:16px;font-weight:bold"
   event-on-change-reading .*
   event-on-update-reading IP:
   fp_Grundriss 38,562,0,,
   group      Raspberry
   icon       it_i-net
   reading01Name IP
   reading01Regex (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
   room       Wohnung
   sortby     005
   stateFormat IP


Zitat von: MadMax-FHEM am 17 Oktober 2021, 19:46:56
Ja da hab ich einen einzelnen Anführungszeichen vergessen: du darfst ruhig drüber schauen und versuchen zu verstehen was gepostet wird.

Auch mit dem fehlenden Anführungszeichen klappt das nicht. Es wird zwar keine Fehlermeldung erzeugt und die Mail wird verschickt aber der Code wird nicht verarbeitet sondern so wie er ist im Mail-Text mitgesendet!

Leider habe ich nicht allzuviel Zeit um eure Änderungen vorzunehmen, ich bin ja froh dass ich das so wie es ist alleine hinbekommen habe bis auf die Zeit die noch mitgesendet werden soll.

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

#8
Zitat von: Tom111 am 18 Oktober 2021, 17:05:06
Also, unter LISTS ist wohl das hier gemeint!?

Ja.



Zitat von: Tom111 am 18 Oktober 2021, 17:05:06
Auch mit dem fehlenden Anführungszeichen klappt das nicht. Es wird zwar keine Fehlermeldung erzeugt und die Mail wird verschickt aber der Code wird nicht verarbeitet sondern so wie er ist im Mail-Text mitgesendet!

Ich hab noch mal nachgebessert...
Aber wie geschrieben: du darfst ruhig auch selber schauen und kontrollieren und probieren!

Zitat von: Tom111 am 18 Oktober 2021, 17:05:06
Leider habe ich nicht allzuviel Zeit um eure Änderungen vorzunehmen, ich bin ja froh dass ich das so wie es ist alleine hinbekommen habe bis auf die Zeit die noch mitgesendet werden soll.

Aber wir sollen FÜR DICH Zeit "verplempern" oder wie?

Trotzdem Anmerkungen (jetzt wo das list da ist):

Zitat
   event-on-update-reading IP:

ist Unfug und nicht was du willst!
Bzw. dachtest zu tun...

Wenn dann wäre es so:    event-on-update-reading IP

Warum überhauot event-on-update für das einzige Reading das du hast, wenn du event-on-change-reading .* hast (was Sinn macht: Event NUR WENN SICH WAS ÄNDERT)

Wenn dein event-on-update richtig wäre, dann würdest du alle 30s eine eMail bekommen...
...gleiches wäre ganz OHNE event-on-...

Lesen bildet... ;)


Du hast doch auch gar kein Attribut oldreadings gesetzt. Wie soll dann OldValue funktionieren?
Bist du sicher, dass keine Fehler im Log sind? Also auch ohne meine Erwieterungen?

Zitat von: commandref
oldreadings
Dieses Attribut enthält eine durch Kommata getrennte Liste von Readings. regex sind erlaubt. Für jedes Reading aus der Liste speichert FHEM intern den vorherigen Wert wenn sich das Reading ändert. Zum Zugriff auf die Werte gibt es die OldReadings.* Routinen.

Und ist dank event-on-change-reading und FALSCHEM event-on-update-reading auch UNNÖTIG!
Glück gehabt...

Und halt immer noch: Value("NAME") ist halt nicht gut...

Aber was gebe ich mir Mühe...

Viel Spaß noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tom111

Genauso wollte ich das haben mit der Uhrzeit (hab es etwas abgeändert):
define MAIL_myIP notify myIP1 {if (ReadingsVal("myIP1","reading01Regex","IP:") ne OldValue("myIP1")) {DebianMail('xxxxx@gmail.com','IP-Adresse '.Value("myIP1").' - '.(split(' ',ReadingsTimestamp("myIP1","IP","00:00:00")))[1],'IP-Adresse hat sich geändert! Aktuelle IP: '.Value("myIP1").' DatumUhrzeit: '.ReadingsTimestamp("myIP1","IP","00:00:00"));;}}

Obwohl ich die Sekunden gerne weglassen würde, aber das werde ich noch herausfinden.

Jetzt ist ja immer noch offen, dass ich unter der Anzeige der IP-Adresse auf meinem XORO-Monitor genau diese Zeit (also wo sich die IP geändert hat) gerne angezeigt bekommen würde. Das wäre ja die Zeit, die im LOG als letzter Eintrag steht. Gibt es eine Möglichkeit, die Zeit aus dem LOG-Eintrag auszulesen und zur Anzeige zu bringen?

Im Moment sieht es so aus:
https://abload.de/img/2021-10-18_212531exkzb.png
unter der IP-Adresse (in rot) würde ich gerne die Zeit einfügen.

Gibt es da auch eine Lösung für?

Danke nochmal für deine Hilfe!

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

Nur Stunden Minuten:

entweder Wiki Uhrzeiten und dann eben nur die Stunden/Minuten nehmen (weil ja in dem Moment wo das notify läuft auch JETZT ist, also now ;)  )

oder halt das Ergebnis vom ersten split in ein weiteres split nach ':' (statt ' ' Leerzeichen) und dann eben [ 0 ] und [ 1 ] dazubauen und [ 2 ] (die Sekunden) weglassen...


Datum/Uhrzeit anzeigen zusätzlich zu IP: stateFormat erweitern...
stateFormat kennt auch Perl, also z.B. ReadingsTimestamp oder auch Zeitrechenfunktionen oder oder oder...

ABER: dann wird Value (verm.) NICHT mehr funktionieren (siehe Antworten zuvor!)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Tom111

Danke, das mit den Stunden und Minuten ist soweit in Ordnung, aber das ist nicht das wichtigste.
Ich wollte die Zeit des letzten Eintrages einer Datei (in diesem Fall der LOG-Datei) auslesen und anzeigen lassen.

Meine bisherigen Versuche klappten alle nicht. Die Zeit muss auch nicht unbedingt eingebunden werden in dem Code der IP-Adresse.
Lieber wäre mir auch eine separate Abfrage der Zeit aus dieser Datei.

Gruß
Tom
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

MadMax-FHEM

#12
Wenn du nun auch noch schreibst welcher Logdatei...

Könnte fhem-Log mutmaßen...
...aber in Mutmaßungen steck ich keine Arbeit...

Zitat
Meine bisherigen Versuche klappten alle nicht.
Darfst uns auch gerne zeigen was du bereits probiert hast...

Zitat
Lieber wäre mir auch eine separate Abfrage der Zeit aus dieser Datei.
Verstehe ich nicht...

Außerdem: wie wäre es mit einem neuen Thread?
Da lesen dann bestimmt mehr mit als bei diesem, wo der Betreff ja nicht mal passt...

Weil dem hier hättest du ja mitlerweile auch ein [gelöst] spendieren können... :)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)