[gelöst]Anfängerfrage an die httpmod Experten - json Datei einlesen

Begonnen von supernova1963, 04 Mai 2017, 11:47:16

Vorheriges Thema - Nächstes Thema

supernova1963

Erst einmal ein freundliches: Hallo, danke, dass du dir die Zeit nimmst.

Meine Herausforderung:

Ich habe eine json Datei unter /opt/fhem/www/fing/clientscan.json mit folgendem Inhalt:

[{'Address':'192.168.1.5','Family':'INET4','FirewallDetected':'false','Hostname':'','CustomName':'SERVE
RFHEM-443','ScanResult':'OK','HardwareAddress':'00:1C:42:06:05:35','Services':[{'Port':'21','Protocol':
'TCP','Name':'ftp','Description':'File Transfer Protocol',},{'Port':'22','Protocol':'TCP','Name':'ssh',
'Description':'SSH Secure Shell',},{'Port':'80','Protocol':'TCP','Name':'http','Description':'World Wid
e Web HTTP',},{'Port':'139','Protocol':'TCP','Name':'netbios-ssn','Description':'NETBIOS Session Servic
e',},{'Port':'443','Protocol':'TCP','Name':'https','Description':'Secure World Wide Web HTTP (SSL)',},{
'Port':'445','Protocol':'TCP','Name':'microsoft-ds','Description':'SMB directly over IP',},{'Port':'100
00','Protocol':'TCP','Name':'snet-sensor-mgmt','Description':'SecureNet Pro Sensor https management ser
ver or apple airport admin',},]},]


Meine laienhafte Vorstellung war mit:

defmod test HTTPMOD http://192.168.1.11:8083/fhem/fing/scanclient.json 60
attr test extractAllJSON 1

die Daten auszulesen und als Reading anzulegen.
So einfach funktioniert das scheinbar nicht.

Das Log zeigt:
2017.05.04 11:17:48 3: test: Defined with URL http://192.168.1.11:8083/fhem/fing/scanclient.json and interval 60
2017.05.04 11:17:50 3: test: no parsed JSON structure available
2017.05.04 11:17:50 3: test: Read response to update didn't match any Reading


Die Datei hat es scheinbar gefunden und festgestellt, dass keine zu analysierende JSON Struktur verfügbar ist.
Bedeutet es, dass ich die Readings manuell anlegen muss, und, wenn ja, dann wie (Es sollen alle Informationen in Form von Readings ausgelesen werden).

Wenn nein, wie würdest du die Herausforderung angehen? Ich hätte alternativ die Möglichkeit die Datei als xml, html oder csv generieren zu lassen.

Danke,

Gernot


Ich habe gerade das List von test gelesen:

Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        http://192.168.1.11:8083/fhem/fing/scanclient.json 60
   Interval   60
   JSONEnabled 1
   LASTSEND   1493889710.7295
   MainURL    http://192.168.1.11:8083/fhem/fing/scanclient.json
   ModuleVersion 3.3.9 - 23.3.2017
   NAME       test
   NR         11690
   STATE      ???
   TRIGGERTIME 1493889770.72915
   TRIGGERTIME_FMT 2017-05-04 11:22:50
   TYPE       HTTPMOD
   addr       http://192.168.1.11:8083
   buf
   code       401
   conn
   data
   displayurl http://192.168.1.11:8083/fhem/fing/scanclient.json
   header
   host       192.168.1.11
   httpheader HTTP/1.1 401 Authorization Required

WWW-Authenticate: Basic realm="FHEM: login required"

X-FHEM-csrfToken: csrf_159526914186657

Content-Length: 0
   httpversion 1.0
   hu_blocking 0
   hu_filecount 5
   hu_portSfx :8083
   ignoreredirects 0
   loglevel   4
   path       /fhem/fing/scanclient.json
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.1.11:8083/fhem/fing/scanclient.json
   value      0
   QUEUE:
   Readings:
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.1.11:8083/fhem/fing/scanclient.json
     value      0
   Sslargs:
Attributes:
   extractAllJSON 1


Da macht mich die Zeile httpheader HTTP/1.1 401 Authorization Required

WWW-Authenticate: Basic realm="FHEM: login required"

X-FHEM-csrfToken: csrf_159526914186657
stutzig. Sollte es am csrfToken liegen, dann stellt sich die Frage, wie kann ich, ohne den csrfToken in 8083 web auszuschalten, auf die Datei zugreifen bzw. wo würdest du die Datei ablegen?

Danke,

Gernot






StefanStrobel

Hallo Gernot,

wenn die Datei schon auf Deinem Fhem-System liegt, probier es doch mal mit einer file:// URL ...

Gruss
   Stefan

supernova1963

Hallo Stefan,

Danke für den Tip. Doch ich wie lautete der Pfad?

file://opt/fhem/www/fing/scanclient.json

funktioniert nicht.

Danke,

Gernot

supernova1963

Hallo zusammen,

ich bin scheinbar ein kleines Stück weitergekommen.
Kann es sein, dass HTTPMOD für Jason nur ["] und keine ['] akzeptiert, oder muss ich das irgendwo einstellen?
Aktueller log-Eintrag:
2017.05.05 05:17:38 3: test: error while parsing JSON data: '"' expected, at character offset 2 (before "'Address':'192.168.1...") at (eval 21753) line 1.


Danke,

Gernot

Aktuelles List:
Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        http://192.168.1.11:8083/fhem/fing/scanclient.json  60
   Interval   60
   JSONEnabled 1
   LASTSEND   1493953778.29805
   MainURL    http://192.168.1.11:8083/fhem/fing/scanclient.json
   ModuleVersion 3.3.9 - 23.3.2017
   NAME       test
   NR         42
   STATE      ???
   TRIGGERTIME 1493953838.29769
   TRIGGERTIME_FMT 2017-05-05 05:10:38
   TYPE       HTTPMOD
   addr       http://192.168.1.11:8083
   auth       fhem:*****
   buf
   code       200
   conn
   data
   displayurl http://192.168.1.11:8083/fhem/fing/scanclient.json
   header
   host       192.168.1.11
   httpheader HTTP/1.1 200 OK

Expires: Fri May  5 03:24:38 2017 GMT

X-FHEM-csrfToken: csrf_777512757090432

ETag: "1493915272"

Transfer-Encoding: chunked

Content-Type: text/json; charset=UTF-8
   httpversion 1.0
   hu_blocking 0
   hu_filecount 865
   hu_portSfx :8083
   ignoreredirects 0
   loglevel   4
   path       /fhem/fing/scanclient.json
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.1.11:8083/fhem/fing/scanclient.json
   value      0
   QUEUE:
   Readings:
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.1.11:8083/fhem/fing/scanclient.json
     value      0
   Sslargs:
Attributes:
   extractAllJSON

MadMax-FHEM

Ich bin ja jetzt kein json-Spezialist aber auch (diverse) json-Validatoren ;) meckern:

https://jsonformatter.curiousconcept.com/

Invalid JSON (RFC 4627)

Error:Strings should be wrapped in double quotes.[Code 17, Structure 3]


ODER:

https://jsonlint.com/

Error: Parse error on line 1:
[{      'Address': '192.168.
----^
Expecting 'STRING', '}', got 'undefined'


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)

amenomade

ZitatKann es sein, dass HTTPMOD für Jason nur ["] und keine ['] akzeptiert, oder muss ich das irgendwo einstellen?
Das ist nicht HTTPMOD, das ist das standard JSON Perl Modul !

Gruß
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Thorsten Pferdekaemper

Hi,
mal woanders angesetzt: Wo kommt die Datei denn her? Dort müsste man ja dafür sorgen, dass richtiges Json produziert wird.
Gruß,
   Thorsten
FUIP

supernova1963

Danke Joachim,

dein konstruktiver Tip mit den json-Validatoren hilft mir.

Falsch sind neben den ['] auch die Kommata am Ende der "collections".

@Thorsten: Die Datei wird von der fing (overlook fing) erzeugt. Ich schau mir die properties Dateien mal näher an, ob da etwas einstellbar ist.

LG

Gernot

supernova1963

#8
Also, auf den ersten Blick kann man in den properties nur für die csv den delimiter ändern. Von json konnte ich adhoc nichts finden.
Ich habe die Datei manuell korrigiert und siehe da, es "läuft".

Gibt es eine einfache bzw. geeignete Lösung die Ersetzungen ' -> " und ,} -> } und ,] -> ] umzusetzen, oder würdet ihr output xml bzw. html wählen?

Danke,

Gernot


     Readings:
     2017-05-05 08:56:00   01_Address      192.168.1.4
     2017-05-05 08:56:00   01_CustomName   HomematicCCU2-80
     2017-05-05 08:56:00   01_Family       INET4
     2017-05-05 08:56:00   01_FirewallDetected false
     2017-05-05 08:56:00   01_HardwareAddress 00:1A:22:08:3D:4F
     2017-05-05 08:56:00   01_Hostname
     2017-05-05 08:56:00   01_ScanResult   OK
     2017-05-05 08:56:00   01_Services_01_Description SSH Secure Shell
     2017-05-05 08:56:00   01_Services_01_Name ssh
     2017-05-05 08:56:00   01_Services_01_Port 22
     2017-05-05 08:56:00   01_Services_01_Protocol TCP
     2017-05-05 08:56:00   01_Services_02_Description World Wide Web HTTP
     2017-05-05 08:56:00   01_Services_02_Name http
     2017-05-05 08:56:00   01_Services_02_Port 80
     2017-05-05 08:56:00   01_Services_02_Protocol TCP
     2017-05-05 08:56:00   01_Services_03_Description cisco identification port
     2017-05-05 08:56:00   01_Services_03_Name tcp-id-port
     2017-05-05 08:56:00   01_Services_03_Port 1999
     2017-05-05 08:56:00   01_Services_03_Protocol TCP
     2017-05-05 08:56:00   01_Services_04_Description or nfr20 web queries
     2017-05-05 08:56:00   01_Services_04_Name dc
     2017-05-05 08:56:00   01_Services_04_Port 2001
     2017-05-05 08:56:00   01_Services_04_Protocol TCP
     2017-05-05 08:56:00   01_Services_05_Description Or nfr411
     2017-05-05 08:56:00   01_Services_05_Name search
     2017-05-05 08:56:00   01_Services_05_Port 2010
     2017-05-05 08:56:00   01_Services_05_Protocol TCP


Der html output sähe so aus:
<HTML><HEAD><STYLE>BODY { FONT-SIZE: 12px; FONT-FAMILY: Tahoma }
STRONG { COLOR: dimgray; FONT-FAMILY: Tahoma }
TD { FONT-SIZE: 11px; FONT-FAMILY: Tahoma; COLOR: black}
A { FONT-SIZE: 11px; COLOR: darkslategray; FONT-FAMILY: Tahoma; TEXT-DECORATION: none }
#UP { }
#DOWN { background: #FFBBBB }
.HEADER { width: 100%; FONT-SIZE: 12px;}
.DISCOVERY { width: 100%; border: 0px; background: gray; border-collapse: separate; border-spacing: 1px; *border-collapse: expression('separate', cellSpacing = '1px');}
.DISCOVERY TR { background: white }
.DISCOVERY TH { background: #dadada; FONT-SIZE: 12px}
</STYLE></HEAD><BODY><TABLE class="HEADER"><tr><td>2017/05/04 18:27:52 <b><a target='_blank' href='http://www.overlooksoft.com'>overlook fing v3.0</a></b></td><td align="right">&nbsp;</td></tr></table><br><TABLE><tr><td><font size="4">Service scan result for <br></font></td><td><font size="4">HomematicCCU2-80 (192.168.1.4 00:1A:22:08:3D:4F) - 5 services up</font></td></tr></table><TABLE class="DISCOVERY"><TR><TH><center><B>Port</TH><TH><B>Service</TH><TH><B>Description</TH></TR><TR><TD><center>22</TD><TD>ssh</TD><TD>SSH Secure Shell</TD></TR><TR><TD><center>80</TD><TD>http</TD><TD>World Wide Web HTTP</TD></TR><TR><TD><center>1999</TD><TD>tcp-id-port</TD><TD>cisco identification port</TD></TR><TR><TD><center>2001</TD><TD>dc</TD><TD>or nfr20 web queries</TD></TR><TR><TD><center>2010</TD><TD>search</TD><TD>Or nfr411</TD></TR></TABLE><BR><BR></BODY></HTML>


Der xml output sähe so aus:
<?xml version="1.0" encoding="UTF-8"?><Hosts><Host><Address>192.168.1.4</Address><Family>INET4</Family><FirewallDetected>false</FirewallDetected><Hostname></Hostname><CustomName>HomematicCCU2</CustomName><ScanResult>OK</ScanResult><HardwareAddress>00:1A:22:08:3D:4F</HardwareAddress><Services><Service><Port>22</Port><Protocol>TCP</Protocol><Name>ssh</Name><Description>SSH Secure Shell</Description></Service><Service><Port>80</Port><Protocol>TCP</Protocol><Name>http</Name><Description>World Wide Web HTTP</Description></Service><Service><Port>1999</Port><Protocol>TCP</Protocol><Name>tcp-id-port</Name><Description>cisco identification port</Description></Service><Service><Port>2001</Port><Protocol>TCP</Protocol><Name>dc</Name><Description>or nfr20 web queries</Description></Service><Service><Port>2010</Port><Protocol>TCP</Protocol><Name>search</Name><Description>Or nfr411</Description></Service></Services></Host></Hosts>

Das genutzte Programm findet ihr hier: https://www.fing.io/download-free-ip-scanner-for-desktop-linux-windows-and-osx/#linux

Thorsten Pferdekaemper

Hi,
die Ersetzungen könntest Du schon mit ein bisschen Perl/Python/Awk oder was auch immer machen.
Allerdings kann ich mir vorstellen, dass es einfacher wäre, auf XML zu gehen und dann xpath laut Commandref zu verwenden.
Gruß,
   Thorsten
FUIP

supernova1963

Hallo zusammen,

habe ich gemacht. Funktioniert soweit auch, wenn ich nur ein Gerät abfrage.

Jetzt habe ich das gleiche mit einem discover versucht. Da kommt es vor, dass z.B. der Hersteller (Vendor) nicht ermittelt werden konnte und der xml Eintrag leer bleibt.

Definiere ich die Readings mit:

attr fingDiscover reading07Name Vendor
attr fingDiscover reading07XPath-Strict //Vendor/text()


Werden die gefüllten Readings zu Vendor aufsteigend nummeriert (vendor-1, ...). Leider fehlt mir dann der Bezug zum Gerät/IP.

Wie bekomme ich es hin, das der "Tree" so abgebildet wird, dass ich auch bei leeren Werten eine korrekte Zuordnung habe?

Danke,

Gernot


Thorsten Pferdekaemper

Hi,
ich kann mir vorstellen, dass an der Stelle HTTPMOD dann doch überfordert ist...
Vielleicht hat aber sonst noch jemand eine Idee.
Gruß,
   Thorsten
FUIP

StefanStrobel

Hallo,

Für HTTPMOD bleibt dann noch die parseFunction. Damit kann man eigene Perl-Funktionen zum Parsen einbinden.
Allerdings kann man dann auch gleich auf HTTPMOD verzichten. Die Daten liegen ja lokal vor und müssen gar nicht per HTTP abgeholt werden...

Gruss
    Stefan

supernova1963

Irgendwie gefiel mir bei json im httpmod das automatische Anlegen der Readings. Deswegen habe ich Modul gestrickt, dass die nicht geeignete json Formatierung korrigiert.
Das geht sicher eleganter, wenn man perl beherrscht und sich mit regex auskennt. Verbesserungsvorschläge sind willkommen:

fingScanJson($)
{
    my ($ips) = @_;
    if (length $ips > 7) {
        my $rc = "sudo fing -s ".$ips." -o json,/opt/fhem/www/fing/scanclient.json -o html,/opt/fhem/www/fing/scanclient.html&";
    }
    else {
        my $rc = "sudo fing -s ".ReadingsVal("nmapPortScan","IP","")." -o json,/opt/fhem/www/fing/scanclient.json -o html,/opt/fhem/www/fing/scanclient.html&";   
    }
#Original fing - Datei in $str einlesen
    my $fingDatei = "/opt/fhem/www/fing/scanclient.json";
    my $str = "";
    open (DATEI, "<".$fingDatei) or die $!;
        while(<DATEI>){
        $str = $str.$_;
        }
    close (DATEI);
#Code mit https://regex101.com generiert
#Einfache Anführungszeichen ['] durch doppelte ["] ersetzen
    my $regex = qr/'/p;
    my $subst = '"';
    my $result = $str =~ s/$regex/$subst/rg;
#Komma vor } entfernen
    $regex = qr/,}/p;
    $subst = '}';
    $result = $result =~ s/$regex/$subst/rg;
#Komma vor ] entfernen
    $regex = qr/,]/p;
    $subst = ']';
    $result = $result =~ s/$regex/$subst/rg;
#Korrigierte json Datei speichern
    my $jsonDatei = '/opt/fhem/www/fing/scanclient.json';
    open (DATEI2, ">".$jsonDatei) or die $!;
        print DATEI2 $result;
    close (DATEI2);
    return "OK"
}


Die daraus resultierende Datei wird mit httpmod richtig eingelesen und ich musste nur:

defmod fingScan HTTPMOD http://fhem:97895@192.168.1.11:8083/fhem/fing/scanclient.json 600
attr fingScan extractAllJSON 1

eingeben, und siehe da, - wie geil ist das denn -, ist alles super strukturiert angelegt.
List:

Internals:
   BUSY       0
   CFGFN
   DEF        http://fhem:*****@192.168.1.11:8083/fhem/fing/scanclient.json 600
   Interval   600
   JSONEnabled 1
   LASTSEND   1494167459.3919
   MainURL    http://fhem:*****@192.168.1.11:8083/fhem/fing/scanclient.json
   ModuleVersion 3.3.9 - 23.3.2017
   NAME       fingScan
   NR         48
   STATE      ???
   TRIGGERTIME 1494168059.39148
   TRIGGERTIME_FMT 2017-05-07 16:40:59
   TYPE       HTTPMOD
   addr       http://192.168.1.11:8083
   auth       fhem:*****
   buf
   code       200
   conn
   data
   displayurl http://fhem:*****@192.168.1.11:8083/fhem/fing/scanclient.json
   header
   host       192.168.1.11
   httpheader HTTP/1.1 200 OK

Expires: Sun May  7 14:45:59 2017 GMT

X-FHEM-csrfToken: csrf_762436402978426

ETag: "1494147661"

Transfer-Encoding: chunked

Content-Type: text/json; charset=UTF-8
   httpversion 1.0
   hu_blocking 0
   hu_filecount 55
   hu_portSfx :8083
   ignoreredirects 0
   loglevel   4
   path       /fhem/fing/scanclient.json
   protocol   http
   redirects  0
   timeout    2
   url        http://fhem:*****@192.168.1.11:8083/fhem/fing/scanclient.json
   value      0
   Helper:
     Dblog:
       01_address:
         Mydblog:
           TIME       1494167459.39674
           VALUE      192.168.1.4
       01_customname:
         Mydblog:
           TIME       1494167459.39674
           VALUE      HomematicCCU2
       01_family:
         Mydblog:
           TIME       1494167459.39674
           VALUE      INET4
       01_firewalldetected:
         Mydblog:
           TIME       1494167459.39674
           VALUE      false
       01_hardwareaddress:
         Mydblog:
           TIME       1494167459.39674
           VALUE      00:1A:22:08:3D:4F
       01_scanresult:
         Mydblog:
           TIME       1494167459.39674
           VALUE      OK
       01_services_01_description:
         Mydblog:
           TIME       1494167459.39674
           VALUE      SSH Secure Shell
       01_services_01_name:
         Mydblog:
           TIME       1494167459.39674
           VALUE      ssh
       01_services_01_port:
         Mydblog:
           TIME       1494167459.39674
           VALUE      22
       01_services_01_protocol:
         Mydblog:
           TIME       1494167459.39674
           VALUE      TCP
       01_services_02_description:
         Mydblog:
           TIME       1494167459.39674
           VALUE      World Wide Web HTTP
       01_services_02_name:
         Mydblog:
           TIME       1494167459.39674
           VALUE      http
       01_services_02_port:
         Mydblog:
           TIME       1494167459.39674
           VALUE      80
       01_services_02_protocol:
         Mydblog:
           TIME       1494167459.39674
           VALUE      TCP
       01_services_03_description:
         Mydblog:
           TIME       1494167459.39674
           VALUE      cisco identification port
       01_services_03_name:
         Mydblog:
           TIME       1494167459.39674
           VALUE      tcp-id-port
       01_services_03_port:
         Mydblog:
           TIME       1494167459.39674
           VALUE      1999
       01_services_03_protocol:
         Mydblog:
           TIME       1494167459.39674
           VALUE      TCP
       01_services_04_description:
         Mydblog:
           TIME       1494167459.39674
           VALUE      or nfr20 web queries
       01_services_04_name:
         Mydblog:
           TIME       1494167459.39674
           VALUE      dc
       01_services_04_port:
         Mydblog:
           TIME       1494167459.39674
           VALUE      2001
       01_services_04_protocol:
         Mydblog:
           TIME       1494167459.39674
           VALUE      TCP
       01_services_05_description:
         Mydblog:
           TIME       1494167459.39674
           VALUE      Or nfr411
       01_services_05_name:
         Mydblog:
           TIME       1494167459.39674
           VALUE      search
       01_services_05_port:
         Mydblog:
           TIME       1494167459.39674
           VALUE      2010
       01_services_05_protocol:
         Mydblog:
           TIME       1494167459.39674
           VALUE      TCP
       State:
         Mydblog:
           TIME       1494167459.39674
           VALUE      01_Hostname:
   QUEUE:
   Readings:
     2017-05-07 16:30:59   01_Address      192.168.1.4
     2017-05-07 16:30:59   01_CustomName   HomematicCCU2
     2017-05-07 16:30:59   01_Family       INET4
     2017-05-07 16:30:59   01_FirewallDetected false
     2017-05-07 16:30:59   01_HardwareAddress 00:1A:22:08:3D:4F
     2017-05-07 16:30:59   01_Hostname
     2017-05-07 16:30:59   01_ScanResult   OK
     2017-05-07 16:30:59   01_Services_01_Description SSH Secure Shell
     2017-05-07 16:30:59   01_Services_01_Name ssh
     2017-05-07 16:30:59   01_Services_01_Port 22
     2017-05-07 16:30:59   01_Services_01_Protocol TCP
     2017-05-07 16:30:59   01_Services_02_Description World Wide Web HTTP
     2017-05-07 16:30:59   01_Services_02_Name http
     2017-05-07 16:30:59   01_Services_02_Port 80
     2017-05-07 16:30:59   01_Services_02_Protocol TCP
     2017-05-07 16:30:59   01_Services_03_Description cisco identification port
     2017-05-07 16:30:59   01_Services_03_Name tcp-id-port
     2017-05-07 16:30:59   01_Services_03_Port 1999
     2017-05-07 16:30:59   01_Services_03_Protocol TCP
     2017-05-07 16:30:59   01_Services_04_Description or nfr20 web queries
     2017-05-07 16:30:59   01_Services_04_Name dc
     2017-05-07 16:30:59   01_Services_04_Port 2001
     2017-05-07 16:30:59   01_Services_04_Protocol TCP
     2017-05-07 16:30:59   01_Services_05_Description Or nfr411
     2017-05-07 16:30:59   01_Services_05_Name search
     2017-05-07 16:30:59   01_Services_05_Port 2010
     2017-05-07 16:30:59   01_Services_05_Protocol TCP
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://fhem:*****@192.168.1.11:8083/fhem/fing/scanclient.json
     value      0
   Defptr:
     Readingbase:
       01_Address reading
       01_CustomName reading
       01_Family  reading
       01_FirewallDetected reading
       01_HardwareAddress reading
       01_Hostname reading
       01_ScanResult reading
       01_Services_01_Description reading
       01_Services_01_Name reading
       01_Services_01_Port reading
       01_Services_01_Protocol reading
       01_Services_02_Description reading
       01_Services_02_Name reading
       01_Services_02_Port reading
       01_Services_02_Protocol reading
       01_Services_03_Description reading
       01_Services_03_Name reading
       01_Services_03_Port reading
       01_Services_03_Protocol reading
       01_Services_04_Description reading
       01_Services_04_Name reading
       01_Services_04_Port reading
       01_Services_04_Protocol reading
       01_Services_05_Description reading
       01_Services_05_Name reading
       01_Services_05_Port reading
       01_Services_05_Protocol reading
     Readingnum:
       01_Address
       01_CustomName
       01_Family
       01_FirewallDetected
       01_HardwareAddress
       01_Hostname
       01_ScanResult
       01_Services_01_Description
       01_Services_01_Name
       01_Services_01_Port
       01_Services_01_Protocol
       01_Services_02_Description
       01_Services_02_Name
       01_Services_02_Port
       01_Services_02_Protocol
       01_Services_03_Description
       01_Services_03_Name
       01_Services_03_Port
       01_Services_03_Protocol
       01_Services_04_Description
       01_Services_04_Name
       01_Services_04_Port
       01_Services_04_Protocol
       01_Services_05_Description
       01_Services_05_Name
       01_Services_05_Port
       01_Services_05_Protocol
     Readingoutdated:
     Requestreadings:
       Update:
         01_Address reading
         01_CustomName reading
         01_Family  reading
         01_FirewallDetected reading
         01_HardwareAddress reading
         01_Hostname reading
         01_ScanResult reading
         01_Services_01_Description reading
         01_Services_01_Name reading
         01_Services_01_Port reading
         01_Services_01_Protocol reading
         01_Services_02_Description reading
         01_Services_02_Name reading
         01_Services_02_Port reading
         01_Services_02_Protocol reading
         01_Services_03_Description reading
         01_Services_03_Name reading
         01_Services_03_Port reading
         01_Services_03_Protocol reading
         01_Services_04_Description reading
         01_Services_04_Name reading
         01_Services_04_Port reading
         01_Services_04_Protocol reading
         01_Services_05_Description reading
         01_Services_05_Name reading
         01_Services_05_Port reading
         01_Services_05_Protocol reading
   Sslargs:
Attributes:
   extractAllJSON 1

Einen Bildschirm-Schnappschuss der ersten quick&dirty readingsgroup hänge ich an.
Jetzt kommt noch das fing Discover und Info. Dann bastele ich mir die ein oder andere readingGroup für den Überblick.

Danke an alle geduldigen Helfer,

Gernot