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
Hallo Gernot,
wenn die Datei schon auf Deinem Fhem-System liegt, probier es doch mal mit einer file:// URL ...
Gruss
Stefan
Hallo Stefan,
Danke für den Tip. Doch ich wie lautete der Pfad?
file://opt/fhem/www/fing/scanclient.json
funktioniert nicht.
Danke,
Gernot
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
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
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ß
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
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
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"> </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
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
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
Hi,
ich kann mir vorstellen, dass an der Stelle HTTPMOD dann doch überfordert ist...
Vielleicht hat aber sonst noch jemand eine Idee.
Gruß,
Thorsten
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
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