JsonMod vergisst secret nach FHEM Restart

Begonnen von tobi1049, 20 Januar 2024, 10:05:36

Vorheriges Thema - Nächstes Thema

tobi1049

Hallo,
ich frage mit JsonMod die Statistik meiner Pi-Hole Instanz ab. Das funktioniert auch prima, nur nach einem Restart des FHEM-Servers geht das gespeicherte Secret offenbar verloren.
Die Abfrage funktioniert erst wieder, wenn ich das Secret über den entsprechenden set-Befehl neu eingebe.

Gibt es bei der Wahl des Secret-Identifiers oder der Secret-Länge irgendetwas zu beachten?

Tobias

betateilchen

Bisschen wenig Information, um Dir wirklich helfen zu können.

Grundsätzlich ist es JsonMod völlig wurscht, wie das secret aussieht, das wird nichtmal im device selbst gespeichert.

Dein Fehlerbild klingt mir eher danach, dass das secret erst gar nicht gespeichert werden kann (weil z.B. ein Rechteproblem besteht und die zugehörige Datei nicht beschrieben werden darf).
In diesem Fall steht das secret nur zur Laufzeit von FHEM zur Verfügung, nicht aber nach einem Neustart - das würde genau zu Deiner Beschreibung passen.

Setze doch mal in Deinem JsonMod device verbose 5 und setze dann das secret.
Danach kontrolliere die Logausgabe und setze das verbose auf jeden Fall wieder zurück auf maximal 3.



Außerdem ist hier das falsche Unterforum für Fragen zu JsonMod.
https://forum.fhem.de/index.php?topic=13092.0
Bitte verschiebe den Thread mit dem Button unten links in den richtigen Bereich, danke.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tobi1049

#2
Zitat von: betateilchen am 20 Januar 2024, 10:41:57Grundsätzlich ist es JsonMod völlig wurscht, wie das secret aussieht, das wird nichtmal im device selbst gespeichert.

Dein Fehlerbild klingt mir eher danach, dass das secret erst gar nicht gespeichert werden kann (weil z.B. ein Rechteproblem besteht und die zugehörige Datei nicht beschrieben werden darf).
In diesem Fall steht das secret nur zur Laufzeit von FHEM zur Verfügung, nicht aber nach einem Neustart - das würde genau zu Deiner Beschreibung passen.

Setze doch mal in Deinem JsonMod device verbose 5 und setze dann das secret.
Danach kontrolliere die Logausgabe und setze das verbose auf jeden Fall wieder zurück auf maximal 3.

Außerdem ist hier das falsche Unterforum für Fragen zu JsonMod.
https://forum.fhem.de/index.php?topic=13092.0
Bitte verschiebe den Thread mit dem Button unten links in den richtigen Bereich, danke.


Vielen Dank für deine Hinweise.
Im Log gab es leider keine Hinweise auf Probleme beim Schreiben der Secrets in die Datei.
Ich habe mir dann den Inhalt der Datei mal etwas genauer angeschaut.
Nach 117 Zeichen wurde ein LF eingefügt, der gesamte Eintrag ist aber 157 Zeichen lang.
Dieses LF sorgt beim wieder Einlesen, z.B. nach einem Neustart, dafür, dass das Secret verloren geht.

Tobias


fireball

Hi,

ich muss mich hier auch nochmal mit dranhängen.
Auch mein JSONMOD Secrect verliert sein Gültigkeit.
Ich habe ein Secret mit 129 Zeichen Ich habe ein verbose = 5 gesetzt und dann nochmal das Secret abgespeichert, im Log war nix zu sehen.
BTW: Das Secret hat zwei Sonderzeichen bei mir ein + und mehrere / , sonst nur Zahlen und Buchstaben.

Was kann man noch machen um der Ursache auf den Grund zu gehen?
Ein Restart war meines Wissen nach nicht die Ursache, es war auf einmal weg. Es ist dann auch nicht mehr in den Internals sichtbar.

VG
René

betateilchen

Zitat von: fireball am 04 Februar 2024, 19:09:24Was kann man noch machen um der Ursache auf den Grund zu gehen?
Ein Restart war meines Wissen nach nicht die Ursache, es war auf einmal weg.
Es ist dann auch nicht mehr in den Internals sichtbar.

Das secret wird grundsätzlich nicht primär in den Internals "gespeichert", sondern beim define des JsonMod aus einem keyfile gelesen und dann in die Internals übertragen.

Zitat von: fireball am 04 Februar 2024, 19:09:24BTW: Das Secret hat zwei Sonderzeichen bei mir ein + und mehrere / , sonst nur Zahlen und Buchstaben.

Da könnte ggf. eine Ursache zu finden sein. Aber das sollte der Modulautor prüfen und beantworten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#5
Zitat von: fireball am 04 Februar 2024, 19:09:24BTW: Das Secret hat zwei Sonderzeichen bei mir ein + und mehrere / , sonst nur Zahlen und Buchstaben.

Kannst Du mal bitte nur das + aus dem secret entfernen und dann testen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

fireball

Hab ich, das + ändert nix, nach einem Restart ist das Secret weg.
VG

betateilchen

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

betateilchen

Danke für Deine Antwort - ich denke, ich weiß jetzt, wo der Hund begraben liegt.

Die Ursache für das Problem liegt darin, dass die Funktionen zum Schreiben und (insbesondere) Lesen von key/values mit mehrzeiligen Einträgen nicht zurechtkommen.

Es bleibt also die Frage zu beantworten, warum JsonMod einen mehrzeiligen Eintrag beim Speichern des secrets erzeugt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

tobi1049

Zitat von: betateilchen am 04 Februar 2024, 21:07:46Es bleibt also die Frage zu beantworten, warum JsonMod einen mehrzeiligen Eintrag beim Speichern des secrets erzeugt.

Das liegt daran, wie das Modul das Secret "verschlüsselt".
Ich habe dafür ein Bugfix gefunden, das ich dem Modulautor auch schon zur Prüfung geschickt hatte.

herrmannj

vielen Dank, übernommen und damit gefixed

fireball

Feddback: Der Fix für das Secret funzt. Das Thema kann auf gelöst gesetzt werden.