Wie erwähnt, schrieb ich ein Skript, das eine Verbindung zu einer Wetter-API herstellt und das Ergebnis ausdrucken.NodeMCU 0.9.6-dev auf ESP 8266 (devkit v2): während Dofile() Skript keine Verbindung zu TCP-Server
Alles funktioniert gut, wenn ich es Zeile für Zeile durch den Interpreter (ESPlorer "Senden an ESP- und Ausführen" Zeile für Zeile ""), aber wenn ich es über dofile()
ausführen kann es keine Verbindung zur Website und schlägt fehl.
Ich bin verwirrt und hoffe, dass einige von euch den Fehler finden, den ich ignoriere. Hier
ist der Code:
data= ""
s= net.createConnection(net.TCP, 0)
s:on("receive", function(so, da) data= da end)
s:connect(80, "api.openweathermap.org")
s:send("GET /data/2.5/weather?q=berlin,de&appid=9a3719c191ce0e1e70673f892013647e&units=metric HTTP/1.1\r\nHost: www.api.openweathermap.org\r\n\r\n")
for x in string.gmatch(data, "([^\n]+)") do
if string.find(x, '"coord"') ~= nil then
for k,v in pairs(cjson.decode(x)) do
if k == "main" or k == "weather" then
print("++++++"..k.."++++++")
if type(v) == "table" then
for kz, vz in pairs(v) do
if kz == 1 or kz == 2 then
for kd,vd in pairs(vz) do
print(kd,vd)
end
else print(kz,vz) end
end end end
end end end
s:close()
Vielen Dank, sehr hilfreich. –
Gut zu wissen. Wenn dies Ihr Problem löst, akzeptieren Sie und/upvote die Antwort, so dass StackOverflow diesen Fall als geschlossen markieren kann. –