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. Datenpunkte GetState / SetState

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Datenpunkte GetState / SetState

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 541 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.
  • S Offline
    S Offline
    StefanH 0
    schrieb am zuletzt editiert von
    #1

    Hallo,

    habe da mal eine Fragen in die Runde.
    Nach meinen Kenntnissen kann man mit SetState nur Daten des Javascript.Adapters schreiben.
    In der Regel liegen diese unter Objekte in javascript.0
    Mit GetState hingegen kann man auf alle Objekte, also auch die anderer Adapter lesend zugreifen.

    Ich benötige nun eine Lösung für folgendes Problem:
    Ein Gerät mit einem Bewegungsmelder meldet eine Bewegung über eine MQTT-Instanz an IOBroker.
    Ein zweites Gerät (ESP32-CAM) möchte auf dieses reagieren und Mail mit Fotos versenden.

    Es wäre nun praktisch, wenn man in IObroker über javascript mit Hilfe der Funktion z.B. "on({id: "mqtt.0.bewegungsmelder......" reagieren könnte und bei Änderung eines Wertes aus der Instanz z.B. mgtt.0 einen Wert bei der zweiten Instanz z.B. mqtt.1 setzen und somit über dieses Ergeignis informieren könnte.

    Dies scheitert aber am Schreiben (SetState) über javascript eines Objektknotens einer anderen Instanz.

    Vielleicht hat ja jemand eine andere Lösung im Ärmel, auf die ich bisher wegen Scheuklappen noch nicht gekommen bin.

    Gruss Stefan

    AlCalzoneA paul53P 2 Antworten Letzte Antwort
    0
    • S StefanH 0

      Hallo,

      habe da mal eine Fragen in die Runde.
      Nach meinen Kenntnissen kann man mit SetState nur Daten des Javascript.Adapters schreiben.
      In der Regel liegen diese unter Objekte in javascript.0
      Mit GetState hingegen kann man auf alle Objekte, also auch die anderer Adapter lesend zugreifen.

      Ich benötige nun eine Lösung für folgendes Problem:
      Ein Gerät mit einem Bewegungsmelder meldet eine Bewegung über eine MQTT-Instanz an IOBroker.
      Ein zweites Gerät (ESP32-CAM) möchte auf dieses reagieren und Mail mit Fotos versenden.

      Es wäre nun praktisch, wenn man in IObroker über javascript mit Hilfe der Funktion z.B. "on({id: "mqtt.0.bewegungsmelder......" reagieren könnte und bei Änderung eines Wertes aus der Instanz z.B. mgtt.0 einen Wert bei der zweiten Instanz z.B. mqtt.1 setzen und somit über dieses Ergeignis informieren könnte.

      Dies scheitert aber am Schreiben (SetState) über javascript eines Objektknotens einer anderen Instanz.

      Vielleicht hat ja jemand eine andere Lösung im Ärmel, auf die ich bisher wegen Scheuklappen noch nicht gekommen bin.

      Gruss Stefan

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

      @stefanh-0 Das geht - du musst beim Schreiben aber die vollständige ID inklusive mqtt.1 angeben.

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

      1 Antwort Letzte Antwort
      0
      • S StefanH 0

        Hallo,

        habe da mal eine Fragen in die Runde.
        Nach meinen Kenntnissen kann man mit SetState nur Daten des Javascript.Adapters schreiben.
        In der Regel liegen diese unter Objekte in javascript.0
        Mit GetState hingegen kann man auf alle Objekte, also auch die anderer Adapter lesend zugreifen.

        Ich benötige nun eine Lösung für folgendes Problem:
        Ein Gerät mit einem Bewegungsmelder meldet eine Bewegung über eine MQTT-Instanz an IOBroker.
        Ein zweites Gerät (ESP32-CAM) möchte auf dieses reagieren und Mail mit Fotos versenden.

        Es wäre nun praktisch, wenn man in IObroker über javascript mit Hilfe der Funktion z.B. "on({id: "mqtt.0.bewegungsmelder......" reagieren könnte und bei Änderung eines Wertes aus der Instanz z.B. mgtt.0 einen Wert bei der zweiten Instanz z.B. mqtt.1 setzen und somit über dieses Ergeignis informieren könnte.

        Dies scheitert aber am Schreiben (SetState) über javascript eines Objektknotens einer anderen Instanz.

        Vielleicht hat ja jemand eine andere Lösung im Ärmel, auf die ich bisher wegen Scheuklappen noch nicht gekommen bin.

        Gruss Stefan

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

        @stefanh-0 sagte: kann man mit SetState nur Daten des Javascript.Adapters schreiben.

        Man kann mit setState(id, val, [ack]) alle Datenpunkte schreiben, wenn man die komplette ID übergibt. Für Datenpunkte unter javascript.N (N = Instanz) kann eine verkürzte ID übergeben 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

        S 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @stefanh-0 sagte: kann man mit SetState nur Daten des Javascript.Adapters schreiben.

          Man kann mit setState(id, val, [ack]) alle Datenpunkte schreiben, wenn man die komplette ID übergibt. Für Datenpunkte unter javascript.N (N = Instanz) kann eine verkürzte ID übergeben werden.

          S Offline
          S Offline
          StefanH 0
          schrieb am zuletzt editiert von
          #4

          OK, aber wie weiss der SetState() denn, ob er bei Angabe einer ID "javascript.0" davor hängen soll oder nicht? Denn es kann das gleiche objekt ja auch innerhalb und außerhalb von "javascript.0" geben.

          Beispiel : setState("mqtt.2.camera.detection", "true");

          Woher weiss das System dass nicht "javascript.0.mqtt.2.camera.detection" gemeint ist, sondern
          "mqtt.2.camera.detection" als Objekt ausserhalb von Javascript???

          paul53P 1 Antwort Letzte Antwort
          0
          • S StefanH 0

            OK, aber wie weiss der SetState() denn, ob er bei Angabe einer ID "javascript.0" davor hängen soll oder nicht? Denn es kann das gleiche objekt ja auch innerhalb und außerhalb von "javascript.0" geben.

            Beispiel : setState("mqtt.2.camera.detection", "true");

            Woher weiss das System dass nicht "javascript.0.mqtt.2.camera.detection" gemeint ist, sondern
            "mqtt.2.camera.detection" als Objekt ausserhalb von Javascript???

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

            @stefanh-0 sagte: Woher weiss das System dass nicht "javascript.0.mqtt.2.camera.detection" gemeint ist, sondern

            "mqtt.2.camera.detection" als Objekt ausserhalb von Javascript???

            Es wird erst geprüft, ob es das Objekt mit der ID "mqtt.2.camera.detection" gibt. Falls nicht, dann Prüfung auf "javascript.0.mqtt.2.camera.detection".

            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

            S 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @stefanh-0 sagte: Woher weiss das System dass nicht "javascript.0.mqtt.2.camera.detection" gemeint ist, sondern

              "mqtt.2.camera.detection" als Objekt ausserhalb von Javascript???

              Es wird erst geprüft, ob es das Objekt mit der ID "mqtt.2.camera.detection" gibt. Falls nicht, dann Prüfung auf "javascript.0.mqtt.2.camera.detection".

              S Offline
              S Offline
              StefanH 0
              schrieb am zuletzt editiert von
              #6

              OK, das macht Sinn.

              Wieder was neues gelernt, danke für die Info!

              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

              470

              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