Sida 1 av 2

Floating switch med ESP8266 och Domoticz

Postat: 04 aug 2016, 10:16
av PatrikNo
Hej!

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 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.

Två filer i ESP8266.

init.lua

Kod: Markera allt

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

Kod: Markera allt

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&param=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.

Kod: Markera allt

-- 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
2016-08-04 09.24.21-2.jpg
2016-08-04 09.53.14-2.jpg
2016-07-13 10.12.14.jpg
2016-08-04 09.25.07.jpg

Re: Floating switch med ESP8266 och Domoticz

Postat: 05 aug 2016, 10:20
av steke
Jag skulle vara intresserad av ett vattenlarm som skickar ett sms om det blir läckage i ett akvarium så det blir blött på golvet !
Är det något du kan bygga mot rimlig kostnad ?

Re: Floating switch med ESP8266 och Domoticz

Postat: 05 aug 2016, 13:28
av RicardH
Det här är sjukt techienördigt men oj vad bra!
Det finns ju flottörer men en som skickar sms när man behöver fylla på med osmosvatten, det var något extra det.
Hur mkt lödning och programmering är det? Jag kan lika mkt om detta som jag kan om Venus atmosfär. Nada y nada.

Re: Floating switch med ESP8266 och Domoticz

Postat: 05 aug 2016, 17:02
av PatrikNo
steke skrev:Jag skulle vara intresserad av ett vattenlarm som skickar ett sms om det blir läckage i ett akvarium så det blir blött på golvet !
Är det något du kan bygga mot rimlig kostnad ?
Jag känner inte att jag kan bygga åt andra, då om det inte fungerar kan det vara jobbigt.

Hittade denna video, som är nästan gratis larm om vattnet går under en viss nivå, så ljuder ett alarm.



RicardH skrev:Det här är sjukt techienördigt men oj vad bra!
Det finns ju flottörer men en som skickar sms när man behöver fylla på med osmosvatten, det var något extra det.
Hur mkt lödning och programmering är det? Jag kan lika mkt om detta som jag kan om Venus atmosfär. Nada y nada.
Den programmering jag gjort är det som är i de tre bifogade filerna. Så inte så mycket. Det som var lite struligt när man inte gjort något var att flasha och få programmet till ESP8266. Lödning är det inte så mycket av heller du ser på bilderna hur mycket jag lött, förutom ESP8266, så är det bara ett motstånd, en diod (så jag ser på enheten att det är för lite vatten) och själva flottören.

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.

Re: Floating switch med ESP8266 och Domoticz

Postat: 05 aug 2016, 18:12
av RicardH
Det finns så mycket man skulle kunna automatisera, men en vattentanksbevakare är verkligen något vettigt och mycket praktiskt! Får följa tråden och se hur det utvecklar sig. Fint initiativ Patrik!

Re: Floating switch med ESP8266 och Domoticz

Postat: 05 aug 2016, 18:13
av RicardH
Även det motsatta, alltså larm på returvattentanken är en höjdare!

Re: Floating switch med ESP8266 och Domoticz

Postat: 06 aug 2016, 15:00
av HåkanP
För den som inte vill löda och vill hoppa över programmering av kretsar kan man t.ex. köpa en öppen nivå bryttare och en Nexa fjärrbrytare.
Kräver dock Patriks Domoticz fil och lite anpassning skulle jag tro eller om man sitter med Telldus tellstick att man i programmen man använder skapar händelse för signalen som kommer in. Och att man i sin RFXtrx eller Tellstick har GSM/SMS fungerande alternativt skickar e-post vi nätet.
Det är pul och pet men kul, för vissa av oss i.a.f. :roll:

Finns även massor med olika färdiga varianter liknande digitala termometrar med givare som larmar på olika sätt på http://www.amazon.com men priset stiger allt efter funktion och förmåga att sända larmet vidare.

Re: Floating switch med ESP8266 och Domoticz

Postat: 07 aug 2016, 10:17
av PatrikNo
Kom på en idé. Kan man inte använda en nexa fjärrkontroll som man får med när man köper deras uttag. Vad tror du Håkan?

Re: Floating switch med ESP8266 och Domoticz

Postat: 07 aug 2016, 10:29
av RicardH
Att ha sms-information om huruvida vattentanken är tom eller returvattentanken börjar bli full, är hur bra som helst. Nu klarar man sig absolut utan detta, men det kan man ju säga om avrinning, regnautomation och timer till belysningen också, så kör hårt ni som kan! :D
Skulle någon av er hitta en grej som går att pula ihop för en total elektronolla, så hojta till. OM ngn av er kan förbarma er och pula ihop något åt en sådan nolla, så är det också välkommet. Men men. Spännande tråd!

Re: Floating switch med ESP8266 och Domoticz

Postat: 07 aug 2016, 10:39
av PatrikNo
Jag använder inte sms till min telefon. Utan jag använder Prowl. Det är en app på mobilen. Sen är det en webbsida som man sätter upp att mobilen ska kunna ta emot data. Så något program kan notifiera Prowl servern, som meddelar min telefon. Det finns flera liknade tjänster där ute.