Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tuya Thermostate falsche Wertebereiche #595

Open
matze5000 opened this issue Sep 24, 2024 · 36 comments
Open

Tuya Thermostate falsche Wertebereiche #595

matze5000 opened this issue Sep 24, 2024 · 36 comments
Labels
help wanted Extra attention is needed question Further information is requested

Comments

@matze5000
Copy link

Bei der Verwendung der Tuya Thermostate werden plötzlich falsche Wertebereiche für die Set-Temperatur vorgegeben.

State value to set for "tuya.0.42310052e8db84c95b5d.2" has value "42" less than min "50"

In der Konfiguration steht plötzlich:

{
"type": "state",
"common": {
"type": "number",
"unit": "℃",
"min": 50,
"max": 350,
"scale": 1,
"read": true,
"write": true,
"name": "TempSet",
"role": "level"
},

Ein manuelles Anpassen der Konfiguration ist zwar möglich aber leider nicht von Dauer.

Versions:

  • Adapter version: 3.16.0
  • JS-Controller version: 6.0.11
  • Node version: v20.17.0
  • Operating system: docker (official image - v10.0.0)
@Apollon77
Copy link
Owner

"plötzlich" bedeutet? Update von welche auf welche Version oder was genau ist gemeint? Bitte das Device objekt also JSON posten - dann kommen die Werte wohl so von Tuya aus dem Schema.

@matze5000
Copy link
Author

Da das Update des tuya-Adapters schon länger her ist, muss es eine Änderung seitens Tuya gegeben haben. Über Jahre hatte ich keine Probleme.

Das ist das JSON des Devices. Das JSON des Werts habe ich in der Meldung gepostet.

{
"type": "device",
"common": {
"name": "Thermostat Ein",
"read": true,
"role": "thermostat"
},
"native": {
"virtual": false,
"dpName": {},
"lon": "8.8022",
"uuid": "1070736424a160383dae",
"mac": "24a160383dae",
"iconUrl": "https://images.tuyaeu.com/smart/icon/15264583415nnlzwfs1qd2wqz6i937op3nmi_0.png",
"runtimeEnv": "prod",
"lat": "50.5193",
"devId": "1070736424a160383dae",
"devKey": "",
"dpMaxTime": 1668346753323,
"productId": "IAYz2WK1th0cMLmL",
"activeTime": 1639225003,
"categoryCode": "wf_wk",
"moduleMap": {
"wifi": {
"upgradeStatus": 0,
"cdv": "1.0.0",
"bv": "5.57",
"pv": "2.2",
"verSw": "3.1.4",
"isOnline": true,
"id": 49204639,
"cadv": ""
},
"mcu": {
"upgradeStatus": 0,
"cdv": "",
"verSw": "1.0.0",
"isOnline": true,
"id": 49204640,
"cadv": ""
}
},
"devAttribute": 3,
"name": "Thermostat Ein",
"timezoneId": "Europe/Berlin",
"category": "wk",
"localKey": "2d5e91d9fa0471c8",
"schema": [
{
"mode": "rw",
"code": "Power",
"name": "开关",
"property": {
"type": "bool"
},
"iconname": "icon-dp_power",
"id": 1,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
{
"mode": "rw",
"code": "TempSet",
"name": "目标温度",
"property": {
"unit": "℃",
"min": 10,
"max": 80,
"scale": 0,
"step": 5,
"type": "value"
},
"iconname": "icon-dp_temp",
"id": 2,
"type": "obj",
"desc": "",
"defaultValue": "10",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
{
"mode": "ro",
"code": "TempCurrent",
"name": "当前温度",
"property": {
"unit": "℃",
"min": 0,
"max": 100,
"scale": 0,
"step": 5,
"type": "value"
},
"iconname": "icon-dp_sun",
"id": 3,
"type": "obj",
"desc": "",
"defaultValue": "0",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
{
"mode": "rw",
"code": "Mode",
"name": "模式",
"property": {
"range": [
"0",
"1"
],
"type": "enum"
},
"iconname": "icon-dp_mode",
"id": 4,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "enum"
},
{
"mode": "rw",
"code": "ECO",
"name": "ECO模式",
"property": {
"type": "bool"
},
"iconname": "icon-eco",
"id": 5,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
{
"mode": "rw",
"code": "ChildLock",
"name": "童锁",
"property": {
"type": "bool"
},
"iconname": "icon-dp_lock",
"id": 6,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
{
"mode": "rw",
"code": "program",
"name": "周程序",
"id": 101,
"type": "raw",
"desc": "对应星期一星期五�星期六�星期日,�天六段,�设置��时的温度范围。温度范围为5-35摄�度。",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "raw",
"property": {
"type": "raw",
"maxlen": 128
}
},
{
"mode": "ro",
"code": "floorTemp",
"name": "地板温度",
"property": {
"unit": "℃",
"min": 0,
"max": 198,
"scale": 0,
"step": 5,
"type": "value"
},
"id": 102,
"type": "obj",
"desc": "",
"defaultValue": "0",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
{
"mode": "rw",
"code": "tempSwitch",
"name": "温度切换",
"property": {
"range": [
"0",
"1"
],
"type": "enum"
},
"id": 103,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "enum"
},
{
"mode": "ro",
"code": "floortempFunction",
"name": "地暖温度功能",
"property": {
"type": "bool"
},
"id": 104,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
}
],
"productKey": "IAYz2WK1th0cMLmL",
"schemaExt": [
{
"complexType": "",
"id": 3,
"inputStyle": "plain",
"inputType": "plain"
}
],
"version": "3.3",
"ip": "192.168.5.63",
"gwId": "1070736424a160383dae",
"active": 2,
"ability": 0,
"mode": 0,
"encrypt": true,
"ownerId": "5850934",
"accessType": 0,
"otaInfo": {
"supportAuto": true,
"otaUpgradeModes": [
0
],
"otaModuleMap": {
"wifi": {
"upgradeStatus": 0,
"cdv": "1.0.0",
"bv": "5.57",
"verSw": "3.1.4"
},
"mcu": {
"upgradeStatus": 0,
"cdv": "",
"verSw": "1.0.0"
}
}
},
"communication": {
"communicationNode": "1070736424a160383dae",
"communicationModes": [
{
"pv": "",
"type": 0
},
{
"pv": "2.2",
"type": 1
}
],
"connectionStatus": 1,
"mqttTopicAttr": 1,
"dataModel": 1
},
"gatewayVerCAD": "",
"cloudOnline": true,
"baseAttribute": 1024,
"dataPointInfo": {
"dpMaxTime": 1727039427757,
"dpName": {},
"dps": {
"1": true,
"2": 43,
"3": 46,
"4": 1,
"5": false,
"6": false,
"101": "AAYoAAgeHgseHg0eABEsABYeAAYoAAgoHgsoHg0oABEoABYeAAYoAAgoHgsoHg0oABEoABYe",
"102": 0,
"103": 0,
"104": true
},
"dpsTime": {
"1": 1726425721284,
"2": 1724956085302,
"3": 1727039427757,
"4": 1724956085302,
"5": 1724956085302,
"6": 1724956085302,
"101": 1703859168935,
"102": 1724956085302,
"103": 1639225003890,
"104": 1724956085302
}
},
"deviceTopo": {},
"groudId": 5850934,
"dpCodes": {
"Power": {
"mode": "rw",
"code": "Power",
"name": "开关",
"property": {
"type": "bool"
},
"iconname": "icon-dp_power",
"id": 1,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
"TempSet": {
"mode": "rw",
"code": "TempSet",
"name": "目标温度",
"property": {
"unit": "℃",
"min": 10,
"max": 70,
"scale": 0,
"step": 5,
"type": "value"
},
"iconname": "icon-dp_temp",
"id": 2,
"type": "obj",
"desc": "",
"defaultValue": "10",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
"TempCurrent": {
"mode": "ro",
"code": "TempCurrent",
"name": "当前温度",
"property": {
"unit": "℃",
"min": 0,
"max": 100,
"scale": 0,
"step": 5,
"type": "value"
},
"iconname": "icon-dp_sun",
"id": 3,
"type": "obj",
"desc": "",
"defaultValue": "0",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
"Mode": {
"mode": "rw",
"code": "Mode",
"name": "模式",
"property": {
"range": [
"0",
"1"
],
"type": "enum"
},
"iconname": "icon-dp_mode",
"id": 4,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "enum"
},
"ECO": {
"mode": "rw",
"code": "ECO",
"name": "ECO模式",
"property": {
"type": "bool"
},
"iconname": "icon-eco",
"id": 5,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
"ChildLock": {
"mode": "rw",
"code": "ChildLock",
"name": "童锁",
"property": {
"type": "bool"
},
"iconname": "icon-dp_lock",
"id": 6,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
},
"program": {
"mode": "rw",
"code": "program",
"name": "周程序",
"id": 101,
"type": "raw",
"desc": "对应星期一
星期五�星期六�星期日,�天六段,�设置��时的温度范围。温度范围为5-35摄�度。",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "raw",
"property": {
"type": "raw",
"maxlen": 128
}
},
"floorTemp": {
"mode": "ro",
"code": "floorTemp",
"name": "地板温度",
"property": {
"unit": "℃",
"min": 0,
"max": 198,
"scale": 0,
"step": 5,
"type": "value"
},
"id": 102,
"type": "obj",
"desc": "",
"defaultValue": "0",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "value"
},
"tempSwitch": {
"mode": "rw",
"code": "tempSwitch",
"name": "温度切换",
"property": {
"range": [
"0",
"1"
],
"type": "enum"
},
"id": 103,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "enum"
},
"floortempFunction": {
"mode": "ro",
"code": "floortempFunction",
"name": "地暖温度功能",
"property": {
"type": "bool"
},
"id": 104,
"type": "obj",
"desc": "",
"defaultValue": "",
"canTrigger": true,
"executable": true,
"defaultRecommend": false,
"editPermission": false,
"subType": "bool"
}
},
"virtualExperience": false,
"meta": {}
},
"_id": "tuya.0.1070736424a160383dae",
"acl": {
"object": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1727183363349
}

Ich hatte auch "auf einmal" das Problem aus dem Issue #596. Ich habe aber meine Werte über eine Formel im Alias-Objekt angepasst.

@morskipas
Copy link

Ich habe das selbe Problem, bei mir ist es aufgetreten, nachdem ich den Adapter "Admin" auf die Version 7 oder 7.1 aktualisiert habe.

@DieterB61
Copy link

DieterB61 commented Oct 3, 2024

Auch bei mir das gleiche Problem mit der falschen
"min": 50,
Definition bei Tuya Thermostaten.

Die Daten der JSON Definition werden wohl vom Thermostat ausgelesen. Ich bekomme derzeit von 5 Thermostaten jede Minute eine Fehlermeldung.
tuya.0 | 2024-10-03 09:10:28.756 | warn | State value to set for "tuya.0.365442358cce4ecbe157.2" has value "36" less than min "50"
Es stört das System wohl nicht, ist aber sehr unschön.

  • Kann der Adapter-Programmierer nun etwas tun, um das Auslesen der falschen Werte zu unterdrücken/zu überschreiben?
  • Kann ich in ioBroker etwas tun, um dem permanent entgegen zu wirken?

@DieterB61
Copy link

Ich will das noch einmal hochholen. Ich habe nach wie vor alle Minuten von all meinen Tuya Thermostaten folgende Warnung tuya.0 | 2024-10-03 09:10:28.756 | warn | State value to set for "tuya.0.365442358cce4ecbe157.2" has value "36" less than min "50"
Es geht hier nicht um die falsche Temperaturanzeige, die ja leicht zu beheben ist, sondern dass der min Wert in der Definition von *.2 falsch ist:
{ "type": "state", "common": { "type": "number", "unit": "℃", "min": 50, "max": 350, "read": true, "write": true, "name": "TempSet", "role": "level" }, ...
Leider weiß ich nicht ob und wie ich diese JSON Dateien dauerhaft ändern kann (falls das überhaupt möglich ist?
tuya

@matze5000
Copy link
Author

Ich vermute, dass der Adapter die falschen Werte nicht korrigieren kann, weil sie vom Gerät selbst kommen. Es wäre aber gut, wenn das der Autor mal bestätigen könnte.
Es bleibt nur eine Möglichkeit zu finden das JSON des Geräts möglichst dauerhaft zu korrigieren. Kann jemand sagen, ob und wie dies möglich ist?

Vielen Dank im Voraus!

@Apollon77
Copy link
Owner

Ok, bitte mal ein Debug log zeigen vom Adapterstart und dem versuch was zu setzen und per Tuzya App setzen. Dazu sagen wann was gemacht wurde, Danke

@Apollon77 Apollon77 added help wanted Extra attention is needed question Further information is requested labels Jan 3, 2025
@DieterB61
Copy link

DieterB61 commented Jan 3, 2025

bitte mal ein Debug log zeigen vom Adapterstart

Ich habe das jetzt versucht, habe aber Probleme beim Erstellen des logs.

  1. Ich habe den Adapter gestoppt und
  2. das Logging auf debug gestellt.
  3. Im Protokoll Fenster habe ich dann nur die Anzeige des tuya Adapter aktiviert und
  4. den Adapter gestartet.
  5. Nachdem die ersten Warnings gekommen sind habe ich dann pausiert und
  6. auf Log downloaden (current) geklickt.
  7. Der log erscheint dann in einem neuen Browser Fenser, aber sehr kryptisch.
  8. Den Inhalt des Fenster kopiert und in notepad++ eingefügt.
  9. Das ist dann aber nicht vollständig,

Ich poste es jetzt trotzdem einmal (tuya.zip).

und dem versuch was zu setzen und per Tuzya App setzen.

Noch einmal zum Problem selbst. Die Warnings treten ja nicht bei der Bedienung des Adapter auf sondern "Routinemäßig". Es werden etwa im Minutenabstand alle Settings von den Thermostaten abgefragt und dabei festgestellt, dass der gesetzte Sollwert geringer als der Minimale Sollwert ist. Dabei ist der Wert des gesetzten Sollwerts doppelt so hoch (anderes Problem), im folgenden Beispiel 18°C (x2 = 36) und der minimale Wert 50 (der irgendwo im JSON definiert ist, aber natürlich so falsch ist -> definition_TempSet.txt)
warn State value to set for "tuya.0.365442358cce4eccb02a.2" has value "36" less than min "50"

definition_TempSet.txt
tuya.zip

@Apollon77
Copy link
Owner

SOrry aber das log ist inicht sinnvoll lesbar ... auch den Fehler sehe ich daruin nicht. ... bräuchte bitte ein Log mit Start und dann auch einem solchen Fehler.

Am besten das log einfach vom host direkt kopieren. Per SSH einloggen und dann unter /opt/iobroker/log/ das aktuelle Logfile nehmen ... aber ich schaue mal ins Log rein

@DieterB61
Copy link

OK, ich habe das jetzt so gemacht. Allerdings bringt das log-file mein notepad++ immer zum Absturz (was sonst eigentlich nie passiert?). Vielleicht hast du aber andere Möglichkeiten :-)

Wie bereits mehrfach gesagt, die "Fehler" sind immer die Gleichen und nur warnings wie oben beschrieben.

iobroker.current.zip

@DieterB61
Copy link

Vielleicht noch ergänzend: bei warn tuya.*.2 bezieht sich .2 auf das oben gepostete definition_TempSet.txt

@matze5000
Copy link
Author

matze5000 commented Jan 4, 2025

ioBroker-tuya.txt

Anbei mein Log. Ich hoffe, dass damit etwas anzufangen ist.

Ich habe in der Tuya-App ein Thermostat aus- und wieder eingeschaltet.

@Apollon77
Copy link
Owner

Ok ... Da war schon ein Special handling für diese Daten drin, das hab ich jetzt mal angepasst .. Bitte versuch mal neu GitHub.

@Bender275
Copy link

Danke für das Update!
Ich habe jetzt nur noch die Info, dass die dopplete Temperatur, die der Adapter liefert, über den Max-Werten ist.
State value to set for "tuya.0.bf04fc5760d1f0e4f7dx9k.2" has value "44" greater than max "35"
Thermostat ist auf 22 Grad gesetzt, die Umrechnung der Werte über die Konvertierungsfunktion funktioniert weiter in beide Richtungen einwandfrei.

@Apollon77
Copy link
Owner

Hm ... bitte nochmal debug logmit neuester version. an sich sollte da keine doppelte mehr sein weil es an such umgerechnet werden sollte.

@Apollon77
Copy link
Owner

Ahhh ... ich sehe das Problem ... warte

@Apollon77
Copy link
Owner

Ok, nochmal GitHub update bitte. Werte sollten jetzt korrekt umgerechnet werden

@Bender275
Copy link

Also, generell klappt es wieder. Die Werte werden übertragen, eine Umrechnung ist nicht mehr nötig.

Bei 4 von 6 Thermostaten meldet er noch sowas wie "State value to set for "tuya.0.bfea422f7112396156xerg.2" has value "46" greater than max "35"", obwohl der Wert eben 23 und nicht 46 ist. Ich habe den Wert nochmal gesetzt und auch den Adapter neu gestartet, die Meldung kommt an Anfang - danach aber nicht mehr.

Danke für die Arbeit!

@DieterB61
Copy link

Hallo, auch von mir ein großes Dankeschön.
Die State Value Fehler kommen auch bei mir beim Neustart des Adapters von jedem Gerät einmal.
Danach passt aber alles.

@matze5000
Copy link
Author

Schon mal herzlichen Dank vorab. Aber eine blöde Frage: Wie installiere ich die GitHub-Version?

grafik

Wenn ich diesen wähle passiert leider Nichts.

@morskipas
Copy link

Schon mal herzlichen Dank vorab. Aber eine blöde Frage: Wie installiere ich die GitHub-Version?

grafik

Wenn ich diesen wähle passiert leider Nichts.

Bei mir das selbe, keine aktuellere Version als 3.16.

@DieterB61
Copy link

Bei mir ging es so:

  1. Bei Adapter Expertenmodus einschalten.
  2. Auf das Github Icon klicken
  3. In der Textzeile "Tuya" geschrieben
  4. dann hat er mir den Adapter (ohne Versionsnummer) angezeigt, den ausgewählt und auf installieren geklickt.

@morskipas
Copy link

Bei mir ging es so:

  1. Bei Adapter Expertenmodus einschalten.
  2. Auf das Github Icon klicken
  3. In der Textzeile "Tuya" geschrieben
  4. dann hat er mir den Adapter (ohne Versionsnummer) angezeigt, den ausgewählt und auf installieren geklickt.

Genau so habe ich es gemacht. Leider wurde nur die 3.16 erneut installiert.

@Bender275
Copy link

Ja, das ist schon richtig, die Entwickler haben die Versionsnummer nicht erhöht.
Wenn man vorher die 3.16 hatte, erkennt man nicht, ob man nun die bereinigte Installation hat oder nicht.
Beim Starten des Adapters sollte dann aber ja erkennbar sein, dass die Fehler nicht mehr kommen.

@Ilovegym66
Copy link

@morskipas @Bender275
Versionen von Git nur auf Anweisung vom Dev installieren, es kann auch sein, dass da gerade eine liegt, die gar nicht funktioniert.
Das können zwischenversionen sein und sind noch nicht released, daher auch keine änderung der Versionsnummer.
Bei installationen von Git ist darauf zu achten, vorher ein Backup zu machen und anschliessend die Instanz(falls schon vorhanden, ansonsten muss Sie mit dem + hinzugefuegt werden), neu zu starten.

@DieterB61
Copy link

Genau so habe ich es gemacht. Leider wurde nur die 3.16 erneut installiert.

Ja, bei mir auch, aber die ist trotzdem neu :-)

@matze5000
Copy link
Author

Die Version wurde auch ohne neue Nummer aktualisiert. Es gibt nun keine Meldungen mehr und man muss auch keine Umrechnungen mehr im Alias-Adapter hinterlegen.

@Apollon77
Copy link
Owner

ich mach nochmal wieder auf bis ich release

@Apollon77 Apollon77 reopened this Jan 8, 2025
@Apollon77
Copy link
Owner

DANKE!

@matze5000
Copy link
Author

Morgens scheint kommt nur täglich 1x noch eine Meldung.

grafik

@Apollon77
Copy link
Owner

brauche bitte ein Debug log davon

@matze5000
Copy link
Author

anbei
tuya_debug.txt

@Apollon77
Copy link
Owner

Apollon77 commented Jan 15, 2025

ich glaub ich habs ... versuch mal GitHub version bitte. Versuin ist gleich also einmal neu starten danach bitte

@Bender275
Copy link

Version ist jetzt 3.17, die 5 Warnungen mit State value to set for "tuya.0.bf1ad8bc9860a74975hfvj.2" has value "41" greater than max "35" kommen am Anfang weiter.

@matze5000
Copy link
Author

Ja, kann ich bestätigen. Hier nochmal ein aktuelle Debug.
iobroker Tuya.txt

@Apollon77
Copy link
Owner

Gmppff ... ich kapiers net ... Ok ich hab nochmal GitHub mehr logging gepusht. Bitte die nochmal nehmen und log vom start posten. Danke

wobei @matze5000 Wirtklich Github version? dein Log sagt das es die normale 3.17.0 ist und nicht GitHub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

6 participants