Page 1 of 1

Bevattningspanel

Posted: 01 May 2019, 16:59
by MickeS
Hej,

Jag har 4 sprinklers.

Har lagt in 1 Cykel att varje sprinkler ska vara på i 15 minuter.
Sen loopas detta om igen med Cykel 2 då man bara kan ha 15 minuter på varje i Bevattningspanelen.

Jag skulle oxå vilja ha en Push då det sker en förändring, antingen att de slås på eller slås av.
Men man kan bara lägga in EN statusförändring på enheterna.

Vill t.ex ha:
"Sprinkler1 På"
"Sprinkler1 Av"
Sprinkler2 På"
osv osv.....

Man kanske ska ha en scen till detta istället med dessa kommandon.
Nån som känner sig manad ??

Tack

Re: Bevattningspanel

Posted: 01 May 2019, 17:03
by MickeS
Såhär ser det ut

Re: Bevattningspanel

Posted: 01 May 2019, 17:04
by MickeS
Börjar med sprinkler 1 sen är det en minut mellan sprinkler 1&3

Re: Bevattningspanel

Posted: 04 May 2019, 14:18
by RH_Dreambox
Kanske det här kan vara något för dig?
viewtopic.php?f=29&t=6046&p=16965&hilit ... ing#p16965

Jag använder den med fördel till bevattning i växthuset.
Den kan bevattna flera zoner efter varandra flera gånger per dag, och den tar även hänsyn till lufttemperatur och luftfuktighet.
Man kan lägga till fler temperatursteg, så att bevattningstiden förlängs med en faktor för varje temperatursteg.
Om man dessutom har en regnmätare till Fibaron så kan scriptet hoppa över bevattningen om det regnar.

Där finns med andra ord alla funktioner som Fibaros egen system borde haft, men som saknas.
Med lite "handpåläggning" så kan man även fixa en VD med ett vecko-schema.

Jag skulle gärna se att någon skarpare hjärna än min utvecklar en lämplig VD till det här scriptet.

EDIT:
Den här varianten skickar mail efter avslutad bevattning.
EDIT:
Script ( isRaining() ) buggfixat

Code: Select all

--[[
%% autostart
%% properties
%% events
%% globals
--]]
--http://forum.fibaro.com/index.php?/topic/20698-fibaro-a-nawodnienie/?hl=sprinkler#entry83063
local irrigators = {1029, 1040}; -- En eller flera sprinklers / sektioner {185, 186,187,188}
local startTime = {"08:00", "12:00"}; -- Bevattningstider
local sectionTime = 1*60*1000; -- Bevattningstid i minuter
local timeModification = 1.5; -- Tidsmultiplikator för hög temperatur, tex. 1.5
local temperatureSteps ={20, 25, 30}; -- Tröskelvärden för temperatur, ändrar bevattningstiden
local humiditySteps = {40, 70}; -- Tröskelvärden för luftfuktighet, ändrar bevattningstiden
local modificationStep = 0.25; -- 25% stegvis förändring av bevattningstid
local criticalHumidity = 30; -- Triggar bevattning vid låg luftfuktighet även om det regnar
local rainDetector = 1046; -- EnhetsID för egen regnmätare. Oom inte, skriv 0
local tempSensor = 926; -- EnhetsID för egen temperatursensor
local humSensor = 1016; -- EnhetsID för egen fuktsensor
local rainSensor = true; -- Ändra till false om du inte har egen regnmätare
local deBug      = true;  -- false stänger av debug

-- Slut på egna parametrar
--------------------------------------------------

local startSource = fibaro:getSourceTrigger();
local temperature;
local humidity;

function logbug(color, message)
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end

function localTime()
    local currentDate = os.date("*t");  
    local localTime = currentDate.day .. "/" .. currentDate.month .. "/" .. currentDate.year .. ": "
  return localTime
end

function isRaining()
    if rainSensor then if(tonumber(fibaro:getValue(rainDetector, "value")) > 0) then
        return true;
       else
        return false;
         end
    end
end

function timeModify()
   local modification = 1;
-- tidsmodifiering på grund av temperaturförändring
   for i in pairs(temperatureSteps) do
       if(temperature >= temperatureSteps[i]) then
           modification  = modification + modificationStep;
        end
    end
-- tidsmodifiering på grund av luftfuktighetsförändring
  for i in pairs(humiditySteps) do
       if(humidity <= humiditySteps[i]) then
           modification = modification + modificationStep;
       end
    end
  if deBug then logbug("yellow", (localTime() .. "Inställd bevattningstid = " .. (sectionTime/60000) .." min.")) end;
  if deBug then logbug("yellow", (localTime() .. "Bevattningstiden är väderjusterad till " .. modification.." * bevattningstid.")) end;
  
    return modification;
end

function sprinkling()
  logbug ("lightgreen", (localTime() .. "Bevattningscykeln är påbörjad."));
      for i in pairs(irrigators) do
        if deBug then logbug("lightgreen", (localTime() .. "Bevattning av sektion " .. i .. " påbörjad. Bevattningstid = " .. sectionTime *timeModification/60000 .. " min.")) end;

    fibaro:call(irrigators[i], "turnOn");
        fibaro:sleep(sectionTime * timeModification);
        fibaro:call(irrigators[i], "turnOff");
        if deBug then logbug("lightgreen", (localTime() .. "Bevattning av sektion " .. i .. " är avslutad.")) end;
    end
  logbug ("green", (localTime() .. "Bevattningscykeln är klar."));

  
    local subject = "Bevattningsautomatik"
    local message = ("Bevattningen är klar, (Inställd sprinklertid: " .. (sectionTime) .." min.)  -  Väderjusterad bevattningstid: " .. ((timeModification * sectionTime)) .. " min.")
    fibaro:call(2, "sendEmail", subject, message)
    fibaro:debug("Mail sent")
  
  
    return true;
end


function mainLoop()
    temperature =  tonumber(fibaro:getValue(tempSensor, "value"));
    humidity =  tonumber(fibaro:getValue(humSensor, "value"));
  if deBug then logbug("yellow", (localTime() .. "Mätdata: Lufttemperatur = ".. temperature .. "°C, Luftfuktighet = " .. humidity .."%")) end;

  timeModification = timeModify();
    sprinkling();
end

----------  Loop
if (startSource["type"] == "autostart") then
    logbug ("orange", (localTime() .. "Scenen startade automatiskt."));

	while true do
	    currentDate = os.date("*t");
	    Time = string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min)
        for i in pairs(startTime) do
            if (Time == startTime[i]) then
                if(isRaining() == false) then
                if deBug then logbug("lightgreen", (localTime() .. "Bevattningen startade automatiskt (inget regn).")) end;
        
        mainLoop()
                else
                    humidity =  tonumber(fibaro:getValue(humSensor, "value"));
                    if (humidity <= criticalHumidity) then
                    if deBug then logbug("lightgreen", (localTime() .. "Bevattningen startades automatiskt (regn, men låg luftfuktighet).")) end;

          mainLoop()                 
                    end
                end
 	    end
        end
    
    temp =  tonumber(fibaro:getValue(tempSensor, "value"));
    hum =  tonumber(fibaro:getValue(humSensor, "value"));
    
--        logbug("green", (localTime() .. "Mätdata: Temp. = ".. temp .. "°C *** Fukt. = " .. hum .."%"));
--        logbug ("orange", (localTime() .. "Nästa loop"));
        fibaro:sleep(1*60*1000);
    end
elseif(startSource["type"] == "other") then
  logbug ("orange", (localTime() .. "Bevattningen startades manuellt."));
    mainLoop()
end

Re: Bevattningspanel

Posted: 06 May 2019, 15:48
by MickeS
njae,
Denna verkar vettig men jag har inga sensorer som styr detta.
Sen har jag ett gäng ungar som brukar vistas på gräsmattan i tid & otid.
Vill helst köra från kl 20:00 & framåt mån-fre.

30 minuter per spridare. få Push vid PÅ/AV

Re: Bevattningspanel

Posted: 06 May 2019, 17:36
by RH_Dreambox
Om man inte har någon Temp och Fukt-sensor så kan man använda Fibaros vädertjänst och ID för denna är 3.
Då blir konfigureringen så här...

Code: Select all

local rainDetector = 0 -- EnhetsID för egen regnmätare. Om inte, skriv 0
local tempSensor = 3 -- EnhetsID för egen temperatursensor
local humSensor = 3 -- EnhetsID för egen fuktsensor
local rainSensor = false; -- Ändra till true om du har egen regnmätare
local deBug      = true;  -- false stänger av debug
Funktionerna localTemp och localHum ändras till....

Code: Select all

function localTemp()
    local localTemp =  tonumber(fibaro:getValue(tempSensor, "Temperature"));
  return localTemp
end

function localHum()
	local localHum =  tonumber(fibaro:getValue(humSensor, "Humidity"));
  return localHum
end
Tiden bestämmer du själv i konfigureringen.
Antingen stänger du manuellt av scenen de dagar du inte vill ha bevattning, eller så skapar du en scen som aktiverar bevattningen vissa dagar.

Re: Bevattningspanel

Posted: 04 Jun 2019, 21:05
by Lindroos
Hej.

Jag är lite nyfiken på vad/hur man använder fuktsensorer och regnsensorer till hc2:an?
Tips på några lösningar ihop med denna lua vore ju toppen =)