fdegier / homebridge-jablotron-alarm

Homebridge plugin for connecting Jablotron JA-100 alarm systems to Homekit.
The Unlicense
26 stars 6 forks source link

Question about thermometers #90

Closed Barney241 closed 1 year ago

Barney241 commented 1 year ago

Hello i have successfully connected to jablotron and can now control devices, but i am stil trying to get thermometers values.

image

When i viewed the response of status.php request on jablonet i couldnt find any segment_id or segment_key. Is there any way how to add these thermometers to homebridge?

fdegier commented 1 year ago

Could you share your redacted config?

Barney241 commented 1 year ago

I tried different ways of adding the thermometer like this for example


    "bridge": {
        "name": "Homebridge 7E45",
        "username": "",
        "port": ,
        "pin": "",
        "advertiser": "bonjour-hap"
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Config",
            "port": 8581,
            "platform": "config"
        },
        {
            "name": "Jablotron",
            "services": [
                {
                    "id": ,
                    "name": "Home",
                    "username": "",
                    "password": "",
                    "pincode": "",
                    "autoRefresh": true,
                    "pollInterval": 60,
                    "refreshOnStateChange": true,
                    "debug": true,
                    "sections": [
                        {
                            "name": "Sekce 1",
                            "segment_id": "STATE_1",
                            "segment_key": "section_1",
                            "keyboard_key": "keyboard_2_3",
                            "armedMode": "Away",
                            "partiallyArmedMode": "Home"
                        }
                    ],
                    "switches": [
                        {
                            "name": "HL obývák",
                            "segment_id": "PGM_1",
                            "segment_key": "pgm_1"
                        },
                        {
                            "name": "HL Pája",
                            "segment_id": "PGM_2",
                            "segment_key": "pgm_2"
                        },
                        {
                            "name": "HL Janička",
                            "segment_id": "PGM_3",
                            "segment_key": "pgm_3"
                        },
                        {
                            "name": "Topení Janička",
                            "segment_id": "PGM_4",
                            "segment_key": "pgm_4"
                        },
                        {
                            "name": "Topení Pája",
                            "segment_id": "PGM_5",
                            "segment_key": "pgm_5"
                        },
                        {
                            "name": "Brána",
                            "segment_id": "PGM_6",
                            "segment_key": "pgm_6"
                        },
                        {
                            "name": "Ruční topení obývák",
                            "segment_id": "PGM_7",
                            "segment_key": "pgm_7"
                        },
                        {
                            "name": "Topíme (ind)",
                            "segment_id": "PGM_8",
                            "segment_key": "pgm_8"
                        },
                        {
                            "name": "EKO Scroll",
                            "segment_id": "PGM_9",
                            "segment_key": "pgm_9"
                        },
                        {
                            "name": "PLYN ovládání",
                            "segment_id": "PGM_10",
                            "segment_key": "pgm_10"
                        },
                        {
                            "name": "Oběh podlaha",
                            "segment_id": "PGM_11",
                            "segment_key": "pgm_11"
                        },
                        {
                            "name": "Topení obývák",
                            "segment_id": "PGM_12",
                            "segment_key": "pgm_12"
                        },
                        {
                            "name": "PLYN povolen",
                            "segment_id": "PGM_13",
                            "segment_key": "pgm_13"
                        },
                        {
                            "name": "Hlavní uzávět vody",
                            "segment_id": "PGM_14",
                            "segment_key": "pgm_14"
                        },
                        {
                            "name": "Ruční topení Pája",
                            "segment_id": "PGM_15",
                            "segment_key": "pgm_15"
                        },
                        {
                            "name": "Ruční topení Janička",
                            "segment_id": "PGM_16",
                            "segment_key": "pgm_16"
                        },
                        {
                            "name": "Zásuvka Z1",
                            "segment_id": "PGM_17",
                            "segment_key": "pgm_17"
                        },
                        {
                            "name": "Zásuvka Z2",
                            "segment_id": "PGM_18",
                            "segment_key": "pgm_18"
                        },
                        {
                            "name": "Zásuvka Z3",
                            "segment_id": "PGM_19",
                            "segment_key": "pgm_19"
                        }
                    ],
                    "thermometers": [
                        {
                            "name": "Termo Paja",
                            "segment_id": "THERMOMETER_9",
                            "segment_key": "thermometer_9",
                            "min_temperature": 10,
                            "max_temperature": 40
                        }
                    ]
                }
            ],
            "platform": "Jablotron"
        }
    ]
}```
Barney241 commented 1 year ago

I got the config from the docker util specified in docs. But that util didnt find any thermometers either

fdegier commented 1 year ago

Thanks. In your config it shows one thermometer:

                    "thermometers": [
                        {
                            "name": "Termo Paja",
                            "segment_id": "THERMOMETER_9",
                            "segment_key": "thermometer_9",
                            "min_temperature": 10,
                            "max_temperature": 40
                        }
                    ]

Did that get added from the config util?

Barney241 commented 1 year ago

no i tried to add this myself

fdegier commented 1 year ago

Can you see the thermostats in Jablonet when you login using the same account? 9 out of 10 times its an account issue. If you can see it in Jablonet (the app or website) then it can and should work in Homekit.

grmelacz commented 1 year ago

Hi there, I have the same problem (I came to Github to report a thermometer issue actually). Everything works great, I've been using the plugin for like a year now. Except for the thermometers.

Plugin config


    "name": "Jablotron",
    "services": [
        {
            "id": 0,
            "name": "*",
            "username": "*",
            "password": "*",
            "pincode": "*",
            "autoRefresh": true,
            "pollInterval": 60,
            "refreshOnStateChange": true,
            "debug": false,
            "sections": [
                {
                    "name": "Byt",
                    "segment_id": "STATE_1",
                    "segment_key": "section_1",
                    "keyboard_key": "keyboard_2_3",
                    "armedMode": "Away",
                    "partiallyArmedMode": "Home"
                }
            ],
            "thermometers": [
                {
                    "name": "Venku",
                    "segment_id": "HEAT_16",
                    "segment_key": "thermometer_16"
                }
            ]
        }
    ],
    "platform": "Jablotron"
}

The thermometer is shown both in the app and on the website.

stav.php on Jablonet

{
    "status": 200,
    "termostaty": [],
    "elektromery": [],
    "sekce": {
        "0": {
            "stav": 0,
            "nazev": "*",
            "stateName": "STATE_1",
            "time": "yesterday - 14:31",
            "active": 1
        },
        "1": {
            "stav": 1,
            "nazev": "*",
            "stateName": "STATE_2",
            "time": "20.02.2023 - 19:21",
            "active": 1
        },
        "2": {
            "stav": 0,
            "nazev": "*",
            "stateName": "STATE_3",
            "time": "1.01.2023 - 10:35",
            "active": 1
        }
    },
    "pgm": [
        {
            "nazev": "PG výstup 1",
            "stateName": "PGM_1",
            "stav": 3,
            "active": 1
        }
    ],
    "moduly": {
        "*": {
            "1": {
                "id": *,
                "stateName": "STATE_2",
                "control": 0,
                "value": null,
                "fce": "Arm",
                "ts": 1678012468,
                "controlsComponent": null,
                "stav": 1
            },
            "2": {
                "id": *,
                "stateName": "STATE_1",
                "control": 0,
                "value": null,
                "fce": "Arm",
                "ts": 1678012468,
                "controlsComponent": null,
                "stav": 0
            }
        }
    },
    "alarms": [],
    "troubles": [],
    "tampers": [],
    "service": 0,
    "sdc": [],
    "common": [],
    "teplomery": {
        "   ": {
            "stateName": "HEAT_16",
            "value": "4.0",
            "ts": 1668773781
        }
    },
    "pir": {
        "4": {
            "stateName": "*",
            "nazev": "*",
            "active": 1,
            "last_pic": -1,
            "type": "JA-120PC (90)"
        }
    },
    "tz": "Europe/Prague",
    "prava": 0,
    "permissions": {
        "PGM_1": 1,
        "STATE_1": 1,
        "STATE_2": 1,
        "STATE_3": 1
    },
    "timeStamp": 1678012468,
    "vypis": []
}
Screenshot 2023-03-05 at 11 32 56 Screenshot 2023-03-05 at 11 34 09

I've tried setting the segment_key and segment_id to different values (using thermometer, heat, 16, 016, ...), but I'm always getting 0 °C as the output. What is the correct value to use?

fdegier commented 1 year ago

I don't have a thermostat, I'll purchase a JA-151TH to get more insights in to how it works.

misncz commented 1 year ago

I do have 4 thermometers at home - config-helper.js returns:

   "thermometers": [
        {
            "name": "teplomer obyvak",
            "segment_id": "THERMOMETER_30",
            "segment_key": "thermometer_30",
            "min_temperature": -20,
            "max_temperature": 70
        },
        {
            "name": "teplomer pracovna",
            "segment_id": "THERMOMETER_31",
            "segment_key": "thermometer_31",
            "min_temperature": -20,
            "max_temperature": 70
        },
        {
            "name": "teplomer loznice",
            "segment_id": "THERMOMETER_32",
            "segment_key": "thermometer_32",
            "min_temperature": -20,
            "max_temperature": 70
        },
        {
            "name": "teplomer pokoj",
            "segment_id": "THERMOMETER_33",
            "segment_key": "thermometer_33",
            "min_temperature": -20,
            "max_temperature": 70
        }
    ]

So all you have to do is to copy those to your homebridge config.js keeping all the values the same. You can change name if you want so that in Homekit it appears under custom name. All others have to be copied as returned by config-helper.js. After that you should see the below in homebridge log:

[05/03/2023, 15:01:26] [Jablotron] About to update state for accessory [thermometer_31] : update = false; cachedState = 22.9; newState = 22.9

Homebridge config.js section for Jablotron then looks like:

        {
            "platform": "Jablotron",
            "name": "Jablotron",
            "services": [
                {
                    "id": xxxxxxx,
                    "name": "Home",
                    "username": "***",
                    "password": "***",
                    "pincode": "xxx",
                    "autoRefresh": true,
                    "pollInterval": 180,
                    "refreshOnStateChange": true,
                    "sections": [
                        {
                            "name": "House",
                            "segment_id": "STATE_1",
                            "segment_key": "section_1",
                            "keyboard_key": "keyboard_2_21822705",
                            "partiallyArmedMode": "Night"
                        },
                        {
                            "name": "Cellar",
                            "segment_id": "STATE_2",
                            "segment_key": "section_2",
                            "disarmedMode": "Home"
                        },
                        {
                            "name": "Terrace",
                            "segment_id": "STATE_3",
                            "segment_key": "section_3"
                        }
                    ],
                    "switches": [
                        {
                            "name": "Hooter",
                            "segment_id": "PGM_1",
                            "segment_key": "pgm_1"
                        }
                    ],
                    "outlets": [
                        {
                            "name": "Camera",
                            "segment_id": "PGM_2",
                            "segment_key": "pgm_2"
                        }
                    ],
                    "thermometers": [
                        {
                            "name": "Thermometer Living Room",
                            "segment_id": "THERMOMETER_30",
                            "segment_key": "thermometer_30",
                            "min_temperature": -20,
                            "max_temperature": 70
                        },
                        {
                            "name": "Thermometer Workroom",
                            "segment_id": "THERMOMETER_31",
                            "segment_key": "thermometer_31",
                            "min_temperature": -20,
                            "max_temperature": 70
                        },
                        {
                            "name": "Thermometer Bedroom",
                            "segment_id": "THERMOMETER_32",
                            "segment_key": "thermometer_32",
                            "min_temperature": -20,
                            "max_temperature": 70
                        },
                        {
                            "name": "Thermometer Kids Room",
                            "segment_id": "THERMOMETER_33",
                            "segment_key": "thermometer_33",
                            "min_temperature": -20,
                            "max_temperature": 70
                        }
                    ]
                }
            ]
        },

Homekit screenshot: Screenshot 2023-03-05 at 15 19 06

grmelacz commented 1 year ago

@misncz Thank you for the config-helper.js suggestion. I don't know why I haven't used it's output earlier as I've used it for the initial sections configuration. Anyway, I've ignored the HEAT and 016 information I got from the website and finally got it working. The correct config for my installation is:

    "thermometers": [
        {
            "name": "Venku",
            "segment_id": "THERMOMETER_16",
            "segment_key": "thermometer_16",
            "min_temperature": -20,
            "max_temperature": 70
        }
    ]
misncz commented 1 year ago

@grmelacz glad to hear you figured it out