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.
    • B
      bishop last edited by

      Hallo,

      kann mir jemand sagen wie ich in NodeRed die Special Commands von hier verwenden kann!?!
      Möchte gerne blockClient : Block Client { command: "blockClient", mac: "client MAC address" }
      unblockClient : Unblock Client { command: "unblockClient", mac: "client MAC address" } verwenden

      Vielen dank

      mickym 1 Reply Last reply Reply Quote 0
      • 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