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. JavaScript
  5. Pumpenabschaltung läuft nicht - Anfängerfehler?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Pumpenabschaltung läuft nicht - Anfängerfehler?

Geplant Angeheftet Gesperrt Verschoben Ungelöst JavaScript
5 Beiträge 2 Kommentatoren 295 Aufrufe 1 Watching
  • Ä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.
  • E Offline
    E Offline
    erhard_stgt
    schrieb am zuletzt editiert von
    #1

    Ich hab ein Skript geschrieben, dass die Pumpe immer dann abschalten soll, wenn der Stand der Zisterne unter einen bestimmten Stand fehlt. Eigentlich sollte das gaaaanz einfach sein - es funktioniert aber dennoch nicht.
    Was mache ich falsch? Bei so wenig Script sollte man sowas eigentlich hinbekommen...
    Jemand einen Tipp für mich?

    // Script zum Abschalten der Pumpe bei leerer Zisterne
    
    // Datenpunkt-ID
    var idZisterne_Stand = "hm-rpc.0.NEQ1012222.1.FILLING_LEVEL";  /*FM_GN_01.FILLING_LEVEL*/
    var Zisterne_Stand = getState("hm-rpc.0.NEQ1012612.1.FILLING_LEVEL"/*FM_GN_01.FILLING_LEVEL*/).val;
    var idPumpe = "hm-rpc.0.NEQ01234567.1.STATE";        // Verknüpfung mit Aktor für Steckdose Pumpe
    var Zisterne_Stand_neu = 10.6;     /*Zisterne_Stand_neu als number definiert*/
    Zisterne_Stand_neu = "vis.0.datapoints.Zisterne_Stand_neu";     /*Zisterne_Stand_neu*/
    
    // wenn der Füllstand der Zisterne unter xx% fällt soll die Pumpe abgeschaltet werden.
    
    
    on({id: idZisterne_Stand, change: "any"}, function (obj) {
         if (Zisterne_Stand_neu < 23) {
             setState(idPumpe, false);  // Pumpe ausschalten
             console.log("If-Schleife in function Abschaltung_Pumpe durchlaufen!");
         }
    });
    
    paul53P 1 Antwort Letzte Antwort
    0
    • E erhard_stgt

      Ich hab ein Skript geschrieben, dass die Pumpe immer dann abschalten soll, wenn der Stand der Zisterne unter einen bestimmten Stand fehlt. Eigentlich sollte das gaaaanz einfach sein - es funktioniert aber dennoch nicht.
      Was mache ich falsch? Bei so wenig Script sollte man sowas eigentlich hinbekommen...
      Jemand einen Tipp für mich?

      // Script zum Abschalten der Pumpe bei leerer Zisterne
      
      // Datenpunkt-ID
      var idZisterne_Stand = "hm-rpc.0.NEQ1012222.1.FILLING_LEVEL";  /*FM_GN_01.FILLING_LEVEL*/
      var Zisterne_Stand = getState("hm-rpc.0.NEQ1012612.1.FILLING_LEVEL"/*FM_GN_01.FILLING_LEVEL*/).val;
      var idPumpe = "hm-rpc.0.NEQ01234567.1.STATE";        // Verknüpfung mit Aktor für Steckdose Pumpe
      var Zisterne_Stand_neu = 10.6;     /*Zisterne_Stand_neu als number definiert*/
      Zisterne_Stand_neu = "vis.0.datapoints.Zisterne_Stand_neu";     /*Zisterne_Stand_neu*/
      
      // wenn der Füllstand der Zisterne unter xx% fällt soll die Pumpe abgeschaltet werden.
      
      
      on({id: idZisterne_Stand, change: "any"}, function (obj) {
           if (Zisterne_Stand_neu < 23) {
               setState(idPumpe, false);  // Pumpe ausschalten
               console.log("If-Schleife in function Abschaltung_Pumpe durchlaufen!");
           }
      });
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @erhard_stgt :
      Woher soll der Vis-Datenpunkt wissen, was der tatsächliche Stand in der Zisterne Ist ? Versuche es mal so:

      on({id: idZisterne_Stand, valLt: 23, oldValGe: 23}, function () {
           setState(idPumpe, false);  // Pumpe ausschalten
           console.log("Abschaltung Pumpe");
      });
      

      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

      E 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @erhard_stgt :
        Woher soll der Vis-Datenpunkt wissen, was der tatsächliche Stand in der Zisterne Ist ? Versuche es mal so:

        on({id: idZisterne_Stand, valLt: 23, oldValGe: 23}, function () {
             setState(idPumpe, false);  // Pumpe ausschalten
             console.log("Abschaltung Pumpe");
        });
        
        E Offline
        E Offline
        erhard_stgt
        schrieb am zuletzt editiert von
        #3

        @paul53 :
        Klingt logisch...
        Vielen lieben Dank, probier ich demnächst gleich mal aus (mir fehlt gerade ein wenig die Zeit und hab das daher aus den Augen verloren, daher auch die späte Rückantwort, sorry).

        E 1 Antwort Letzte Antwort
        0
        • E erhard_stgt

          @paul53 :
          Klingt logisch...
          Vielen lieben Dank, probier ich demnächst gleich mal aus (mir fehlt gerade ein wenig die Zeit und hab das daher aus den Augen verloren, daher auch die späte Rückantwort, sorry).

          E Offline
          E Offline
          erhard_stgt
          schrieb am zuletzt editiert von
          #4

          @paul53 :
          hab mir gerade weitere Gedanken gemacht. Ist mir doch nicht so logisch.
          Ich muss vielleicht noch was zum Skript erklären: Zisterne_Stand_neu wird aus dem Wert des Sensors erst noch berechnet (hab keine saubere Kalibrierung des Füllstandsensors hinbekommen, aber mit Umrechnung passt der Wert).
          in einem anderen Skript wird aus Zisterne_Stand der neue Werte berechnet und heißt dann Zisterne_Stand_neu, der sollte dann im vis-Datenpunkt stehen, den ich als Objekt angelegt habe.
          Interessanter weiße zeigt mir mein vis den Zisterneninhalt korrekt an, und wenn ich den Datenpunkt dort auswähle steht 100% (Zisterne ist gerade randvoll), aber unter Objekte im iobroker steht 0%, obwohl der Sensor dort einen Wert von 100% zeigt.
          Jetzt bin ich ganz verwirrt. Daher mal die Frage: wenn ich in einem Skript einen Wert berechne und einen neuen neuen Namen dem Wert gebe (z.B. var Zisterne_Stand_neu"), wie ist der korrekte Weg, um daraus dann eine objekt-ID zu machen, die ich im Vis verwenden kann? ich dachte bisher, ich leg da einfach was an im Ordner vis.0 und fertig ist die Laube.

          Also mal ganz ehrlich: einfach ist diese Programmiererei echt nicht, wenn man mit so ziemlich kaum einer Ahnung startet...

          paul53P 1 Antwort Letzte Antwort
          0
          • E erhard_stgt

            @paul53 :
            hab mir gerade weitere Gedanken gemacht. Ist mir doch nicht so logisch.
            Ich muss vielleicht noch was zum Skript erklären: Zisterne_Stand_neu wird aus dem Wert des Sensors erst noch berechnet (hab keine saubere Kalibrierung des Füllstandsensors hinbekommen, aber mit Umrechnung passt der Wert).
            in einem anderen Skript wird aus Zisterne_Stand der neue Werte berechnet und heißt dann Zisterne_Stand_neu, der sollte dann im vis-Datenpunkt stehen, den ich als Objekt angelegt habe.
            Interessanter weiße zeigt mir mein vis den Zisterneninhalt korrekt an, und wenn ich den Datenpunkt dort auswähle steht 100% (Zisterne ist gerade randvoll), aber unter Objekte im iobroker steht 0%, obwohl der Sensor dort einen Wert von 100% zeigt.
            Jetzt bin ich ganz verwirrt. Daher mal die Frage: wenn ich in einem Skript einen Wert berechne und einen neuen neuen Namen dem Wert gebe (z.B. var Zisterne_Stand_neu"), wie ist der korrekte Weg, um daraus dann eine objekt-ID zu machen, die ich im Vis verwenden kann? ich dachte bisher, ich leg da einfach was an im Ordner vis.0 und fertig ist die Laube.

            Also mal ganz ehrlich: einfach ist diese Programmiererei echt nicht, wenn man mit so ziemlich kaum einer Ahnung startet...

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            @erhard_stgt sagte in Pumpenabschaltung läuft nicht - Anfängerfehler?:

            ich dachte bisher, ich leg da einfach was an im Ordner vis.0 und fertig ist die Laube.

            Adapter verwalten ihre Datenpunkte selbst, also sollte man keine eigenen Datenpunkte im Namensraum von Instanzen erstellen. Wie das mit vis.0 ist, kann ich nicht beurteilen, denn das habe ich nie versucht. Problemlos ist die Erstellung eigener Datenpunkte unter javascript.N (N = 0, 1, ...), so wie man sie auch per Skript mit createState() erstellen kann.

            @erhard_stgt sagte in Pumpenabschaltung läuft nicht - Anfängerfehler?:

            wenn man mit so ziemlich kaum einer Ahnung startet...

            Um nicht ahnungslos zu bleiben, gibt es Dokus.

            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

            506

            Online

            32.6k

            Benutzer

            82.1k

            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