Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Fenstersensoren @ Sonoff RF Bridge & Tasmota

    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

    Fenstersensoren @ Sonoff RF Bridge & Tasmota

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kamolus last edited by

      Hallo, hast du schon Hilfe bekommen?

      tcj 1 Reply Last reply Reply Quote 0
      • tcj
        tcj @kamolus last edited by tcj

        @kamolus Nein, konnte mir mittlerweile selber helfen.
        Habe jetzt ein Script, das die Datenpunkte für die Tür/Fenster- und Wassersensoren anlegt und die Messages auswertet.

        nicht schön, aber funktioniert:

        /* 
        
        */
        
        const sensors = [
                {id: '12DC0',   room: 'schlafzimmer',   typ: 'tuer',    name: 'Schlafzimmertür'},
                {id: '129C0',   room: 'schlafzimmer',   typ: 'fenster', name: 'Schlafzimmerfenster'},
                {id: '718B11',  room: 'keller',         typ: 'wasser',  name: 'Wasser im Keller'}
            ];
        
        const dpRFBridge = 'mqtt.0.tasmota.sonoff_rf_bridge_1.tele.RESULT' // Datenpunkt RF Bridge
        const fC = true; // forceCreation für createState
        
        // Ab hier nix mehr ändern ++++++++++++++++++++++
        
        var i;
        var obj;
        var code;
        var index;
        
        function createStates() {
            for (i=0; i<sensors.length; i++) {
                obj = 'javascript.' + instance + '.wohnung.' + sensors[i].room + '.' + sensors[i].typ;
                switch (sensors[i].typ) {
                    case 'tuer':
                        createState(obj + '.open', undefined, fC, {
                            name: sensors[i].name+ ' Offen',
                            desc: 'GS-WDS07 Tür/Fenster Sensor',
                            type: 'boolean',
                            def: false,
                            role: 'sensor.door'
                          //  room: sensors[i].room
                        });
                        createState(obj + '.batterylow', undefined, fC, {
                            name: sensors[i].name + ' Batterie schwach',
                            desc: 'GS-WDS07 Tür/Fenster Batterie schwach',
                            type: 'boolean',
                            def: false,
                            role: 'indicator.lowbat'
                        });
                        createState(obj + '.tamper', undefined, fC, {
                            name: sensors[i].name + ' Tamper',
                            desc: 'GS-WDS07 Tür/Fenster Tamper',
                            type: 'boolean',
                            def: false,
                            role: 'sensor.alarm'
                        });
                        break;
                    case 'fenster': 
                        createState(obj + '.open', undefined, fC, {
                            name: sensors[i].name+ ' Offen',
                            desc: 'GS-WDS07 Tür/Fenster Sensor',
                            type: 'boolean',
                            def: false,
                            role: 'sensor.window'
                          //  room: sensors[i].room
                        });
                        createState(obj + '.batterylow', undefined, fC, {
                            name: sensors[i].name + ' Batterie schwach',
                            desc: 'GS-WDS07 Tür/Fenster Batterie schwach',
                            type: 'boolean',
                            def: false,
                            role: 'indicator.lowbat'
                        });
                        createState(obj + '.tamper', undefined, fC, {
                            name: sensors[i].name + ' Tamper',
                            desc: 'GS-WDS07 Tür/Fenster Tamper',
                            type: 'boolean',
                            def: false,
                            role: 'sensor.alarm'
                        });
                        break;
                    case 'wasser':
                        createState(obj + '.alarm', undefined, fC, {
                            name: sensors[i].name,
                            desc: 'Wasserleck Sensor',
                            type: 'boolean',
                            def: false,
                            role: 'sensor.water'
                        });
                };    
            };    
        };
        
        function findSensorIndex(array, key, value) {
            for (i = 0; i < array.length; i++) {
                switch (array[i].typ) {
                    case 'tuer':
                    case 'fenster':
                        newvalue = value.substr(0,5);
                        break;
                    case 'wasser':
                        newvalue=value;
                };    
                if (array[i].[key] === newvalue) {
                    return i;
                }
            }
            return -1;
        }
        
        // bei Skriptstart erst mal Datenpunkte anlegen
        createStates();
        
        // wenn sich die empfangenen Daten der RFBridge ändern, dann auswerten und Status setzen
        on({id: dpRFBridge, change: 'ne'}, function (obj) {
            code = JSON.parse(obj.state.val).RfReceived.Data; 
            index = findSensorIndex(sensors, 'id', code);
            if (index >= 0 ) {
                switch (sensors[index].typ) {
                    case 'wasser':
                        setState('javascript.' + instance + '.wohnung.'+sensors[index].room+'.wasser.alarm', true);
                        break;
                    case 'tuer':
                    case 'fenster':
                        switch (code.substr(5,1)) {
                            case 'E':
                                setState('javascript.' + instance + '.wohnung.' + sensors[index].room + '.' + sensors[index].typ + '.open', false);
                                break;
                            case 'A':
                                setState('javascript.' + instance + '.wohnung.' + sensors[index].room + '.' + sensors[index].typ + '.open', true);
                                break;
                            case '6':
                                setState('javascript.' + instance + '.wohnung.' + sensors[index].room + '.' + sensors[index].typ + '.batterylow', true);
                                break;
                            case '7':
                                setState('javascript.' + instance + '.wohnung.' + sensors[index].room + '.' + sensors[index].typ + '.tamper', true);
                        }
                }
            }    
        });
        
        1 Reply Last reply Reply Quote 0
        • M
          Matdos last edited by

          Hallo, habe jetzt auch einen Fensterkontakt und zwei dreifach Taster über die Bridge laufen bzw. möchte ich laufen lassen aktuell ist nur der Fensterkontakt da.

          Als ich mir das zugelegt habe dachte ich die Bridge schreibt einen Wert unter Objekte in zb Key 1 etwas rein bzw ändert den Wert wenn es als Key 1 angelernt wurde bei jedem mal wenn der Senor bzw taste gedrückt wird.
          (So wie bei den Zigbee Tastern der Wert wird einmal kurz auf True gesetzt und geht dann gleich wieder auf false).

          Jetzt ist es aber tatsächlich so das man ja nur den Code der vom Fensterkontakt kommt über ein Script auswerten kann, ich möchte aber das wenn der Code vom Key 1 empfangen wird mir unter Objekte der Wert von Key1 geändert wird und wenn es nur kurz auf true geht das reicht.

          Aktuell steht da da nur "Learnd send" drin mehr nicht, damit ich aber unter Yahka einen Schalter einbinden kann, brauche ich ja unter Objekte ein True oder fals Wert wie kann ich das umsetzten?

          Oder kann ich direkt in Yahka ein Script schreiben damit der "Schalter" den Code direkt auswertet?

          Vielen Dank für euere Hilfe.

          1.png

          1 Reply Last reply Reply Quote 0
          • M
            Matdos last edited by

            1.png

            Habe das in einem anderen Forum gefunden, ich werde aber immer noch nicht schlau draus wie ich über den Code der von dem taster gesendet wird, unter Objekte einen neuen Datenpunkt erzeugt bekomme der beim Drücken vom taster "true" ist und ansonsten "false".

            1 Reply Last reply Reply Quote 0
            • Ralla66
              Ralla66 Most Active last edited by Ralla66

              Hi,
              RFReceived_Data 9A9389 ist den was bei dir ?
              Fenster auf ?

              Wenn du 9A9389 empfängst möchtst du was machen ?

              RF_22.jpg

              Beispiel von mir:

              RF_23.jpg

              Die RF Key sind ja angelernte Codes die auch gesendet werden können.
              Warum diese verarbeiten ?
              Macht ja bei Fenster auf keinen Sinn.
              Bild oben, brauchste nur mache setze RF Key 1 auf true oder false.
              Binde mal die Dreifachtaster in der Bridge erst einmal ein.

              1 Reply Last reply Reply Quote 0
              • M
                Matdos last edited by

                Hay wenn der Code bei mir kommt ist das wenn ich einen Taster gedrückt habe.

                Wenn ich den Taster gedrückt habe möchte ich nur das der Code nur kurz einen Datenpunkt auf true setzt und dann gleich wieder auf false zurckückgesetzt wird.

                1 Reply Last reply Reply Quote 0
                • M
                  Matdos last edited by

                  1.png 2.png

                  Habe ein Script gemacht und bereits herausgefunden wie ich einen Datenpukt anlege, hier mal "Test", habe es aber noch nicnt geschafft das wenn der Wert 1FE062 gesendet wird das mir der DatenPunkt auf True gesetzt wird, bzw habe auch schon versucht einen anderen Datenpunkt z.B. von einer Lampe auf True zu setzen, aber bis jetzt noch ohne Erfolg.

                  1 Reply Last reply Reply Quote 0
                  • M
                    Matdos last edited by Matdos

                    3.png

                    Ah ok ich habe den Fehler jetzt gefunden ich hatte hinten wert vom Objekt ID und dann den Wert hier hast du "nur den Text Baustein" drin jetzt wird mein Test Datenpunkt auf True gesezt aber ich bekomme unten vom Script Fehlermeldungen und das Pause Zeichen ist gelb das hatte ich bis jetzt noch nie.

                    Update von dem Script Fehler, habe ein neues Script erstellt und aus dem Test Script das Script Importiert, das neu erstellte Script ist jetzt grün ohne Fehlermeldung.

                    Habe ich den Datenpunkt Test richtig erstellt? Meine irgendwo hier im Forum gelesen zu haben das man nicht einfach so wie ich es jetzt gemacht habe in bestehende Ordner eigene Datenpunkte erstellen soll?

                    1 Reply Last reply Reply Quote 0
                    • M
                      Matdos last edited by

                      Script für Taster (wird nach 500ms auf false Zurückgesezt)

                      4.png

                      Hier setze ich den RFReceived Data Punkt auf 0, weil wenn ich einen Taster 2x betätige mit dem gleichen Code logischerweise, schreibt das Script den True wert nicht noch einmal in den erstellten Datenpunkt.
                      Erst wenn ich den Wert RFReceived ändere und erneut der Code von dem Taster kommt wird der erstellte Datenpunkt wieder auf True gesezt.

                      Ist das bei euch auch so, bzw wie habt Ihr das gelöst?

                      5.png

                      Hier habe ich jetzt in dem Sonoff Ordner mal einen eigen Channel erstellt mit 3 Datenpunkten, passt das so, denke nicht oder, weil wenn ich jetzt einen Taster drücke kommt immer eine Warnmeldung im LOG.
                      6.png
                      7.png

                      1 Reply Last reply Reply Quote 0
                      • Ralla66
                        Ralla66 Most Active last edited by Ralla66

                        @matdos1gmx-de
                        Angelegte Datenpunkte sollten im falschen Ordner sein.
                        Daher dein not connected Schalter 1.
                        Lege mal RF Schalter 1 in den javascript.0 Ordner so:

                        Datenpunkte_J.jpg

                        Wurde geändert gehe auf wurde aktuallisiert.
                        Sonst wird beim triggern mit dem gleichem Taster das Script nicht ausgeführt.

                        RF_33.jpg

                        1 Reply Last reply Reply Quote 0
                        • M
                          Matdos last edited by

                          Ah Ok probier ich sofort aus.

                          Vielen Dank!!

                          1 Reply Last reply Reply Quote 0
                          • Ralla66
                            Ralla66 Most Active last edited by Ralla66

                            @matdos1gmx-de
                            Lösche aber RF Schalter 1 im Sonoff Adapter.
                            Schreibe bitte @Ralla66 davor sonst sehe ich nicht ob du geantwortest hast.
                            Danke.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              Matdos @Ralla66 last edited by

                              @Ralla66

                              Hab es jetzt so

                              1.png

                              1 Reply Last reply Reply Quote 0
                              • Ralla66
                                Ralla66 Most Active last edited by

                                @matdos1gmx-de
                                Sollte so passen.

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  Matdos @Ralla66 last edited by

                                  @Ralla66
                                  Super vielen Dank für die Hilfe, jetzt kommen auch keine Meldungen mehr wenn die neu angelegten Datenpunkte geändert werden!!!

                                  Herzlichen Dank!!

                                  1 Reply Last reply Reply Quote 0
                                  • Ralla66
                                    Ralla66 Most Active last edited by

                                    @matdos1gmx-de
                                    Prima, teste eben mal deinen Taster.
                                    Mit aktualisiert sollte jetzt auch klappen.

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      Matdos @Ralla66 last edited by

                                      @Ralla66

                                      Ja das passt, habe es schon vorher schon umgestellt auf "aktualisieren", dadurch benötige ich das Script um den RFRecived Data Punkt zurückzusetzen nicht mehr.
                                      Tip Top!

                                      oberfragger 1 Reply Last reply Reply Quote 0
                                      • oberfragger
                                        oberfragger @Matdos last edited by

                                        Moin in die Runde.
                                        Wenn es um "Schalter" on/off geht - könnte m.E. Espurna auch für den einen oder anderen etwas sein.

                                        Solltet Ihr mal testen- da ging recht viel OutOfTheBox und man hat sich dieses ganze gescripte gespart.

                                        Ich bin letzten Endes auch zu Tasmota, da ich aufgrund verschiedener "Handgeräte" im Haus, verschiedene RF-Firmware durchprobiert habe. Das Update der RF-Firmwares habe ich in ESPurna nicht gefunden.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        807
                                        Online

                                        31.9k
                                        Users

                                        80.2k
                                        Topics

                                        1.3m
                                        Posts

                                        6
                                        23
                                        4586
                                        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