FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: obi am 20 Juni 2020, 11:56:30

Titel: HTTPMOD oder Ähliches um komplette XML zu Readings umzuwandeln
Beitrag von: obi am 20 Juni 2020, 11:56:30
Hallo,

ich blicke gerade nicht durch wie ich mit HTTPMOD eine XML auslesen kann. Im Wiki kann ich nur finden wie ich einzelne Readings per Regex oder XPath erstellen kann. Ich möchte aber wie bei JSON alle Readings autmatisch erstellen lassen.

Es geht um das Auslesen meiner Firewall.
Folgendermaßen sieht die XML aus (nur ein kleiner Ausschnitt)
<?xml version="1.0" encoding="UTF-8"?>
<Response APIVersion="1702.1" IPS_CAT_VER="1">
  <Login>
    <status>Authentication Successful</status>
  </Login>
  <BridgePair transactionid="">
    <Status>No. of records Zero.</Status>
  </BridgePair>
  <VLAN transactionid="">
    <Zone>LAN</Zone>
    <Interface>Port1</Interface>
    <Name>Port1.11</Name>
    <VLANID>11</VLANID>
    <IPv4Configuration>Enable</IPv4Configuration>
    <IPv6Configuration>Disable</IPv6Configuration>
    <IPv4Assignment>Static</IPv4Assignment>
    <IPv6Address/>
    <IPv6Prefix/>
    <IPv6GatewayName/>
    <IPv6GatewayAddress/>
    <LocalIP/>
    <Status>Connected</Status>
    <IPv6Assignment/>
    <DHCPRapidCommit/>
    <IPAddress>192.168.11.1</IPAddress>
    <Netmask>255.255.255.0</Netmask>
  </VLAN>
  <VLAN transactionid="">
    <Zone>LAN</Zone>
    <Interface>Port1</Interface>
    <Name>Port1.12</Name>
    <VLANID>12</VLANID>
    <IPv4Configuration>Enable</IPv4Configuration>
    <IPv6Configuration>Disable</IPv6Configuration>
    <IPv4Assignment>Static</IPv4Assignment>
    <IPv6Address/>
    <IPv6Prefix/>
    <IPv6GatewayName/>
    <IPv6GatewayAddress/>
    <LocalIP/>
    <Status>Connected</Status>
    <IPv6Assignment/>
    <DHCPRapidCommit/>
    <IPAddress>192.168.12.1</IPAddress>
    <Netmask>255.255.255.0</Netmask>
  </VLAN>


Ich stelle mir das Ergebnis/Readings irgendwie so vor:
VLAN-01-Zone LAN
VLAN-01-Interface Port 1
VLAN-01-Name Port1.11
VLAN-02-Zone LAN
VLAN-02-Interface Port 1
VLAN-02-Name Port1.12
...

Ist es möglich das so einzustellen? Es wäre viel zu aufwendig für jedes einzelne Reading ein Attribut usw. zu konfigurieren.

VG Sebastian
Titel: Antw:HTTPMOD oder Ähliches um komplette XML zu Readings umzuwandeln
Beitrag von: amenomade am 20 Juni 2020, 13:21:20
Ein "extractAllXML", ähnlich wie "extractAllJSON", gibt es nicht.

Du hast aber kaum 20 Werte zu holen...
Titel: Antw:HTTPMOD oder Ähliches um komplette XML zu Readings umzuwandeln
Beitrag von: betateilchen am 20 Juni 2020, 21:18:39
Da die Struktur ja bekannt und offenbar recht einfach ist, kannst Du sowas einfach in Deiner 99_myUtils.pm umsetzen. Dafür braucht man nicht immer HTTPMOD.

Im Forum gibt es schon eine ganze Reihe Beispiele, wie man XML Daten mit wenigen Zeilen Code extrahieren kann.
Titel: Antw:HTTPMOD oder Ähliches um komplette XML zu Readings umzuwandeln
Beitrag von: obi am 26 Juni 2020, 19:22:03
Danke für die Hinweise,

ich habe jetzt auch nur die Werte die ich benötige Geholt, da war der Aufwand doch eher gering.

VG