Autor Thema: Kostenloser DDNS Dienst aus FHEM  (Gelesen 6533 mal)

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2437
  • FHEMinist
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #30 am: 27 Dezember 2021, 14:59:46 »
Hab das mal so gemacht, tut sich aber nichts, wird immer noch nur die IP-Adresse angezeigt!

userReading nicht richtig definiert: https://fhem.de/commandref_DE.html#userReadings

stateFormat nicht angepasst: https://fhem.de/commandref_DE.html#stateFormat

So'n bisschen Eigeninitiative darf schon auch sein  ;)

gb#

EDIT: Und bevor hier gemeckert wird hier die komplett vorgekaute Lösung:

attr myIP stateFormat IP (lastChange)
attr myIP userReadings lastChange:IP.* {ReadingsTimestamp($name,'IP','no time')}
« Letzte Änderung: 27 Dezember 2021, 15:02:42 von Benni »
Hilfreich Hilfreich x 1 Liste anzeigen

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12032
  • NIVEAu ist keine Creme...
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #31 am: 27 Dezember 2021, 15:20:34 »
Und bevor kommt: es passiert nichts...
...ein userReadings wird nat. erst "erstellt" bzw. aktualisiert, wenn es auch "getriggert" wurde.

Also verm. erst nach dem nächsten IP-Wechsel...

Nachzulesen in Wiki und Commandref (wie so ziemlich alles ;)  )...

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)
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Tom111

  • Sr. Member
  • ****
  • Beiträge: 553
  • Das Ziel ist das Ziel :D
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #32 am: 27 Dezember 2021, 15:24:45 »
userReading nicht richtig definiert: https://fhem.de/commandref_DE.html#userReadings

stateFormat nicht angepasst: https://fhem.de/commandref_DE.html#stateFormat

So'n bisschen Eigeninitiative darf schon auch sein  ;)

gb#

EDIT: Und bevor hier gemeckert wird hier die komplett vorgekaute Lösung:

attr myIP stateFormat IP (lastChange)
attr myIP userReadings lastChange:IP.* {ReadingsTimestamp($name,'IP','no time')}

Endlich mal jemand mit einer brauchbaren Lösung!
Man braucht halt nur den richtigen Ansprechpartner!

Danke für deine Hilfe!!

Gruß
Tom

PS: Jetzt muss ich nur noch das Datum wegbekommen, ich brauch nur die Uhrzeit!
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

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 12032
  • NIVEAu ist keine Creme...
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #33 am: 27 Dezember 2021, 16:11:00 »
Endlich mal jemand mit einer brauchbaren Lösung!
Man braucht halt nur den richtigen Ansprechpartner!

Danke für deine Hilfe!!

So lernst du halt nicht es irgendwann mal selber machen zu können...

EDIT: geht nat. keinesfalls "gegen" dich Benni! 8)

PS: Jetzt muss ich nur noch das Datum wegbekommen, ich brauch nur die Uhrzeit!

Siehe Split im anderen Thread...

Ah, sorry, du willst ja gleich die fertige 100% passende Lösung...
...dann muss wohl wieder jemand anders dran ;)

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)
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Tom111

  • Sr. Member
  • ****
  • Beiträge: 553
  • Das Ziel ist das Ziel :D
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #34 am: 27 Dezember 2021, 16:25:34 »
So lernst du halt nicht es irgendwann mal selber machen zu können...

EDIT: geht nat. keinesfalls "gegen" dich Benni! 8)

Siehe Split im anderen Thread...

Ah, sorry, du willst ja gleich die fertige 100% passende Lösung...
...dann muss wohl wieder jemand anders dran ;)

Gruß, Joachim

Zu deiner Beruhigung: Nein ich brauche keine weitere Hilfe mehr, alles andere habe ich selber hinbekommen!

Zu deiner Information: Benni hat mir nur einen kleinen Teil von dem gezeigt was ich brauchte, aber das verstehst du sicher nicht!

@MadMax-FHEM ... DU eignest dich einfach nicht dafür um hier Hilfestellungen zu geben, du hattest 2 Monate Zeit mir einen Weg zu zeigen, warst aber nicht in der Lage dies zu bewerkstelligen. In diesem Thread war ich gerade mal 2 Stunden und schon bin ich ein ganzes Stück weiter. Von dir kam immer nur Gemecker und dass ich mich nicht genügend informiere, das ist aber nicht wahr, DU konntest mir einfach nicht meine Fragen beantworten.

Nichtsdestotrotz bin ich jetzt (Dank Benni) ein ganzes Stück weitergekommen.

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

Offline Tom111

  • Sr. Member
  • ****
  • Beiträge: 553
  • Das Ziel ist das Ziel :D
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #35 am: 27 Dezember 2021, 17:20:16 »
So, bin jetzt fertig!
Für alle die, die sowas auch benötigen hier der Code:
define myIP1 HTTPMOD https://www.wieistmeineip.de/ 30
setuuid myIP1 6161d2d2-f33f-7267-a1a7-6b19ec950e3bde63
attr myIP1 alias externe IPv4
attr myIP1 devStateStyle style="color:red;;text-align:middle;;font-size:18px;;font-weight:bold"
attr myIP1 event-on-change-reading IP.*
attr myIP1 event-on-update-reading IP:
attr myIP1 fp_Grundriss 160,42,0,,
attr myIP1 group Raspberry
attr myIP1 icon it_i-net
attr myIP1 reading01Name IP
attr myIP1 reading01Regex (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
attr myIP1 room Wohnung
attr myIP1 sortby 005
attr myIP1 stateFormat IP <br> lastChange
attr myIP1 userReadings lastChange:IP.* {(split(' ',ReadingsTimestamp("$name","IP",0)))[1]}

Durch das
event-on-change-reading IP.*wird nur ein LOG-Eintrag erzeugt und das "lastChange" ganz weg gelassen; wird auch nicht benötigt, da die Zeit eh im LOG steht!

Das <br> funktioniert zwar in FHEM, wird aber in einer Mail nicht aufgelöst, was besseres ist mir nicht eingefallen (stört aber nicht weiter)!

So weiß ich jetzt immer ob ich meine FritzBox neu verbinden muss, oder ob der Download (den ich vorhabe zu tätigen) noch im 24h Zeitraster passt!
Dazu genügt ein Blick auf meinem XORO-Monitor neben meinem PC!  :)

Nochmals Gruß an Benni für deine schnelle Hilfe, ansonsten hätte ich hier nochmals ein paar Monate getüftelt!

Gruß
Tom

So sieht das ganze dann aus:
« Letzte Änderung: 27 Dezember 2021, 17:26:31 von Tom111 »
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

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2437
  • FHEMinist
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #36 am: 27 Dezember 2021, 17:46:38 »
define myIP1 HTTPMOD https://www.wieistmeineip.de/ 30
setuuid myIP1 6161d2d2-f33f-7267-a1a7-6b19ec950e3bde63
attr myIP1 alias externe IPv4
attr myIP1 devStateStyle style="color:red;;text-align:middle;;font-size:18px;;font-weight:bold"
attr myIP1 event-on-change-reading IP.*
attr myIP1 event-on-update-reading IP:
attr myIP1 fp_Grundriss 160,42,0,,
attr myIP1 group Raspberry
attr myIP1 icon it_i-net
attr myIP1 reading01Name IP
attr myIP1 reading01Regex (?s)Ihre IP-Adresse?.*strong>([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)
attr myIP1 room Wohnung
attr myIP1 sortby 005
attr myIP1 stateFormat IP <br> lastChange
attr myIP1 userReadings lastChange:IP.* {(split(' ',ReadingsTimestamp("$name","IP",0)))[1]}

Durch das
event-on-change-reading IP.*wird nur ein LOG-Eintrag erzeugt und das "lastChange" ganz weg gelassen; wird auch nicht benötigt, da die Zeit eh im LOG steht!

Das <br> funktioniert zwar in FHEM, wird aber in einer Mail nicht aufgelöst, was besseres ist mir nicht eingefallen (stört aber nicht weiter)!

So weiß ich jetzt immer ob ich meine FritzBox neu verbinden muss, oder ob der Download (den ich vorhabe zu tätigen) noch im 24h Zeitraster passt!
Dazu genügt ein Blick auf meinem XORO-Monitor neben meinem PC!  :)

Nochmals Gruß an Benni für deine schnelle Hilfe, ansonsten hätte ich hier nochmals ein paar Monate getüftelt!

Schön wenn es funktioniert, auch wenn du anscheinend noch nicht ganz verstanden hast, was für was da ist:

event-on-change-reading=IP.* erzeugt ein event wenn sich der Wert eines Readings ändert und dessen Namen mit "IP" beginnt. Gut, dass zufällig nur genau eines da ist, das IP heißt.
Ein Log-Eintrag wird dadurch übrigens nicht erzeugt, das passiert ggf. in einem notify, wenn es auf einen event eines Readings triggert, das "IP" im Namen beginnt. (Gut das nur das eine da ist!)

Wenn das notify das mit dem Trigger aus dem ersten Post ist (ich gehe stark davon aus!), weiß das notify natürlich nichts von lastChange, woher auch, es triggert ja auf alle Events, die mit IP.* beginnen. Wenn du dort auch die Zeit haben willst, muss du sie dir auch dort per ReadingsTimestamp beschaffen (Weißt ja jetzt, wie das geht ;) )
oder alternativ gleich das reading lastChange per ReadingsVal() holen.

Dein event-on-update-reading=IP: macht glücklicherweise nichts und kann somit auch gelöscht werden.
Wenn der Doppelpunkt nicht wäre, würde immer ein Event ausgelöst, wenn sich das Reading IP aktualiseirt, egal ob der Wert dabei derselbe ist, oder ein anderer und demzufolge würde dann auch das userReading neu interpretiert und somit lastChange auf den Zeitpunkt dieses Events festgesetzt, das wäre bei einem Intervall von 900 alle 15Minuten!

<br> funktioniert in deiner Mail nur dann wenn es dort in einem entsprechenden html-Body steht und nicht in einer einfachen Text-Mail. Dort müsstest du das <br> bei übernahme durch ein \n ersetzen ;)
<br> funktioniert übrigens auch nur in FHEMWEB, aber nicht in telnet!

gb#

Offline Tom111

  • Sr. Member
  • ****
  • Beiträge: 553
  • Das Ziel ist das Ziel :D
Antw:Kostenloser DDNS Dienst aus FHEM
« Antwort #37 am: 27 Dezember 2021, 18:18:52 »
Dein event-on-update-reading=IP: macht glücklicherweise nichts und kann somit auch gelöscht werden.
Wenn der Doppelpunkt nicht wäre, würde immer ein Event ausgelöst, wenn sich das Reading IP aktualiseirt, egal ob der Wert dabei derselbe ist, oder ein anderer und demzufolge würde dann auch das userReading neu interpretiert und somit lastChange auf den Zeitpunkt dieses Events festgesetzt, das wäre bei einem Intervall von 900 alle 15Minuten!

Danke für deine ausführliche Erklärung!
Ganz am Anfang habe ich auch gedacht, aber das "event-on-update-reading" habe ich nicht ohne Grund eingebaut. Ich kann mich erinnern, dass ich ohne "event-on-update-reading" Probleme hatte, ich glaube dass damals das LOG vollgeschrieben wurde mit ein und derselben IP-Adresse. Nach dem Einsatz von "event-on-update-reading" klappte das Ganze dann mit jeweils nur ein LOG-Eintrag pro Adresse.

Aber es funktioniert ja jetzt ohne Probleme und genauso wie ich es haben wollte!  :)
Deshalb werde ich an dieser Funktion nicht mehr herumzuschrauben, es sei denn ich hab mal wieder Zeit ohne Ende und kann mir mal ein Testsystem aufbauen.
Alles was ich hier mach läuft auf meinem scharfen System das ich vor 6 Jahren angefangen habe aufzubauen und mittlerweile so komplex ist dass ich selber nicht mehr durchblicke.  ;D
Meine "fhem.cfg" hat mittlerweile über 3500 Zeilen und alles ist irgendwie mit allem verknüpft genau deshalb kann ich nicht viel herum experimentieren.  ;)

Danke nochmals an dich dass du dir die Zeit genommen hast!

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

 

decade-submarginal