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. On ID Grundlage

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
    848

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

On ID Grundlage

Geplant Angeheftet Gesperrt Verschoben JavaScript
23 Beiträge 3 Kommentatoren 72 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.
  • L Laser

    Danke, das funktioniert. Dann muß ich das on id / Flankenerkennung in eine extra Script auslagern.

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

    @Laser sagte: Dann muß ich das on id / Flankenerkennung in eine extra Script auslagern.

    Weshalb?
    Abfragen macht man nicht mit on(id), sondern mit getState(id).

    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
    • L Online
      L Online
      Laser
      schrieb am zuletzt editiert von
      #9

      OK. Da ist mir aber Nichts dazu eingefallen. Ich möchte die fallende Flanke erkennen.

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        peterfido
        schrieb am zuletzt editiert von peterfido
        #10

        Das Beispiel von @paul53 macht genau das.

        val: false, change 'ne'
        Der Wert muss false (val: false) sein, und geändert (change 'ne') worden sein.

        Wird er zwischendurch nicht auf true gesetzt, gibt es keine fallende Flanke.

        Gruß

        Peterfido


        Proxmox auf Intel NUC12WSHi5
        ioBroker: Debian (VM)
        CCU: Debmatic (VM)
        Influx: Debian (VM)
        Grafana: Debian (VM)
        eBus: Debian (VM)
        Zigbee: Debian (VM) mit zigbee2mqtt

        paul53P 1 Antwort Letzte Antwort
        0
        • L Online
          L Online
          Laser
          schrieb am zuletzt editiert von
          #11

          Das funktioniert. Habe ich schon getestet. In dem Script mit dem "interval" werden aber auch die vielen Befehle im Millisekundenbereich erzeugt. Ich habe jetzt die "on id"in ein kurzes Script ausgelagert. Da brauche ich eben ein paar Variablen/Objekte mehr. Das macht dem Raspi aber nichts aus. Wie es aussieht.

          1 Antwort Letzte Antwort
          0
          • P peterfido

            Das Beispiel von @paul53 macht genau das.

            val: false, change 'ne'
            Der Wert muss false (val: false) sein, und geändert (change 'ne') worden sein.

            Wird er zwischendurch nicht auf true gesetzt, gibt es keine fallende Flanke.

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

            @peterfido sagte: Das Beispiel von @paul53 macht genau das.

            Das Beispiel ist eine Kopie von @laser .
            Es funktioniert auch mit
            change: 'lt'

            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
            • L Online
              L Online
              Laser
              schrieb am zuletzt editiert von Laser
              #13

              Es funktionieren beide Varianten. Nur eben nicht in meinem Hauptscript mit "interval".
              Im extra Script kein Problem.

              paul53P 1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                peterfido
                schrieb am zuletzt editiert von
                #14

                Wofür soll der Intervall gut sein?

                Gruß

                Peterfido


                Proxmox auf Intel NUC12WSHi5
                ioBroker: Debian (VM)
                CCU: Debmatic (VM)
                Influx: Debian (VM)
                Grafana: Debian (VM)
                eBus: Debian (VM)
                Zigbee: Debian (VM) mit zigbee2mqtt

                1 Antwort Letzte Antwort
                0
                • L Online
                  L Online
                  Laser
                  schrieb am zuletzt editiert von Laser
                  #15

                  Damit arbeite ich verschiedene Dinge zyklisch ab. Rufe Funktionen zyklisch auf. In meiner Steuerung für die Heizung. Dient gleichzeitig zur Erzeugung von Minutenimpulsen und Zählern.
                  In dem gezeigten Testscript macht das natürlich keinen Sinn.

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    peterfido
                    schrieb am zuletzt editiert von
                    #16

                    Wenn Du alle 2 Sekunden einen Wert abfragst, kann Dir ein Flankenwechsel durchrutschen.

                    Gruß

                    Peterfido


                    Proxmox auf Intel NUC12WSHi5
                    ioBroker: Debian (VM)
                    CCU: Debmatic (VM)
                    Influx: Debian (VM)
                    Grafana: Debian (VM)
                    eBus: Debian (VM)
                    Zigbee: Debian (VM) mit zigbee2mqtt

                    1 Antwort Letzte Antwort
                    0
                    • L Online
                      L Online
                      Laser
                      schrieb am zuletzt editiert von Laser
                      #17

                      OK. Es gab schon Fehlfunktionen. Da ist das extraScript sicher die bessere Lösung.

                      1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        peterfido
                        schrieb am zuletzt editiert von
                        #18

                        Alles in ein Skript ist kein Problem. Es sei denn, Du meinst statt Skript Funktion.

                        Gruß

                        Peterfido


                        Proxmox auf Intel NUC12WSHi5
                        ioBroker: Debian (VM)
                        CCU: Debmatic (VM)
                        Influx: Debian (VM)
                        Grafana: Debian (VM)
                        eBus: Debian (VM)
                        Zigbee: Debian (VM) mit zigbee2mqtt

                        1 Antwort Letzte Antwort
                        0
                        • L Laser

                          Es funktionieren beide Varianten. Nur eben nicht in meinem Hauptscript mit "interval".
                          Im extra Script kein Problem.

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

                          @Laser sagte: mit "interval".

                          Wenn nicht per Trigger, sondern per Polling auf die Flanke reagiert werden soll, benötigt man eine Hilfsvariable:

                          const id = '0_userdata.0.Logik.TestZustand';
                          var lastVal = getState(id).val;
                          
                          function abfrage() {
                              const val = getState(id).val;
                              if(!val && lastVal) {
                                  // Aktion bei Flanke true --> false
                              } 
                              lastVal = val;
                          }
                          
                          setInterval(abfrage,2000);
                          

                          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
                          • L Online
                            L Online
                            Laser
                            schrieb am zuletzt editiert von
                            #20

                            Ja, das Ganze kann man natürlich auch so machen. Ohne die tolle "on id" mit "change" ging es ja früher auch.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • L Laser

                              Ja, das Ganze kann man natürlich auch so machen. Ohne die tolle "on id" mit "change" ging es ja früher auch.

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

                              @Laser sagte: Ohne die tolle "on id" mit "change" ging es ja früher auch.

                              In ioBroker gab es immer on(). Es stammt noch von @hobbyquaker .

                              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
                              1
                              • L Online
                                L Online
                                Laser
                                schrieb am zuletzt editiert von
                                #22

                                Ja, ich meine die Zeit vor 40 Jahren ohne Raspbbery und IOBroker...

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  peterfido
                                  schrieb am zuletzt editiert von peterfido
                                  #23

                                  @paul53
                                  dafür ist das ack da.

                                  const DP ="0_userdata.0.Logik.TestZustand";
                                  createState(DP, 0, false, {                                  // Datenpunkt wird angelegt
                                      name: 'TestZustand',
                                      desc: 'Logik.TestZustand', 
                                      type: 'boolean',
                                      def:  'false',    
                                      role: 'value'
                                  });
                                  
                                  
                                  /*So macht man es, wenn die Flanke wechselt (true - false - true*/
                                  on({id:DP,val:false,change: 'ne'}, function(dp){
                                      console.log("fallende Flanke");
                                  });
                                  
                                  /*So macht man es, wenn die Flanke NICHT wechselt (false - false - false)*/
                                  on({id:DP,val:false,change: 'any'}, function(dp){
                                      if(!dp.state.ack){
                                          console.log("fallende Flanke");
                                          setState(DP, false , true);   //ack setzen. 
                                      }
                                  });
                                  
                                  

                                  Gruß

                                  Peterfido


                                  Proxmox auf Intel NUC12WSHi5
                                  ioBroker: Debian (VM)
                                  CCU: Debmatic (VM)
                                  Influx: Debian (VM)
                                  Grafana: Debian (VM)
                                  eBus: Debian (VM)
                                  Zigbee: Debian (VM) mit zigbee2mqtt

                                  1 Antwort Letzte Antwort
                                  1
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  816

                                  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