cuxd mit externem Fenstersensor

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

matze.lingen
Beiträge: 22
Registriert: 07.11.2012, 22:27
Hat sich bedankt: 2 Mal

cuxd mit externem Fenstersensor

Beitrag von matze.lingen » 20.02.2023, 14:23

Moin zusammen,
ich versuche gerade folgendes:
Fenstersensor (Zigbee)
via Zigbee2MQTT über Nodered an die CCU zu bekommen.
In Openhab habe ich alle informationen die ich brauche, nun möchte ich via CuxD einen Fenstersensor erstellen und diesen dann von extern auf geöffnet bzw. verschlossen stellen, damit meine Thermostate das als Fenster geöffnet bzw. Fenster geschlossen mitbekommen.
Hat jemand eine Idee wie ich das realisieren kann? Ich komme einfach nicht weiter.
Vielen dank schonmal.
MFG
Matze

Benutzeravatar
Baxxy
Beiträge: 10773
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2202 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von Baxxy » 20.02.2023, 14:27

Welche...
matze.lingen hat geschrieben:
20.02.2023, 14:23
Thermostate
?

Ein virtueller CUxD-Fenstersensor kann weder mit HM noch HmIP Thermostaten verknüpft werden.

Benutzeravatar
Henke
Beiträge: 1520
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von Henke » 20.02.2023, 14:29

Ich gehe davon aus, das die Daten vom Fenstersensor in NodeRed ankommen.
Setze damit direkt den WINDOW_STATE des Thermostaten. Bei einem HmIP-WTH-2 geht das und ich nutzte das zum Testen. Geht einfacher als immer das Fenster zu öffnen.

matze.lingen
Beiträge: 22
Registriert: 07.11.2012, 22:27
Hat sich bedankt: 2 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von matze.lingen » 20.02.2023, 14:54

Henke hat geschrieben:
20.02.2023, 14:29
Ich gehe davon aus, das die Daten vom Fenstersensor in NodeRed ankommen.
Setze damit direkt den WINDOW_STATE des Thermostaten. Bei einem HmIP-WTH-2 geht das und ich nutzte das zum Testen. Geht einfacher als immer das Fenster zu öffnen.
Die Idee finde ich gut, wie genau machst du das?
Meine Heizungsantriebe sind: HM-CC-RT-DN

Benutzeravatar
Henke
Beiträge: 1520
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von Henke » 20.02.2023, 14:57

Was hast du in NR installiert um die CCU zu steuern?
RedMatic?

Oder ist der CCU-Jack vorhanden?

matze.lingen
Beiträge: 22
Registriert: 07.11.2012, 22:27
Hat sich bedankt: 2 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von matze.lingen » 20.02.2023, 15:01

hab nodered mit auf meinem openhabian laufen.
CCU-Jack ist auch vorhanden

Benutzeravatar
Henke
Beiträge: 1520
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von Henke » 20.02.2023, 15:58

Teste das mal.
Nodes in NR durch Import einfügen.

Code: Alles auswählen

[
    {
        "id": "f046e473c8a37afd",
        "type": "change",
        "z": "19e64d5a8e38ed11",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "domain",
                "pt": "msg",
                "to": "device",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "device",
                "pt": "msg",
                "to": "anpassen - ",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "channelIndex",
                "pt": "msg",
                "to": "anpassen ",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "datapoint",
                "pt": "msg",
                "to": "WINDOW_STATE",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 610,
        "y": 2140,
        "wires": [
            [
                "e7b2ac45dd8ab4f7"
            ]
        ]
    },
    {
        "id": "a3b447b7b26f8519",
        "type": "inject",
        "z": "19e64d5a8e38ed11",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "true",
        "payloadType": "bool",
        "x": 210,
        "y": 2120,
        "wires": [
            [
                "f046e473c8a37afd"
            ]
        ]
    },
    {
        "id": "f54e9d81d97172d0",
        "type": "inject",
        "z": "19e64d5a8e38ed11",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "false",
        "payloadType": "bool",
        "x": 210,
        "y": 2180,
        "wires": [
            [
                "f046e473c8a37afd"
            ]
        ]
    },
    {
        "id": "b1e97979abea7590",
        "type": "comment",
        "z": "19e64d5a8e38ed11",
        "name": "anpassen ->",
        "info": "",
        "x": 410,
        "y": 2140,
        "wires": []
    },
    {
        "id": "c67e2908dfcb9ac9",
        "type": "group",
        "z": "19e64d5a8e38ed11",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "3221a7f730f1a77b",
            "50da89b4f7c84b26",
            "784e21c2762816fb",
            "e7b2ac45dd8ab4f7",
            "4042644c43ab0bd2"
        ],
        "x": 314,
        "y": 2199,
        "w": 472,
        "h": 202
    },
    {
        "id": "3221a7f730f1a77b",
        "type": "mqtt out",
        "z": "19e64d5a8e38ed11",
        "g": "c67e2908dfcb9ac9",
        "name": "MQTT Out",
        "topic": "",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "89a4619c473e113f",
        "x": 630,
        "y": 2360,
        "wires": []
    },
    {
        "id": "50da89b4f7c84b26",
        "type": "delay",
        "z": "19e64d5a8e38ed11",
        "g": "c67e2908dfcb9ac9",
        "name": "",
        "pauseType": "rate",
        "timeout": "2",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 660,
        "y": 2300,
        "wires": [
            [
                "3221a7f730f1a77b"
            ]
        ]
    },
    {
        "id": "784e21c2762816fb",
        "type": "comment",
        "z": "19e64d5a8e38ed11",
        "g": "c67e2908dfcb9ac9",
        "name": "MQTT OUT",
        "info": "",
        "x": 410,
        "y": 2240,
        "wires": []
    },
    {
        "id": "e7b2ac45dd8ab4f7",
        "type": "unsafe-function",
        "z": "19e64d5a8e38ed11",
        "g": "c67e2908dfcb9ac9",
        "name": "msg -> MQTT Out",
        "func": "let mqtt = {};\nmqtt.retain = true;\nmqtt.qos = 1;\nif ((typeof msg.ts != 'number') || (!msg.ts))\n    msg.ts = new Date().getTime();\n\nif ((msg.datapointType == \"BOOL\") || (msg.datapointType == \"ACTION\")) {\n    if (typeof msg.payload != 'boolean') {\n        let fix = false;\n        if (msg.payload == 0) {\n            msg.payload = false;\n            fix = true;\n        }\n        if (msg.payload == 1) {\n            msg.payload = true;\n            fix = true;\n        }\n        if (!fix) {\n            node.warn(\"datapointType == 'BOOL' Wert falsch \" + msg.channel + \" \" + msg.payload);\n        }\n    }\n}\n\nswitch (msg.domain) {\n    case \"sysvar\":\n        mqtt.topic = \"sysvar/set/\" + msg.sysvar;\n        break;\n\n    default:\n        // SET_POINT_MODE (lesend) -> CONTROL_MODE (schreibend)\n        if (msg.datapoint == \"SET_POINT_MODE\")\n            msg.datapoint = \"CONTROL_MODE\";\n        mqtt.topic = msg.domain + \"/set/\" + msg.device + \"/\" + msg.channelIndex + \"/\" + msg.datapoint;\n        break;\n}\n\nmqtt.payload = { \"v\": msg.payload, s: 0, ts: msg.ts };\n\nlet name = \"count\";\nlet cc = context.get(name) || 0;\ncc++;\ncontext.set(name, cc);\n\nnode.status({ fill: \"green\", shape: \"dot\", text: \"(\" + cc + \") >\" + msg.payload + \"< \" + mqtt.topic });\nif (msg.domain == \"device\") {\n    msg = {};\n    return [null, mqtt];\n}\nmsg = {};\nreturn mqtt;",
        "outputs": 2,
        "noerr": 0,
        "x": 430,
        "y": 2300,
        "wires": [
            [
                "3221a7f730f1a77b"
            ],
            [
                "50da89b4f7c84b26"
            ]
        ]
    },
    {
        "id": "4042644c43ab0bd2",
        "type": "comment",
        "z": "19e64d5a8e38ed11",
        "g": "c67e2908dfcb9ac9",
        "name": "anpassen ->",
        "info": "",
        "x": 450,
        "y": 2360,
        "wires": []
    },
    {
        "id": "89a4619c473e113f",
        "type": "mqtt-broker",
        "name": "",
        "broker": "192.168.0.55",
        "port": "1883",
        "clientid": "NredWin",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]

matze.lingen
Beiträge: 22
Registriert: 07.11.2012, 22:27
Hat sich bedankt: 2 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von matze.lingen » 20.02.2023, 19:35

klappt bei mir leider mit keinem der Heizungsstuerungen

Benutzeravatar
Henke
Beiträge: 1520
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von Henke » 20.02.2023, 19:40

Angepasst hast du es? MQTT auf den Jack und den richtigen device/channelIndex?
Fehlermeldung?

matze.lingen
Beiträge: 22
Registriert: 07.11.2012, 22:27
Hat sich bedankt: 2 Mal

Re: cuxd mit externem Fenstersensor

Beitrag von matze.lingen » 20.02.2023, 19:42

ja hab ich angepasst es wird auch alles sauber via mqtt gepuscht aber der fenster status wird leider nicht angepasst.
Bildschirmfoto vom 2023-02-20 19-41-50.png
Bildschirmfoto vom 2023-02-20 19-41-50.png (17.24 KiB) 274 mal betrachtet
ist das noch wichtig?

Code: Alles auswählen

linkTargetRoles:	WCS_TIPTRONIC_SENSOR WINDOW_SWITCH_RECEIVER WINDOW_SWITCH_RECEIVER_V2

Antworten

Zurück zu „CUxD“