FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hermann123 am 24 Oktober 2024, 22:32:36

Titel: [Gelöst] HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 24 Oktober 2024, 22:32:36
Hallo,

ich habe Probleme mit einer JSON Response die mit HTTPMOD abgefragt wird (Spritpreise von Tankerkönig API abfragen).
Ich habe hier einige Hinweise und Beispiele gefunden, komme aber trotzdem nicht zu einer Lösung und würde mich über
Hilfe freuen!

Wie in dem Listing zu sehen ist, steht im httpBody die Victoriastraße als Victoriastra\u00dfe. Diese Zeichenfolge
wird auch so in das Reading TS2_Strasse übernommen.
Ich habe mit div. Encode und Decode Optionen leider kein anderes Ergebnis bekommen....
Mein letzter Versuch, bevor ich die weiße Fahne gehisst habe war:

reading21Encode utf8und
reading21Decode utf8
Für Hilfestellung wäre ich sehr dankbar...
LG Hermann


Listing
Internals:
   BUSY       0
   DEF        https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002 0
   FUUID      671962e2-f33f-3606-21fc-8659c53518c188f3
   Interval   0
   MainURL    https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       TS_Spritpreise
   NOTIFYDEV  global
   NR         1502
   NTFY_ORDER 50-TS_Spritpreise
   STATE      ???
   TYPE       HTTPMOD
   eventCount 2
   httpbody   {
    "ok": true,
    "license": "CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de",
    "data": "MTS-K",
    "status": "ok",
    "stations": [
        {
            "id": "005056ba-7cb6-1ed2-bceb-9dd1e660cd3c",
            "name": "star Tankstelle",
            "brand": "STAR",
            "street": "Kinderheim-\/Bergstrasse",
            "place": "Marl",
            "lat": 51.664773,
            "lng": 7.123585,
            "dist": 0.7,
            "price": 1.009,
            "isOpen": false,
            "houseNumber": "",
            "postCode": 45770
        },
        {
            "id": "c826d6d2-9b1a-47b0-acc1-9322bdbf99a0",
            "name": "Aral Tankstelle",
            "brand": "ARAL",
            "street": "Victoriastra\u00dfe",
            "place": "Marl",
            "lat": 51.66564,
            "lng": 7.150652,
            "dist": 1.2,
            "price": 1.009,
            "isOpen": true,
            "houseNumber": "174",
            "postCode": 45772
        }
    ]
}
   value     
   CompiledRegexes:
   HttpUtils:
     NAME      
     addr       https://creativecommons.tankerkoenig.de:443
     auth       0
     code       200
     compress   1
     conn      
     data      
     displayurl https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
     header     Content-Type: application/json
     host       creativecommons.tankerkoenig.de
     httpheader HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Thu, 24 Oct 2024 20:07:01 GMT
Content-Type: application/json; charset=utf-8
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: origin, x-requested-with, content-type, accept
Access-Control-Allow-Methods: GET
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
     protocol   https
     redirects  0
     timeout    5
     url        https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
     sslargs:
   QUEUE:
   READINGS:
     2024-10-24 22:07:01   TS2_Strasse     Victoriastra\u00dfe
   REQUEST:
     context    reading
     data      
     header     Content-Type: application/json
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
   defptr:
     readingBase:
       TS2_Strasse reading
     readingNum:
       TS2_Strasse 21
     readingOutdated:
     requestReadings:
       update:
         TS2_Strasse reading 21
Attributes:
   event-on-change-reading .*
   reading21Encode utf8
   reading21Name TS2_Strasse
   reading21Regex "c826d6d2-9b1a-47b0-acc1-9322bdbf99a0"[^}]*"street": "([\w\s\\]+)"
   requestHeader Content-Type: application/json
   room       Garage
   showBody   1
   timeout    5
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 26 Oktober 2024, 11:18:36
Guten Morgen,

Hat wirklich keiner eine Idee wie ich die Umlaute umwandeln muss um lesbare Texte zu bekommen?

Oder ist der Thread falsch?

Für Hilfe und Unterstützung wäre ich dankbar!

Grüße
Hermann
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Invers am 26 Oktober 2024, 13:33:54
Ich hab von dieser Geschichte keine Ahnung, aber da keiner antwortet, habe ich mal ne KI gefragt. Die sagt folgendes, aber ohne Gewähr:

"c826d6d2-9b1a-47b0-acc1-9322bdbf99a0"[^}]*"street":\s*"(.*?)"

Hier ein kurzer Überblick:
Damit sollte die Straße ,,Victoriastraße" korrekt als
TS2_Strasse-Reading angezeigt werden. Teste die Anpassung und prüfe, ob die Umlaute jetzt korrekt dargestellt werden.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 26 Oktober 2024, 13:51:47
Wenn Du schon json zurückbekommst, warum nimmst Du dann HTTPMOD und nicht JsonMod?
Bei mir kommen da out-of-the-box die richtigen Werte inkl. deutsche Sonderzeichen raus, siehe Anhang.

defmod tanker JsonMod file:///tmp/tanker.json
attr tanker readingList complete()

Bei Dir kannst Du natürlich auch die URL angeben, ich hatte einfach den json-Content aus Deinem Beispiel in eine Datei kopiert, da ich keinen API key habe.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 26 Oktober 2024, 14:07:33
Zitat von: Invers am 26 Oktober 2024, 13:33:54Teste die Anpassung und prüfe, ob die Umlaute jetzt korrekt dargestellt werden.

Warum sollte diese regex irgendeinen Einfluss auf die zeichensatzabhängige Darstellung haben? Der Eintrag für die Straße wird doch vollständig ausgelesen, er wird nur falsch dargestellt.

Zitat von: Hermann123 am 24 Oktober 2024, 22:32:36Wie in dem Listing zu sehen ist, steht im httpBody die Victoriastraße als Victoriastra\u00dfe.
Diese Zeichenfolge wird auch so in das Reading TS2_Strasse übernommen.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 26 Oktober 2024, 15:55:47
Zitat von: Invers am 26 Oktober 2024, 13:33:54Ich hab von dieser Geschichte keine Ahnung, aber da keiner antwortet, habe ich mal ne KI gefragt. Die sagt folgendes, aber ohne Gewähr:

"c826d6d2-9b1a-47b0-acc1-9322bdbf99a0"[^}]*"street":\s*"(.*?)"

Die KI hat tatsächlich eine passende regex erstellt.
Aber die etwas andere regex ändert nichts an der Umlaut-Darstellung.

Vielen Dank für Deine Mühe
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 26 Oktober 2024, 16:33:36
Zitat von: betateilchen am 26 Oktober 2024, 13:51:47Wenn Du schon json zurückbekommst, warum nimmst Du dann HTTPMOD und nicht JsonMod?
Bei mir kommen da out-of-the-box die richtigen Werte inkl. deutsche Sonderzeichen raus, siehe Anhang.

Code Auswählen Erweitern
defmod tanker JsonMod file:///tmp/tanker.json
attr tanker readingList complete()

Vielen Dank :-)

Ich habe das mit jsonMod ausprobiert...funktioniert natürlich wie in Deinem "out of the box sample".
Aber:

Habe es deshalb auch im JsonMod mit
reading21Regex "c826d6d2-9b1a-47b0-acc1-9322bdbf99a0"[^}]*"street": "([\w\s\\]+)"versucht und bekomme das gleiche, falsche Ergebnis.

Könnte man nun ignorieren, den Weg in Deinem Beispiel weiter verfolgen und die Probleme mit >n< später angehen.
Aber

Ich fände es echt super wenn ich hierbei Unterstützung bekomme.....

PS
der API Key ist ein Demo Key. funktioniert, liefert aber nicht die aktuellen Preise.
apikey=00000000-0000-0000-0000-000000000002

LG Hermann
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 26 Oktober 2024, 20:29:36
Zitat von: Hermann123 am 26 Oktober 2024, 16:33:36Aber:
  • ich möchte nicht alle readings auswerten (nur brand, street und price). Ich vermute
    allerdings, das es dafür auch eine Lösung gibt.
  • die automatische Differenzierung / Benamung der readings mit
    stations.n.readingsName würde im weiteren Projekt wahrscheinlich Probleme machen, da sich die Liste ändern kann (je nach Suchradius)
    und >n< somit nicht konstant ist.

Dann solltest Du die commandref zu JsonMod lesen, natürlich kann man auch einzelne readings erzeugen.
In der commandref zu JsonMod steht complete() sehr wohl beschrieben, genau wie single() für das Erzeugen beliebiger einzelner readings.

readingList
Specifies the access to json elements and their representation as well as formatting as reading.
...
complete();
Automatically creates readings for the entire JSON source. The readings are named after their JSON path.

Der Einfachheit halber hatte ich in meinem Test das Attribut readingList auf complete() gesetzt, daraus resultieren die "nummerierten" und automatisch erzeugten readings.

Nach wie vor sehe ich das Modul JsonMod für Dein Vorhaben als die bessere Wahl zu einer möglichst simplen Lösung.



Zitat von: Hermann123 am 26 Oktober 2024, 16:33:36Habe es deshalb auch im JsonMod mit
reading21Regex "c826d6d2-9b1a-47b0-acc1-9322bdbf99a0"[^}]*"street": "([\w\s\\]+)"versucht und bekomme das gleiche, falsche Ergebnis.

Wie hast Du das denn gemacht? JsonMod kennt doch das Attribut reading21Regex überhaupt nicht.

Zitat von: Hermann123 am 26 Oktober 2024, 16:33:36Dein Ansatz mit readingList complete() habe ich weder in HTTPMOD

Das ist ein Attribut, das es nur in JsonMod gibt, nicht in HTTPMOD.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 26 Oktober 2024, 21:39:25
Zitat von: Hermann123 am 26 Oktober 2024, 16:33:36die automatische Differenzierung / Benamung der readings mit
stations.n.readingsName würde im weiteren Projekt wahrscheinlich Probleme machen, da sich die Liste ändern kann (je nach Suchradius)
und >n< somit nicht konstant ist.

Wie möchtest Du denn die readings benannt haben?

defmod tanker_j JsonMod file:///tmp/tanker.json
attr tanker_j readingList multi(jsonPath('$.stations.[*]'),property('brand'),concat(property('street'),', ',property('price')))

ergibt beispielsweise

2024-10-26 21:55:29 ARAL Victoriastraße, 1.009
2024-10-26 21:55:29 STAR Kinderheim-/Bergstrasse, 1.009

Der Phantasie sind fast keine Grenzen gesetzt.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 26 Oktober 2024, 23:18:59
Zitat von: betateilchen am 26 Oktober 2024, 21:39:25Der Phantasie sind fast keine Grenzen gesetzt.

.... aber meinem Geist anscheinend ;)

Da muss ich mich erstmal reinfummeln.....morgen wieder....

Danke für Deine Unterstützung!!
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 26 Oktober 2024, 23:21:43
Zitat von: betateilchen am 26 Oktober 2024, 20:29:36Wie hast Du das denn gemacht? JsonMod kennt doch das Attribut reading21Regex überhaupt nicht.

ZitatDas ist ein Attribut, das es nur in JsonMod gibt, nicht in HTTPMOD.

Sorry, da habe ich mich wohl total verrannt und Blödsinn gepostet.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 27 Oktober 2024, 09:32:18
Zitat von: Hermann123 am 26 Oktober 2024, 16:33:36ich möchte nicht alle readings auswerten (nur brand, street und price). Ich vermute allerdings, das es dafür auch eine Lösung gibt.

Der Vollständigkeit halber solltest Du dann aber auch noch die houseNumber zusammen mit street verwenden :)
Man könnte dafür beispielsweise sowas bauen:

defmod tanker_j JsonMod file:///tmp/tanker.json
attr tanker_j readingList multi(jsonPath('$.stations.[*]'),concat(property('id'),'_brand'),property('brand'))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_street'),concat(property('street'),' ',property('houseNumber')))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_price'),property('price'))

Dann erhält man für jede Tankstelle drei readings, deren Namen mit der 'id' der Tankstelle beginnen:

2024-10-27 09:25:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_brand STAR
2024-10-27 09:25:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_price 1.009
2024-10-27 09:25:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_street Kinderheim-/Bergstrasse

2024-10-27 09:25:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_brand ARAL
2024-10-27 09:25:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_price 1.009
2024-10-27 09:25:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_street Victoriastraße 174

(Anmerkung: bei STAR gibt es keine Hausnummer im Datensatz, obwohl die Tankstelle die Hausnummer 22 in der Kinderheimstr. hat)
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 27 Oktober 2024, 14:40:54
@betateilchen
Bei mir funktionierrt keins Deiner Beispiele. Weder mit der JSON Datei, noch per WEB.

Internals:
   API_LAST_MSG 200
   API_LAST_RES 1730036321.31843
   DEF        file:///home/pi/tanken.json
   FUUID      671d554a-f33f-3606-7436-24c3b328dadee5c1
   NAME       TS2_Spritpreise
   NEXT       2025-01-01 00:00:00
   NR         1521
   SOURCE     /home/pi/tanken.json ()
   STATE      ???
   SVN        28481 2024-02-05 22:14:33 UTC
   TYPE       JsonMod
   eventCount 11
   CONFIG:
     IN_REQUEST 0
     SOURCE     file:///home/pi/tanken.json
     SECRET:
   OLDREADINGS:
   READINGS:
Attributes:
   interval   0 0 1 1 *
   readingList readingList complete()
   room       Garage
   verbose    5
Im log steht bei den letzten 4 reread Versuchen folgendes (mit verbose=5)
2024.10.27 14:16:53 4: [TS2_Spritpreise] next request: 2025.01.01 00:00:00
2024.10.27 14:16:56 1: PERL WARNING: Argument "" isn't numeric in addition (+) at ./FHEM/98_JsonMod.pm line 1112.
2024.10.27 14:16:56 5: [TS2_Spritpreise] start JsonPath
2024.10.27 14:16:56 1: PERL WARNING: Use of uninitialized value in sprintf at ./FHEM/98_JsonMod.pm line 652.
2024.10.27 14:18:32 5: [TS2_Spritpreise] start JsonPath
2024.10.27 14:18:32 4: [TS2_Spritpreise] $.stations.[*] is empty or missing: discarded
2024.10.27 14:19:29 5: [TS2_Spritpreise] start JsonPath
2024.10.27 14:19:29 4: [TS2_Spritpreise] $.stations.[*] is empty or missing: discarded
2024.10.27 14:22:32 5: [TS2_Spritpreise] start JsonPath
2024.10.27 14:22:32 4: [TS2_Spritpreise] $.stations.[*] is empty or missing: discarded

Ich werde jetzt erstmal mein System und die perl & json Pakete checken.
Wenn das OK ist bzw andere JSON basierte PRG laufen melde ich mich wieder.

Bis hierhin: DANKE
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: TomLee am 27 Oktober 2024, 15:18:52
Zitatfile:///home/pi/tanken.json

Hallo,

überleg doch mal, fällt dir bei der Syntax der Pfadangabe denn nichts auf?
Dazu brauchts doch nicht mal einen Blick in die commandref.

Aber selbst mit richtiger Pfadsyntax hat der User fhem default auch keine Leserechte auf den Ordner, oder hast die angepasst?

Gruß Thomas

Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: TomLee am 27 Oktober 2024, 15:32:06
Mir stellt sich die Frage warum es mit der Angabe des Link zu "invalid server response" kommt.
Wenn man die URL mit dem Demo-API-Key im Browser aufruft bekommt man den Json zurück.

define jm_test JsonMod https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
attr jm_test readingList multi(jsonPath('$.stations.[*]'),concat(property('id'),'_brand'),property('brand'))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_street'),concat(property('street'),' ',property('houseNumber')))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_price'),property('price'))
#   API_LAST_MSG invalid server response
#   API_LAST_RES 1730039141.32724
#   CFGFN     
#   DEF        https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
#   FUUID      671cfefd-f33f-7844-a112-620cdd50fda45a38
#   NAME       jm_test
#   NEXT       2024-10-27 16:00:00
#   NR         105
#   SOURCE     https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002 (200)
#   STATE      ???
#   SVN        28481 2024-02-05 22:14:33 UTC
#   TYPE       JsonMod
#   eventCount 7
#   CONFIG:
#     IN_REQUEST 0
#     SOURCE     https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
#     SECRET:
#

Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: RalfRog am 27 Oktober 2024, 15:49:36
Zitat von: Hermann123 am 27 Oktober 2024, 14:40:54readingList readingList complete()
Vermutlich taucht im Attribut auch das Wort "readingList" einmal zu viel auf.

Gruß Ralf
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 27 Oktober 2024, 15:56:58
Zitat von: TomLee am 27 Oktober 2024, 15:18:52
Zitatfile:///home/pi/tanken.json
überleg doch mal, fällt dir bei der Syntax der Pfadangabe denn nichts auf?

Was soll einem denn da auffallen? Mir fällt an der Pfadangabe jedenfalls nichts auf, das grundsätzlich falsch wäre.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 27 Oktober 2024, 16:04:17
Zitat von: TomLee am 27 Oktober 2024, 15:32:06Mir stellt sich die Frage warum es mit der Angabe des Link zu "invalid server response" kommt.
Wenn man die URL mit dem Demo-API-Key im Browser aufruft bekommt man den Json zurück.

Bei mir funktioniert der Aufruf mit der URL völlig problemlos:

defmod tanker_j JsonMod https://creativecommons.tankerkoenig.de/json/list.php?lat=51.662824&lng=7.1338207&rad=1.5&sort=price&type=diesel&apikey=00000000-0000-0000-0000-000000000002
attr tanker_j readingList multi(jsonPath('$.stations.[*]'),concat(property('id'),'_brand'),property('brand'))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_street'),concat(property('street'),' ',property('houseNumber')))\
multi(jsonPath('$.stations.[*]'),concat(property('id'),'_price'),property('price'))

und liefert

setstate tanker_j 2024-10-27 16:01:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_brand STAR
setstate tanker_j 2024-10-27 16:01:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_price 1.009
setstate tanker_j 2024-10-27 16:01:17 005056ba-7cb6-1ed2-bceb-9dd1e660cd3c_street Kinderheim-/Bergstrasse

setstate tanker_j 2024-10-27 16:01:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_brand ARAL
setstate tanker_j 2024-10-27 16:01:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_price 1.009
setstate tanker_j 2024-10-27 16:01:17 c826d6d2-9b1a-47b0-acc1-9322bdbf99a0_street Victoriastraße 174
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 27 Oktober 2024, 16:06:17
Zitat von: Hermann123 am 27 Oktober 2024, 14:40:54@betateilchen
Bei mir funktionierrt keins Deiner Beispiele. Weder mit der JSON Datei, noch per WEB.

Erstens hast Du das Attribut 'readingList' (wie schon Ralf angemerkt) falsch angegeben.
Zweitens solltest Du das Attribut 'interval' weglassen, solange Du nicht genau weißt, was Du da tust. Zumindest solltest Du da nicht irgendwelche sinnlosen Fantasiewerte reinschreiben.

Du musst einfach anfangen, ein bisschen sorgfältiger zu arbeiten und vielleicht auch versuchen zu verstehen, was Du eigentlich tust.



Zitat von: Hermann123 am 27 Oktober 2024, 14:40:54Ich werde jetzt erstmal mein System und die perl & json Pakete checken.
Wenn das OK ist bzw andere JSON basierte PRG laufen melde ich mich wieder.

Deine json Pakete sind in Ordnung, sonst bekämst Du schon beim Anlegen des JsonMod-devices eine Fehlermeldung.
Außerdem hatte Dein erster Test mit complete() ja schonmal funktioniert.


Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 27 Oktober 2024, 16:09:16
Zitat von: RalfRog am 27 Oktober 2024, 15:49:36Vermutlich taucht im Attribut auch das Wort "readingList" einmal zu viel auf.
... nur bei der aufbereiteten config für's listing zum pposten.
Bei den Tests war es richtig...
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 27 Oktober 2024, 16:14:23
Zitat von: TomLee am 27 Oktober 2024, 15:18:52Aber selbst mit richtiger Pfadsyntax hat der User fhem default auch keine Leserechte auf den Ordner, oder hast die angepasst?

Leserechte sind gesetzt für ugo
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: TomLee am 27 Oktober 2024, 16:18:21
ZitatWas soll einem denn da auffallen? Mir fällt da jedenfalls nichts auf, das falsch wäre.

Wenn das bei dir mit den drei / tun sollte, dann muss irgendwas auf meinen zwei Systemen (auf denn ich das heute nachvollzogen habe) irgendwas falsch laufen. Bei mir tut das, wie bei vergangenen Tests auch schon, nur mit zweien und bin bisher auch davon ausgegangen das sei normal.
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 27 Oktober 2024, 16:26:35
Zitat von: betateilchen am 27 Oktober 2024, 16:06:17Zweitens solltest Du das Attribut 'interval' weglassen, solange Du nicht genau weißt, was Du da tust.

Ohne interval Attribut wird die Seite / Datei jede Stunde aufgerufen.
Zum Testen wollte ich das immer manuell machen, per releod. Daher habe ich das interval auf den ersten JAN gesetzt.


Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 27 Oktober 2024, 16:27:47
Zitat von: TomLee am 27 Oktober 2024, 16:18:21Wenn das bei dir mit den drei / tun sollte, dann muss irgendwas auf meinen zwei Systemen (auf denn ich das heute nachvollzogen habe) irgendwas falsch laufen. Bei mir tut das, wie bei vergangenen Tests auch schon, nur mit zweien und bin bisher auch davon ausgegangen das sei normal.

Ein Blick in die commandref hilft manchmal und würde solche unnötige Verwirrung völlig abseits vom Thema vermeiden.

Bei file:/// sollten es immer drei / sein, wenn man einen absoluten Pfad verwenden möchte.

https://forum.fhem.de/index.php?msg=1278110
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: TomLee am 27 Oktober 2024, 16:49:15
ZitatBei mir funktioniert der Aufruf mit der URL völlig problemlos:

ja, die Link-Variante hab ich nur auf dem Testsystem probiert gehabt (und da war libcpanel-json-xs-perl noch nicht installiert)  ::)
Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: Hermann123 am 28 Oktober 2024, 23:07:19
Zitat von: TomLee am 27 Oktober 2024, 16:49:15(und da war libcpanel-json-xs-perl noch nicht installiert)

@TomLee
Deine Erwähnung des fehlenden Pakets hat mich auf die richtige Spur gebracht. Die libcpanel-json-xs-perl
war zwar bei mir installiert, aber nach einigem Suchen habe ich im Wiki einen Beitrag über CPAN gefunden.
Dort sind 2 XS Pakete gelistet (JSON::XS war schon installiert)...und sieh da, nach der Installation von
JSON::MaybeXS läuft das Modul nun mit den Beispielen von betateilchen. Ob das so bleibt,
oder dieses Vorgehen falsch ist, werde ich sehen (oder hier lesen)...
 
Vielen Dank für den Stubs in die richtige Richtung!

@betateilchen
Dir vielen Dank für die verschiedenen Beispiele. Ich werde mich jetzt, da es erstmal läuft,
weiter mit JsonMod auseinander setzen. Da bei HTTPMOD die Umlaute immer noch nicht gewandelt werden,
bleibe ich bei JsonMOD....
Danke! ...bis zur nächsten Frage  ;D



Titel: Aw: HTTPMOD reading stellt Umlaute als \u00nn dar
Beitrag von: betateilchen am 29 Oktober 2024, 11:47:46
Zitat von: Hermann123 am 28 Oktober 2024, 23:07:19Dort sind 2 XS Pakete gelistet (JSON::XS war schon installiert)...und sieh da, nach der Installation von
JSON::MaybeXS läuft das Modul nun mit den Beispielen von betateilchen. Ob das so bleibt,
oder dieses Vorgehen falsch ist, werde ich sehen (oder hier lesen)...

Naja "falsch" nicht direkt. Aber warum tut man sich den Streß an, perl Paket aus CPAN zu installieren, wenn es dafür auch fertige Debian Pakete (hier: libcpanel-json-xs-perl) gibt, die man per apt verwenden könnte? Man umginge damit die Situation, dass man perl Pakete aus verschiedenen Quellen hat, die bei einem Update gegenseitig nichts voneinander wissen. Sowas schafft auf Dauer mehr Probleme, als dass es wirklich nützt.

Aber Hauptsache, es funktioniert jetzt überhaupt erstmal bei Dir mit der Preisabfrage.