phenotypic / homebridge-web-thermostat

Homebridge plugin for a web-based thermostat
MIT License
18 stars 15 forks source link

ESOCKETTIMEDOUT and illegal Value #21

Closed Tapsel99 closed 3 years ago

Tapsel99 commented 3 years ago

[homebridge-web-thermostat] This plugin generated a warning from the characteristic 'Target Temperature': characteristic was supplied illegal value: number 10 exceeded minimum of 17. See https://git.io/JtMGR for more info.

[Thermostat] Error setting targetTemperature: ESOCKETTIMEDOUT

phenotypic commented 3 years ago

Hi there, to better understand your problem, please provide your config.json for the accessory and provide an example of your API response for /status.

Regarding the illegal value error, Target Temperature supports values as low as 10 as you can see here, although by default the plugin sets a range from 15 to 30 Celsius. As such I'm not sure how you've managed to trigger that error and will need more information first.

As for the ESOCKETTIMEDOUT issue you mention, this is not an issue caused by the plugin. The problem will most likely be a connection issue between the two devices. You should check the stability of the connection by running ping on the API when you are experiencing problems.

Tapsel99 commented 3 years ago

Hi, thanks for your reply, unfortunately im a complete beginner in this topic so im not sure how to execute the /status or ping command or in which directory. My thermostat normally is on 17 Degrees and in this state it is turned off and it begins heating only above 30 Degrees or so, this is why I set the minimum Value to 17 Degrees. I don't know if its fixed but I restarted and know there isn't any illegal Value error but the timeout error is still there. It is really random, so sometimes it gets the temperature value and I can set the temperature and than it will say ESOCKETTIMEDOUT for 30min or so and the device isn't responding.

{ "bridge": { "name": "Homebridge C83C", "username": "**", "port": 51721, "pin": "*" }, "accessories": [ { "name": "PC-Windows", "ip": "192.168.0.", "pingInterval": 2, "pingsToChange": 5, "pingTimeout": 2, "pingCommandTimeout": 0, "mac": "****", "broadcastAddress": "255.255.255.255", "startCommandTimeout": 0, "wakeGraceTime": 45, "wakeCommandTimeout": 0, "shutdownCommand": "net rpc shutdown **** "shutdownGraceTime": 15, "shutdownCommandTimeout": 0, "log": true, "logPinger": false, "debugLog": false, "returnEarly": false, "accessory": "NetworkDevice" }, { "name": "Temperature & Humidity", "address": "A4:C1:38:C3:65:A2", "temperatureName": "Temperature", "humidityName": "Humidity", "fakeGatoEnabled": true, "timeout": 150, "forceDiscovering": true, "forceDiscoveringDelay": 2500, "disableBatteryLevel": false, "lowBattery": 10, "temperatureOffset": 0, "humidityOffset": 0, "bindKey": "6abcef5a3ba7b51f5fc27f14bcb387d6", "accessory": "Hygrotermograph" }, { "accessory": "Thermostat", "name": "Thermostat", "apiroute": "http://192.168.0.174/eq3/00-1A-22-13-B3-69", "maxTemp": 35, "minTemp": 17, "listener": true, "timeout": 20000, "model": "eQ3 Bluetooth", "serial": "Homebridge", "manufacturer": "eQ3", "firmware": "0.1" } ], "platforms": [ { "name": "Config", "port": 8581, "platform": "config" }, { "app_list": false, "devices": [ { "name": "Samsung TV", "ip": "192.168.0.72", "mac": "64:1c:b0:a2:04:e6", "inputs": [ { "type": "app", "name": "Netflix", "value": "11101200001" }, { "type": "app", "name": "Youtube", "value": "111299001912" }, { "type": "app", "name": "Waipu", "value": "3201804016033" }, { "type": "app" }, { "type": "app" }, { "type": "app" }, { "type": "app" } ], "switches": [ { "name": "Sleep Timer 60min", "sleep": 60 }, { "name": "Netflix", "power": true, "app": "11101200001", "sleep": 180 } ], "keys": { "ARROW_UP": "KEY_UP", "ARROW_DOWN": "KEY_DOWN", "ARROW_LEFT": "KEY_LEFT", "ARROW_RIGHT": "KEY_RIGHT", "SELECT": "KEY_ENTER", "BACK": "KEY_RETURN", "PLAY_PAUSE": "KEY_PLAY_BACK", "INFORMATION": "KEY_INFO" } } ], "platform": "SamsungTizen" }, { "debug": false, "interval": 10, "threshold": 15, "anyoneSensor": true, "devices": [ { "name": "*-Handy", "mac": "74:eb:80:be:28:20", "ip": "192.168.0.247", "hostname": "Galaxy-A8-2018 ", "threshold": 1 }, { "name": "*-iPhone-XS-MAX256GB", "mac": "86:6E:EC:2C:AA:6E", "ip": "192.168.0.168", "hostname": "iPhone-XS-MAX", "threshold": 1 }, { "name": "iPhone-von-", "mac": "46:56:ae:52:0a:e0", "ip": "192.168.0.144", "threshold": 1 } ], "platform": "NetworkPresence" } ], "disabledPlugins": [ "homebridge-eq3ble", "homebridge-samsung-tizen" ] }

phenotypic commented 3 years ago

I don't think that this is the right plugin for your use-case. The plugin is not designed to work with the eQ3 device listed in your config.json and I doubt it functions as expected for API Interfacing. Indeed, http://192.168.0.174/eq3/00-1A-22-13-B3-69/status would have to return a correctly formatted JSON with all the expected fields for the plugin, and the device would have to able to respond correctly to the requests.

Please look elsewhere for plugins designed to work with your device specifically.

Tapsel99 commented 3 years ago

Thank you, do you have any suggestion or idea how to implement it? Under the API Status it responds with:

{ "targetHeatingCoolingState": 0, "targetTemperature": 5.0, "currentHeatingCoolingState": 0, "currentTemperature": 5.0 }

phenotypic commented 3 years ago

Since this issue does not relate to the plugin itself, I would recommend either adapting the API to make it function correctly with the API requirements or search elsewhere for plugins designed to work with your specific device.

Doing a simple Google search suggests homebridge-eq3ble might be a good place to start.

Tapsel99 commented 3 years ago

Yes I have this plugin, but it doesn't work. Anyway, thanks first for the help.