Autor Thema: Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL  (Gelesen 19559 mal)

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #45 am: 15 Oktober 2017, 10:26:27 »
Zitat
501 Protocol scheme 'https' is not supported (LWP::Protocol::https not installed)
Man kann auch versuchen Hinweise im Log zu verstehen, anstatt sie blind zu posten.

Zitat
Ich finde man sollte das Modul "aufräumen" und dann einchecken.
Bevor Du selbst etwas für FHEM geleistet hat, ist diese Forderung mAn ziemlich dreist, denn mit dem Eincheck ins SVN ist auch Support verbunden.
Aber vielleicht möchtest Du ja einen Patch schreiben und dem Entwickler diesen dann anbieten?

Wenn Du ein offizielles Modul benutzen möchtest, dann bietet sich vmtl. HTTPMOD an.

Offline maddhin

  • Full Member
  • ***
  • Beiträge: 152
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #46 am: 15 Oktober 2017, 11:18:04 »
Man kann auch versuchen Hinweise im Log zu verstehen, anstatt sie blind zu posten.

?? Ich habe auf Grund des Log-Hinweises LWP::Protocol::https installiert - was dann jetzt zu dem Fehler geführt hat!!! Die Frage ist ja was ich tun kann, DAMIT JSONREADINGS wieder funktioniert NACHDEM ich der Meldung gefolgt bin.

Nochmal, die eigentlichen Fehlermeldungen sind (siehe bereits meinem Log Auszug!!):

2017.10.15 12:30:39 1: PERL WARNING: main::toReadings() called too early to check prototype at /usr/share/fhem/FHEM/70_JSONREADINGS.pm line 121, <$fh> line 204.

Not a HASH reference at /usr/share/fhem/FHEM/70_JSONREADINGS.pm line 122.

Das hat nun wirklich nichts mit blind posten zu tun, oder?

Bevor Du selbst etwas für FHEM geleistet hat, ist diese Forderung mAn ziemlich dreist, denn mit dem Eincheck ins SVN ist auch Support verbunden.
Aber vielleicht möchtest Du ja einen Patch schreiben und dem Entwickler diesen dann anbieten?

Ich versuche soviel zu helfen wie dies meine Fähigkeiten erlauben. Ich habe leider weder Programmier- noch IT Hintergrund und muss mir Fhem, Perl, etc pp erst aneignen. Wenn ich das Problem selbst lösen könnte, würde ich ja nicht fragen...

Bzgl. Einchecken: sorry, ich meinte dies nur positiv, weil ich denke, dass dies ein sehr nützliches Module ist. Nicht mehr und nicht weniger. Ich weiß nicht, was es bedeutet und welche Arbeit es macht, wein Module einzuchecken. Wenn dem Maintainer das Einchecken zu stressig ist, ist dies doch völlig ok.


Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3299
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #47 am: 16 Oktober 2017, 21:01:27 »
Das einchecken selbst ist noch keine echte Arbeit (paar Mausklicks) , aber man übernimmt damit gewisse Verpflichtungen :)
Ich habe mir das Modul mal angeschaut und denke das hätte man ohne das ganze LWP Zeugs auch nur mit FHEM Bordmittel und dazu noch non Blockuk machen können.
Schau dir doch mal die angehängte umgeschriebene Version an ob es damit klappt bei dir. Ich hatte auf die schnelle keine eigene JSON URL zur Hand und habe daher mit der http://api.waqi.info/feed/shanghai/?token=demo getestet.
« Letzte Änderung: 17 Oktober 2017, 12:51:46 von Wzut »
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #48 am: 17 Oktober 2017, 07:24:25 »
Es fehlt noch das Dereferenzieren von $ref in den beiden while Schleifen, sonst beschweren sich neuere Perlversionen ;)

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3299
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #49 am: 17 Oktober 2017, 09:12:16 »
hmmm , den Teil hatte ich gestern Abend gar nicht auf dem Radar, aber stimmt auf der Seite davor wird das Thema ja bereits angesprochen. Allerdings ist meine Perl Version dann zu alt, denn ich darf es nur in der inneren Schleife ändern sonst bekomme ich die Meldung
Not a HASH reference at ./FHEM/70_JSONREADINGS.pm line 102.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #50 am: 17 Oktober 2017, 10:31:20 »
Ich habe es nicht getestet, aber ich verwende Bernds rekursive toReadings() abgewandelt auch im expandJSON Modul. Dort ist mir dieser Effekt nicht aufgefallen. Vielleicht eine Zeile vorher testen ob es eine hash reference ist und dann ggf. umwandeln.

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #51 am: 17 Oktober 2017, 11:06:57 »
Ich mag mich irren, aber soweit ich mich erinnere ist die etwas seltsam anmutende zweifache Deklaration der sub der Rekursion geschuldet. Die Routine stammt ursprünglich von Andre und wirft bei nur einfacher Deklaration nach einem Neustart eine Fehlermeldung. Habe es jetzt aber nicht erneut eruiert.

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3299
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #52 am: 17 Oktober 2017, 11:12:55 »
Vielleicht eine Zeile vorher testen ob es eine hash reference ist und dann ggf. umwandeln.
nö nicht nötig, eigene Dummheit ... macht man es richtig so wie du in expandJSON passt es :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #53 am: 17 Oktober 2017, 11:28:27 »
Um folgende Warnung, neuerer Perlversionen, vorzubeugen kann man die Sub toReadings() weiter oben im Quelltext noch zusätzlich deklarieren.
Zitat
PERL WARNING: main::XXXfn() called too early to check prototype at...

Wenn es rund ist: Magst Du einen Pull Request stellen, wenn Du einen Github Account hast? Sonst kann ich das auch machen. Hier im Anfängerbereich geht Deine Arbeit sonst schnell unter.

« Letzte Änderung: 17 Oktober 2017, 11:31:48 von dev0 »

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #54 am: 17 Oktober 2017, 12:03:24 »
@bgewehr: liest Du hier noch mit?

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3299
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #55 am: 17 Oktober 2017, 12:58:30 »
@dev0 , nein ich habe selbst keinen Account. Ich habe die Version von gestern Abend ausgetauscht, schau doch bitte nochmal drüber das jetzt alles so einigermaßen passt.
Dann kann bgewehr irgendwann wenn er mal Zeit und Lust hat sich aussuchen was er davon übernehmen möchte. 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #56 am: 17 Oktober 2017, 13:05:54 »
Ich weiss nicht wie es im "Original" ist, aber ich würde die Subs nicht JR_.* sondern durchgängig JSONREADINGS_.* benennen. Sonst sieht es auf den ersten Blick gut aus, habe es aber nicht getestet. Wäre nett, wenn das jemand macht, der das Modul auch nutzt.

Offline bgewehr

  • Hero Member
  • *****
  • Beiträge: 1180
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #57 am: 17 Oktober 2017, 13:46:28 »
Ja, bin dabei. Bei PR werde ich gern mergen, selbst ist es mir grad zeitlich schwer möglich, voll einzusteigen.
FritzBox 7590
FHEM auf BananaPi/SSD mit CUL868 und hmlan, SmartVISU mit fronthem
Sprinklersteuerung über MQTT auf Raspi A+
Volkszaehler.org auf Raspberry Pi 2B
Synology DS716+II mit docker, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO

Offline maddhin

  • Full Member
  • ***
  • Beiträge: 152
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #58 am: 17 Oktober 2017, 13:47:28 »
Zuest mal herzlichen Dank, dass ihr der Sache nachgeht! Super!

Ich habe Perl v5.26.1 und das Modul funktioniert nun!

Zumindest mit dem https://api.waqi.info/feed/shanghai/?token=demo Link. Den Link (mit token), den ich eigentlich abrufen will geht nicht, aber das wird an der API liegen und sollte mit dem Module nichts zu tun haben. Muss ich mich später mal ranmachen.

War es naiv Arch Linux auf dem RPi für Fhem zu installieren? Aber ich hätte sonst eine andere App nicht installieren können.

Macht es Sinn bzw kann man Perl-updates stoppen, damit das nicht ein endloses Problem wird?

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3577
    • _.:|:._
Antw:Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL
« Antwort #59 am: 17 Oktober 2017, 13:59:12 »
War es naiv Arch Linux auf dem RPi für Fhem zu installieren?
Wenn Du Dich damit auskennst oder zumindest einarbeitest, dann nicht ;)

Offizielle FHEM Module sollten auch immer mit den aktuellsten Perl Versionen klar kommen. Bei den offiziellen Modulen ist das auch so oder es wird vom Maintainer angepasst, wenn er Kenntniss von einer Inkompatibilität erhält. Deine Anforderung würde sich aber wahrscheinlich auch mit offiziellen HTTPMOD Modul umsetzen lassen, das hatte ich aber auch schon geschrieben.