iobroker-community-adapters / ioBroker.shelly

Integrate your Shelly devices into ioBroker via MQTT or CoIoT
Other
154 stars 62 forks source link

[Bug]: ShellyWallDisplay - unable to set temperature (no state?) #986

Open MikeHellracer opened 1 month ago

MikeHellracer commented 1 month ago

I'm sure that

Shelly device

Wall Display

Shelly firmware version

20240521-112307/1.2.14-3386c044

Protocol

MQTT

The problem

Der Thermostat Modus ist an. Leider wird weder der SollWert der Temperatur angezeigt noch kann er verändert werden (DP ist read only). DP shelly.0.ShellyWallDisplay#000822D3C9F5#1.Relay0.temperatureC Das Debug Log des Adapter liefert keine Meldung. Aber das Log des Admin meldet DP ist "read-only" auch nach setzen von write=true ist kein setzen möglich.

iobroker.current.log (in debug mode!)

`

Read-only state "shelly.0.ShellyWallDisplay#000822D3C9F5#1.Relay0.temperatureC" has been written without ack-flag with value "23" --

`

Version of nodejs

18.20.2

Version of ioBroker js-controller

5.0.19

Version of adapter

7.0.0

github-actions[bot] commented 1 month ago

Thanks for reporting a new issue @MikeHellracer!

  1. Please make sure your topic is not covered in the documentation
  2. Please attach all necessary log files (in debug mode!), screenshots and other information to reproduce this issue
  3. Search for the issue topic in other/closed issues to avoid duplicates!

    Otherwise this issue will be closed.

klein0r commented 1 month ago

Leider wird weder der SollWert der Temperatur angezeigt noch kann er verändert werden (DP ist read only).

Das ist normalerweise die Temperatur des Relais / des Inneren des Gerätes. Das kann das Walldisplay aber nicht. Daher wird der Datenpunkt in den neuen Versionen wieder entfernt. Das hat absolut nichts mit einer Soll-Temperatur zu tun.

auch nach setzen von write=true ist kein setzen möglich.

Bitte nie (!) manuell an Objekten rumspielen, welche nicht selbst angelegt wurden, ...

MikeHellracer commented 1 month ago

Hi, das mit dem DP habe ich verstanden und war auch nur ein Test. Ausser dem genannten habe ich nur einen Temp Wert und das ist die Ist-Temperatur. Wo finde ich denn jetzt den DP für die Soll-Temperatur? Bzw. Was muss ich denn einstellen damit die Soll Temp des Thermostat auch als DP angezeigt wird. Wie gesagt auf dem Device ist er bereits aktiviert.

klein0r commented 1 month ago

Wo finde ich denn jetzt den DP für die Soll-Temperatur?

Gute Frage, das Problem ist, dass Shelly das Gerät nicht mit in die Dokumentation aufgenommen hat. Mir fehlt momentan die Zeit mich da tiefer einzuarbeiten. Von meiner Seite passiert hier also erstmal nichts.

Hi, das mit dem DP habe ich verstanden und war auch nur ein Test.

Wenn ein Datenpunkt nur lesbar ist, wird ein Adapter wohl keine subscription auf dem State haben um eine Ansteuerung zu verarbeiten. Also da wird auf magische Weise nichts passieren. Wenn man bei einem Wetter-Adapter die Außentemperatur schreibbar macht, kann ich damit das Wettern auch nicht regeln 😄

MikeHellracer commented 1 month ago

Wie gesagt bin ich davon ausgegangen das es sich hier um die Soll-Temperatur handelt. Es gibt immer mal wieder Adapter bei denen der Programmierer die DP read only anlegt obwohl sie die Werte auch zurückschreiben können. Wo finde ich die jetzige Shelly Dokumentation? Meinst du die API Doc hier https://shelly-api-docs.shelly.cloud/ Dann werde ich die Kommunikation mit Shelly übernehmen. Ich habe einen Fall aufgemacht und die Frage einfach mal an Shelly gestellt.

MikeHellracer commented 1 month ago

So, habe Kontakt mit dem Support. Die Doku ist aktuell noch nicht ganz fertig, aber sie würden mir ggf etwas schicken, wenn ich weiß was ich will??? Da kommst du jetzt ins Spiel ;) Was benötigst du genau für die Einbindung? Habe jetzt mal die Beschreibung für die Soll-Temperatur und Status des Thermostat beantragt.

klein0r commented 1 month ago

Was benötigst du genau für die Einbindung?

Alle RCP Topics und Payloads

MikeHellracer commented 1 month ago

Hi, anbei die Informationen die ich von Shelly bekommen habe... Folgende Befehle stehen hier zur Verfügung.

Thermostat.Create zum erstellen Thermostat.GetConfig?id=0. Konfiguration Thermostat 1 Auslesen. Sowie die möglichen Parameter. Thermostat.SetConfig?config={"id":0,"target_C":22.0} ändert z.b. die Zieltemperatur auf 22.0 Grad.

Ansonsten gibt es noch folgende Methoden: Thermostat.Create Thermostat.Delete Thermostat.GetConfig Thermostat.GetStatus Thermostat.SetConfig

Thermostat.Schedule.AddProfile Thermostat.Schedule.AddRule Thermostat.Schedule.ChangeRule Thermostat.Schedule.DeleteProfile Thermostat.Schedule.DeleteRule Thermostat.Schedule.ListProfiles Thermostat.Schedule.ListRules Thermostat.Schedule.RenameProfile Thermostat.Schedule.SetConfig Ich hoffe das reicht um die Thermostat Funktion anzünden. Sollte noch etwas fehlen SG Bescheid. Danke

klein0r commented 1 month ago

Sollte noch etwas fehlen SG Bescheid.

Zeit 😭 Könnte also dauern bis ich mich damit beschäftigen kann.

MikeHellracer commented 1 month ago

Schade ich hatte gehofft das würde mit relativ wenig Aufwand verbunden sein. Ich könnte mich anbieten und die Tests übernehmen.

MikeHellracer commented 1 month ago

Hi, noch eine Frage.... Ich bekomme bei dem WallDisplay in der App gesagt das Mqtt nicht connected ist, obwohl ich alles genauso gemacht habe wie bei allen anderen Shelly's und die DP auch angelegt sind. Auch die Bezeichnung habe ich bei groß/klein ShellWallDisplay-XXXXXX gelassen. Was muss ich machen, damit die WallDisplay connected anzeigen?