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. [gelöst]Datenpunkt auf true setzen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst]Datenpunkt auf true setzen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
11 Beiträge 2 Kommentatoren 857 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.
  • Dominik F.D Offline
    Dominik F.D Offline
    Dominik F.
    schrieb am zuletzt editiert von Dominik F.
    #1

    Hallo zusammen,

    ich möchte einen Datenpunkt auf true setzen lassen, wenn verschiedene Bedingungen anderer Datenpunkte erfüllt sind.
    Ich möchte z,B, wenn ein Datenpunkt den Wert >=1 hat, dass der Datenpunkt auf true gesetzt wird, ist er =0 dann soll der Datenpunkt auf false gesetzt werden.

    Habe dazu ein Skript geschrieben, dass allerdings nicht funktioniert. Bin da noch anfänger daher bin ich da überfragt.
    Kann mir da jemand weiterhelfen?

    on({id: 'Systemvariable.0.Meldungen_Übersicht'/*Anzahl GESAMT*/, change: 'ne'} , function (obj) {
    
    var CCU_Meldungen = getState('Systemvariable.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl GESAMT*/).val;
    
    if (CCU_Meldungen >= 1) {   
            setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, true);
    }
      else if (CCU_Meldungen == 0) {
            setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, false);
    }
    });
    
    paul53P 1 Antwort Letzte Antwort
    0
    • Dominik F.D Offline
      Dominik F.D Offline
      Dominik F.
      schrieb am zuletzt editiert von
      #2

      achja, vielleicht zum weiteren Verständnis.
      ich möchte den Datenpunkt nutzen, um ein Icon, wenn der Wert true ist, zum Blinken zu bringen.

      Gibt es vielleicht auch die Möglichkeit, wenn ich auf das Icon geklickt habe, den Datenpunkt wieder auf False zu setzen und nur bei einer neuen Änderung dieser wieder auf True geht?

      1 Antwort Letzte Antwort
      0
      • Dominik F.D Dominik F.

        Hallo zusammen,

        ich möchte einen Datenpunkt auf true setzen lassen, wenn verschiedene Bedingungen anderer Datenpunkte erfüllt sind.
        Ich möchte z,B, wenn ein Datenpunkt den Wert >=1 hat, dass der Datenpunkt auf true gesetzt wird, ist er =0 dann soll der Datenpunkt auf false gesetzt werden.

        Habe dazu ein Skript geschrieben, dass allerdings nicht funktioniert. Bin da noch anfänger daher bin ich da überfragt.
        Kann mir da jemand weiterhelfen?

        on({id: 'Systemvariable.0.Meldungen_Übersicht'/*Anzahl GESAMT*/, change: 'ne'} , function (obj) {
        
        var CCU_Meldungen = getState('Systemvariable.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl GESAMT*/).val;
        
        if (CCU_Meldungen >= 1) {   
                setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, true);
        }
          else if (CCU_Meldungen == 0) {
                setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, false);
        }
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @Dominik-F
        Weshalb ist der Trigger-Datenpunkt ein anderer als der Datenpunkt, dessen Wert ausgewertet wird ? Versuche es mal so:

        on('Systemvariable.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl GESAMT*/, function (obj) {
           setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, !!obj.state.val);
        });
        

        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

        Dominik F.D 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @Dominik-F
          Weshalb ist der Trigger-Datenpunkt ein anderer als der Datenpunkt, dessen Wert ausgewertet wird ? Versuche es mal so:

          on('Systemvariable.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl GESAMT*/, function (obj) {
             setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, !!obj.state.val);
          });
          
          Dominik F.D Offline
          Dominik F.D Offline
          Dominik F.
          schrieb am zuletzt editiert von
          #4

          @paul53

          weil ich keine große Ahnung habe von javascript :( Ehrlich gesagt wusste ich nur das was da rein muss, aber nicht was ^^

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Dominik-F
            Weshalb ist der Trigger-Datenpunkt ein anderer als der Datenpunkt, dessen Wert ausgewertet wird ? Versuche es mal so:

            on('Systemvariable.0.Servicemeldungen.Anzahl_GESAMT'/*Anzahl GESAMT*/, function (obj) {
               setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, !!obj.state.val);
            });
            
            Dominik F.D Offline
            Dominik F.D Offline
            Dominik F.
            schrieb am zuletzt editiert von
            #5

            @paul53

            Jetzt funktioniert es, danke :)
            Wie kann ich denn mehrere Datenpunkte erfassen? Sollte ich den kompletten Block für jeden Datenpunkt neu schreiben oder geht das auch einfacher?

            paul53P 1 Antwort Letzte Antwort
            0
            • Dominik F.D Dominik F.

              @paul53

              Jetzt funktioniert es, danke :)
              Wie kann ich denn mehrere Datenpunkte erfassen? Sollte ich den kompletten Block für jeden Datenpunkt neu schreiben oder geht das auch einfacher?

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

              @Dominik-F sagte:

              Wie kann ich denn mehrere Datenpunkte erfassen?

              Was für Datenpunkte sollen erfasst werden und wie soll das Ergebnis in Abhängigkeit der Datenpunkt-Werte aussehen ? Es gibt unendlich viele Möglichkeiten.

              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

              Dominik F.D 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @Dominik-F sagte:

                Wie kann ich denn mehrere Datenpunkte erfassen?

                Was für Datenpunkte sollen erfasst werden und wie soll das Ergebnis in Abhängigkeit der Datenpunkt-Werte aussehen ? Es gibt unendlich viele Möglichkeiten.

                Dominik F.D Offline
                Dominik F.D Offline
                Dominik F.
                schrieb am zuletzt editiert von
                #7

                @paul53

                Ich würde gerne z.B, den Datenpunkt admin.0.info.updatesNumber mit einbinden. Wenn dieser >=1 ist, soll der Datenpunkt Systemvariable.0.Meldungen_Übersicht ebenfalls auf true sein. Das ganze soll eine Oder Funktion sein, also wenn der eine oder andere Datenpunkt >=1 ist, soll Meldungen_Übersicht auf true sein, sind beide auf 0, dann soll Meldungen_Übersicht auf false sein.

                Mein oberstes Ziel ist, dass ich mehrere für mich wichtige Datenpunkte überwachen möchte. Falls ein Update, Servicemeldung etc auftritt, möchte ich das der Datenpunkt true ist, um in meiner Vis ein Icon zum Blinken zu bringen um in der Vis darauf aufmerksam gemacht zu werden.

                paul53P 1 Antwort Letzte Antwort
                0
                • Dominik F.D Dominik F.

                  @paul53

                  Ich würde gerne z.B, den Datenpunkt admin.0.info.updatesNumber mit einbinden. Wenn dieser >=1 ist, soll der Datenpunkt Systemvariable.0.Meldungen_Übersicht ebenfalls auf true sein. Das ganze soll eine Oder Funktion sein, also wenn der eine oder andere Datenpunkt >=1 ist, soll Meldungen_Übersicht auf true sein, sind beide auf 0, dann soll Meldungen_Übersicht auf false sein.

                  Mein oberstes Ziel ist, dass ich mehrere für mich wichtige Datenpunkte überwachen möchte. Falls ein Update, Servicemeldung etc auftritt, möchte ich das der Datenpunkt true ist, um in meiner Vis ein Icon zum Blinken zu bringen um in der Vis darauf aufmerksam gemacht zu werden.

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

                  @Dominik-F sagte:

                  wenn der eine oder andere Datenpunkt >=1 ist, soll Meldungen_Übersicht auf true sein, sind beide auf 0, dann soll Meldungen_Übersicht auf false sein.

                  const idService = 'Systemvariable.0.Servicemeldungen.Anzahl_GESAMT';
                  const idUpdates = 'admin.0.info.updatesNumber';
                  
                  var service = getState(idService).val;
                  var updates = getState(idUpdates).val;
                  
                  function sammelmeldung() {
                      var summe = service + updates;
                      setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, !!summe);
                  }
                  
                  sammelmeldung(); // Skriptstart
                  
                  on(idService, function(dp) {
                      service = dp.state.val;
                      sammelmeldung();
                  });
                  
                  on(idUpdates, function(dp) {
                      updates = dp.state.val;
                      sammelmeldung();
                  });
                  

                  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

                  Dominik F.D 1 Antwort Letzte Antwort
                  1
                  • paul53P paul53

                    @Dominik-F sagte:

                    wenn der eine oder andere Datenpunkt >=1 ist, soll Meldungen_Übersicht auf true sein, sind beide auf 0, dann soll Meldungen_Übersicht auf false sein.

                    const idService = 'Systemvariable.0.Servicemeldungen.Anzahl_GESAMT';
                    const idUpdates = 'admin.0.info.updatesNumber';
                    
                    var service = getState(idService).val;
                    var updates = getState(idUpdates).val;
                    
                    function sammelmeldung() {
                        var summe = service + updates;
                        setState('Systemvariable.0.Meldungen_Übersicht'/*Meldungen Übersicht*/, !!summe);
                    }
                    
                    sammelmeldung(); // Skriptstart
                    
                    on(idService, function(dp) {
                        service = dp.state.val;
                        sammelmeldung();
                    });
                    
                    on(idUpdates, function(dp) {
                        updates = dp.state.val;
                        sammelmeldung();
                    });
                    
                    Dominik F.D Offline
                    Dominik F.D Offline
                    Dominik F.
                    schrieb am zuletzt editiert von
                    #9

                    @paul53

                    Das Script scheint zu funktionieren, mir raucht nur gerade der Kopf damit ich es verstehe :D

                    Also als ersten werden die 2 Variablen deklariert und der Wert des Datenpunktes wird in die Variable z.B. service geschrieben. In der Funktion Sammlung werden die Datenpunkte addiert und der Wert wird in den Datenpunkt Meldungen_Service geschrieben. Dort wird die Zahl in True oder False umgewandelt richtig? Ist es generell so, dass dabei 0=false und >=1 = true bedeutet?

                    Den Teil nach Skriptstart verstehe ich nicht so ganz. Besonders :

                    service = dp.state.val;
                        sammelmeldung();
                    

                    ist mir nicht ganz klar. Wird dort erst der Wert aus dem Datenpunkt in die Variable geschrieben? Sorry für die vielen Fragen. Ich stelle sie, damit ich sowas irgendwann selber schreiben kann.

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • Dominik F.D Dominik F.

                      @paul53

                      Das Script scheint zu funktionieren, mir raucht nur gerade der Kopf damit ich es verstehe :D

                      Also als ersten werden die 2 Variablen deklariert und der Wert des Datenpunktes wird in die Variable z.B. service geschrieben. In der Funktion Sammlung werden die Datenpunkte addiert und der Wert wird in den Datenpunkt Meldungen_Service geschrieben. Dort wird die Zahl in True oder False umgewandelt richtig? Ist es generell so, dass dabei 0=false und >=1 = true bedeutet?

                      Den Teil nach Skriptstart verstehe ich nicht so ganz. Besonders :

                      service = dp.state.val;
                          sammelmeldung();
                      

                      ist mir nicht ganz klar. Wird dort erst der Wert aus dem Datenpunkt in die Variable geschrieben? Sorry für die vielen Fragen. Ich stelle sie, damit ich sowas irgendwann selber schreiben kann.

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

                      @Dominik-F sagte :

                      der Wert wird in den Datenpunkt Meldungen_Service geschrieben. Dort wird die Zahl in True oder False umgewandelt richtig? Ist es generell so, dass dabei 0=false und >=1 = true bedeutet?

                      !!summe wandelt eine Zahl in einen boolschen Wert, wobei gilt: 0 --> false, != 0 --> true.

                      @Dominik-F sagte:

                      ist mir nicht ganz klar. Wird dort erst der Wert aus dem Datenpunkt in die Variable geschrieben?

                      dp.state.val enthält den Wert des Triggerdatenpunktes, der bei jeder Wertänderung in die Variable service geschrieben wird, um anschließend in der Funktion sammelmeldung() ausgewertet zu werden.

                      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

                      Dominik F.D 1 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @Dominik-F sagte :

                        der Wert wird in den Datenpunkt Meldungen_Service geschrieben. Dort wird die Zahl in True oder False umgewandelt richtig? Ist es generell so, dass dabei 0=false und >=1 = true bedeutet?

                        !!summe wandelt eine Zahl in einen boolschen Wert, wobei gilt: 0 --> false, != 0 --> true.

                        @Dominik-F sagte:

                        ist mir nicht ganz klar. Wird dort erst der Wert aus dem Datenpunkt in die Variable geschrieben?

                        dp.state.val enthält den Wert des Triggerdatenpunktes, der bei jeder Wertänderung in die Variable service geschrieben wird, um anschließend in der Funktion sammelmeldung() ausgewertet zu werden.

                        Dominik F.D Offline
                        Dominik F.D Offline
                        Dominik F.
                        schrieb am zuletzt editiert von
                        #11

                        @paul53

                        vielen Dank für deine Erklärung :)

                        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

                        850

                        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