Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Tasmota Script (Beispiel für Gartenbewässerung)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Tasmota Script (Beispiel für Gartenbewässerung)

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      anwa last edited by

      Hallo,
      ich habe mich gerade ein wenig mit der Scripterstellung (keine Rules!) in Tasmota beschäftigt.
      Ich möchte euch hier ein kleines nützliches Script vorstellen. Es ist im Zuge meiner Gartenbewässerung entstanden (noch in Arbeit).

      HW Setup:

      • Wemos D1 mini
      • Tastmota 8.3.1.5 (selbstkompiliert: #define USE_SCRIPT)
      • Zwei Relais (Ventil + Pumpe)
      • Diverse Sensoren (Kap. Bodenfeuchte, 2 DS18B20 Bodentemperatur, BME280, BH1750 Lux)

      Problem:
      Der Wemos soll Ventil und Pumpe steuern. Ich will mich aber nicht darauf verlassen, das ioBroker das auch wieder ausschaltet!

      Lösung (meine):
      Ich habe ein Script erstellt in Tasmota mit folgenden Funktionen:

      • Maximale Zeit die das Ventil offen sein darf
      • Wenn das Ventil zu geht, soll die Pumpe mit Nachlauf ausschalten
      • Wenn WiFi oder MQTT ausfällt, werden Ventil und Pumpe ausgeschaltet
      • Noch eine kleine Berechnung der Abs. Luftfeuchte (aus den Beispielen)
      >D
      t:t_MAX_ON=-1
      t:t_PUMP_OFF=-1
      t:wflt=-1
      t:mflt=-1
      tmp=0
      hum=0
      temp=0
      valve=0
      wifi=0
      mqtt=0
      MAX_ON=360  ; TODO: Should be changed by MQTT
      PUMP_OFF=5  ; TODO: Should be changed by MQTT
      
      >B
      tmp=pn[21] ; get gpio pin for valve relais
      =>print Ventil is on pin %tmp%
      spin(tmp 1) ; Switch off relais over raw gpio
      
      tmp=pn[22] ; get gpio pin for pump relais
      =>print Pumpe is on pin %tmp%
      spin(tmp 1) ; Switch off relais over raw gpio
      
      >T
      hum=BME280#Humidity
      temp=BME280#Temperature
      
      >S
      ; publish abs hum every teleperiod time
      if mqtts>0 and upsecs%tper==0
      then
      ; calc abs humidity
      tmp=pow(2.718281828 (17.67*temp)/(temp+243.5))
      tmp=(6.112*tmp*hum*18.01534)/((273.15+temp)*8.31447215)
      ; publish median filtered value
      ;=>Publish tele/%topic%/SENSOR {"BME280":{"AbsHumidity":%med(0 tmp)%}}
      endif
      
      ; stop ventil after MAX_ON time expired
      if t_MAX_ON==0
      then
      t_MAX_ON=-1
      =>print Close valve (MAX_ON time expired)
      =>power1 0
      endif
      
      ; stop pump after valve is closed
      if t_PUMP_OFF==0
      then
      t_PUMP_OFF=-1
      =>print Stop pump after valve is closed
      =>power2 0
      endif
      
      if boot==0
      then
      valve=pwr[1]
      if chg[valve]>0
      then
      if valve>0
      then ; Valve open
      t_MAX_ON=MAX_ON ; start valve MAX_ON timmer
      t_PUMP_OFF=-1 ; delete pump off timer
      endif
      if valve==0
      then ; Valve closed
      t_PUMP_OFF=PUMP_OFF ; Start pump off delay
      endif
      endif
      endif
      
      ; Check WiFi connection
      wifi=wifis
      if chg[wifi]>0
      then
      if wifi==0
      then
      wflt=10
      else
      wflt=-1
      endif 
      endif
      
      ; Check MQTT connection
      mqtt=mqtts
      if chg[mqtt]>0
      then
      if mqtt==0
      then
      mflt=10
      else
      mflt=-1
      endif
      endif 
      
      ; switch off relais on comm faults
      if wflt==0 ; WiFi is disconnected
      or mflt==0 ; MQTT is disconnected
      then
      wflt=-1
      mflt=-1
      =>print WiFi or MQTT disconnected
      =>print Switch off relais for safty
      =>power1 0
      =>power2 0 ; Not nessessary because of Pump OFF in 5 sec.
      endif
      

      Leider ist das Script Modul recht pingelig, was die Formatierung angeht...
      Ich will noch die Zeiten über MQTT ändern können, aber ansonsten funktioniert das bei mir gut.

      Ich freue mich auf Feedback 🙂

      Gruß
      Andreas

      S 1 Reply Last reply Reply Quote 0
      • A
        anwa last edited by

        Ok, das war ein Denkanstoß...
        Inzwischen habe ich den PulseTime1..x Besfehl entdeckt. Diesen kann man gut über MQTT steuern.
        Da ich den Sonoff Adapter benutze, mußte ich noch die DP PulseTime1 und PulseTime2 anlegen. Dann konnte ich die per MQTT setzen.
        Das Script ist aber immer noch hilfreich, da ich hier das absolute Limit einer (EIN)Schaltzeit ohne Einfluss auf die PulseTime setzen kann. Außerdem die Sicherheitsabschaltung, falls das WLAN verloren geht.

        Gruß
        Andreas

        1 Reply Last reply Reply Quote 0
        • S
          saeft_2003 Most Active @anwa last edited by

          @anwa

          Deine Lösung ist echt nicht schlecht, aber für mich wahrscheinlich zu kompliziert. Ich bin das Problem bei meiner Bewässerung etwas anders angegangen. Und zwar hatte ich natürlich auch bedenken das bei der Bewässerung ein Ausschaltbefehl nicht ankommen könnte. Meine Pumpe wird über eine Eltakorelais gesteuert, egal ob iobroker läuft oder nicht nach einer Stunde ist Feierabend.

          Noch dazu überprüfe ich mit diesem Skript ob ein Befehl bestätigt wurde oder nicht. Falls nicht bekomme ich sofort ein Telegramm. Das funktioniert wirklich sehr gut. Ich nutze zwar meine Bewässerung erst seit wenigen Monaten, aber bis jetzt ist noch nie ein Befehl nicht angekommen.

          https://forum.iobroker.net/topic/32275/ack-state-abfragen-lesen/13

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          876
          Online

          31.7k
          Users

          79.9k
          Topics

          1.3m
          Posts

          script tasmota
          2
          3
          6081
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo