Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    661

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

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

[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

      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

      Registrieren Anmelden
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      448

      Online

      32.7k

      Benutzer

      82.6k

      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