Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Frage] Wie den Counter unterbrechen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    959

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Frage] Wie den Counter unterbrechen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 2 Kommentatoren 494 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich scheitere mal wieder und bräuchte eure Hilfe.

    Ich möchte meinen Garten welcher in vier Zonen eingeteilt ist auf Knopfdruck jeweils X-Minuten bewässern. Wenn in Zone 1 die Zeit abgelaufen ist, wird automatisch nach Zone zwei gewechselt usw. nach Zone 4 wird der Durchlauf beendet. Die Restzeit wird in eine Variable geschrieben welche ich in Vis darstelle.

    Bis hier hin funktioniert alles perfekt nun mein Problem. Ich möchte durch einen "Off-Button" das ganze stoppen und meinen Counter anhalten und auf 0 setzen.

    Doch egal was ich mache er lässt sich zwar beeinflussen aber läuft einfach nach 0 wieder weiter.

    Hier mal mein Script:

    
    // -----------------------------------------------------------------------------
    // allgemeine Variablen
    // -----------------------------------------------------------------------------
    var logging = true;                                         		// Logging on/off
    var instanz = 'javascript.0';  instanz = instanz + '.';    	// 
                                                                      		//
    var pfad0 =   'Automation.';                       			// Pfad innerhalb der Instanz - Status allgemien
    var pfad1 =   'Bewaesserung.'; 
    var BwZeit = 20;  
    // -----------------------------------------------------------------------------
    // Objekte
    // -----------------------------------------------------------------------------
    
    createState(pfad0 + 'Bewaesserungsautomatik', {def: 'false', type: 'boolean', name: 'Gießautomatik ein/aus'});
    
    createState(pfad1 + 'Bewaesserungsautomatik_Schalter', {def: 'off', type: 'string', name: 'Schalter automatische Bewässerung start/stop'});
    
    createState(pfad1 + 'Bewaesserung_countdown',  {def: '0', type: 'number', name: 'Bewaesserung Counter'});
    
    // ############################################################################
    // #                                                                           											#
    // #  Funktion zum automatischen Bewässern der 4 Gartenbereiche                								#
    // #                                                                           											#
    // ############################################################################
    
    function bewaesserung_alle_bereiche(Ventil_Nr) {
        if(logging && Ventil_Nr != 5) log('Aktuell bewässerter Bereich:' + Ventil_Nr);
    
        if(getState("hm-rpc.0.OEQ0205754.1.STATE").val) setState("hm-rpc.0.OEQ0205754.1.STATE", false); // Ventil 1
        if(getState("hm-rpc.0.OEQ0205754.2.STATE").val) setState("hm-rpc.0.OEQ0205754.2.STATE", false); // Ventil 2
        if(getState("hm-rpc.0.OEQ0205754.3.STATE").val) setState("hm-rpc.0.OEQ0205754.3.STATE", false); // Ventil 3
        if(getState("hm-rpc.0.OEQ0205754.4.STATE").val) setState("hm-rpc.0.OEQ0205754.4.STATE", false); // Ventil 4
        if(!getState("hm-rpc.0.OEQ0205754.5.STATE").val) setState("hm-rpc.0.OEQ0205754.5.STATE", true); //Pumpe
    
        if(Ventil_Nr == 1){
             if(!getState("hm-rpc.0.OEQ0205754.1.STATE").val) setState("hm-rpc.0.OEQ0205754.1.STATE", true);
             bewaesserung_counter(Ventil_Nr);
        }
        if(Ventil_Nr == 2){
            if(!getState("hm-rpc.0.OEQ0205754.2.STATE").val) setState("hm-rpc.0.OEQ0205754.2.STATE", true);
            bewaesserung_counter(Ventil_Nr);
        }
        if(Ventil_Nr == 3){
            if(!getState("hm-rpc.0.OEQ0205754.3.STATE").val) setState("hm-rpc.0.OEQ0205754.3.STATE", true);
            bewaesserung_counter(Ventil_Nr);
        }
        if(Ventil_Nr == 4){
            if(!getState("hm-rpc.0.OEQ0205754.4.STATE").val) setState("hm-rpc.0.OEQ0205754.4.STATE", true);
            bewaesserung_counter(Ventil_Nr);
        }
        if(Ventil_Nr == 5){
            if(getState("hm-rpc.0.OEQ0205754.5.STATE").val) setState("hm-rpc.0.OEQ0205754.5.STATE", false); //Pumpe
            log('Automatische Bewässerung fertig');
        }
    }
    
    // ############################################################################
    // #                                                                           											
    // #  Counter der die Bewässerungszeit herunter zählt und sie in eine Variable schreibt							
    // #                                                                           											
    // ############################################################################
    
    function bewaesserung_counter(Ventil_Nr) {
        setTimeout(function () {
            var timer = getState(pfad1 + 'Bewaesserung_countdown').val || BwZeit;
            if (timer > 1) {
                setState(pfad1 + 'Bewaesserung_countdown', timer - 1);
                bewaesserung_counter(Ventil_Nr);
                log(timer);
            }
            else{
                setState(pfad1 + 'Bewaesserung_countdown', 0);
                bewaesserung_alle_bereiche(Ventil_Nr + 1);
            }
        }, 1000);
    }
    
    // ############################################################################
    // #                                                                           											
    // #  Aufruf der Automatischen Bewässerung über Schedule                       									
    // #                                                                           											
    // ############################################################################
    
     on("javascript.0.Bewaesserung.Bewaesserungsautomatik_Schalter", function (dp) {
         if(dp.state.val == 'on'){
          bewaesserung_alle_bereiche(1);
          log("Bewässerungsautomatik durch manu. Start");
         }
         if(dp.state.val == 'off'){
    //-----------------------------------------------------------------------------------------------------
    //
    //	Hier müsste nun der Abbruch stehen jedoch bekomme ich es einfach nicht hin
    //
    //-----------------------------------------------------------------------------------------------------       
           log("Bewässerungsautomatik durch manu. Stop");
         }
    });
    
    

    Ich hoffe jemand kann mir mal einen "Schuppser" in die richtige Richtung geben

    Peoples

    Ich beantworte keine Fragen zu Themen via PN

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @peoples:

      Ich möchte durch einen "Off-Button" das ganze stoppen und meinen Counter anhalten und auf 0 setzen. `
      Das erste Skript (Zeitvorwahl) in http://forum.iobroker.net/viewtopic.php?f=21&t=5067&start=20#p77980 zeigt, wie es geht.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      730

      Online

      32.6k

      Benutzer

      82.2k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe