FHEM Forum

FHEM => Automatisierung => Thema gestartet von: wowogiengen am 10 November 2024, 13:44:27

Titel: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 10 November 2024, 13:44:27
Hallo,
wie in diesem Thread Dummy, notify, button, trigger, und was weiß ich alles... (https://forum.fhem.de/index.php?topic=139749.0) geschrieben, habe ich Probleme,
meine JSON-Datei einzulesen.

Ich schreibe in python mein Objekt so raus:

# Open the file in write mode
with open(filename, 'w') as file:
    # Use json.dump to write the data to the file
    json.dump(data, file, indent=2)  # indent=4 for pretty printing
und dann kommt dort eben das hier raus :


{
  "info": {
    "powerstation_id": "af612bf1-559d-4464-9005-df854f2df1ad",
    "time": "11/06/2024 04:45:59",
    "date_format": "dd.MM.yyyy",
    "date_format_ym": "MM.yyyy",
    "stationname": "Roth Wolfgang",
    "address": "Eisenacher Weg 2, 89537 Giengen an der Brenz, Germany",
    "owner_name": null,
    "owner_phone": null,
    "owner_email": null,
    "battery_capacity": 10.6,
    "turnon_time": "10/31/2024 16:06:42",
    "create_time": "10/31/2024 16:04:56",
    "capacity": 15.84,
    "longitude": 10.2638487,
    "latitude": 48.6276321,
    "powerstation_type": "Battery Storage",
    "status": 0,
    "is_stored": true,
    "is_powerflow": true,
    "charts_type": 1,
    "has_pv": true,
    "has_statistics_charts": true,
    "only_bps": false,
    "only_bpu": false,
    "time_span": -1.0,
    "pr_value": "",
    "org_code": "GW000000",
    "org_name": "Goodwe"
  },

(da kommt noch weiteres, aber mit den null, true und false Werten kann JSONMOD offensichtlich nix anfangen... Was kann ich da tun? Die Bibliothek, welche die Daten einliest, kann ich nicht ändern (pygoodwe)...

Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: TomLee am 10 November 2024, 17:42:18
Wegen dem true/false kann man was machen -> Im Global-Device das Attribut encoding auf bytestream setzen.
(merkwürdig ist, dass das gesetzte Attribut nicht in der Geräteübersicht zu sehen ist !)

Das null nix ergibt, versteh ich so, dass das so gewollt ist.

(siehe Zeile 1120 im Modulcode: return undef if m/\Gnull/gc;  ## no critic (return))

Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 10 November 2024, 18:43:41
Hallo TomLee,
bei mir steht, dass bytestream bereits voreingestellt ist...
Aber was das attribut überhaupt bringen soll erschliesst sich mir nicht...
in der Datei steht ja explizit drin (beispielhaft):

"Wahrwert": true,
"keinWert": null,

Im Code des Moduls scheint es ja auch richtig konvertiert zu werden, oder?
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: TomLee am 10 November 2024, 20:47:27
Ich war zu unachtsam, dachte das Attribut wäre dafür verantwortlich das true/false zu 1/0 wird.

Was ist denn dein Problem mit false/true überhaupt?
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 10 November 2024, 21:23:37
Zitat von: TomLee am 10 November 2024, 20:47:27Ich war zu unachtsam, dachte das Attribut wäre dafür verantwortlich das false/true zu 1/0 wird.

Was ist denn dein Problem mit false/true überhaupt?

Ich kann meine Datei nicht einlesen, wenn in ihr null, true und false enthalten sind (genau in der Schreibweise, ohne " oder').

Ersetze ich null z.B. durch "" und true durch 1 und false durch 0, wird der ganze Datensatz eingelesen und alles ist gut...

Dann funktioniert auch das mit dem Attribut zum Ermitteln einzelner Readings, was vorher überhaupt nicht ging....
Also irgendwas ist da mit den 3 Werten nicht in Ordnung?


Als Beispiel:

{
  "info":
  {
    "time" : true
  }
}
und das Device:

defmod PVJSON JsonMod file:/opt/fhem/python/neu 1.json
attr PVJSON readingList single(jsonPath('$.info.time'), 'zeit', 'default value');;
attr PVJSON room test
attr PVJSON verbose 5

setstate PVJSON 2024-11-10 21:25:11 .computedReadings zeit
setstate PVJSON 2024-11-10 21:25:11 zeit default value

geht nicht...
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: TomLee am 10 November 2024, 22:17:09
Liegt es an Deiner gezeigten JsonMod-Definition evtl. nicht einfach daran das sich da ein Leerzeichen zw. neu und 1 in dem Textdateinamen eingeschlichen hat, welches da nicht hingehört, und darum der Ersatzwert von single "greift" ?
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 10:04:53
Bei mir funktioniert Dein json-Input aus dem ersten Beitrag hier im Thread grundsätzlich fehlerfrei und erzeugt jede Menge readings, sowohl mit complete() als auch mit single()

defmod jt JsonMod file:///tmp/test.json
attr jt readingList complete()\
single(jsonPath('$.info.stationname'), 'myStationName', '?')

setstate jt 2024-11-12 10:07:13 info.address Eisenacher Weg 2, 89537 Giengen an der Brenz, Germany
setstate jt 2024-11-12 10:07:13 info.battery_capacity 10.6
setstate jt 2024-11-12 10:07:13 info.capacity 15.84
setstate jt 2024-11-12 10:07:13 info.charts_type 1
setstate jt 2024-11-12 10:07:13 info.create_time 10/31/2024 16:04:56
setstate jt 2024-11-12 10:07:13 info.date_format dd.MM.yyyy
setstate jt 2024-11-12 10:07:13 info.date_format_ym MM.yyyy
setstate jt 2024-11-12 10:07:13 info.has_pv 1
setstate jt 2024-11-12 10:07:13 info.has_statistics_charts 1
setstate jt 2024-11-12 10:07:13 info.is_powerflow 1
setstate jt 2024-11-12 10:07:13 info.is_stored 1
setstate jt 2024-11-12 10:07:13 info.latitude 48.6276321
setstate jt 2024-11-12 10:07:13 info.longitude 10.2638487
setstate jt 2024-11-12 10:07:13 info.only_bps 0
setstate jt 2024-11-12 10:07:13 info.only_bpu 0
setstate jt 2024-11-12 10:07:13 info.org_code GW000000
setstate jt 2024-11-12 10:07:13 info.org_name Goodwe
setstate jt 2024-11-12 10:07:13 info.owner_email
setstate jt 2024-11-12 10:07:13 info.owner_name
setstate jt 2024-11-12 10:07:13 info.owner_phone
setstate jt 2024-11-12 10:07:13 info.powerstation_id af612bf1-559d-4464-9005-df854f2df1ad
setstate jt 2024-11-12 10:07:13 info.powerstation_type Battery Storage
setstate jt 2024-11-12 10:07:13 info.pr_value
setstate jt 2024-11-12 10:07:13 info.stationname Roth Wolfgang
setstate jt 2024-11-12 10:07:13 info.status 0
setstate jt 2024-11-12 10:07:13 info.time 11/06/2024 04:45:59
setstate jt 2024-11-12 10:07:13 info.time_span -1
setstate jt 2024-11-12 10:07:13 info.turnon_time 10/31/2024 16:06:42

setstate jt 2024-11-12 10:07:13 myStationName Roth Wolfgang

Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 10:25:45
Zitat von: TomLee am 10 November 2024, 22:17:09Liegt es an Deiner gezeigten JsonMod-Definition evtl. nicht einfach daran das sich da ein Leerzeichen zw. neu und 1 in dem Textdateinamen eingeschlichen hat

Leerzeichen in Dateinamen sind zwar immer doof, aber nicht per se falsch.
Aber ich tippe eher darauf, dass bei file:/ einfach zu wenige slashes stehen:

defmod PVJSON JsonMod file:/opt/fhem/python/neu 1.json
Laut commandref sollten da mindestens 2 slashes stehen, wenn man einen absoluten Pfad angibt, bedarf es derer sogar drei:

defmod PVJSON JsonMod file:///opt/fhem/python/neu 1.json
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 12 November 2024, 19:04:16
Hallo,
nochmal für alle zum mitschreiben...
die Datei  hat diesen Inhalt:
{
  "info":
  {
    "time" : true
  }
}

sie liegt unter

/opt/fhem/python/neu 1.json(ja genau so, mit Leerzeichen

Ich habe das define vorhin angepasst, mit 3 * / am Anfang, im Ergebnis ist es aber das Selbe.


defmod PVJSON JsonMod file:///opt/fhem/python/neu 1.json
attr PVJSON readingList single(jsonPath('$.info.time'), 'zeit', 'default value');;
attr PVJSON room test
attr PVJSON verbose 1

Das Reading "zeit" ist immer noch "default value". Und das ist hier das kleinste reproduzierbare Beispiel, was ich habe.

Auch wenn ich eine Datei ohne Leerzeichen lese, geht es nicht.

hier nochmal das komplette Listing des Devices:

Internals:
   API_LAST_MSG 404
   API_LAST_RES 1731433911.34025
   DEF        file:///opt/fhem/python/neu.json
   FUUID      67309b2d-f33f-a625-301d-a6751c6ebcf6ab2c
   NAME       PVJSON
   NEXT       2024-11-12 19:00:00
   NR         227
   SOURCE     /opt/fhem/python/neu.json
   STATE      ???
   SVN        28481 2024-02-05 22:14:33 UTC
   TYPE       JsonMod
   eventCount 1698
   CONFIG:
     IN_REQUEST 0
     SOURCE     file:///opt/fhem/python/neu.json
     SECRET:
   OLDREADINGS:
   READINGS:
     2024-11-12 18:49:11   zeit            default value
Attributes:
   readingList single(jsonPath('$.info.time'), 'zeit', 'default value');
   room       test
   verbose    1

Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: Prof. Dr. Peter Henning am 12 November 2024, 19:33:55
Nun, dann würde es doch sinnvoll sein, einen der anderen einfachen Wege zu beschreiten, die wir vorgeschlagen haben. Gerade jemand, der sich selbst als Anfänger bezeichnet und keinen Überblick über die vorhandenen Module hat, sollte eine einfache Lösung suchen. Und nicht mit Python, JSON und Perl gleichzeitig jonglieren.

pah
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: passibe am 12 November 2024, 20:01:05
Also bei mir funktioniert das:
defmod PVJSON JsonMod file:///opt/fhem/test 1.json
attr PVJSON readingList single(jsonPath('$.info.time'), 'zeit', 'default value');;

setstate PVJSON 2024-11-12 19:48:07 .computedReadings zeit
setstate PVJSON 2024-11-12 19:48:07 zeit 1

Inhalt von /opt/fhem/test 1.json ist gleich wie bei dir:
{
  "info":
  {
    "time" : true
  }
}


Bin mir nicht sicher, was bei dir da falsch läuft. Hast du nochmal überprüft, ob der Dateipfad + Berechtigungen stimmen? Hast du tatsächlich auch reread gedrückt? Sagt das Log irgendetwas?
Dass es bei dir auf den Standardwert springt ist für mich jedenfalls ein Zeichen, dass FHEM irgendwie die Datei nicht richtig lesen kann.

(Leerzeichen weglassen ist übrigens unabhängig davon, dass es hier funktioniert, eine gute Idee. Erspart dir einiges an Kopfzerbrechen, wenn du dir das jetzt schon angewöhnst.)

Zu den anderen Lösungswegen bzw. zu "soll ich jetzt alles fallen lassen [...] ?"möchte ich nur die sunk cost fallacy in den Ring werfen. Dazu vielleicht noch den Gedanken, dass die Leute hier es nicht schlecht mit dir meinen, sondern schlicht das als Rat geben, was ihrer Erfahrung nach sinnvoll ist.
(Ob dieser Ratschlag im Einzelfall auch zutrifft, ist dann nochmal eine andere Frage – prinzipiell sehe ich kein Problem darin, jedenfalls zu Testzwecken die bestehende Infrastruktur "via Datei" zu nutzen, um damit FHEM mit den jeweiligen Daten zu füttern und sich mit JsonMod vertraut zu machen. Ich glaube wir haben alle schonmal ähnliche Spaghettikonstruktionen gebaut ...)
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 20:02:30
Zitat von: wowogiengen am 12 November 2024, 19:04:16Hallo,
nochmal für alle zum mitschreiben...

Dafür, dass Du wenig Ahnung hast und Hilfe suchst, hast Du einen komischen Ton am Leib.



Wenn die Datei an der angegebenen Stelle nicht gefunden wird und deshalb ein Fehler 404 auftritt, dann ist die Datei dort nicht vorhanden. Das ist die einzige Konstellation, in der ich einen Fehler 404 erzeugen konnte.

Wäre es ein Berechtigungsproblem (meine erste Vermutung), käme ein "Permission denied" oder ähnliches in den API_LAST_MSG.

Gib mal bitte folgendes in die FHEM Befehlszeile ein und verrate uns das Ergebnis.

{my ($err,undef) = FileRead({FileName => '/opt/fhem/python/neu 1.json', ForceType => 'FILE'});; return $err }
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 12 November 2024, 20:07:46
Hallo,
ich bin zu blöd, ich gebs auf...

Wenn ich
{my ($err,undef) = FileRead({FileName => '/opt/fhem/python/neu 1.json', ForceType => 'FILE'});; return $err }dort eingebe, wo ich z.B. auch "update check" oder "backup" oder alles andere eingebe,
passiert nichts.
und wenn ich es beim "+" eingebe, wo man mehrere Zeilen eingeben kann:

Executed everything, no errors found

was sollte denn rauskommen?
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: passibe am 12 November 2024, 20:12:50
Wenn nichts rauskommt ist alles gut.
Kannst ja testweise mal den Pfad auf "neu 2" oder so ändern, dann siehst du z.B. die Fehlermeldung, die kommt, wenn die Datei nicht existiert.

Bedeutet jetzt aber, dass der Fehler doch nicht im falschen Dateipfad oder einer falschen Berechtigung. Wo sonst, keine Ahnung. Wie gesagt, bei mir funktioniert das.

Poste bitte trotzdem mal die Ausgabe von (per SSH natürlich):
ls -la /opt/fhem/python/neu\ 1.json
Und vielleicht auch nochmal ein list von deinem JsonMod-Device a) mit richtigem Pfad und b) nachdem du auf reread gedrückt hast.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 20:16:48
Zitat von: wowogiengen am 12 November 2024, 20:07:46ich bin zu blöd,

...

Zitat von: wowogiengen am 12 November 2024, 20:07:46Wenn ich
...
dort eingebe, wo ich z.B. auch "update check" oder "backup" oder alles andere eingebe,

Das ist zumindest mal die richtige Stelle.

Zitat von: wowogiengen am 12 November 2024, 20:07:46passiert nichts.

Kannst Du "passiert nichts" etwas genauer beschreiben?



Nächster Versuch für die FHEM Befehlszeile:

{use Data::Dumper;; my ($err,@content) = FileRead({FileName => '/opt/fhem/python/neu 1.json', ForceType => 'FILE'});; Debug "err:>$err<";; Debug Dumper @content }
und danach bitte ins Logfile schauen.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 20:24:27
Zitat von: passibe am 12 November 2024, 20:12:50Und vielleicht auch nochmal ein list von deinem JsonMod-Device a) mit richtigem Pfad und b) nachdem du auf reread gedrückt hast.

Das wurde doch alles schon gepostet, erkennbar an den timestamps in den internals.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 12 November 2024, 20:25:50
Zitat von: passibe am 12 November 2024, 20:12:50Wenn nichts rauskommt ist alles gut.
Kannst ja testweise mal den Pfad auf "neu 2" oder so ändern, dann siehst du z.B. die Fehlermeldung, die kommt, wenn die Datei nicht existiert.

ja, stimmt... Can't open /opt/fhem/python/neu 1.json: No such file or directory

ZitatBedeutet jetzt aber, dass der Fehler doch nicht im falschen Dateipfad oder einer falschen Berechtigung. Wo sonst, keine Ahnung. Wie gesagt, bei mir funktioniert das.

Poste bitte trotzdem mal die Ausgabe von (per SSH natürlich):
ls -la /opt/fhem/python/neu\ 1.json
Und vielleicht auch nochmal ein list von deinem JsonMod-Device a) mit richtigem Pfad und b) nachdem du auf reread gedrückt hast.

Bisschen mehr, aber alle gleich:

fhem@fhem4:~/python$ ls -als
insgesamt 13892
28 drwxrwxr-x  3 fhem dialout 24576 12. Nov 20:16  .
4 drwxr-xr-x  14 fhem dialout  4096 12. Nov 20:16  ..
4 -rwxrwxr-x  1 fhem dialout  1776  9. Nov 14:47  allinone.py
36 -rwxrw-r--  1 pi  pi      36760 10. Nov 10:43  Beispiel.json
36 -rw-r--r--  1 fhem dialout 35737  3. Nov 17:54  data2024-11-03_17-54-04.json
36 -rw-r--r--  1 fhem dialout 35715  6. Nov 08:05  data2024-11-06_08-05-56.json
36 -rw-r--r--  1 fhem dialout 35709  6. Nov 08:15  data2024-11-06_08-15-55.json
4 -rw-r--r--  1 fhem dialout  1008 10. Nov 13:18  data2024-11-06_08-25-55.json
36 -rw-r--r--  1 fhem dialout 36665  9. Nov 14:48  data2024-11-09_14-48-03.json
36 -rw-r--r--  1 fhem dialout 36739 10. Nov 10:13  data2024-11-10_10-13-10.json
52 -rw-rwxr--+  1 fhem dialout 48202 10. Nov 13:14  data2024-11-10_10-43-00.json
36 -rw-r--r--  1 fhem dialout 36759 10. Nov 13:13  data2024-11-10_10-43-03.json
36 -rw-r--r--  1 fhem dialout 35767  3. Nov 17:34  data.json
4 -rwxrw-r--  1 fhem dialout    39 12. Nov 18:43 'neu 1.json'
4 -rwxrw-r--  1 fhem dialout    39 12. Nov 18:54  neu.json
4 drwxrwxr-x  7 fhem dialout  4096  3. Nov 13:06  pygoodwe-main
fhem@fhem4:~/python$

Ausgabe für betateilchen: {use Data::Dumper;; my ($err,@content) = FileRead({FileName => '/opt/fhem/python/neu 1.json', ForceType => 'FILE'});; Debug "err:>$err<";; Debug Dumper @content }
2024.11.12 20:20:33 1: PERL WARNING: Use of uninitialized value $err in concatenation (.) or string at (eval 6719) line 1.
2024.11.12 20:20:33 1: DEBUG>err:><
2024.11.12 20:20:33 1: DEBUG>$VAR1 = '{
';
$VAR2 = ' "info":
';
$VAR3 = ' {
';
$VAR4 = ' "time" : true
';
$VAR5 = ' }
';
$VAR6 = '}';


Und hier noch das list, nachdem ich den Pfad korrekt eingestellt habe, und die Datei vorhanden ist...

Internals:
   API_LAST_MSG 200
   API_LAST_RES 1731439442.03639
   DEF        file:///opt/fhem/python/neu.json
   FUUID      67309b2d-f33f-a625-301d-a6751c6ebcf6ab2c
   NAME       PVJSON
   NEXT       2024-11-13 12:00:00
   NR         225
   SOURCE     /opt/fhem/python/neu.json (39)
   STATE      ???
   SVN        28481 2024-02-05 22:14:33 UTC
   TYPE       JsonMod
   eventCount 18
   CONFIG:
     IN_REQUEST 0
     SOURCE     file:///opt/fhem/python/neu.json
     SECRET:
   READINGS:
     2024-11-12 20:24:02   zeit            default value
Attributes:
   interval   0 12 * * *
   readingList single(jsonPath('$.info.time'), 'zeit', 'default value');
   room       test
   verbose    1
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 20:38:04
Zitat von: wowogiengen am 12 November 2024, 20:25:50Ausgabe für betateilchen:

Ok, Deine Datei kann korrekt gelesen werden.

Zitat von: wowogiengen am 12 November 2024, 20:25:50Und hier noch das list, nachdem ich den Pfad korrekt eingestellt habe, und die Datei vorhanden ist...

Internals:
   API_LAST_MSG 200
   API_LAST_RES 1731439442.03639
   DEF        file:///opt/fhem/python/neu.json
   FUUID      67309b2d-f33f-a625-301d-a6751c6ebcf6ab2c
   NAME       PVJSON
   NEXT       2024-11-13 12:00:00
   NR         225
   SOURCE     /opt/fhem/python/neu.json (39)


Hier wurde aber die Datei korrekt gefunden und gelesen und die 39 Bytes passen auch zum Inhalt Deiner Datei (siehe Dein obiges ls aus dem Verzeichnis)


Warum das reading trotzdem nicht erzeugt wird, müssen wir jetzt im nächsten Schritt rausfinden.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 12 November 2024, 21:12:32
Zitat von: betateilchen am 12 November 2024, 20:38:04Warum das reading trotzdem nicht erzeugt wird, müssen wir jetzt im nächsten Schritt rausfinden.

Vermutlich fehlt Dir eine der zum Erzeugen von readings benötigten perl libraries.

sudo apt install libcpanel-json-xs-perl
und danach FHEM neustarten.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 12 November 2024, 21:33:46
Hallo

Zitat von: betateilchen am 12 November 2024, 21:12:32
Zitat von: betateilchen am 12 November 2024, 20:38:04Warum das reading trotzdem nicht erzeugt wird, müssen wir jetzt im nächsten Schritt rausfinden.

Vermutlich fehlt Dir eine der zum Erzeugen von readings benötigten perl libraries.

sudo apt install libcpanel-json-xs-perl
und danach FHEM neustarten.


sieht so aus, als ob da was fehlte :-)


pi@fhem4:~ $ sudo apt install libcpanel-json-xs-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Statusinformationen werden eingelesen... Fertig
Die folgenden NEUEN Pakete werden installiert:
  libcpanel-json-xs-perl
Fortschritt: [ 20%] [###########............................................]
Es müssen 126 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 290 kB Plattenplatz zusätzlich benutzt.
Holen:1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf libcpanel-j                                                  son-xs-perl armhf 4.25-1+b1 [126 kB]
Es wurden 126 kB in 1 s geholt (200 kB/s).
Vormals nicht ausgewähltes Paket libcpanel-json-xs-perl wird gewählt.
(Lese Datenbank ... 108722 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libcpanel-json-xs-perl_4.25-1+b1_armhf.deb ...
Entpacken von libcpanel-json-xs-perl (4.25-1+b1) ...
libcpanel-json-xs-perl (4.25-1+b1) wird eingerichtet ...
Trigger für man-db (2.9.4-2) werden verarbeitet ...
pi@fhem4:~ $

bingo,
geht wohl damit:

Internals:
   API_LAST_MSG 200
   API_LAST_RES 1731443529.16582
   DEF        file:///opt/fhem/python/neu.json
   FUUID      67309b2d-f33f-a625-301d-a6751c6ebcf6ab2c
   NAME       PVJSON
   NEXT       2024-11-13 12:00:00
   NR         225
   SOURCE     /opt/fhem/python/neu.json (39)
   STATE      ???
   SVN        28481 2024-02-05 22:14:33 UTC
   TYPE       JsonMod
   eventCount 1
   CONFIG:
     IN_REQUEST 0
     SOURCE     file:///opt/fhem/python/neu.json
     SECRET:
   READINGS:
     2024-11-12 21:32:09   zeit            1
Attributes:
   interval   0 12 * * *
   readingList single(jsonPath('$.info.time'), 'zeit', 'default value');
   room       test
   verbose    1

Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 12 November 2024, 21:39:49
Hallo,
und wenn ich eine richtige, große Datei nehme, kommt auch das richtige dabei raus,
siehe Anhänge

Ich freu mich...
Zusammen haben wir es ja dann doch geschafft...

Gibt es keine Möglichkeit, vor dem Ausführen von Code festzustellen, was noch installiert werden müsste?

Wenn ich auf neue Hardware umziehe, vergesse ich bestimmt wieder die Hälfte zu installieren


Vielen Dank nochmal an Alle
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: Prof. Dr. Peter Henning am 13 November 2024, 04:26:01
Zitat von: wowogiengen am 12 November 2024, 21:39:49Gibt es keine Möglichkeit, vor dem Ausführen von Code festzustellen, was noch installiert werden müsste?
Nur, wenn man den auszuführenden Code auch versteht...

LG

pah
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 13 November 2024, 05:40:49
Ach Peter...  ::)
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: betateilchen am 13 November 2024, 05:44:54
Zitat von: wowogiengen am 12 November 2024, 21:39:49Gibt es keine Möglichkeit, vor dem Ausführen von Code festzustellen, was noch installiert werden müsste?

Prinzipiell ist eine Prüfung im Modul sogar vorhanden, die eine Logmeldung ausgeben soll, wenn das perl-Paket fehlt. Aber zum einen bin ich mir nicht sicher, ob diese Prüfung funktioniert (bei meinem Test kam keine Meldung, wenn das Paket fehlt) und zum anderen hättest Du bei Deinem eingestellten verbose=1 die Meldung nicht ins Log bekommen.
Titel: Aw: JSonMod versteht mein JSON nicht
Beitrag von: wowogiengen am 13 November 2024, 18:16:43
Zitat von: betateilchen am 13 November 2024, 05:44:54Prinzipiell ist eine Prüfung im Modul sogar vorhanden, die eine Logmeldung ausgeben soll, wenn das perl-Paket fehlt. Aber zum einen bin ich mir nicht sicher, ob diese Prüfung funktioniert (bei meinem Test kam keine Meldung, wenn das Paket fehlt) und zum anderen hättest Du bei Deinem eingestellten verbose=1 die Meldung nicht ins Log bekommen.

Hallo,
ich hatte testweise den Loglevel auch schon auf 5 gesetzt, aber auch da habe ich nichts im Log gesehen...