Hi nochmal,
also, entschlüsselt bekommen habe ich noch nichts, denn die Nachricht, dass mein Gateway die "Files" nicht hat, kommt unverschlüsselt.
Deshalb geht auch Deine Abfrage:
if ($response->is_success)
nicht, denn HTML kommt in jedem Falle zurück, aber eben keine Fehlernachricht gemäß RFC (wie es in Perl durch HTTP:STATUS ausgewertet wird).
Hier müssten wir den Content wohl per Hand auf folgenden String parsen, bevor wir das zum entschlüsseln geben:
<HTML><HEAD><TITLE>Gateway webserver</TITLE></HEAD><DIV ALIGN=CENTER><FONT SIZE=+4><BR><BR><BR>Sorry, the requested file does not exist on this server.</FONT></DIV></HTML>
Ein Substring davon würde ja reichen.
Die Anfrage dazu, die unsere Software absetzt, mit REST-String, ist ja auch zunächst unverschlüsselt. Nur die Antwort, die vom Gateway kommt, ist entsprechend verschlüsselt, wenn es denn die Daten hat und bereitstellen will, womit dies also der 2. Schritt ist.
Aber zu Deiner ersten Frage:
Man kann dem HASH in Perl beliebige Elemente anhängen. Ein Beispiel aus dem CUL_IR-Modul, welches ich vor Jahren geschrieben habe:
$hash->{irLearn} = 1;
Du könntest also dem HASH die Elemente zuordnen:
$hash->{id} = ....
Allerdings sind diese Klassen (id, type, ...) ja je nach REST-String mit völlig anderen Werten belegt, daher macht es aus meiner Sicht keinen Sinn, diese Klassen selbst an den HASH zu hängen.
Und zu den Readings, dies steht auf der ersten Seite in unserem Thread, im simplen Modul 71_km200:
man nimmt:
readingsBeginUpdate($hash);
readingsBulkUpdate( $hash, @var[0], @var[1] );
......
readingsEndUpdate( $hash, 1 );
wobei die beiden Elemente jeweils: NAME, VALUE sind.
Damit erzeugst Du die gesamte Liste der Readings.
Aber meine Frage nach der Entschlüsselung bleibt, wie hast Du es ohne CBC gemacht? Habe auch irgendwo gelesen, dass EBC und nicht CBC genutzt wird.
Kannst Du Deinen Code dazu mal posten?
Danke,
Gruß,
Olaf