BT lescan

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

BT lescan

Beitrag von onkel_joerg » 17.06.2019, 16:13

Hallo @hobbyquaker.
Ich habe das hier gefunden und vermute mal, dass es dein Werk ist.
https://flows.nodered.org/node/node-red-contrib-lescan
:D
Ich weiß, dass es noch beta ist (steht ja da) aber ich habe als wissensuchender Noob eine Frage dazu:
Was muss ich dem node als Input geben, damit er mir für eine MAC true/false ausspuckt?
Mit der MAC selber habe ich es schon probiert. Die scheint er aber zu ignorieren. Er spuckt dafür alle BT geräte in der Umgebung aus.
Wie gesagt, bin ein Noob in Sachen Programmierung.

LG O.J.

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: BT lescan

Beitrag von hobbyquaker » 17.06.2019, 16:16

Du musst garnichts in den Node reinschicken. Benutz ihn einfach in der Default Config, nichts am Eingang anschließen und am Ausgang kannst Du dann einen Switch Node nutzen wenn Dich nur die Nachrichten bestimmter MACs interessieren.

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

Re: BT lescan

Beitrag von onkel_joerg » 17.06.2019, 18:52

Ich habe im debug als msg.payload immer nur boolean true zu stehen. Wie komme ich an die MAC?
Die steht ja da, aber wie komme ich ran? :?:
Wie gesagt, bin blutiger Anfänger.
LG O.J.
Dateianhänge
Screenshot_20190617-184829_TeamViewer.jpg

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: BT lescan

Beitrag von hobbyquaker » 17.06.2019, 19:05

die MAC steht in msg.topic
Du könntest also einen Switch Node so in der Art konfigurieren:
Bildschirmfoto 2019-06-17 um 19.05.33.png

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

Re: BT lescan

Beitrag von onkel_joerg » 17.06.2019, 19:30

Danke :D
Werde es Heute Abend sofort ausprobieren.

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

Re: BT lescan

Beitrag von onkel_joerg » 19.06.2019, 12:46

Hallo,
es funktioniert an sich prima, nur bekomme ich ab und zu beim Neustart von Node-red diese seltsame Fehlermeldung.
Was mache ich falsch?
Dateianhänge
lescan-fehler.png
lescan-fehler.png (21.82 KiB) 1836 mal betrachtet
lescam-fehler-2.png
lescam-fehler-2.png (32.56 KiB) 1836 mal betrachtet

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: BT lescan

Beitrag von hobbyquaker » 19.06.2019, 12:56

Da bin ich selbst noch am rumdoktern und Lösung suchen. Wenn das hcitool nicht sauber beendet wird kann das passieren. Meistens kannst das "reparieren" indem Du auf der Console einmal

Code: Alles auswählen

hciconfig hci0 down
hciconfig hci0 up
ausführst, ist mir aber auch schon passiert dass der Kerneltreiber und evtl sogar die Hardware voll weggeschmiert war und nur noch ein rmmod/insmod oder Reboot geholfen hat.
Wenn Du das dauerhaft nutzen willst würde ich übrigens auch eher dazu raten ein billigen USB Bluetooth Dongle an Deine CCU3 anzuschließen und den mit nem 50cm USB Verlängerungskabel etwas abzusetzen. Weiss nicht ob das Esotherik ist - aber ich hatte ein bisschen den Eindruck dass die Nutzung von Bluetooth/Wifi in einer CCU3 den Homematic Funk verschlechtern kann.

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

Re: BT lescan

Beitrag von onkel_joerg » 19.06.2019, 15:33

Danke für den Tip.
Müsste sowas noch herumzuliegen haben.

onkel_joerg
Beiträge: 23
Registriert: 23.10.2018, 13:12
Hat sich bedankt: 3 Mal

Re: BT lescan

Beitrag von onkel_joerg » 21.06.2019, 15:18

Natürlich habe ich keinen BT-Dongle herumliegen (jedenfalls keinen gefunden)
Ich habe mich jetzt mit 2 Exec-nodes beholfen, die ich hintereinander gesetzt hab, und die "hciconfig hci0 down" und "hciconfig hci0 up" senden.
Funktioniert soweit auch ganz gut.

Code: Alles auswählen

[
    {
        "id": "10593f2a.d81111",
        "type": "function",
        "z": "3c35534b.60f4ec",
        "name": "F_master_status ändern",
        "func": "flow.set(\"f_master_status\", msg.payload);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 790,
        "y": 2160,
        "wires": [
            []
        ]
    },
    {
        "id": "265ba11b.23724e",
        "type": "switch",
        "z": "3c35534b.60f4ec",
        "name": "G-Tag Filter",
        "property": "topic",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "7C:2F:80:AD:BC:81",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 350,
        "y": 2120,
        "wires": [
            [
                "dc98d474.a6a278",
                "3325ce03.673182",
                "6f7f6fd4.1c3f3"
            ]
        ]
    },
    {
        "id": "d28cf9a6.3747d8",
        "type": "lescan",
        "z": "3c35534b.60f4ec",
        "name": "Lescan",
        "cmd": "/usr/bin/hcitool",
        "device": "hci0",
        "passive": true,
        "continuous": true,
        "interval": 30,
        "scantime": 5,
        "timeout": 30,
        "x": 160,
        "y": 2000,
        "wires": [
            [
                "265ba11b.23724e",
                "74fefe13.f8d34"
            ]
        ]
    },
    {
        "id": "dc98d474.a6a278",
        "type": "ui_text",
        "z": "3c35534b.60f4ec",
        "group": "a2787fa.7e6198",
        "order": 3,
        "width": 0,
        "height": 0,
        "name": "G-Tag Text",
        "label": "G-Tag",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "x": 690,
        "y": 2120,
        "wires": []
    },
    {
        "id": "3325ce03.673182",
        "type": "mqtt out",
        "z": "3c35534b.60f4ec",
        "name": "gtag_le_mqtt",
        "topic": "/stat/system/presence/gtag_le/state",
        "qos": "",
        "retain": "true",
        "broker": "e0131b8a.964c28",
        "x": 550,
        "y": 2040,
        "wires": []
    },
    {
        "id": "6f7f6fd4.1c3f3",
        "type": "switch",
        "z": "3c35534b.60f4ec",
        "name": "Treshold Test",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 560,
        "y": 2180,
        "wires": [
            [
                "10593f2a.d81111"
            ],
            []
        ]
    },
    {
        "id": "dcc651ee.d7479",
        "type": "exec",
        "z": "3c35534b.60f4ec",
        "command": "hciconfig hci0 down",
        "addpay": false,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "",
        "x": 550,
        "y": 1780,
        "wires": [
            [],
            [],
            [
                "f778da72.ab3358"
            ]
        ]
    },
    {
        "id": "abbd24e8.21d3e8",
        "type": "exec",
        "z": "3c35534b.60f4ec",
        "command": "hciconfig hci0 up",
        "addpay": false,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "",
        "x": 690,
        "y": 1900,
        "wires": [
            [],
            [],
            [
                "d28cf9a6.3747d8"
            ]
        ]
    },
    {
        "id": "74fefe13.f8d34",
        "type": "switch",
        "z": "3c35534b.60f4ec",
        "name": "switch Fehler",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "\"Error stopping node: Close timed out\"",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "\"Invalid device: Network is down\"",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 350,
        "y": 2000,
        "wires": [
            [
                "dcc651ee.d7479"
            ],
            [
                "dcc651ee.d7479"
            ]
        ]
    },
    {
        "id": "f778da72.ab3358",
        "type": "delay",
        "z": "3c35534b.60f4ec",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 580,
        "y": 1840,
        "wires": [
            [
                "abbd24e8.21d3e8"
            ]
        ]
    },
    {
        "id": "a2787fa.7e6198",
        "type": "ui_group",
        "z": "",
        "name": "Bluetooth",
        "tab": "d12af3c7.b6b51",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": true
    },
    {
        "id": "e0131b8a.964c28",
        "type": "mqtt-broker",
        "z": "",
        "name": "Raspi",
        "broker": "192.168.178.218",
        "port": "1883",
        "clientid": "node-red",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "/stat/system/node-red/live",
        "birthQos": "0",
        "birthRetain": "true",
        "birthPayload": "online",
        "closeTopic": "/stat/system/node-red/lwt",
        "closeQos": "0",
        "closeRetain": "true",
        "closePayload": "go off",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    },
    {
        "id": "d12af3c7.b6b51",
        "type": "ui_tab",
        "z": "",
        "name": "Anwesenheit",
        "icon": "assignment_ind",
        "order": 17,
        "disabled": false,
        "hidden": false
    }
]
Ich habs bestimmt ganz stümperhaft gelöst, aber wenn jetzt vom lescan eine (bekannte) Fehlermeldung kommt, wird die exec-Kette getriggert.
Frage: kannst du mir einen Tip geben, wie ich den Treshold-Switch dazu bringe, erst nach 10 mal "false" die Message weiterzuleiten?
Wie gesagt, bin blutiger Anfänger

LG O.J.


Nachtrag: mein Konstrukt hatte wohl durch andere Umstände funktioniert, aber nicht durch die "Fehlerroutine"
Übrigens ist auch der externe USB Dongle (ich hatte doch noch einen :) ) von dem "Error stopping node: Close timed out" betroffen

Benutzeravatar
joni-blue
Beiträge: 1171
Registriert: 04.01.2012, 12:20
System: CCU
Wohnort: Hannover
Hat sich bedankt: 6 Mal
Danksagung erhalten: 1 Mal

Re: BT lescan

Beitrag von joni-blue » 17.11.2020, 10:43

hi, wie würde man den externen Bluetooth dongle ansprechen?
Reboot tut gut ! ! !

Antworten

Zurück zu „RedMatic“