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. wie subscribe ?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

wie subscribe ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
7 Beiträge 3 Kommentatoren 444 Aufrufe 2 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.
  • Z Offline
    Z Offline
    Zamanis
    schrieb am zuletzt editiert von
    #1

    Hallo liebe Programmergemeinde,

    wie mache ich am Besten einen subscribe richtig, wenn ich möchte daß erst ausgelöst wird, wenn sich der neue Werte um mehr als 200 vom vorherigen unterscheidet ?

    on({id: 'hm-rpc.0.xxx.1.LUX', ??? , change: 'ne', logic: 'and' }, 
    function (obj) 
    {
        ...
    });
    

    Danke im Voraus für die Antwort !
    und LG
    Andreas

    paul53P 1 Antwort Letzte Antwort
    0
    • Z Zamanis

      Hallo liebe Programmergemeinde,

      wie mache ich am Besten einen subscribe richtig, wenn ich möchte daß erst ausgelöst wird, wenn sich der neue Werte um mehr als 200 vom vorherigen unterscheidet ?

      on({id: 'hm-rpc.0.xxx.1.LUX', ??? , change: 'ne', logic: 'and' }, 
      function (obj) 
      {
          ...
      });
      

      Danke im Voraus für die Antwort !
      und LG
      Andreas

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

      @Zamanis sagte:

      wenn sich der neue Werte um mehr als 200 vom vorherigen unterscheidet ?

      on('hm-rpc.0.xxx.1.LUX', function (dp) { // triggert bei Wertänderung
          if(Math.abs(dp.state.val - dp.oldState.val) > 200) {
              ...
          }
      });
      

      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
      • Z Offline
        Z Offline
        Zamanis
        schrieb am zuletzt editiert von
        #3

        Das geht natürlich, aber jetzt wird bei jeder Änderung ausgelöst und dann erst geprüft, ober der Wert mehr als 200 unterscheidlich ist. Das möchte ich nicht, sondern dass er erst auslöst, wenn Wert unterschiedlich 200 zu altem Wert...

        paul53P AlCalzoneA 2 Antworten Letzte Antwort
        0
        • Z Zamanis

          Das geht natürlich, aber jetzt wird bei jeder Änderung ausgelöst und dann erst geprüft, ober der Wert mehr als 200 unterscheidlich ist. Das möchte ich nicht, sondern dass er erst auslöst, wenn Wert unterschiedlich 200 zu altem Wert...

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

          @Zamanis sagte in wie subscribe ?:

          dass er erst auslöst, wenn Wert unterschiedlich 200 zu altem Wert...

          Du erwartest zu viel von der Trigger-Funktion. Außerdem bedeutet es, dass ein Sprung von > 200 Lux erfolgen muss, damit getriggert wird.
          Wenn allerdings die Aktion ausgeführt werden soll, wenn die Wertdifferenz zur letzten Aktion > 200 Lux beträgt, kann man ohnehin nicht auf die Trigger-Werte zurückgreifen.

          var lux = getState('hm-rpc.0.xxx.1.LUX').val;
          
          on('hm-rpc.0.xxx.1.LUX', function (dp) { // triggert bei Wertänderung
              if(Math.abs(dp.state.val - lux) > 200) {
                  lux = dp.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

          1 Antwort Letzte Antwort
          0
          • Z Zamanis

            Das geht natürlich, aber jetzt wird bei jeder Änderung ausgelöst und dann erst geprüft, ober der Wert mehr als 200 unterscheidlich ist. Das möchte ich nicht, sondern dass er erst auslöst, wenn Wert unterschiedlich 200 zu altem Wert...

            AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            schrieb am zuletzt editiert von
            #5

            @Zamanis sagte in wie subscribe ?:

            Das geht natürlich, aber jetzt wird bei jeder Änderung ausgelöst und dann erst geprüft, ober der Wert mehr als 200 unterscheidlich ist. Das möchte ich nicht

            Aber genau das macht der Adapter hinter den Kulissen für die anderen Trigger-Bedingungen auch. Wenn du Logik möchtest, die der Adapter nicht selbst kann, musst du dich also selbst drum kümmern.

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            1 Antwort Letzte Antwort
            0
            • Z Offline
              Z Offline
              Zamanis
              schrieb am zuletzt editiert von
              #6

              @ AlCalzone : Mir geht es um resourcenschonende Programmierung. Wenn letztendlich der Adapter hinter den Kulissen das Gleiche tut, gebe ich Dir recht, dann macht es keinen Unterschied, ob der Adapter dies prüft oder ich in der Programmierung...

              1 Antwort Letzte Antwort
              0
              • Z Offline
                Z Offline
                Zamanis
                schrieb am zuletzt editiert von
                #7

                @paul53 :
                Danke Dir für die Antworten. So wie Dein code-Beispiel ist, hattee ich es im Vorfeld auch schon gelöst. Ich wollte nur wissen, ob es einen 'besseren' Weg gibt, da mir nicht klar ist, wie die Datenbanktrigger ablaufen...
                LG

                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

                634

                Online

                32.7k

                Benutzer

                82.4k

                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