Die Ecke in unserem Garten sollte aufgehübscht werden. Da sind doch ein paar Hochbeete eine Gute Idee.

Die PV Module liefern zudem noch Strom für die Solarinsel. Die Verkleidung ist zum aktuellen Zeitpunkt noch nicht ganz fertig.

Als Wasserspeicher dient in IBC-Container (1000l). Der Container wird ebenfalls noch verkleidet.

Zum Einsatz kommen:

ESP mini: https://amzn.to/45fIAVH

Ultraschallsensor (Messung Füllstand): https://amzn.to/3KMA9c9

Bewässerungssystem: https://amzn.to/3KQ5IBI

Zigbee USB Stick: https://amzn.to/3sjIEVG

Kupplungen: https://amzn.to/3qFJbAS

Kabelschellen: https://amzn.to/3E3TXE1

Adapterkappe für IBC: https://amzn.to/3E66JBU

IBC Abdeckung: https://amzn.to/3YEO1uN

Pumpe: https://amzn.to/45AmmgH

Tuya Zigbee Ventil: klick

Tuya Zigbee Feuchtigkeitssensor: klick

Solarmodulhalterung: https://amzn.to/3LbQOGr

Y Kabel: https://amzn.to/3qFJhIK

Maschendraht: https://amzn.to/3qCx3R2

Unkrautfließ: https://amzn.to/3KNDtnt

Solarmodule: https://amzn.to/3KQoY25

So sieht es bisher bei mir im VIS aus.

So sieht das Blockly-Script zur Füllstandsmessung aus.

var voll, leer, prozent;


on({ id: [].concat(['sonoff.0.Regentonne1.SR04_Distance']), change: 'ne' }, async (obj) => {
  let value = obj.state.val;
  let oldValue = obj.oldState.val;
  voll = 30;
  leer = 101;
  prozent = Math.round((leer - getState('sonoff.0.Regentonne1.SR04_Distance').val) * 10) / 10;
  if (prozent < 0) {
    prozent = 0;
  }
  if (prozent > 100) {
    prozent = 100;
  }
  if (getState('sonoff.0.Regentonne1.SR04_Distance').val <= voll) {
    console.log(('Minimaldistanz erreicht: ' + String(getState('sonoff.0.Regentonne1.SR04_Distance').val)));
    prozent = 100;
  }
  setState('javascript.0.EigeneGeraete.Regentonne1_Fuellstand' /* Regentonne1_Fuellstand */, prozent);
  setState('javascript.0.EigeneGeraete.Regentonne1_Liter' /* Regentonne1_Liter */, (Math.round(prozent * 10)));
});

Und hier das Script zu Bewässerung (Blockly)

Und hier als javascript:

var minimalFuellstand, minimumFeuchte, maximumFeuchte, Beet1, Beet3;


on({ id: [].concat(['sonoff.0.Garagentor.POWER']), change: 'ne' }, async (obj) => {
  let value = obj.state.val;
  let oldValue = obj.oldState.val;
  if (getState('sonoff.0.Garagentor.POWER').val == true) {
    setState('javascript.0.EigeneGeraete.Bewaesserung_anaus' /* Bewaesserung_anaus */, true);
  } else {
    setState('javascript.0.EigeneGeraete.Bewaesserung_anaus' /* Bewaesserung_anaus */, false);
  }
});
schedule("* 20 * * *", async () => {
  minimalFuellstand = 50;
  minimumFeuchte = 50;
  maximumFeuchte = 80;
  Beet1 = getState('zigbee.0.a4c1387d21cccc5d.soil_moisture').val;
  Beet3 = getState('zigbee.0.a4c138623a70a199.soil_moisture').val;
  if (getState('javascript.0.EigeneGeraete.Regentonne1_Liter').val > minimalFuellstand) {
    if (Beet1 < maximumFeuchte || Beet3 < maximumFeuchte) {
      setState('sonoff.0.Garagentor.POWER' /* Garagentor POWER */, true);
    } else {
      setState('sonoff.0.Garagentor.POWER' /* Garagentor POWER */, false);
    }
  } else {
    sendTo("telegram", "send", {
        text: 'Füllstand Regentonne kritisch! Bewässerung nicht möglich!'
    });
  }
});

Von heckmic

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.