Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node-Red-Contrib-Unifi Special Commands

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node-Red-Contrib-Unifi Special Commands

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @bishop last edited by mickym

      @bishop Ich weiß zwar nicht, was Dein Problem ist. Ich gehe mal davon aus, Du hast den unifi Node konfiguriert und in Deinem Flow verwendet.

      Testen kannst Du, in dem Du diese Kommandos erst über eine Inject-Node absetzt - später kannst Du das dann auch im Flow selbst zusammenstellen.

      Testen einfach Inject Node mit dem entspechenden Java Obkjekt iniziierst:

      Zu dem Debug Objekt verkabelst dann eben noch die Unifi Node:

      screen.png

      Und hier der Flow:

      [
          {
              "id": "8a3e4967.edde68",
              "type": "inject",
              "z": "dce8fa20.2e93c8",
              "name": "blockClient",
              "props": [
                  {
                      "p": "payload.command",
                      "v": "blockClient",
                      "vt": "str"
                  },
                  {
                      "p": "payload.mac",
                      "v": "client MAC address",
                      "vt": "str"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "x": 1600,
              "y": 1640,
              "wires": [
                  [
                      "84112698.7006a8"
                  ]
              ]
          },
          {
              "id": "84112698.7006a8",
              "type": "debug",
              "z": "dce8fa20.2e93c8",
              "name": "",
              "active": true,
              "tosidebar": true,
              "console": false,
              "tostatus": false,
              "complete": "false",
              "statusVal": "",
              "statusType": "auto",
              "x": 1870,
              "y": 1660,
              "wires": []
          },
          {
              "id": "12f29a29.19bf96",
              "type": "inject",
              "z": "dce8fa20.2e93c8",
              "name": "unblockClient",
              "props": [
                  {
                      "p": "payload.command",
                      "v": "unblockClient",
                      "vt": "str"
                  },
                  {
                      "p": "payload.mac",
                      "v": "client MAC address",
                      "vt": "str"
                  }
              ],
              "repeat": "",
              "crontab": "",
              "once": false,
              "onceDelay": 0.1,
              "topic": "",
              "x": 1610,
              "y": 1680,
              "wires": [
                  [
                      "84112698.7006a8"
                  ]
              ]
          }
      ]
      

      Hat das mit dem Test geklappt, würde ich dann für jedes Gerät eine ChangeNode mit einer fixen MAC-Adresse positionieren, in die Du dann einfach die benötigen Kommandos einspeist.

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

        @mickym
        vielen dank ich werde das mal testen.
        Habe mit NodeRed noch nichts zu tun gehabt, benutze in der Regel Blockly!

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @bishop last edited by

          @bishop Einfach den Flow importieren und auf die Inject Node drücken und schauen, ob es tut. Du musst natürlich dann noch die richtige Mac-Adresse eintragen.

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

            @mickym
            so funktioniert das mal!
            nodered_unifi-flow_block_mac.jpg

            kann ich das nun als Datenpunkt in den IoBroker bekommen?
            Also z.b. "JanTablet_blocken" den ich dann auf True und False triggern kann aus IoBroker heraus?

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @bishop last edited by

              @bishop Ja - ich kann aber erst ab 23 Uhr kurz weiter helfen

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

                @mickym
                kein Problem, es eilt nicht 🙂

                mickym 2 Replies Last reply Reply Quote 0
                • mickym
                  mickym Most Active @bishop last edited by

                  @bishop Schau mal ob der Haken bei Dir gesetzt ist?

                  screen.png

                  1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @bishop last edited by mickym

                    @bishop
                    Hier der Flow - war vorher noch ein Fehler drin - wie gesagt wenn der Haken bei der Node-Red Adapterkonfig gesetzt ist die Booleans true und false gegen Strings ersetzen - falls der Haken nicht gesetzt ist (wie auf meinem Screenshot, dann brauchst nichts ändern):

                    screen.png

                    Hier die grafische Darstellung des Flows:

                    0d217d31-b35e-4ed8-a8d3-65decf7cfa54-image.png

                    Datenpunkt (Logikwert: Boolean true/false) habe ich unter

                    screen.png

                    erstellt - kannst ja alles ändern.

                    In der Change Node wieder MAC Adresse eintragen.
                    screen.png

                    [
                        {
                            "id": "84112698.7006a8",
                            "type": "debug",
                            "z": "dce8fa20.2e93c8",
                            "name": "",
                            "active": true,
                            "tosidebar": true,
                            "console": false,
                            "tostatus": false,
                            "complete": "payload",
                            "targetType": "msg",
                            "statusVal": "",
                            "statusType": "auto",
                            "x": 2030,
                            "y": 1660,
                            "wires": []
                        },
                        {
                            "id": "2e6ff264.1a736e",
                            "type": "change",
                            "z": "dce8fa20.2e93c8",
                            "name": "Blockiere client MAC address",
                            "rules": [
                                {
                                    "t": "move",
                                    "p": "payload",
                                    "pt": "msg",
                                    "to": "command",
                                    "tot": "msg"
                                },
                                {
                                    "t": "set",
                                    "p": "payload.mac",
                                    "pt": "msg",
                                    "to": "client MAC address",
                                    "tot": "str"
                                },
                                {
                                    "t": "change",
                                    "p": "command",
                                    "pt": "msg",
                                    "from": "false",
                                    "fromt": "bool",
                                    "to": "unblockClient",
                                    "tot": "str"
                                },
                                {
                                    "t": "change",
                                    "p": "command",
                                    "pt": "msg",
                                    "from": "true",
                                    "fromt": "bool",
                                    "to": "blockClient",
                                    "tot": "str"
                                },
                                {
                                    "t": "set",
                                    "p": "payload.command",
                                    "pt": "msg",
                                    "to": "command",
                                    "tot": "msg"
                                },
                                {
                                    "t": "delete",
                                    "p": "command",
                                    "pt": "msg"
                                }
                            ],
                            "action": "",
                            "property": "",
                            "from": "",
                            "to": "",
                            "reg": false,
                            "x": 1780,
                            "y": 1660,
                            "wires": [
                                [
                                    "84112698.7006a8"
                                ]
                            ]
                        },
                        {
                            "id": "615965b1.ef6b2c",
                            "type": "ioBroker in",
                            "z": "dce8fa20.2e93c8",
                            "name": "",
                            "topic": "0_userdata.0.JanTablet_blocken",
                            "payloadType": "value",
                            "onlyack": "",
                            "func": "all",
                            "gap": "",
                            "fireOnStart": "false",
                            "x": 1470,
                            "y": 1660,
                            "wires": [
                                [
                                    "2e6ff264.1a736e"
                                ]
                            ]
                        }
                    ]
                    

                    Man kann den Flow natürlich auch klassisch mit mehreren Nodes erstellen - aber ich denke das bekommst wahrscheinlich selbst hin.

                    B Bahadir Ergüllü P 3 Replies Last reply Reply Quote 0
                    • B
                      bishop @mickym last edited by bishop

                      @mickym

                      Perfekt, ich danke dir sakrisch 🙂

                      Werde ich gleich nachbilden wenn ich zu Hause bin und Feedback geben!

                      edit:

                      funktioniert perfekt, konnte alles auf meine Bedürfnisse anpassen.
                      Vielen Dank!!

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @bishop last edited by mickym

                        @bishop sagte in Node-Red-Contrib-Unifi Special Commands:

                        @mickym

                        Perfekt, ich danke dir sakrisch 🙂

                        Werde ich gleich nachbilden wenn ich zu Hause bin und Feedback geben!

                        edit:

                        funktioniert perfekt, konnte alles auf meine Bedürfnisse anpassen.
                        Vielen Dank!!

                        Na ich hoffe es hilft auch für die Zukunft - wenn Du es verstanden hast.

                        Wenn Du einen Datenpunkt im iobroker mit command erstellst, dann kannst Du damit auch andere Kommandos quasi aus dem iobroker direkt antriggern in dem Du in diesen Datenpunkt halt den entsprechenden Text schreibst. Aber das sollte für Dich ja nun kein Problem mehr sein:

                        reconnectClient : Reconnect Client { command: "reconnectClient", mac: "client MAC address" }
                        unauthorizeGuest : Unauthorize Client { command: "unauthorizeGuest", mac: "client MAC address" }
                        
                        1 Reply Last reply Reply Quote 0
                        • Bahadir Ergüllü
                          Bahadir Ergüllü @mickym last edited by

                          @mickym

                          Hallo Mickym,

                          super Anleitung. Ich kenne mich leider noch kaum aus mit node. Ich habe das mit deinem Code erfolgreich nachbauen können.

                          Wie bekomme ich das mit mehreren MAC Adressen hin? Habe zwar einiges versucht, leider erfolglos.

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Bahadir Ergüllü last edited by mickym

                            @bahadir-ergüllü
                            Ehrlich gesagt, verstehe ich das Problem nicht?
                            Was hast Du schon versucht? Du brauchst doch eigentlich nur für jedes Gerät einen Datenpunkt anlegen? Wenn ich mir den Flow so anschaue, fehlt ggf. noch die JSON Node. Aber wie gesagt, was hast Du versucht, wie sehen die Datenpunkte aus?

                            Bahadir Ergüllü 1 Reply Last reply Reply Quote 0
                            • Bahadir Ergüllü
                              Bahadir Ergüllü @mickym last edited by

                              @mickym

                              Hi,

                              habe mich gestern irgendwie vertan. Funktioniert jetzt einwandfrei.

                              857034ae-66c5-47e0-8114-76875ec889f2-image.png

                              1 Reply Last reply Reply Quote 0
                              • P
                                pluto202 @mickym last edited by

                                Hallo @mickym, ich habe heute Abend diesen Flow von dir implementiert, da ich die Kinder etwas reklementieren musste 🙂

                                Ich habe noch eine weitere Frage dazu. Ich würde gerne in regelmäßigen Abständen den Status des Device abfragen oben es "blocked: true" oder "blocked: false" ist und das in ein Statusobjekt zurückschreiben. Dies kann mir evtl. beim Troubleshooten im Fehlerfall helfen. Hast du einen Tipp wie ich das abfragen kann? Wie komme ich an diese Info ohne den Status zu ändern? Bin leider noch nicht so tief in solchen Abfragen.

                                Danke und Grüße
                                Andreas

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @pluto202 last edited by

                                  @pluto202 Nun ich kenn mich mit der Unifi nicht aus und keine Ahnung was bei commandos wie ClientDevices etc rauskommt.

                                  Ich bin auch grundsätzlich kein Freund davon, Geräte zyklich abzufragen, da das vom Intervall abhängt und ggf. dann das System unnötig belastet, weil man zu oft abfragt.

                                  Was einfach zu realisieren ist, wenn Du diese Kommandos, die Du absetzt gleichzeitig in einem Datenpunkt schreibst, sodass Du immer sofort den Status zur Verfügung hast, was gerade geschaltet ist, vorausgesetzt natürlich Du setzt nur über diesen Flow.

                                  Eine andere Frage ist halt ob aus der Unifi Node was rauskommt, wenn bestimmte Ereignisse auftreten. Wie gesagt ich habe leider keine Unifi und somit auch keine Unifi Node im Einsatz.

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    pluto202 @mickym last edited by

                                    @mickym danke dir für dein Feedback. Das Problem mit dem Abfragen ist mir bewusst. Hintergrund ist, dass mach das Blocken von einem Endgerät auch über die GUI von Unifi machen kann. Sollte es dort erfolgen bekommt es der Status nicht mit und die Anzeige ist falsch.

                                    Ich suche mal weiter nach einer Lösung und danke dir für deine Hilfe.

                                    Gruß
                                    Andreas

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    1.1k
                                    Online

                                    31.7k
                                    Users

                                    79.7k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    17
                                    1728
                                    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