Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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

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

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

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

Pumpenabschaltung läuft nicht - Anfängerfehler?

Scheduled Pinned Locked Moved Unsolved JavaScript
5 Posts 2 Posters 295 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    E Offline
    erhard_stgt
    wrote on last edited by
    #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 Reply Last reply
    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
      wrote on last edited by 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 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by 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 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            478

            Online

            32.8k

            Users

            82.7k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe