NEWS
Node-Red-Contrib-Unifi Special Commands
-
@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.
-
@mickym
so funktioniert das mal!
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? -
@bishop Ja - ich kann aber erst ab 23 Uhr kurz weiter helfen
-
@mickym
kein Problem, es eilt nicht -
@bishop Schau mal ob der Haken bei Dir gesetzt ist?
-
@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):Hier die grafische Darstellung des Flows:
Datenpunkt (Logikwert: Boolean true/false) habe ich unter
erstellt - kannst ja alles ändern.
In der Change Node wieder MAC Adresse eintragen.
[ { "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.
-
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!! -
@bishop sagte in Node-Red-Contrib-Unifi Special Commands:
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" }
-
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.
-
@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? -
-
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 -
@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.
-
@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