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. OnChange weiter einschränken (Ursprung)

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
    855

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

OnChange weiter einschränken (Ursprung)

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 430 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.
  • R Offline
    R Offline
    Raducanu
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich habe hier zwei Javascript Scripte laufen und stehe gerade vor einen kleines Problem:

    Das erste Script führt ein Python Consolenscript aus und Parsed dann eine JSON Response des Scriptes und schreibt dann Werte in IOBroker States.
    (Auslesen einer Klimaanlange)
    Das zweite Script führt bei Änderungen dieser States dass Python Script aus und verwendet Werte aus den States als Parameter.
    (Setzen von Werte in der Klimaanlage)

    Um einen "Loop" zu verhindern (Script zwei Startet sobald Script eins was ändert), habe ich in Script zwei

    if ((obj.state ? obj.state.from : "") != 'system.adapter.javascript.0'){
    ...
    }
    

    eingefügt. Das Funktioniert auch wunderbar.

    Nun möchte ich allerdings über ein weiteres Script doch States Ändern so dass das Script zwei getriggert wird.
    Nur erfolgt dieses natürlich nicht, da das dritte Script auch von "system.adapter.javascript.0" kommt.

    Welche Möglichkeiten gibt es dieses Problem zu lösen?

    Kann man den Scriptnamen mit angeben? Oder hilft es nur eine zweite Javascript Instanz zu installieren?

    Vielen Dank

    UncleSamU 1 Antwort Letzte Antwort
    0
    • R Raducanu

      Hallo Zusammen,

      ich habe hier zwei Javascript Scripte laufen und stehe gerade vor einen kleines Problem:

      Das erste Script führt ein Python Consolenscript aus und Parsed dann eine JSON Response des Scriptes und schreibt dann Werte in IOBroker States.
      (Auslesen einer Klimaanlange)
      Das zweite Script führt bei Änderungen dieser States dass Python Script aus und verwendet Werte aus den States als Parameter.
      (Setzen von Werte in der Klimaanlage)

      Um einen "Loop" zu verhindern (Script zwei Startet sobald Script eins was ändert), habe ich in Script zwei

      if ((obj.state ? obj.state.from : "") != 'system.adapter.javascript.0'){
      ...
      }
      

      eingefügt. Das Funktioniert auch wunderbar.

      Nun möchte ich allerdings über ein weiteres Script doch States Ändern so dass das Script zwei getriggert wird.
      Nur erfolgt dieses natürlich nicht, da das dritte Script auch von "system.adapter.javascript.0" kommt.

      Welche Möglichkeiten gibt es dieses Problem zu lösen?

      Kann man den Scriptnamen mit angeben? Oder hilft es nur eine zweite Javascript Instanz zu installieren?

      Vielen Dank

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @Raducanu Die saubere Lösung wäre das ack zu benutzen:

      • Das erste Skript setzt den Wert mit ack: true
      • Das zweite Skript reagiert nur auf Changes mit ack: true
      • Wer sonst den State ändert, setzt ack nicht auf true

      Eine etwas ausführlichere Diskussion findest du hier:
      https://forum.iobroker.net/topic/37652/dp-wurde-aktualisiert-anerkannt-ist-egal-update-befehl/8

      Grundsätzlich gilt:
      Befehl: ack=false
      Update: ack=true

      So arbeiten alle Adapter.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      R 1 Antwort Letzte Antwort
      1
      • UncleSamU UncleSam

        @Raducanu Die saubere Lösung wäre das ack zu benutzen:

        • Das erste Skript setzt den Wert mit ack: true
        • Das zweite Skript reagiert nur auf Changes mit ack: true
        • Wer sonst den State ändert, setzt ack nicht auf true

        Eine etwas ausführlichere Diskussion findest du hier:
        https://forum.iobroker.net/topic/37652/dp-wurde-aktualisiert-anerkannt-ist-egal-update-befehl/8

        Grundsätzlich gilt:
        Befehl: ack=false
        Update: ack=true

        So arbeiten alle Adapter.

        R Offline
        R Offline
        Raducanu
        schrieb am zuletzt editiert von
        #3

        @UncleSam

        Vielen Dank, ich glaube dass mir das weiterhilft.

        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

        351

        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