edterbak / NodeRed_Heishamon_control

a Node Red flow to interact with Heishamon (a panasonic heatpump through an ESP board)
37 stars 7 forks source link

[ENHANCEMENT]: Anti-Theft request #130

Closed WP-Rue closed 12 months ago

WP-Rue commented 1 year ago

Is their a possibility to generate some kind of watchdog to pevent theft? Some kind of signal in node-red to switch lamps, horns or send emails would be good. In Germany are reports about stealing of heatpumps... ..and it could be easy with node-red to check the connection to the panasonic heatpump...

Greetings Rue (actual first heating hours with 23.09)

edterbak commented 1 year ago

Hi Rue,

I whipped up something for you to use for this. Import the code in the post below.

Instruction:

The heishamon sends a signal 'Online' every 5/10 seconds. Or 'Offline' if the pump is offline. The 'Offline' command is used to start a timer. The timer is reset again if a 'Online' message is coming in again.

The timer is currently set to 5 minutes.

After 5 minutes, the output of the node is string text 'ALARM'.

You can use this as trigger elsewhere in node red. Hopefully you will never actually have needed this.

Regards

edterbak commented 1 year ago
[
    {
        "id": "88cceb66fa1ec209",
        "type": "mqtt in",
        "z": "d5fea67661261002",
        "name": "",
        "topic": "panasonic_heat_pump/LWT",
        "qos": "0",
        "datatype": "auto-detect",
        "broker": "92e5b2c.00a8b5",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 380,
        "y": 2280,
        "wires": [
            [
                "7e9f65a9a9ed83c7"
            ]
        ]
    },
    {
        "id": "7e9f65a9a9ed83c7",
        "type": "rbe",
        "z": "d5fea67661261002",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "septopics": true,
        "property": "payload",
        "topi": "topic",
        "x": 630,
        "y": 2280,
        "wires": [
            [
                "b3dd5f0139822fbe"
            ]
        ]
    },
    {
        "id": "5c29834b7c8ba553",
        "type": "trigger",
        "z": "d5fea67661261002",
        "name": "",
        "op1": "",
        "op2": "ALARM",
        "op1type": "nul",
        "op2type": "str",
        "duration": "5",
        "extend": true,
        "overrideDelay": false,
        "units": "min",
        "reset": "Online",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 1010,
        "y": 2280,
        "wires": [
            [
                "4aec05edc49a67e3",
                "c3a2a936b59c07b9"
            ]
        ]
    },
    {
        "id": "b3dd5f0139822fbe",
        "type": "switch",
        "z": "d5fea67661261002",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Online",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "Offline",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 810,
        "y": 2280,
        "wires": [
            [
                "5c29834b7c8ba553"
            ],
            [
                "5c29834b7c8ba553"
            ]
        ]
    },
    {
        "id": "4aec05edc49a67e3",
        "type": "debug",
        "z": "d5fea67661261002",
        "name": "debug 214",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1270,
        "y": 2240,
        "wires": []
    },
    {
        "id": "c3a2a936b59c07b9",
        "type": "link out",
        "z": "d5fea67661261002",
        "name": "ALARM",
        "mode": "link",
        "links": [],
        "x": 1215,
        "y": 2280,
        "wires": []
    },
    {
        "id": "4dcccdea9b1ebae0",
        "type": "comment",
        "z": "d5fea67661261002",
        "name": "Info inside",
        "info": "# Instruction:\n\nThe heishamon sends a signal 'Online' every 5/10 seconds. Or 'Offline' if the pump is offline.\nThe 'Offline' command is used to start a timer.\nThe timer is reset again if a 'Online' message is coming in again.\n\nThe timer is currently set to 5 minutes.\n\nAfter 5 minutes, the output of the node is string text 'ALARM'. \n\nYou can use this as trigger elsewhere in node red. ",
        "x": 1000,
        "y": 2340,
        "wires": []
    },
    {
        "id": "92e5b2c.00a8b5",
        "type": "mqtt-broker",
        "name": "MQTT (x.x.x.x)",
        "broker": "x.x.x.x",
        "port": "1883",
        "clientid": "Node_Red_Client",
        "autoConnect": true,
        "usetls": false,
        "compatmode": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closeRetain": "false",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
WP-Rue commented 1 year ago

Wonderful- I reduce time to 1 min and will give it a try.. At first Signal goes to simple LED on display in kitchen and email- to check, if there are false alarms. If ok, I plan to switch on lamps outside and maybe send the alarm signal to the Philipps hue system (red flashing).. But I think the alarm has to switch of during reboot Heishamon..!?

Yes - hopefully I never need this.

edterbak commented 1 year ago

I think 1 minute is a little optimistic :) But you just have to see if you end up with a disco or not ghehehe :) Adjust where needed ofcourse

edterbak commented 12 months ago

You can close the issue if the solution is okay

WP-Rue commented 12 months ago

Up to now no false alarm- with 1min! Thanks!