Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script oder Blocky für Objektabfragung gesucht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script oder Blocky für Objektabfragung gesucht

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      Ace-k last edited by

      Moin,

      ich habe an einem Wemos nun mehrere schalter am laufen.

      Diese werden über ESP Easy als Switch abgefragt und ausgegeben mit 0 oder 1.

      Diese habe ich dann über MQTT in IObroker eingefügt und erscheinen nun auch dort.

      In mein View möchte ich nun auf der Hauptseite ein kleines "Licht" haben.

      Das mir sagt , wenn es leuchtet, etwas ist auf oder offen. Dieses kleine Licht soll erstmal als übersicht dienen, wenn ich auf das dementsprechende View gehe sehe ich dann was auf oder an ist.

      Ich dachte an ein Script, welches meine Schalter abfragt und wenn nur ein Schalter auf "True" oder 0 oder 1 ist , dann auch das Script eine 1 schreibt und dieses kann ich ja dann in mein View einbinden.

      Die Ordnerstruktur z.Z. ist

      mqtt.0\Schalter\

      \Fenster\Schalter1

      \Fenster\Schalter2

      \Türen\Schalter3

      \Türen\Schalter4

      Oder gibt es sogar andere lösungen?

      Wie könnte so ein Script/Blocky aussehen.

      Habt ihr evl ansätze für mich das ich das mal Versuchen kann!?

      Besten dank und Gruß

      Patrick

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @Ace-k:

        Die Ordnerstruktur z.Z. ist `
        Ordnerstrukturen von Objekten in ioBroker werden durch einen Punkt in der ID erzeugt (nicht durch ).
        @Ace-k:

        Habt ihr evl ansätze für mich das ich das mal Versuchen kann!? `
        Dafür verwendet man den https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#–-selector.

        1 Reply Last reply Reply Quote 0
        • A
          Ace-k last edited by

          besten dank und Entschuldige.

          Habe den Wemos eben nochmal für "umbauten" abgenommen.

          Da ich nun leider wirklich keine Ahnung von Script habe… habe ich das ganze mal in Blocky versucht.

          Sollte doch so passen oder? Zumindest wird ein wert "true" (weil jemand zuhause ist) angezeigt.

          nur das hier jetzt mal Ping gewählt wurde um auszugeben ob jemand da ist.

          später eigentlich dann nur oben "zustand erzeugen" ändern in zb OFFEN

          und als IDs dann die Schalter am wemos wählen. Richtig?
          2562_444.jpg

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @Ace-k:

            Sollte doch so passen oder? `
            Das Prinzip passt: Auf alle zu überwachenden Datenpunkte bei "wurde geändert" triggern und eine Oder-Verknüpfung aller Werte. Sind sehr viele Datenpunkte so zu überwachen, wird es aber aufwändig.

            1 Reply Last reply Reply Quote 0
            • A
              Ace-k last edited by

              das Mag sein. Momentan klappt das mit den beiden….

              das "konstrukt" mit dem Wemos wird noch etwas anspruch in arbeit nehmen.

              aber evtl mach ich mich gleich mal an einen Blocky aufbau

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                Hier ein Beispiel, wie man beliebig viele Datenpunkte mit einem bestimmten Teil der ID abfragen kann.

                // Sammelmeldung mittels Selector erzeugen
                const debug = true; // nach erfolgreichem Test auf false setzen !
                const schalter = $('*.Schalter*'); // alle Datenpunkte, die ".Schalter" in ID enthalten
                const idSammel = 'Schalter.Sammelmeldung';
                
                if(debug) { // prüfen, ob der Selektor stimmt
                	schalter.each(function(id, i) {
                		log(id); // zeigt alle Datenpunkt-IDs des Selektors
                	});
                }
                
                function alle() {
                	schalter.each(function(id, i) {
                		if(getState(id).val) return true;
                	}); // alle getestet
                	return false; // alle Werte false oder 0
                }
                
                createState(idSammel, alle(), {type: 'boolean'});
                
                schalter.on(function(dp) {
                	if(dp.state.val) {
                		setState(idSammel, true, true);
                	} else { // Trigger-Datenpunkt hat Wert false oder 0
                		setState(idSammel, alle(), true);
                	}
                });
                
                
                1 Reply Last reply Reply Quote 0
                • A
                  Ace-k last edited by

                  schaut interessant aus.

                  muss ich dann mal testen.

                  versteh ich richtig? er Fragt damit alle Datenpunkte ab, die das Wort "schalter" beinhalten!?

                  d.h. ich muss nix erweitern und es läuft immer so weiter, ich muss nur wenn ich welche hinzufüge diese auch mit Schalter benennen.

                  bei Blocky könnte man es vergessen den neuen Daenpunkt hinzuzufügen….

                  genail . danke

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  820
                  Online

                  31.7k
                  Users

                  79.9k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  477
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo