Neues Modul JSONREADINGS zur Einbindung beliebiger json-Daten per URL

Begonnen von bgewehr, 24 Juni 2015, 15:46:38

Vorheriges Thema - Nächstes Thema

bgewehr

Der Fehler bleibt aber noch:
Too many arguments for main::toReadings at ./FHEM/70_JSONREADINGS.pm line 123, near "))"

$hash übergeben klappt nicht...
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

#16
Fehler gefunden - läuft!
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

l3skon3


My-FHEM

Ich hatte heute folgende Nachricht im Log:


malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<html>\n<head><title...") at ./FHEM/70_JSONREADINGS.pm line 100.


Worauf FHEM beendet wurde, was unschön ist.  Kann FHEM im Fehlerfall nicht einfach weiterlaufen?

Gruß

bgewehr

Ja das wäre besser! Wahrscheinlich falsche URL?

Um das Modul zu verbessern, benötige ich Eure Hilfe, bin leider auch kein Perl-Spezialist!
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

justme1968

du kannst zwei dinge machen:
- prüfen ob die antwort am anfang ein { und am ende ein }  enthält.

- das json decode in eval einschließen.

ersteres ist schneller aber fängt nicht alles ab, letzteres ist sicherer aber etwas langsamer.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

herrmannj

nimm eval { }

Der Klammertest filtert zwar wenigstens html und 404 oder Vergleichbar. Das JSON kann aber aus 1000 anderen Gründen aussteigen und nimmt dann fhem nimmt. Beispiel sind unicode Zeichen. Gerade weil das Modul ja universell ist kann man nie sagen was die Quelle liefert.

vg
Joerg

edith: ich meine mich auch zu Erinnern das ein eval block (im Gegensatz zum eval String) keine Geschwindigkeitsnachteile hat.

davedeluxe

Hi zusammen,

kann mir jemand auf die Sprünge helfen wie ich das Modul benutze?
Ich bin noch recht neu im Thema FHEM und habe mich bisher noch nicht mit Modulen befasst.
Ich habe das Modul jetzt angelegt, weiß aber nicht genau was ich wo editieren muss und wie ich die ausgelesenen Werte in FHEM darstellen kann.

Danke im voraus!

s3bi

Ich würde das Modul auch gerne nutzen.

Die Datei 70_JSONREADINGS.pm habe ich im Ordnet /opt/fhem/FHEM abgelegt, mit den entsprechenden Rechten versehen und veruche nun mit

define <name> JSONREADINGS <url> <poll-delay>

Einen Eintrag zu erzeugen. Jedoch erhalte ich die Meldung " Cannot load module JSONREADINGS"
Jemand eine Idee?

s3bi

JSON war nicht installiert - nach der installation klappt es hervorragend.

Danke für das Modul, damit eröffnen sich ungeahnte Möglichkeiten !! ;)

TWART016

Zitat von: s3bi am 01 Dezember 2015, 16:44:01
Die Datei 70_JSONREADINGS.pm habe ich im Ordnet /opt/fhem/FHEM abgelegt, mit den entsprechenden Rechten versehen

Welches Recht muss man denn der Datei vergeben und mit welchem Befehl?

define BerlinMuenchen JSONREADINGS https://www.google.de/maps/dir/Berlin/M%C3%BCnchen/@50.3122547,9.90211,7z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1s0x47a84e373f035901:0x42120465b5e3b70!2m2!1d13.404954!2d52.5200066!1m5!1m1!1s0x479e75f9a38c5fd9:0x10cb84a7db1987d!2m2!1d11.5819806!2d48.1351253 <poll-delay>
Wäre das so korrekt? Was sollte man bei poll-delay eintragen?


Ma_Bo

Hätte da auch ne Frage unwahr muss ich bevor ich an das JSONReading komme, erst mit einem Namen und Passwort mich einloggen.

Es geht sich um folgendes :
Ich habe eine Software laufen, die mir alle 5 Sekunden diverse Werte eines Handy´s in eine Datenbank schreibt, das ganze ist als Tracking aufgebaut.
Ich kann darüber meine Handy´s oder auch Tracker live verfolgen bzw. bekomme ich im 5 Sekunden Rhythmus die Daten (einstellbar).
Über diese Software läuft das ganze: https://www.traccar.org
bzw. mit dieser Erweiterung : http://traccar.litvak.su

Hier ist erklärt, wie was wo mit API usw., blicke da aber nicht wirklich durch. : http://traccar.litvak.su/features/rest-api.html

Unter http://192.xxx.xxx.xx:xxxx/traccar/rest/getLatestPositions bekomme ich die Daten in meinem Browser für meine Geräte angezeigt, aber nur wenn ich mich vorher mit Name und Passwort angemeldet habe.

Vielleicht hat ja jemand mal Lust nen Blick drauf zu werfen und mir etwas zu helfen.

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

drhirn

Zitat von: Ma_Bo am 03 Dezember 2015, 02:26:40
Hätte da auch ne Frage unwahr muss ich bevor ich an das JSONReading komme, erst mit einem Namen und Passwort mich einloggen.

Das wäre wohl eher ein Fall für das Modul HTTPMOD