Ich bastele hier seit ein paar Tagen mit einem ESP8266 rum.
Ich habe das Teil im Netz und eine einfache Schaltung mit LED und Taster aufgebaut.
Nun möchte ich, wenn der Taster gedrückt wird, ein "set dummy on" auf dem fhem server durchführen.
Bin leider absoluter Noob, habe schon viel gelesen aber bekomme es nicht hin. Kann mir jemand nen Tip geben?
Das Code Beispiel aus dem Wiki habe ich bereits versucht anzupassen, leider ohen Erfolg
Grüße Lenny
Ich kenne mich jetzt nicht mit Lua aus, aber wenn ich mir das Beispiel im Wiki (ich denke mal, Du meinst http://www.fhemwiki.de/wiki/ESP8266#Lua_Scripte_aufspielen (http://www.fhemwiki.de/wiki/ESP8266#Lua_Scripte_aufspielen) ?) ansehe, würde ich vermuten, dass Du in der Zeile
conn:send("GET /fhem?cmd=setreading%20esp8266temp%20state%20T:%20" ..t.. "\r\n"
den FHEM Aufruf in etwa so abändern müsstest:
conn:send("GET /fhem?cmd=set%20dummy%20on\r\n"
(Unter der Annahme, dass dein Dummy dummy heißt.)
Woher Du den Status on bzw. off in dem Script bekommst, sollte dann jemand mit Lua Kenntnissen sagen :)
Generell würde ich vorschlagen, poste den Code der Dir Probleme macht hier, dann ist es einfacher zu helfen.
Gruß,
Reiner
Oder mit MQTT und einem notify?
Mit dem Stichwort "ESP8266 MQTT" findest du sicher einiges.
Bei mir sieht das ca so aus.
-- Connect to WiFi
wifi.setmode(wifi.STATION)
wifi.sta.config("WIFINAME","PASSWORT")
tmr.alarm(0, 1000, 1, function()
if wifi.sta.getip() == nil then
print("Connecting...")
else
ip, nm, gw=wifi.sta.getip()
print("Connected")
tmr.stop(0)
connectToMQTT()
end
end)
-- Connecting to MQTT Broker
function connectToMQTT()
BROKER = "IP_ADRESSE" -- IP/hostname of MQTT broker
BRPORT = 1883 -- MQTT broker port
BRUSER = "" -- if MQTT authenitcation is used then define the user
BRPWD = "" -- user password
CLIENTID = "ESP8266-" .. node.chipid()
print "Connecting to MQTT broker. Please wait..."
m = mqtt.Client( CLIENTID, 120, BRUSER, BRPWD)
m:lwt("/temps/lwt", "Oh noes! Plz! I don't wanna die!", 0, 0)
m:connect( BROKER , BRPORT, 0, 1)
-- Called when connected
m:on("connect", function(m)
print("Connected to MQTT:" .. BROKER .. ":" .. BRPORT .." as " .. CLIENTID )
m:publish("/temps/nodeMCU-2","initialized",0,0, function(conn) end)
end)
-- When client disconnects, print a message and list space left on stack
m:on("offline", function(m)
print ("\n\nDisconnected from broker")
print("Heap: ", node.heap())
end)
end -- connectToMQTT
yeah baby... ich habs ;D
zwar noch nicht perfekt, aber zumindest funktioniert es...
Verstehen, warum es geht, tu ich aber leider noch nicht ::) :o
MQTT werde ich mir aber auf jeden Fall ansehen.
Ich benutze die Arduino IDE...
WiFiClient client;
const int httpPort = 8083;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
if(digitalRead(motionPin) == HIGH){
digitalWrite(ledPin, LOW);
client.println("GET /fhem?cmd=set%20Motion_ESP%20on");
client.println(" HTTP/1.1");
client.println("Host: localhost");
client.println();
} else{
Machst du kuckilucki.....
http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/113-mqtt-basic-esp8266-mqtt-example (http://www.s6z.de/cms/index.php/homeautomation-homecontrol/hardwareplattformen/esp8266/113-mqtt-basic-esp8266-mqtt-example)
MQTT ist voll cool.... 8)