Bevattningspanel

Post Reply
MickeS
Medlem
Posts: 425
Joined: 12 Oct 2016, 07:53
7

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

Kameror, värme, larm och belysning från olika leverantörer
MickeS
Medlem
Posts: 425
Joined: 12 Oct 2016, 07:53
7

Såhär ser det ut
Attachments
1A400060-DF67-43C3-9671-5448C43FD162.jpeg
Homecenter 2

Kameror, värme, larm och belysning från olika leverantörer
MickeS
Medlem
Posts: 425
Joined: 12 Oct 2016, 07:53
7

Börjar med sprinkler 1 sen är det en minut mellan sprinkler 1&3
Homecenter 2

Kameror, värme, larm och belysning från olika leverantörer
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

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
Attachments
Logg automatisk start.JPG
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
MickeS
Medlem
Posts: 425
Joined: 12 Oct 2016, 07:53
7

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

Kameror, värme, larm och belysning från olika leverantörer
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

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.
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
Lindroos
Ny medlem
Posts: 6
Joined: 30 Aug 2014, 13:24
9

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 =)
Post Reply