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")\
}
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??
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
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 :)
Ich habe den Code so übernommen. Ich habe keine Ahnung, wo ich anfangen sollte um einen Fehler zu finden...
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....?!
Ich habe den Namen des Thermometers und den API-Key ersetzt...
Ich habe versucht, den curl-Code in die Befehlszeile von Fhem einzugeben.
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
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]
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??
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.
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....)
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!
Ok, mit der Version, die du geschickt hast, scheinen die Werte anzukommen!! Ich checke mal, ob jetzt alles in Ordnung ist.
--> Es funktioniert!! Danke!