openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.9k stars 3.59k forks source link

[shelly] Shelly Wall Display thermostat support #17714

Open mmatuska opened 1 week ago

mmatuska commented 1 week ago

The shelly wall display thermostat mode is not supported in OpenHAB.

curl -X POST --json '{"id":1,"method":"Shelly.ListMethods"}' http://A.B.C.D/rpc | jq

{
  "id": 1,
  "src": "ShellyWallDisplay-XXXXXXXXXXXX",
  "result": {
    "methods": [
      "BLE.GetConfig",
      "BLE.GetStatus",
      "BLE.SetConfig",
      "Button.GetConfig",
      "Button.GetStatus",
      "Button.SetConfig",
      "Button.Trigger",
      "Cloud.GetConfig",
      "Cloud.GetStatus",
      "Cloud.SetConfig",
      "DevicePower.GetStatus",
      "Humidity.GetConfig",
      "Humidity.GetStatus",
      "Humidity.SetConfig",
      "Illuminance.GetConfig",
      "Illuminance.GetStatus",
      "Illuminance.SetConfig",
      "Input.GetConfig",
      "Input.GetStatus",
      "Input.SetConfig",
      "Input.Trigger",
      "Media.Delete",
      "Media.GetConfig",
      "Media.GetStatus",
      "Media.List",
      "Media.ListAudioAlbums",
      "Media.ListAudioArtists",
      "Media.MediaPlayer.Next",
      "Media.MediaPlayer.Pause",
      "Media.MediaPlayer.Play",
      "Media.MediaPlayer.PlayAudioClip",
      "Media.MediaPlayer.PlayOrPause",
      "Media.MediaPlayer.Previous",
      "Media.MediaPlayer.Stop",
      "Media.PutMedia",
      "Media.Radio.ListFavourites",
      "Media.Radio.PlayFavourite",
      "Media.Radio.PlayNextFavourite",
      "Media.Radio.PlayPreviousFavourite",
      "Media.Radio.Stop",
      "Media.Reload",
      "Media.SetVolume",
      "Media.Sonos.ListFavourites",
      "Media.Sonos.ListHouseholds",
      "Mqtt.GetConfig",
      "Mqtt.GetStatus",
      "Mqtt.SetConfig",
      "Schedule.Create",
      "Schedule.Delete",
      "Schedule.DeleteAll",
      "Schedule.GetConfig",
      "Schedule.GetStatus",
      "Schedule.List",
      "Schedule.SetConfig",
      "Schedule.Update",
      "Script.GetConfig",
      "Script.GetStatus",
      "Script.List",
      "Script.SetConfig",
      "Shelly.CheckForUpdate",
      "Shelly.DetectLocation",
      "Shelly.FactoryReset",
      "Shelly.GetComponents",
      "Shelly.GetConfig",
      "Shelly.GetDeviceInfo",
      "Shelly.GetStatus",
      "Shelly.ListMethods",
      "Shelly.ListTimezones",
      "Shelly.PutUserCA",
      "Shelly.Reboot",
      "Shelly.ResetAuthCode",
      "Shelly.SetAuth",
      "Shelly.SetConfig",
      "Shelly.Update",
      "Switch.GetConfig",
      "Switch.GetStatus",
      "Switch.Set",
      "Switch.SetConfig",
      "Switch.Toggle",
      "Sys.GetConfig",
      "Sys.GetInternalTemperatures",
      "Sys.GetStatus",
      "Sys.ListDebugComponents",
      "Sys.RestartApplication",
      "Sys.SetConfig",
      "Sys.SetDebugConfig",
      "Temperature.GetConfig",
      "Temperature.GetStatus",
      "Temperature.SetConfig",
      "Thermostat.Create",
      "Thermostat.Delete",
      "Thermostat.GetConfig",
      "Thermostat.GetStatus",
      "Thermostat.Schedule.AddProfile",
      "Thermostat.Schedule.AddRule",
      "Thermostat.Schedule.ChangeRule",
      "Thermostat.Schedule.CreateProfile",
      "Thermostat.Schedule.CreateRule",
      "Thermostat.Schedule.DeleteAllRules",
      "Thermostat.Schedule.DeleteProfile",
      "Thermostat.Schedule.DeleteRule",
      "Thermostat.Schedule.ListProfiles",
      "Thermostat.Schedule.ListRules",
      "Thermostat.Schedule.RenameProfile",
      "Thermostat.Schedule.SetConfig",
      "Thermostat.Schedule.UpdateRule",
      "Thermostat.SetConfig",
      "Ui.GetConfig",
      "Ui.GetStatus",
      "Ui.ListAvailable",
      "Ui.SetConfig",
      "Ui.Tap",
      "Virtual.Add",
      "Virtual.Delete",
      "Virtual.List",
      "Virtual.ListSupported",
      "Webhook.Create",
      "Webhook.Delete",
      "Webhook.DeleteAll",
      "Webhook.List",
      "Webhook.ListSupported",
      "Webhook.Update",
      "WiFi.GetConfig",
      "WiFi.GetStatus",
      "WiFi.SavedNetworks.Delete",
      "WiFi.SavedNetworks.List",
      "WiFi.Scan",
      "WiFi.SetConfig",
      "Ws.GetConfig",
      "Ws.GetStatus",
      "Ws.SetConfig"
    ]
  }
}

Shelly.GetComponents delivers:

      {
        "key": "thermostat:0",
        "status": {
          "id": 0,
          "enable": true,
          "target_C": 23.5,
          "current_C": 22.8,
          "output": true,
          "schedules": {
            "enable": false
          }
        },
        "config": {
          "id": 0,
          "enable": true,
          "sensor": "shelly://shellywalldisplay-xxxxxxxxxxxx/c/temperature:0",
          "type": "heating",
          "actuator": "shelly://shellywalldisplay-xxxxxxxxxxxx/c/switch:0",
          "hysteresis": 0.5,
          "invert_output": false,
          "display_unit": "C",
          "target_C": 23.5,
          "name": null
        }
      }

curl -X POST --json '{"id":1,"method":"Thermostat.GetConfig","params":{"id":0,"config":{"target_C":23.5}}}' http://A.B.C.D/rpc | jq

{
  "id": 1,
  "src": "ShellyWallDisplay-XXXXXXXXXXXX",
  "result": {
    "id": 0,
    "enable": true,
    "sensor": "shelly://shellywalldisplay-xxxxxxxxxxxx/c/temperature:0",
    "type": "heating",
    "actuator": "shelly://shellywalldisplay-xxxxxxxxxxxx/c/switch:0",
    "hysteresis": 0.5,
    "invert_output": false,
    "display_unit": "C",
    "target_C": 23.5,
    "name": null
  }
}

curl -X POST --json '{"id":1,"method":"Thermostat.SetConfig","params":{"id":0,"config":{"target_C":23.5}}}' http://A.B.C.D/rpc | jq

{
  "id": 1,
  "src": "ShellyWallDisplay-xxxxxxxxxxxx",
  "result": {
    "restart_required": false
  }
}

Your Environment

OpenHAB 4.2.1 on FreeBSD 14.2

alaub81 commented 1 week ago

yes! that would be very very nice, to see that implemented!

BillGOH commented 2 days ago

Same here. Would be highly appreciated.