Hallo,
Habe etwas rumprobiert, und nun einen einigermassen lauffähigen Schaltserver für den ESP8266 zustande gebracht
das schalten von ausgängen funktioniert ganz gut
was noch etwas probleme macht ist das Lessen von eingängen -> shc sendet nicht an den ESP8266, keine ahnung warum hoffe ihr könnt hier weiter helfen
[code=php]-- Schaltserver für ESP8266
-- @author Jan Goedecke
-- @copyright Copyright (c) 2015, Jan Goedecke
-- @license http://opensource.org/licenses/gpl-license.php GNU Public License
-- @since 1.0.0
-- @version 1.0.1
-- Settings
wlan_ssid = "UPC3556104"
wlan_pwd = "wlanpwd"
ss_port = 9274
-- wlan verbinden
-----------------------------------------------
-- STA Modus
wifi.setmode(wifi.STATION)
-- SSID, Passwort
wifi.sta.config(wlan_ssid, wlan_pwd)
tmr.alarm(0, 500, 1, function()
if wifi.sta.getip() == nil then
print("wait\n")
else
print("SS Running v0.3")
print(wifi.sta.getip())
tmr.stop(0)
end
end)
--- wenn wlan verbindung besteht warten auf befehle von SHC
sv=net.createServer(net.TCP, 1) -- anpassen das schneller beendet wird 1sek
sv:listen(ss_port,function(c)
c:on("receive", function(c, pl)
print(pl) -- gibt empfangen daten in console aus!
-- empfangen daten zerlegen
typ = string.sub(pl,0,1)
pin = string.sub(pl,3,3) -- geht nur mit einstelligen pins!
befehl = string.sub(pl,5,5)
-- Type 2 = Ausgang
if(typ == "2") then
print("Ausgang")
if(befehl == "0") then
print("low")
gpio.write(pin,gpio.LOW)
end
if(befehl == "1") then
print("high")
gpio.write(pin, gpio.HIGH)
end
end
-- type 3 = eingang
if(typ == "3") then
gpio.mode(pin,gpio.HIGH)
gpio.write(pin,gpio.HIGH)
status1 = gpio.read(pin)
-- inventieren für reed kontakt
if(status1 == 1) then
--print("status 1")
c:send(0)
end
if(status1 == 0) then
--print("status 2")
status = 1
c:send(1)
end
end
end)
--c:send("ESP8266-Schaltserver Online!\n")
end)
[/php]
Habe etwas rumprobiert, und nun einen einigermassen lauffähigen Schaltserver für den ESP8266 zustande gebracht
das schalten von ausgängen funktioniert ganz gut
was noch etwas probleme macht ist das Lessen von eingängen -> shc sendet nicht an den ESP8266, keine ahnung warum hoffe ihr könnt hier weiter helfen
[code=php]-- Schaltserver für ESP8266
-- @author Jan Goedecke
-- @copyright Copyright (c) 2015, Jan Goedecke
-- @license http://opensource.org/licenses/gpl-license.php GNU Public License
-- @since 1.0.0
-- @version 1.0.1
-- Settings
wlan_ssid = "UPC3556104"
wlan_pwd = "wlanpwd"
ss_port = 9274
-- wlan verbinden
-----------------------------------------------
-- STA Modus
wifi.setmode(wifi.STATION)
-- SSID, Passwort
wifi.sta.config(wlan_ssid, wlan_pwd)
tmr.alarm(0, 500, 1, function()
if wifi.sta.getip() == nil then
print("wait\n")
else
print("SS Running v0.3")
print(wifi.sta.getip())
tmr.stop(0)
end
end)
--- wenn wlan verbindung besteht warten auf befehle von SHC
sv=net.createServer(net.TCP, 1) -- anpassen das schneller beendet wird 1sek
sv:listen(ss_port,function(c)
c:on("receive", function(c, pl)
print(pl) -- gibt empfangen daten in console aus!
-- empfangen daten zerlegen
typ = string.sub(pl,0,1)
pin = string.sub(pl,3,3) -- geht nur mit einstelligen pins!
befehl = string.sub(pl,5,5)
-- Type 2 = Ausgang
if(typ == "2") then
print("Ausgang")
if(befehl == "0") then
print("low")
gpio.write(pin,gpio.LOW)
end
if(befehl == "1") then
print("high")
gpio.write(pin, gpio.HIGH)
end
end
-- type 3 = eingang
if(typ == "3") then
gpio.mode(pin,gpio.HIGH)
gpio.write(pin,gpio.HIGH)
status1 = gpio.read(pin)
-- inventieren für reed kontakt
if(status1 == 1) then
--print("status 1")
c:send(0)
end
if(status1 == 0) then
--print("status 2")
status = 1
c:send(1)
end
end
end)
--c:send("ESP8266-Schaltserver Online!\n")
end)
[/php]
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von gMaN ()