Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Skript 2 x Nuki Synchronisieren über MQTT

    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

    Skript 2 x Nuki Synchronisieren über MQTT

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Balu 0 last edited by Balu 0

      Frohes neues Liebe Logiker !
      Ich würde Hilfe bei folgender Automation benötigen:

      Ich habe 2 Nukkis,
      eins an einem Panzerriegel, eins am Normalen Türschloss.
      ( Am nukki vom Riegel ist der Fingerprintsensor gekoppelt )

      Da die Datenpunkte vom Fingerprintsensor leider nicht Verfügbar sind sondern fest mit einem Nukki gekoppelt sein müssen,
      und von Sensor ebenso kein Status abgefragt werden kann.

      Habe ich mir nun überlegt das nicht gekoppelte schloss über MQTT zu Synchronisieren.
      Die Nukkis haben hierfür 2 relevante Datenpunkte : 123.png
      1 x Status

      {
        "_id": "mqtt.0.nuki.4121ADE4.state",
        "common": {
          "name": "nuki/4121ADE4/state",
          "write": true,
          "read": true,
          "role": "variable",
          "desc": "mqtt server variable",
          "type": "number"
        },
        "native": {
          "topic": "nuki/4121ADE4/state"
        },
        "type": "state",
        "from": "system.adapter.mqtt.0",
        "user": "system.user.admin",
        "ts": 1735826963369,
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      ```1 x Look Aktion
      
      
        "_id": "mqtt.0.nuki.4121A1FC.lockAction",
        "common": {
          "name": "nuki/4121A1FC/lockAction",
          "write": true,
          "read": true,
          "role": "variable",
          "desc": "mqtt server variable",
          "type": "string"
        },
        "native": {
          "topic": "nuki/4121A1FC/lockAction"
        },
        "type": "state",
        "from": "system.adapter.mqtt.0",
        "user": "system.user.admin",
        "ts": 1727557358865,
        "acl": {
          "object": 1636,
          "state": 1636,
          "file": 1632,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      

      Der Riegel hat keinen Türschnapper und hat folgendes Regelwerk :

      Look Aktion 1 = 3 Status Offen

      Look Aktion 2 = 1 Status Geschlossen

      Das Nukki am normalen Türschloss hast

      Look Aktion 2 = 1 Status Geschlossen

      Look Aktion 3 = 3 Status offen ( Mit Schnapper zusätzlich )

      Das Skript müsste denke ich wie folgt aus sehen :

      Geht der Status von Nukki ( Riegel ) auf "3 Status Offen"
      Soll
      Soll die Look Aktion bei Nukki ( Schloss ) auf " 3 "

      Weiter

      Geht der Status von Nukki ( Riegel ) auf "1 Status geschlossen"
      Soll
      Soll die Look Aktion bei Nukki ( Schloss ) auf " 2 "

      Puh 🙂
      Gerne auch bessere Lösungsansätze geht schließlich um die Wohnungstür.
      Ich hoffe es hat jemand Lust mir das Skript zu basteln.

      Grüße
      Balu

      B 1 Reply Last reply Reply Quote 0
      • B
        Balu 0 @Balu 0 last edited by Balu 0

        @balu-0
        Habe es mal geschaft einigermaßen zu laufen zu bringen.
        Allerdings ist jetzt das Problem wenn der Riegel bereits offen ist sperrt der Schnapper bei Betätigung des Sensors nicht.

        Wenn ich das auf aktualisieren stelle geht die Tür von alleine wieder auf.

        Hat wer ne Idee ? 1.png

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="bY8|tROmpf^gtcR-U1ox" x="12" y="137">
            <field name="OID">mqtt.0.nuki.4121ADE4.state</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="lZrqULlpB`kOtUN!NOOA">
                <value name="IF0">
                  <block type="logic_compare" id="6:Dp]OVGv:-m6mr6P[om">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="y#.u,h;m8?+IwJADLQ,T">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="3jpJFwYgbk+k*dETycrk">
                        <field name="NUM">3</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="#+9m,$`QFZ)K;D3/A9e,">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">mqtt.0.nuki.4121A1FC.lockAction</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="STl1eT;ZQ9nKO-s5RZ`e">
                        <field name="NUM">3</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
          <block type="on" id="JGcN|nL4(YSgijF^0v7s" x="12" y="387">
            <field name="OID">mqtt.0.nuki.4121ADE4.state</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="fye5!B3vF;NgXz!QS=??">
                <value name="IF0">
                  <block type="logic_compare" id="h??L?t?B#!!9L*Y:)~:!">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="on_source" id="u]qx]-2($r_=VIS^3B~L">
                        <field name="ATTR">state.val</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="math_number" id="nR;/Kl-I6KdxlP#q{TPl">
                        <field name="NUM">1</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="_UnoPR`Cm?L+^petSr5_">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">mqtt.0.nuki.4121A1FC.lockAction</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="v{X}AqIJFr$JiK:+4Gre">
                        <field name="NUM">2</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Edit :
        @balu-0 said in Skript 2 x Nukki Synchronisieren über MQTT:

        Wenn ich das auf aktualisieren stelle geht die Tür von alleine wieder auf.

        Die Aktualisierung scheint der Türsensor auszulösen.

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

          @balu-0 sagte: Hat wer ne Idee ?

          Zeige bitte die Objektdaten von "lockAction" in Codetags und teile mit, welche Werte der DP annehmen kann.

          Es soll der "state" des einen Nuki den "lockAction" des anderen Nuki steuern?

          B 1 Reply Last reply Reply Quote 1
          • B
            Balu 0 @paul53 last edited by

            @paul53

            "Es soll der "state" des einen Nuki den "lockAction" des anderen Nuki steuern?"
            Ja

            Zeige bitte die Objektdaten von "lockAction" in Codetags und teile mit, welche Werte der DP annehmen kann.

            die hier oder nicht ?

            {
              "_id": "mqtt.0.nuki.4121ADE4.state",
              "common": {
                "name": "nuki/4121ADE4/state",
                "write": true,
                "read": true,
                "role": "variable",
                "desc": "mqtt server variable",
                "type": "number"
              },
              "native": {
                "topic": "nuki/4121ADE4/state"
              },
              "type": "state",
              "from": "system.adapter.mqtt.0",
              "user": "system.user.admin",
              "ts": 1735826963369,
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            ```1 x Look Aktion
             
            
            
            {
              "_id": "mqtt.0.nuki.4121ADE4.lock",
              "common": {
                "name": "nuki/4121ADE4/lock",
                "write": true,
                "read": true,
                "role": "variable",
                "desc": "mqtt server variable",
                "type": "string"
              },
              "native": {
                "topic": "nuki/4121ADE4/lock"
              },
              "type": "state",
              "from": "system.adapter.mqtt.0",
              "user": "system.user.admin",
              "ts": 1735826962646,
              "acl": {
                "object": 1636,
                "state": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            
            
            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Balu 0 last edited by

              @balu-0 sagte: die hier oder nicht ?

              Nicht "lock", sondern "lockAction"!

              B 1 Reply Last reply Reply Quote 1
              • B
                Balu 0 @paul53 last edited by Balu 0

                @paul53

                Ah hatte den falschen punkt drin : tausch ich oben auch aus ...

                  "_id": "mqtt.0.nuki.4121A1FC.lockAction",
                  "common": {
                    "name": "nuki/4121A1FC/lockAction",
                    "write": true,
                    "read": true,
                    "role": "variable",
                    "desc": "mqtt server variable",
                    "type": "string"
                  },
                  "native": {
                    "topic": "nuki/4121A1FC/lockAction"
                  },
                  "type": "state",
                  "from": "system.adapter.mqtt.0",
                  "user": "system.user.admin",
                  "ts": 1727557358865,
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "file": 1632,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                
                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Balu 0 last edited by paul53

                  @balu-0
                  Der ist vom Typ "string". Dann versuche es mal so:

                  Blockly_temp.JPG

                  B 1 Reply Last reply Reply Quote 1
                  • B
                    Balu 0 @paul53 last edited by

                    @paul53
                    Jetzt funktioniert es ohne die Fehler mit der Aktualisierung jedoch wenn
                    der "Riegel" bereits auf offen steht wird die Öffnung vom normalen schloss nicht mehr ausgelöst.
                    löst evtl. der Finger Sensor nicht mehr aus wenn der riegel nukki bereits auf offen steht ?

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

                      @balu-0 sagte: löst evtl. der Finger Sensor nicht mehr aus wenn der riegel nukki bereits auf offen steht ?

                      Ich habe von Nuki keine Ahnung.

                      B 1 Reply Last reply Reply Quote 1
                      • B
                        Balu 0 @paul53 last edited by Balu 0

                        @paul53 said in Skript 2 x Nukki Synchronisieren über MQTT:

                        @balu-0 sagte: löst evtl. der Finger Sensor nicht mehr aus wenn der Riegel nukki bereits auf offen steht ?

                        besser gefragt : wird der Datenpunkt nicht mehr aktualisiert wenn er bereits einmal aktualiesiert wurde und auf dem status steht ?

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          Balu 0 @Balu 0 last edited by Balu 0

                          @paul53
                          Lieber Paul,
                          ich hoffe ich habe nochmal deine Aufmerksamkeit.

                          Stelle ich dein Skript um auf "wurde Aktualisiert" statt auf " Wurde geändert",
                          so funktioniert das öffnen über alle Möglichkeiten ( app sensor ) wie gewünscht.
                          Allerdings wird hier bei jeder Aktualisierung abgeglichen und ausgelöst.
                          Also auch bei eben beispielsweise dem Sensor.

                          Ich bin nun auf diesen Event log aufmerksam geworden.

                            "_id": "mqtt.0.nuki.4121ADE4.lockActionEvent",
                            "common": {
                              "name": "nuki/4121ADE4/lockActionEvent",
                              "write": true,
                              "read": true,
                              "role": "variable",
                              "desc": "mqtt server variable",
                              "type": "string"
                            },
                            "native": {
                              "topic": "nuki/4121ADE4/lockActionEvent"
                            },
                            "type": "state",
                            "from": "system.adapter.mqtt.0",
                            "user": "system.user.admin",
                            "ts": 1735827094125,
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                          

                          捾  wenn durch den Türsensor geöffnet
                           wenn durch die App geöffnet
                          捾  wiederum wenn durch den Fingerprint geöffnet wird.

                          Nehmen wir mal an ich würde auf den Türsensor verzichten, bzw ihn an das Andere Nukki koppeln.
                          Könnten wir dann die syncroniesierung bei status offen, an diesen : 捾  Eventlock binden ?

                          Also so das die Tür im offenen zustand durch keine andere Aktualisierung ausgelöst werden kann.?

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

                            @balu-0 sagte: Event log aufmerksam geworden.

                            Ich habe keine Ahnung, wie man chinesischen Text auswertet.
                            Helfen kann dir sicherlich jemand, der das Verhalten der Nuki-Datenpunkte kennt.

                            1 Reply Last reply Reply Quote 1
                            • Dr. Bakterius
                              Dr. Bakterius Most Active last edited by Dr. Bakterius

                              @balu-0 sagte in Skript 2 x Nukki Synchronisieren über MQTT:

                              Ich bin nun auf diesen Event log aufmerksam geworden.
                              捾  wenn durch den Türsensor geöffnet
                               wenn durch die App geöffnet
                              捾  wiederum wenn durch den Fingerprint geöffnet wird.

                              Du musst den Datenpunkt von Text nach HEX umwandeln und dann einen Teil davon in eine Zahl, dann kannst du damit arbeiten. Ich mache das um ein Protokoll zu führen und das Blockly sieht so aus:

                              blockly.png

                              In der Funktion muss folgendes stehen:

                              blockly.png

                              B 2 Replies Last reply Reply Quote 1
                              • B
                                Balu 0 @Dr. Bakterius last edited by

                                @dr-bakterius
                                Super Danke !
                                weißt du zufällig was alles eine Aktualisierung am Lock State auslöst ?

                                Nachdem ich den Tür Sensor jetzt auf das andere nukki gelegt habe, habe ich keine ungewollte Aktualisierung mehr.

                                Ich probiere mal ob ich so weitekomme,
                                is schon sau dumm wenn die tür aufgeht 🙂

                                @paul53
                                Danke dir !!

                                Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                • B
                                  Balu 0 @Dr. Bakterius last edited by

                                  @dr-bakterius
                                  sorry,
                                  wie funktionierte dieses wandeln ?

                                  1 Reply Last reply Reply Quote 0
                                  • Dr. Bakterius
                                    Dr. Bakterius Most Active @Balu 0 last edited by

                                    @balu-0 sagte in Skript 2 x Nukki Synchronisieren über MQTT:

                                    weißt du zufällig was alles eine Aktualisierung am Lock State auslöst ?

                                    Nein, einfach probieren.

                                    wie funktionierte dieses wandeln ?

                                    Ist doch alles oben zu sehen. Musst du nur nachbauen. Ist da etwas unklar?

                                    B 2 Replies Last reply Reply Quote 1
                                    • B
                                      Balu 0 @Dr. Bakterius last edited by

                                      @dr-bakterius said in Skript 2 x Nukki Synchronisieren über MQTT:

                                      weißt du zufällig was alles eine Aktualisierung am Lock State auslöst ?

                                      Nein, einfach probieren.

                                      Ja hab ich, es gibt aber immer Sachen die Mann nicht auf dem schirm hat.
                                      Getestet habe ich mit positiver Rückmeldung:
                                      Nukki Türsensor, nukki fingerprint, Nukki Taste am Nukki selber, Nukki App.
                                      Ohne Rückmeldung:
                                      Pi unerwartet vom Strom, io Skript neu gestartet.

                                      Ist doch alles oben zu sehen. Musst du nur nachbauen. Ist da etwas unklar?
                                      1.png

                                      Nachgebaut habe ich ich denke da unten sollte dann der Log kommen oder ?

                                      Womit ich nichts anfangen kann ist dieser teil :
                                      1.png

                                      Dieser Schritt fehlt mir noch denke ich.

                                      Ich weiß bei mir braucht Mann manchmal nerven aus stahl,
                                      Ich tue mir mit programmieren wirklich unglaublich schwer

                                      1 Reply Last reply Reply Quote 0
                                      • B
                                        Balu 0 @Dr. Bakterius last edited by

                                        @dr-bakterius

                                        Gefunden 🙂

                                        2.png
                                        1.png

                                        Log kommt aber noch keiner...

                                        B Dr. Bakterius 2 Replies Last reply Reply Quote 0
                                        • B
                                          Balu 0 @Balu 0 last edited by

                                          falls jemand1.png die Konstruktion interessiert:

                                          1 : Opener
                                          2 : Nukki am schloss
                                          3 : Nukki am Panzerriegel.
                                          4. Nukki Fingerprint aussen an der Tür

                                          1 Reply Last reply Reply Quote 1
                                          • Dr. Bakterius
                                            Dr. Bakterius Most Active @Balu 0 last edited by

                                            @balu-0 sagte in Skript 2 x Nukki Synchronisieren über MQTT:

                                            Log kommt aber noch keiner...

                                            Kann auch nicht funktionieren. In deiner 'Falls'-Routine prüfst du auf die Variable 'Text'. Die beinhaltet aber den ursprünglichen Inhalt des Datenpunktes. Du musst die Variable 'Zahl' prüfen. So wie in meinem Beispiel oben.

                                            BTW: Nuki schreibt sich mit nur einem 'k' und korrekte Groß- und Kleinschreibung vereinfacht das Lesen. Die meisten Browser haben ohnehin schon eine Rechtschreibprüfung eingebaut, die vermeintliche Fehler kennzeichnet und eine Korrektur anbietet. Nur so als Tipp. 😉

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            608
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            22
                                            875
                                            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