Mit ESP8266 "einfachen" set dummy on Befehl absetzen

Begonnen von Leinad, 30 Januar 2016, 12:00:35

Vorheriges Thema - Nächstes Thema

Leinad

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


reibuehl

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 ?) 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

Reiner.

fhainz

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

Leinad

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{