Hauptmenü

Regex Optionen

Begonnen von LotharRappsilber, 06 November 2023, 12:18:27

Vorheriges Thema - Nächstes Thema

betateilchen

#15
Der Inhalt der Webseite, der an den Browser geliefert wird, ist nicht automatisch identisch zu dem Inhalt, der in HTTPMOD ankommt, wenn die gleiche URL aufgerufen wird.

Im HTTPMOD body ist die IPv6 nicht enthalten.
Deshalb kann die ip darin nicht gefunden werden.

Das versuche ich seit mehr als zwei Stunden zu erklären...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

frank

ZitatIm HTTPMOD body
ich denke hier fehlt schon das "wissen", was hier mit body gemeint ist.


attr showBody
ZitatshowBody
if set to 1 then the body of http responses will be visible as internal httpbody.

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

LotharRappsilber

Hab ich verstanden, aber wie bekomme ich ipv6 anders?
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

#18
Das geht auch ganz ohne HTTPMOD.

sub ip_test {
  use Net::Address::IP::Local;

  my $address      = eval {Net::Address::IP::Local->public};
  if ($@) {
    Debug "Could not determine IP address";
  } else {
    Debug $address;
  }

  my $address_ipv4 = eval {Net::Address::IP::Local->public_ipv4};
  if ($@) {
    Debug 'Failed via IPv4';
  } else {
    Debug $address_ipv4;
  }

  my $address_ipv6 = eval { Net::Address::IP::Local->public_ipv6};
  if ($@) {
    Debug 'Failed via IPv6';
  } else {
    Debug $address_ipv6;
  }
}

Das Ganze läßt sich problemlos so einbinden, dass z.B. per at regelmäßig die readings in einem dummy beschrieben werden.
Oder man stellt die Daten einfach systemweit in %data zur Verfügung und braucht überhaupt kein extra device zur Ablage.
Oder oder oder...

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

LotharRappsilber

Danke das Du Dir so viel Mühe gemacht hast, aber wo soll ich Deine Datei in der cfg einbinden?
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

Perl code in Form von Funktionen gehört nicht in die Konfiguration, sondern in die 99_myUtils.pm.

Das war auch nur ein grobes Schema, um zu zeigen, wie man an die IPs kommen könnte.
Im Beispiel landen die ip-Adressen als Debug-Ausgabe im Logfile, auch das müsste man noch anpassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JudgeDredd

Hallo LotharRappsilber,

ich möchte mich nicht groß einmischen, aber eine Adressermittlung habe ich z.B. in einem AT so umgesetzt.
(als RAW einfügen)
defmod myIP at *04:00:00 { \
  readingsSingleUpdate( $defs{ $SELF }, 'IPv4', GetFileFromURL( 'http://checkip4.spdyn.de/' ), 1 );;\
  readingsSingleUpdate( $defs{ $SELF }, 'IPv6', GetFileFromURL( 'http://checkip6.spdyn.de/' ), 1 )\
}

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

LotharRappsilber

Danke für den Tipp, aber was bedeutet RAW?
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

LotharRappsilber

Danke für den Tipp, aber was bedeutet RAW und wo sollte ich den Code einfügen?
FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL

betateilchen

Du darfst diesen Dateianhang nicht ansehen.

Da oben auf das Pluszeichen klicken und dann den Code in das Fenster eingeben.
Mit "Execute" ausführen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

LotharRappsilber

FB 7590, FHEM, 1xCCU2, 6xDECT200, 1xDECT201, 1xHMIP-SWO-PL, 1xHMIP-PS, 1xDECT301,  2xHM-LC-Sw1-PL