Autor Thema: Neue Version von HTTPMOD mit neuen Features zum Testen  (Gelesen 92732 mal)

Offline ch.eick

  • Full Member
  • ***
  • Beiträge: 281
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #510 am: 19 Januar 2019, 17:36:42 »
Hallo det.

Schau bitte mal hier, da habe ich viele Schritte als Liste bereits aufgeführt.

Die Vorgehensweise ist immer die gleiche... und bereits in diesem Verlauf frisch für die Vallox Cloud beschrieben.

Gruß
   Christian
« Letzte Änderung: 19 Januar 2019, 17:40:24 von ch.eick »
FHEM unter Solaris 11.3 nonglobal Zone zum Testen.
RPI2; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken

Offline mar3d@RPi3

  • New Member
  • *
  • Beiträge: 10
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #511 am: 09 Februar 2019, 21:50:40 »
Hallo zusammen.

Ich wollte die DWD-Warnungen im JSON-format von
attr Wetterwarner getURL https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json
attr Wetterwarner get01JSON warnings_<regionID>
attr Wetterwarner get01Name warn
holen. Das geht mit den JSON-Object-Values dank
attr Wetterwarner preProcessRegex s/warnWetter..............|\);|\t|\n|\r//gauch ganz gut, danke schon einmal dafür. Aber ich bekomme es einfach nicht hin die Readings-Namen so zu formatieren, dass die JSON-Object-Namen darin vorkommen. Anstatt:
"Wetterwarner warn-1 Es treten Sturmb�en...." und "Wetterwarner warn-2 1549...." hätte ich lieber gerne:
"Wetterwarner warn_01_headline Es treten Sturmb�en...." und "Wetterwarner warn_01_start 1549...." oder so ähnlich.
Ich habe jetzt schon sooooo viel gelesen und probiert aber ich bekomme es einfach nicht hin. Mein fhem.log überschreitet mittlerweile die Grenze zu gigantisch (verbose 5). Kann es sein, dass es nur mit getXXRegex nicht aber mit getXXJSON geht? Obwohl: Im log unter "got keylist" steht eigentlich alles drin. ¯\_(ツ)_/¯
Könnt Ihr mir bitte einen Tip geben?
Zustimmung Zustimmung x 1 Liste anzeigen

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1171
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #512 am: 09 Februar 2019, 22:57:49 »
Hallo

Meinst Du so was wie
define Wetterwarner HTTPMOD https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json 0
attr Wetterwarner enableControlSet 1
attr Wetterwarner preProcessRegex s/warnWetter..............|\);;|\t|\n|\r//g
attr Wetterwarner reading01JSON warnings_116065000_01_regionName
attr Wetterwarner reading01Name Region
attr Wetterwarner reading02JSON warnings_116065000_01_state
attr Wetterwarner reading02Name Bundesland
attr Wetterwarner reading03JSON warnings_116065000_01_headline
attr Wetterwarner reading03Name Titel

Gruß
   Stefan

Offline mar3d@RPi3

  • New Member
  • *
  • Beiträge: 10
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #513 am: 10 Februar 2019, 00:33:33 »
nein, so legst du die Readings ja manuell an. Die Anzahl ändert sich aber immer. Mit reading01JSON warnings_116065000 hat HTTPMOD die Readings bei mir ja automatisch angelegt. Je nach dem, welche JSON-Objekte enthalten waren. Mal mit Hinweisen, die nicht immer da sind oder mal mehrere Warnungen gleichzeitig. Das funktioniert ja prima und soll auch so bleiben.
Ich möchte die Namen der Readings (nicht die Werte) jetzt aber so formatieren, das sie nicht nur eine fortlaufende Nummer erhalten. Sie sollen die Warnung-Nummer und JSON-Objekt-Namen enthalten:
Erste Warnung, erstes Objekt (z.B.: description), zweites Objekt (z.B.: end), Zweite Warnung, erstes Objekt (z.B.: description)...:
warn-01-description, warn-01-end, warn-02-description ...
UND im Prinzip macht HTTPMOD so etwas ja auch schon. Im log:
2019.02.09 08:37:43.387 5: Wetterwarner: ExtractReading warn with json warnings_116065000 did not match a key directly - trying regex match to create a list
2019.02.09 08:37:43.428 5: Wetterwarner: ExtractReading warn with json /^warnings_116065000/ got keylist warnings_116065000_01_description warnings_116065000_01_end warnings_116065000_01_event warnings_116065000_01_headline warnings_116065000_01_instruction warnings_116065000_01_level warnings_116065000_01_regionName warnings_116065000_01_start warnings_116065000_01_state warnings_116065000_01_stateShort warnings_116065000_01_type warnings_116065000_02_description ....
Bitte beachten: warnings_116065000_01_description .... warnings_116065000_02_description ....
Ich hoffe jetzt habe ich besser erklärt, wie ich es meine.

Online Hubi22

  • New Member
  • *
  • Beiträge: 23
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #514 am: 10 Februar 2019, 11:29:57 »
Hallo

bei der Abfrage auf Donnerwetter bekomme ich folgenden Wert in LAST_ERROR:

https://www.donnerwetter.de/pollenflug/broeckel/DE14995.html: Can't connect(2) to https://www.donnerwetter.de:443: SSL connect attempt failed error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol

Hat jmd bitte einen Tipp wie ich den Fehler beseitigen kann?

Gruß, Hubi

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1171
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #515 am: 12 Februar 2019, 21:20:33 »
Hallo mar3d@RPi3,

der Mechanismus, der in Deiner Konfiguration die Readings automatisch anlegt, funktioniert folgendermassen:
Wenn der für das Parsen angegebene JSON-String nicht existiert, sucht HTTPMOD per regex-Match alle JSON-Objekte zu finden, die matchen.
Die Objekte werden dabei wie auch bei extractAllJSON durch Verketten der Hierarchie mit _ erzeugt.
Das Ergebnis ist eine Liste und daraus werden dann die am Ende durchnummerierten Namen.
Das ist leider keine zuverlässige Methode für Deinen Fall. Es gibt keine Garantie, dass eine bestimmte Listenposition immer die gleiche Bedeutung hat.

Da die Antwort des Servers alle Regionen enthält, ist vermutlich auch ein extractAllJSON keine sinnvoll Option für Dich. Was Du bräuchtest, wäre eine Art extractAllJSONFrom. Also ein Feature, das alle Objekte ab einer vorgegebenen Hierarchie automatisch in Readings umwandelt.
Das nehme ich gerne auf die Wunschliste auf. Bisher gibt es das aber nicht.

Die vermutlich vernünftigste Lösung ist deshalb doch das manuelle Definieren aller potentiellen Readings (vorsorglich für z.B. 10 Meldungen einer Region) also als reading03JSON warnings_116065000_01_headline, reading03JSON warnings_116065000_02_headline usw. für alle gewünschten Objekte.
Wenn dann bestimmte Objekte nicht existieren, werden sie auch nicht zu Readings und alte Readings könnte man per DeleteIfUnmatched oder MaxAge entfernen.

Gruss
   Stefan

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1171
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #516 am: 12 Februar 2019, 21:21:59 »
Hallo Hubi22,

ich kann den Fehler (leider) nicht nachvollziehen.
Bei mir kommt für die URL eine Seite mit
<p>You don't have permission to access /pollenflug/broeckel/DE14995.html
als Antwort.

Gruss
   Stefan

Offline Schlimbo

  • Sr. Member
  • ****
  • Beiträge: 640
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #517 am: 12 Februar 2019, 21:48:33 »
Hallo Stefan,
bekomme seit dem letzten Update von HTTPMOD folgende Meldung im Log:
2019.02.12 21:07:25.715 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/98_HTTPMOD.pm line 2683.
2019.02.12 21:07:25.715 1: stacktrace:
2019.02.12 21:07:25.715 1:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (2683)
2019.02.12 21:07:25.716 1:     main::HTTPMOD_Read                  called by FHEM/HttpUtils.pm (606)
2019.02.12 21:07:25.716 1:     main::__ANON__                      called by fhem.pl (739)
2019.02.12 21:09:25.734 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at ./FHEM/98_HTTPMOD.pm line 2683.
2019.02.12 21:09:25.734 1: stacktrace:
2019.02.12 21:09:25.734 1:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (2683)
2019.02.12 21:09:25.735 1:     main::HTTPMOD_Read                  called by FHEM/HttpUtils.pm (606)
2019.02.12 21:09:25.735 1:     main::__ANON__                      called by fhem.pl (739)
Hast du eine Idee an was das liegen könnte?

Gruß Schlimbo

Offline mar3d@RPi3

  • New Member
  • *
  • Beiträge: 10
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #518 am: 12 Februar 2019, 22:23:15 »
Danke StefanStrobel,

für die ausführliche Antwort und die Aufnahme in die Wunschliste. Ich werde mir also nach deinem Muster behelfen und verbleibe gespannt lauschend.

Gruß mar3d

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1171
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #519 am: 13 Februar 2019, 20:56:22 »
Hallo,

anbei eine neue Version zum Testen.
Die Warnung aus Zeile 2683 sollte damit behoben sein und es gibt ein neues Attribut extractAllJSONFilter.
Wenn man extractAllJSON auf 1 oder 2 setzt und gleichzeitig extractAllJSONFilter z.B. auf 105362000, dann werden nur solche Readings bzw. Attribute erzeugt, bei denen der Filter als Regex matcht.

Anwendungsbeispiel:

define Wetterwarner HTTPMOD https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json 0
attr Wetterwarner enableControlSet 1
attr Wetterwarner extractAllJSON 1
attr Wetterwarner extractAllJSONFilter 105362000
attr Wetterwarner preProcessRegex s/warnWetter..............|\);;|\t|\n|\r//g

dann ein set Wetterwarner reread

Gruss
   Stefan

Offline mar3d@RPi3

  • New Member
  • *
  • Beiträge: 10
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #520 am: 13 Februar 2019, 22:40:33 »
wow, JSON-Objekt-Namen werden zu Reading-Namen. Das sieht sehr gut aus, danke!

Offline Schlimbo

  • Sr. Member
  • ****
  • Beiträge: 640
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #521 am: 14 Februar 2019, 05:52:59 »
Hallo Stefan,
danke, mit der Version von gestern gibt es keine Warnungen mehr.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7325
  • eigentlich eher user wie "developer"
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #522 am: 14 Februar 2019, 07:57:28 »
Habe das mit dem DWD auch mal angetestet. Zwei Fragen dazu:
- Die Formatierung der Grad-Angaben paßt bei mir nicht (es erscheint ein Sonderzeichen-Fragezeichen). Liegt das ggf. an der Lokalisierung des OS?
- (Kann sein, dass das schon irgendwo steht, aber vielleicht hat das jemand ohne große Sucherei parat): Wie kommt man an eine passende Ortsangabe, habe beim DWD auf die Schnelle nichts gefunden
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW | SIGNALduino | MapleCUN | ZWave | HUE@deCONZ@docker
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline mar3d@RPi3

  • New Member
  • *
  • Beiträge: 10
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline UHT

  • New Member
  • *
  • Beiträge: 16
Antw:Neue Version von HTTPMOD mit neuen Features zum Testen
« Antwort #524 am: 15 Februar 2019, 07:15:23 »
Hallo Forum,

ich benötige eine Möglichkeit ein HTTP PUT zu senden.
Das geht afaik mit HTTMOD adhoc nicht?
Wär es nicht eine Idee, da ein noch ein parameter set[0-9]+Method zu definieren? HttpUtils kann das ja schon.

Grüße
Uwe