Datenlogging mit Thingspeak

Begonnen von Kitt, 29 Januar 2018, 13:10:55

Vorheriges Thema - Nächstes Thema

Kitt

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")\
        }

nils_

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??
viele Wege in FHEM es gibt!

Kitt

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

nils_

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 :)
viele Wege in FHEM es gibt!

Kitt

Ich habe den Code so übernommen. Ich habe keine Ahnung, wo ich anfangen sollte um einen Fehler zu finden...

nils_

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....?!
viele Wege in FHEM es gibt!

Kitt

#6
Ich habe den Namen des Thermometers und den API-Key ersetzt...

Ich habe versucht, den curl-Code in die Befehlszeile von Fhem einzugeben.

nils_

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

viele Wege in FHEM es gibt!

Kitt

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]

nils_

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??
viele Wege in FHEM es gibt!

Kitt

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.

nils_

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....)
viele Wege in FHEM es gibt!

nils_

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!
viele Wege in FHEM es gibt!

Kitt

#13
Ok, mit der Version, die du geschickt hast, scheinen die Werte anzukommen!! Ich checke mal, ob jetzt alles in Ordnung ist.

--> Es funktioniert!! Danke!