FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Kitt am 29 Januar 2018, 13:10:55

Titel: Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 13:10:55
Hallo an alle,

ich habe folgenden Code gefunden, um meine Temperaturdaten aus FHEM nach Thingspeak hochzuladen.
Den Code habe ich entsprechend angepasst und in die fhem.cfg kopiert. Leider funktioniert er nicht. Kann
mir jemand weiterhelfen?

Vielen Dank!

define n_ThingSpeak notify n_ThingSpeak {\
          my $outtemp = ReadingsVal("LaCrosse_22", "temperature", "");;\
          system("curl --silent --output '/dev/null' --request POST --header --data https://api.thingspeak.com/update?api_key=[API-KEY]&field4=$outtemp")\
        }
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 13:23:23
Zitat von: Kitt am 29 Januar 2018, 13:10:55
Den Code habe ich entsprechend angepasst und in die fhem.cfg kopiert.
ui ui ui.....  ::)

gibt die befehle besser über die oberfläche ein!


was sagt denn dein log?
ein list vom notfiy??
funktioniert der curl aufruf auf der kommandozeile??
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 13:30:38
Die URL an sich funktioniert, wenn ich sie im Browser eingebe... Der curl-Befehl scheint
aber schon nicht zu funktionieren.

Das LOG sagt: 2018.01.29 13:29:18 3: n_ThingSpeak return value: -1

Hier ist die list:

Internals:
   DEF        n_ThingSpeak {
          my $outtemp = ReadingsVal("LaCrosse_22","temperature", "");
          system("curl --silent --output '/dev/null' --request POST --header --data https://api.thingspeak.com/update?api_key=[API-KEY]&field4=$outtemp")
        }
   NAME       n_ThingSpeak
   NOTIFYDEV  n_ThingSpeak
   NR         11
   NTFY_ORDER 50-n_ThingSpeak
   REGEXP     n_ThingSpeak
   STATE      active
   TYPE       notify
   READINGS:
     2018-01-29 13:20:54   state           active
Attributes:
   room       Programme
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 13:34:09
Zitat von: Kitt am 29 Januar 2018, 13:30:38
Die URL an sich funktioniert, wenn ich sie im Browser eingebe... Der curl-Befehl scheint
aber schon nicht zu funktionieren.

dann wäre es erstmal besser das das funktioniert :)
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 13:37:26
Ich habe den Code so übernommen. Ich habe keine Ahnung, wo ich anfangen sollte um einen Fehler zu finden...
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 13:43:04
Zitat von: Kitt am 29 Januar 2018, 13:30:38
Der curl-Befehl scheint aber schon nicht zu funktionieren.

wo hast du den denn eingegeben??
kommandozeile von deinem OS ?

Zitat von: Kitt am 29 Januar 2018, 13:37:26
Ich habe den Code so übernommen. Ich habe keine Ahnung, wo ich anfangen sollte um einen Fehler zu finden...

du hast ihn aber angepasst....?!
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 13:45:07
Ich habe den Namen des Thermometers und den API-Key ersetzt...

Ich habe versucht, den curl-Code in die Befehlszeile von Fhem einzugeben.
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 13:46:48
Zitat von: nils_ am 29 Januar 2018, 13:43:04
wo hast du den denn eingegeben??
kommandozeile von deinem OS ?

ich zitiere mich mal selbst....

bitte beschreib was du gemacht hast etwas genauer, sonst kann ich nur raten!

vermutung: kein curl installiert  :o

Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 13:54:49
Ich habe den Befehl in die Konsole des Raspberrys eingetragen und das "$outtemp" durch einen festen Wert (7) ersetzt:

pi@raspberrypi:~ $ curl --silent --output '/dev/null' --request POST --header --data https://api.thingspeak.com/update?api_key=[API-KEY]&field4=7
[2] 14124
[1]   Fertig                  curl --silent --output '/dev/null' --request POST --header --data https://api.thingspeak.com/update?api_key=[API-KEY]
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 14:03:49
kommt was an?
d.h. kannst du kontrollieren ob die 7 jetzt dort gelandet ist wo sie hin sollte....


was mir bisher noch entgangen ist:
dein notify soll was machen?

define n_ThingSpeak notify n_ThingSpeak {

        }


willst du evtl. auf was anderes reagieren??
wo hast du denn den code her??
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 14:08:45
Ja, und die "7" kommt nicht an. Wenn ich die URL genau so über den Browser schicke, kommt sie an.

Ich möchte das Temperatur-Reading meines Thermometers (Lacrosse_22, temperature) ans Ende der URL setzen und diese dann abschicken
(my $outtemp).
Mit einem weiteren "AT" will ich so die Temperatur alle 15 Minuten loggen.
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 14:19:02
dann musst du die curl parameter kontrollieren.....


und für das notify bitte nochmal in die commandref schauen.

define ntfy notify Lacrosse_22.* {}
das notify am besten mittels event-monitor anlegen. (event-monitor öffnen, entsprechende zeile auswählen / markieren, create klicken....)
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: nils_ am 29 Januar 2018, 14:31:17
war das hier deine vorlage??
https://forum.fhem.de/index.php/topic,59449.msg512617.html#msg512617


da sieht der curl-aufruf schon etwas anders aus!
Titel: Antw:Datenlogging mit Thingspeak
Beitrag von: Kitt am 29 Januar 2018, 14:46:53
Ok, mit der Version, die du geschickt hast, scheinen die Werte anzukommen!! Ich checke mal, ob jetzt alles in Ordnung ist.

--> Es funktioniert!! Danke!