redina Postat 11 augusti 2016 Postat 11 augusti 2016 (ändrat) Inspiration! Har gjort en floating switch med ESP8266, som uppdaterar en dummy-switch i Domoticz. I Domoticz har jag ett program som kontrollerar denna switch och skickar ett meddelande (Prowl) till min telefon om vattnet behöver fyllas på. Att den uppdaterar min Domoticz kan ju lätt bytas ut mot vad man själv använder. ESP8266 är ett lite Wifi-kort, som det finns folk som gjort ny kod till som man flashar dom med, så kan man göra egna program. Det är den som är hjärnan kan man säga i detta projekt. Jag har använt mig av WeMos D1 mini - NodeMCU ESP8266 development, vilket gör det lite enklare, då den har USB, så man kan flasha/programmera och sen ha en vanlig strömadapter till den. Om man vill veta mer så kan jag ge lite mera information. Detta inlägg är lite inspiration, vad man kan göra. Två filer i ESP8266. init.lua --init.lua wifi.setmode(wifi.STATION) wifi.sta.config("SSID","password") wifi.sta.connect() tmr.alarm(1, 1000, 1, function() if wifi.sta.getip()== nil then print("IP unavaiable, Waiting...") else tmr.stop(1) print("ESP8266 mode is: " .. wifi.getmode()) print("The module MAC address is: " .. wifi.ap.getmac()) print("Config done, IP is "..wifi.sta.getip()) print("Wait 3 sec if something is wrong") tmr.alarm(0,3000, tmr.ALARM_SINGLE, function() print("Waited 3 sec") dofile ("switch.lua") end) end end) switch.lua buttonPin = 2 gpio.mode(buttonPin,gpio.INPUT) watersensor = 106 tmr.alarm(0,120000, 1, function() value = gpio.read(buttonPin) print("Switch state: " .. value .. "\n") if(value == 1) then value = "On" else value = "Off" end print("Switch state: " .. value .. "\n") sendData(value, watersensor) end) function sendData(value, device) conn=net.createConnection(net.TCP, 0) conn:on("receive", function(conn, payload) print(payload) end ) conn:connect(8080,"192.168.1.128") conn:on("connection", function(sck, c) sck:send("GET /json.htm?type=command¶m=switchlight&idx=" .. device .. "&switchcmd=" .. value .. " HTTP/1.1\r\nHost: 192.168.1.128\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n") end) end Fil i Domoticz.script_device_watersensor.lua Använder en dummy switch och en variabel av typen int. Detta program sänder ut en notifiering till min telefon (jag använder Prowl, konfigureras i Domoticz). -- Waterdevice script userVariableWaterSensorTriggered='WaterSensorTriggered' commandArray = {} if (devicechanged['VattenSensor'] == 'On' and uservariables[userVariableWaterSensorTriggered] == 0) then print('Waterdevice is On') commandArray[1] = {['SendNotification'] = 'Vatten slut!'} commandArray[2] = {['Variable:'..userVariableWaterSensorTriggered] = tostring(1)} end if (devicechanged['VattenSensor'] == 'Off' and uservariables[userVariableWaterSensorTriggered] == 1) then print('Waterdevice is Off') commandArray[1] = {['Variable:'..userVariableWaterSensorTriggered] = tostring(0)} end return commandArray Ändrat 11 augusti 2016 av redina 2 Citera
Perk Postat 11 augusti 2016 Postat 11 augusti 2016 Intressant, helt oinsatt men gissar att man kan koppla flera switchar? Skulle i så fall lägga till en för när skummarkoppen blir full tex. Skickat via Tapatalk Citera
redina Postat 11 augusti 2016 Författare Postat 11 augusti 2016 Ja chipet kan ha flera switchar. Finns flera in/ut. Så som jag gjort i detta fall. Är att chipet rapportera en 1 eller 0 om läget på switchen. Detta värde kan man skicka var som helst. Behöver inte vara lokalt utan det kan vara en eller flera av de många tjänster som finns på internet. Det jag ville visa var att man ganska billigt kan göra en egen sensor som kopplas in på egna wi-fi nätverket. OBS jag är helt nybörjare på svagströmmen och lödning. Så det kanske finns en bättre lösning. Citera
Rekommenderade inlägg
Gå med i konversationen
Du kan posta nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.