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. [gelöst] Trigger Statusänderungen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

[gelöst] Trigger Statusänderungen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
13 Beiträge 3 Kommentatoren 1.3k 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.
  • eumatsE Offline
    eumatsE Offline
    eumats
    schrieb am zuletzt editiert von eumats
    #1

    Hallo zusammen,

    ich habe zur Überwachung meiner Fenster und der Temperaturen für drinnen und draußen Xiaomi Sensoren im Einsatz.
    Aktuell haben ich zur Überwache ich jeden Sensor einzeln mit:

    on({id: Sensor, change: "ne"}, function (obj) {
    
    });
    

    Nun möchte ich aber zzgl. einen Überprüfung einbauen, ob die Sensoren überhaupt erreichbar sind („reachable = true“). Und ich Frage mich, ob man das nicht besser lösen kann als eine „on..“ für jeden Wert.
    Denn mittlerweile habe ich über 20 Sensoren…

    Hat jemand eine Idee?

    1 Antwort Letzte Antwort
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      schrieb am zuletzt editiert von
      #2

      Nun möchte ich aber zzgl. einen Überprüfung einbauen, ob die Sensoren überhaupt erreichbar sind

      Was möchtest du auf dieser Basis entscheiden? Wenn (erreichbar / nicht erreichbar), dann ...?

      @eumats sagte in Trigger Statusänderungen:

      Denn mittlerweile habe ich über 20 Sensoren…

      Da denke ich an ein Array mit den Sensor-IDs, das du bei Skriptstart in einer Schleife durchläufst und die benötigten Trigger erstellst.

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

      eumatsE 1 Antwort Letzte Antwort
      0
      • AlCalzoneA AlCalzone

        Nun möchte ich aber zzgl. einen Überprüfung einbauen, ob die Sensoren überhaupt erreichbar sind

        Was möchtest du auf dieser Basis entscheiden? Wenn (erreichbar / nicht erreichbar), dann ...?

        @eumats sagte in Trigger Statusänderungen:

        Denn mittlerweile habe ich über 20 Sensoren…

        Da denke ich an ein Array mit den Sensor-IDs, das du bei Skriptstart in einer Schleife durchläufst und die benötigten Trigger erstellst.

        eumatsE Offline
        eumatsE Offline
        eumats
        schrieb am zuletzt editiert von
        #3

        @AlCalzone

        Ich möchte folgendes Erreichen:

        Wenn reachable = false, dann schicke Telgrammeldung, dass der Sensor nicht erreichbar ist. Genauso würde ich dann meine Fenster offen/geschlossen Erkennung gerne darauf umbauen. Also wenn Fenster offen, dann Telgrammeldung.

        AlCalzoneA 1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          Andre R.
          schrieb am zuletzt editiert von
          #4

          @eumats mach dir doch ein Blockly Script wenn false dann Telegram Nachricht

          AlCalzoneA 1 Antwort Letzte Antwort
          0
          • eumatsE eumats

            @AlCalzone

            Ich möchte folgendes Erreichen:

            Wenn reachable = false, dann schicke Telgrammeldung, dass der Sensor nicht erreichbar ist. Genauso würde ich dann meine Fenster offen/geschlossen Erkennung gerne darauf umbauen. Also wenn Fenster offen, dann Telgrammeldung.

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

            @eumats Dann brauchst du je einen Trigger für reachable und offen/zu. Die kannst du in etwa so bauen:

            const sensorIDs = [
                "sensor.0.id1",
                "sensor.0.id2",
                // ...
            ];
            
            for (const sensor of sensorIDs) {
                on({id: sensor + ".reachable", change: "ne"}, (obj) => {
                    //... Wertänderung verarbeiten
                });
                // analog für Sensorwert
            }
            

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

            eumatsE 1 Antwort Letzte Antwort
            1
            • A Andre R.

              @eumats mach dir doch ein Blockly Script wenn false dann Telegram Nachricht

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

              @Andre-R sagte in Trigger Statusänderungen:

              @eumats mach dir doch ein Blockly Script wenn false dann Telegram Nachricht

              Du hast die Frage nicht gelesen, oder? ;) Für 20 Sensoren wird das recht umständlich in Blockly

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

              eumatsE 1 Antwort Letzte Antwort
              0
              • AlCalzoneA AlCalzone

                @Andre-R sagte in Trigger Statusänderungen:

                @eumats mach dir doch ein Blockly Script wenn false dann Telegram Nachricht

                Du hast die Frage nicht gelesen, oder? ;) Für 20 Sensoren wird das recht umständlich in Blockly

                eumatsE Offline
                eumatsE Offline
                eumats
                schrieb am zuletzt editiert von eumats
                #7

                @AlCalzone sagte in Trigger Statusänderungen:

                @Andre-R sagte in Trigger Statusänderungen:

                @eumats mach dir doch ein Blockly Script wenn false dann Telegram Nachricht

                Du hast die Frage nicht gelesen, oder? ;) Für 20 Sensoren wird das recht umständlich in Blockly

                Korrekt... Außerdem mag ich Blocky nicht so.... ;-)

                1 Antwort Letzte Antwort
                1
                • A Offline
                  A Offline
                  Andre R.
                  schrieb am zuletzt editiert von
                  #8

                  @AlCalzone doch hab ich schon gelesen. ich habs halt so gemacht. weil ich Anfänger bin und von Javascript keine Ahnung habe. :wink:

                  AlCalzoneA 1 Antwort Letzte Antwort
                  0
                  • A Andre R.

                    @AlCalzone doch hab ich schon gelesen. ich habs halt so gemacht. weil ich Anfänger bin und von Javascript keine Ahnung habe. :wink:

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

                    @Andre-R Das sei dir gegönnt, aber eumats hat explizit danach gefragt, wie er es in JS mit weniger Copy&Paste hinbekommt.

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

                    1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA AlCalzone

                      @eumats Dann brauchst du je einen Trigger für reachable und offen/zu. Die kannst du in etwa so bauen:

                      const sensorIDs = [
                          "sensor.0.id1",
                          "sensor.0.id2",
                          // ...
                      ];
                      
                      for (const sensor of sensorIDs) {
                          on({id: sensor + ".reachable", change: "ne"}, (obj) => {
                              //... Wertänderung verarbeiten
                          });
                          // analog für Sensorwert
                      }
                      
                      eumatsE Offline
                      eumatsE Offline
                      eumats
                      schrieb am zuletzt editiert von
                      #10

                      @AlCalzone
                      Vielen Danke für die schnelle Reaktion. Ich werde es mal versuchen für mich zu adaptieren...

                      1 Antwort Letzte Antwort
                      0
                      • eumatsE Offline
                        eumatsE Offline
                        eumats
                        schrieb am zuletzt editiert von eumats
                        #11

                        @AlCalzone
                        Kann ich den Namen eines Datenpunktes abfragen? Also z.B. Fenster Flur...

                        764d82b6-f258-4360-afde-0f415741df07-image.png

                        AlCalzoneA 1 Antwort Letzte Antwort
                        0
                        • eumatsE eumats

                          @AlCalzone
                          Kann ich den Namen eines Datenpunktes abfragen? Also z.B. Fenster Flur...

                          764d82b6-f258-4360-afde-0f415741df07-image.png

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

                          @eumats Der name steht in getObject(id).common.name. Wenn du das häufiger brauchst, macht es Sinn, die Namen einmal zu Skriptstart zu lesen und in einer Variable zu merken.

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

                          eumatsE 1 Antwort Letzte Antwort
                          1
                          • AlCalzoneA AlCalzone

                            @eumats Der name steht in getObject(id).common.name. Wenn du das häufiger brauchst, macht es Sinn, die Namen einmal zu Skriptstart zu lesen und in einer Variable zu merken.

                            eumatsE Offline
                            eumatsE Offline
                            eumats
                            schrieb am zuletzt editiert von
                            #13

                            @AlCalzone
                            Danke!

                            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

                            908

                            Online

                            32.4k

                            Benutzer

                            81.5k

                            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