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. On Change nur bei Änderung über vis

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

On Change nur bei Änderung über vis

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 5 Kommentatoren 4.4k Aufrufe
  • Ä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.
  • N Offline
    N Offline
    NightWatcher
    schrieb am zuletzt editiert von
    #1

    Ich meine, ich hatte da schon mal eine Lösung gehabt, stehe aber gerade total auf dem Schlauch.

    Ich würde gerne ein Script erstellen, dass nur bei Änderung einer Variable reagiert, die man über die vis geändert hat.

    Aktuell läuft es so

    on({ id: "viessmann.0.get.VitoBetriebsart", change: 'ne'}, function(obj) {
        setState("viessmann.0.set.VitoBetriebsart", obj.newState.val);
    });
    

    Das Script reagiert dann aber auch, wenn die Variable von einem anderen Adapter oder von sich selbst geändert hat.

    Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

    1 Antwort Letzte Antwort
    0
    • htreckslerH Offline
      htreckslerH Offline
      htrecksler
      Forum Testing
      schrieb am zuletzt editiert von
      #2

      ich würde es so machen…

      einen Datenpunkt anlegen (bool)

      Diesen Datenpunkt über VIS Schalten und darauf im Script reagieren.

      Gruss Hermann

      ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        NightWatcher
        schrieb am zuletzt editiert von
        #3

        Habe ich auch erst überlegt, dann wird aber der neue Datenpunkt nicht vom Adapter aktualisiert.

        Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @NightWatcher:

          dann wird aber der neue Datenpunkt nicht vom Adapter aktualisiert. `
          Auch das kann man per Skript lösen.

          var vitoBa = getState("viessmann.0.get.VitoBetriebsart").val;
          setState("javascript.0.vis.VitoBetriebsart", vitoBa);
          
          on({ id: "viessmann.0.get.VitoBetriebsart", change: 'ne'}, function(obj) {
              if(obj.state.val != vitoBa) {
                 vitoBa = obj.state.val;
                 setState("javascript.0.vis.VitoBetriebsart", vitoBa);
              }
          });
          
          on({ id: "javascript.0.vis.VitoBetriebsart", change: 'ne'}, function(obj) {
              vitoBa = obj.state.val;
              setState("viessmann.0.set.VitoBetriebsart", vitoBa);
          });
          

          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
          • htreckslerH Offline
            htreckslerH Offline
            htrecksler
            Forum Testing
            schrieb am zuletzt editiert von
            #5

            muss er das denn? Ich würde den "neuen" Datenpunkt nur als Auslöser nehmen und ihn am Ende des Scriptes auch wieder auf False zurückstellen.

            Edit…oder so wie Paul geschrieben hat, aber ich glaube das muss gar nicht sein.

            Gruss Hermann

            ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

            1 Antwort Letzte Antwort
            0
            • apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #6

              An sich sollte in obj.state.from drin stehen welcher Adapter den neuen Wert gesetzt hat. Bei vis sollte da System.adapter.vis.0 stehen … an sich sollte man das nutzen können

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              0
              • N Offline
                N Offline
                NightWatcher
                schrieb am zuletzt editiert von
                #7

                Danke das war es. Hätte mir das Objekt einfach mal ausgeben lassen sollen. Dann wäre es mir vermutlich selbst wieder aufgefallen. 8-)

                Wago 750-881 - mit über 200 Ein- und Ausgängen, DMX512 Art-Net für Beleuchtung, 1-Wire für Umweltsensoren Aussen und Innen, ioBroker als Visualisierung

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @NightWatcher:

                  sollte in obj.state.from drin stehen welcher Adapter den neuen Wert gesetzt hat. Bei vis sollte da System.adapter.vis.0 stehen `
                  Ein Test mit VIS ergab für obj.state.from: system.adapter.web.0

                  @NightWatcher:

                  Aktuell läuft es so

                  on({ id: "viessmann.0.get.VitoBetriebsart", change: 'ne'}, function(obj) {
                      setState("viessmann.0.set.VitoBetriebsart", obj.newState.val);
                  });
                  ```` `  
                  

                  Wofür ist das überhaupt nötig ? Es müsste auch ohne das Skript funktionieren (ack = false).

                  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
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #9

                    Hallo,

                    ich nutze das bei einigen Logiken, um herauszufiltern, ob die Eingabe aus VIS gemacht wurde. Dann kommt die Eingabe (zum Beispiel Nachtruhe einschalten) von einem Menschen und nicht von einem Timer o.ä.

                    Auf diese Weise lassen sich auch die Logs präzisieren ("Nachtruhe per VIS eingeschaltet" / "Nachtruhe per Zeitsteuerung eingeschaltet")

                    Die on-Funktion ist ja https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state. Es gibt auch eine Negierung von From.

                    fromNe - New Value is not from defined adapter

                    Damit kann man (leichte) Sicherheitsschranken bauen und so zB verhindern, dass bestimmte Aktionen per VIS (oder einen anderen Adapter) gestartet werden, für die eigentlich eine on-Funktion einen Datenpunkt überwacht.

                    Gruß

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    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

                    769

                    Online

                    32.6k

                    Benutzer

                    82.2k

                    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