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. Visualisierung
  4. Auslesen mehrerer Sensoren in EINEN Status

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Auslesen mehrerer Sensoren in EINEN Status

Geplant Angeheftet Gesperrt Verschoben Visualisierung
7 Beiträge 3 Kommentatoren 1.9k 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
    neuneu
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    leider habe ich zu meiner Frage bislang im Forum nichts finden können und bin neu im Thema.

    Einiges habe ich mir im Bezug auf vis bereits aneignen können, stehe allerdings vor einem Problem, welches ich momentan nicht lösen kann.

    Ich möchte den Status mehrerer Homematic Sensoren/Aktoren auslesen und einen gemeinsamen Status ausgeben. Konkret möchte ich z.B. für meine beiden Küchenfenster den aktuellen Sensorstatus (offen/geschlossen) auslesen und für den gesamten Raum den Status bestimmen. Soll heißen, gibt mind. einer der Sensoren den Status offen, soll der Status für den gesamten Raum "offen" sein. Liefern beide Sensoren den Status geschlossen, soll der Status für den gesamten Raum "geschlossen" sein.

    Mit einer Szene kann ich das nach meinem (geringen) Verständnis nicht abbilden, da hier ja ein Sensor als Trigger für weitere Aktionen dient und nicht der Status zweier Sensoren ausgelesen wird.

    Über einen kurzen Hint wäre ich sehr glücklich, um mit der vis fortfahren zu können.

    Lieben Dank und VG

    1 Antwort Letzte Antwort
    0
    • Y Offline
      Y Offline
      ykuendig
      schrieb am zuletzt editiert von
      #2

      Schätze Du müsstest das mit JavaScript im ScriptAdapter oder direkt im Vis machen

      Gruss Yves

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #3

        Hallo,

        ich nutze seit einigen Jahren dieses Javascript. Es tut genau, das:

        Wenn eines von mehreren Fenstern im Raum geöffnet wird, ist dessen Status maßgeblich. Wird ein weiteres Fenster weiter geöffnet (Reihenfolge: zu,[ggf. gekippt],geöffnet), wird dessen Zustand maßgeblich, usw. Jeweils das am weitesten geöffnete Fenster gibt den Status der neu erstellten Variable (State) vor.

        Bluefox war damals eine große Hilfe!

        Es ist eigentlich klar, aber ich erwähne es dennoch: Das Skript arbeitet mit Gewerken und Räumen. Die Sensoren müssen also zugeordnet sein. Ich verwende nur Homematic-Sensoren, die in der CCU den Gewerken und Räumen zugeordnet wurden.

        ! ````
        /*
        Skript zum Feststellen des Status mehrerer Fenster im Raum Küche
        Das Skript erstellt pro Raum eine Variable und meldet in Abhängigkeit vom
        Öffnungszustand aller Fensterdrehgriffkontakte RHS eine Gesamtstatus
        Der Status kann für VIS farbige Grundrisse oder die HM-OU-LED16 verwendet werden
        Pro Raum ein Skript erstellen
        Unterscheidung nach einzelnen Fenstern im Skript status_fenster_tueren
        ! erstellt: 24.10.2014 von Pix (für CCU.IO)
        portiert: 21.03.2015 mit Hilfe von Bluefox http://forum.iobroker.org/viewtopic.php?f=21&t=535&sid=c758980908bb09871b9145d463543a3b#p3653
        geändert: 22.03.2015
        06.05.2015 Array zur Bennenung des Zustands im Klartext im Log erstellt
        30.07.2015 neue Variablen Struktur Status.Raum.alleFenster
        31.08.2015 Korrektur Variablen Status (erst nach einem Monat gemerkt :()
        01.12.2015 neue Variablen Struktur Status.Raum.Fenster.alle
        */
        ! // Select and show (for debug) all sensors in "Wohnzimmer" and with type "Fenster"
        var sensors = $('channelstate.id=*.STATE(functions=Fenster)');
        ! function getCurrentState() {
        var commonState = 0;
        sensors.each(function (id) {
        if (id.indexOf('Statistik') != -1) return;
        var val = toInt(getState(id).val);
        // Find the maximum (2 - opened, 1 - tilted, 0 - closed)
        if (val > commonState) commonState = val;
        });
        return commonState;
        }
        ! // On change
        sensors.on(function(obj) {
        // if (obj.id.indexOf('Statistik') == -1) setState('Status.Wohnzimmer.Fenster.alle', getCurrentState());
        setState("javascript.0.Status.Wohnzimmer.Fenster.alle"/Status.Wohnzimmer.Fenster.alle/, getCurrentState());
        var zustand = ['offen','gekippt','geschlossen'];
        log('Status aller Wohnzimmerfenster: ' + zustand[getState('Status.Wohnzimmer.Fenster.alle').val]);
        });

        createState('Status.Wohnzimmer.Fenster.alle', getCurrentState(), {
        name: 'alle Fenster Wohnzimmer',
        type: 'number',
        min: 0,
        max: 3,
        def: 0,
        role: 'value'
        });

        ! ````
        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
        • N Offline
          N Offline
          neuneu
          schrieb am zuletzt editiert von
          #4

          Hi pix,

          vielen Dank für die schnelle Antwort.

          Kannst Du mir noch sagen, wo ich das Skript einbinden kann ?

          Den Adapter habe ich bereits installiert, aber bei mir fehlt in der Admin Ansicht der "Skripte" Tab.

          Lieben Dank und viele Grüße

          1 Antwort Letzte Antwort
          0
          • Y Offline
            Y Offline
            ykuendig
            schrieb am zuletzt editiert von
            #5

            Das kann mal passieren (weiss auch nicht wieso)

            Rechts oben hatts ein Stift-Button. Damit kann man die Bearbeitung der Reiter einschalten (und den Script Reiter wieder freigeben)

            Gruss Yves

            1 Antwort Letzte Antwort
            0
            • N Offline
              N Offline
              neuneu
              schrieb am zuletzt editiert von
              #6

              Hi Yves,

              prima, vielen Dank !

              1 Antwort Letzte Antwort
              0
              • N Offline
                N Offline
                neuneu
                schrieb am zuletzt editiert von
                #7

                So, alles installiert, das Objekt dem Skript zugewiesen und in VIS über eine Boolean abgefragt.

                Technisch funktioniert alles, nur scheint das Skript bei mir nicht richtig zu reagieren.

                Ich habe es für meine Küche mit 2 Fenstersensoren verwendet. Es erkennt die richtige Anzahl der Sensoren und auch einen Statuswechsel. Allerdings zeigt mir das Skript bei jeder Änderung, dass alle Fenster geschlossen sind. Egal ob ich öffne oder schließe.

                ! ` > 22:32:24.962

                [info]

                javascript.0 script.js.Verschluss_Kueche: registered 2 subscriptions and 0 schedules

                22:32:27.328

                [info]

                javascript.0 Stop script script.js.Verschluss_Kueche

                22:32:40.258

                [info]

                javascript.0 Start javascript script.js.Verschluss_Kueche

                22:32:40.259

                [info]

                javascript.0 script.js.Verschluss_Kueche: registered 2 subscriptions and 0 schedules

                22:32:58.392

                [info]

                javascript.0 script.js.Verschluss_Kueche: Status aller Küchenfenster: geschlossen

                22:33:01.642

                [info]

                javascript.0 script.js.Verschluss_Kueche: Status aller Küchenfenster: geschlossen

                22:33:15.888

                [info]

                javascript.0 script.js.Verschluss_Kueche: Status aller Küchenfenster: geschlossen

                22:33:27.403

                [info]

                javascript.0 script.js.Verschluss_Kueche: Status aller Küchenfenster: geschlossen `

                Das Skript sieht bei mir wie folgt aus :

                ! ` > var sensors = $('channelstate.id=*.STATE(functions=Verschluß)');

                function getCurrentState() {

                var commonState = 0;

                sensors.each(function (id) {

                if (id.indexOf('Statistik') != -1) return;

                var val = toInt(getState(id).val);

                // Find the maximum (2 - opened, 1 - tilted, 0 - closed)

                if (val > commonState) commonState = val;

                });

                return commonState;

                }

                // On change

                sensors.on(function(obj) {

                if (obj.id.indexOf('Statistik') == -1) setState('Status.Küche.Fenster.alle', getCurrentState());

                setState("javascript.0.Status.Küche.Fenster.alle"/Status.Küche.Fenster.alle/, getCurrentState());

                var zustand = ['offen','gekippt','geschlossen'];

                log('Status aller Küchenfenster: ' + zustand[getState('Status.Küche.Fenster.alle').val]);

                });

                createState('Status.Küche.Fenster.alle', getCurrentState(), {

                name: 'alle Fenster Küche',

                type: 'number',

                min: 0,

                max: 3,

                def: 0,

                role: 'value'

                }); `

                Hat jemand einen Tipp für mich, was hier flasch läuft ?

                VG

                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

                670

                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