NEWS
TS0601 Zigbee
-
habe ich erledigt. Jetzt kommt folgender Fehler:
Unable to apply converter from module: /opt/iobroker/iobroker-data/zigbee_0/tuya_twc.js - the code does not run: Error: Cannot find module '../lib/exposes' Require stack: - /opt/iobroker/node_modules/iobroker.zigbee/main.js
Schmeisse ich die Zeile mit esposes auch raus, kommt der nächste Fehler:
Unable to apply converter from module: /opt/iobroker/iobroker-data/zigbee_0/tuya_twc.js - the code does not run: Error: Cannot find module '../lib/reporting' Require stack: - /opt/iobroker/node_modules/iobroker.zigbee/main.js
passt da was mit dem Pfad nicht?
Was mich überrascht ist, dass man die Zeilen wirklich rausscheissen muss.
Auskommentieren mittels // scheint nicht zu funkionieren, da die Fehlermeldungen identisch sind. -
@peterfido Du wirst probieren müssen. Weiter Zeilen rauswerfen in der Hoffnung das sie nicht benötigt werden. Wenn das nicht klappt dann liegt es daran das das Gerät den neuen Herdsman braucht - wie schon auf GitHub geschrieben.
A.
-
@asgothian ok, danke. Ich hatte die relativen Pfade vermutet. Zumindest von dort, wo die Datei sizt, laufen die ins Leere. Den neuen Herdsmann gibt es noch nicht? Oder müsste ich da z.B. auf zigbee2mqtt gehen?
Das wäre dann wohl auch ein umfangreicher Aufwand, alle Geräte umzuziehen und die Skripte anpassen. Ich probiere noch bis zum Wochenende und, wenn es nicht will, schicke ich die Teile zurück.
Optisch passt dieser hier genau.
-
@peterfido den neuen Herdsman gibt es schon. Du kannst auch probieren was der für Dich bedeutet. Allerdings werden dann viele Datenpuntke insbesondere bei Tastern und Schaltern umbenannt - da gibt es also extra Arbeit wenn du den nutzen willst.
Solltest du das probieren wollen, dann kann ich Dir diesen Thread empfehlen:
https://forum.iobroker.net/topic/78969/iobroker-zigbee-1-11-x-tester-gesucht/11 -
@peterfido …ich hab von nodejs wenig Ahnung, bin aber fast sicher, dass relative Pfade in require() immer vom aktuellen Pfad der aufrufenden Datei ausgehen. D.h. „../lib…“ dürfte dann in zigbee.0 nicht funktionieren.
Bei mir liegen diese Module in node_modules - ich würde einfach mal absolute Pfade ausprobieren, kost‘ ja nix
Also z.B.
require(“/opt/iobroker/node_modules/zigbee-herdsman-converters/lib/exposes“) -
@jleg Danke für den Tipp. Das hatte ich bereits probiert.
Ich habe einen lxc Container auf dem Proxmox Server installiert, wo zigbee2mqtt drauf ist. Scheint allerdings nicht die Version 2 zu sein. Da muss ich am Wochenende mal schauen. Im Log tauchte einmal eine Meldung mit Version 21 und 23 auf. Allerdings war das Log nach dem Neustart leer und die Meldung taucht nicht mehr auf.
Das Gerät wird aktuell nicht unterstützt. Ich mache mich wohl am Wochenende auf die Suche nach der Datei, wo der tuya zth08-e drin ist, und ergänze mal die Kennung von dem Thermometer. Mal schauen, was passiert.
-
@asgothian von zigbee2mqtt wird das Teil nicht unterstützt. Allerdings bin ich mir nicht sicher, ob ich für zigbee2mqtt 2.x eine andere Installation durchführen muss.
Ich teste jetzt, wie Du oben vorgeschlagen hast, mit dem neuen herdsman. Allerdings lief die Installation nicht sauber durch Bei drei ioBroker Testsystemen gab es die Fehlermeldung, dass der port nicht gelockt werden konnte. (zwei mal lxc und einmal VM unter Proxmox) Auf dem vierten (VM) habe ich dann erst den "normalen" Zigbee-Adapter installiert, da war dann das Fenster vom Admin leer. Dann die Testversion mit der Katze installiert, daraufhin war der Admin wie gewohnt und auch der USB-Stick wurde einwandfrei erkannt.
Also mache ich dann in dem Test-Thread weiter.
-
@peterfido sagte in TS0601 Zigbee:
von zigbee2mqtt wird das Teil nicht unterstützt. Allerdings bin ich mir nicht sicher, ob ich für zigbee2mqtt 2.x eine andere Installation durchführen muss.
wenns da nicht unterstützt wird dann wird es auch bei zigbee NICHT GEHEN
und nien für z2m 2.0 brauchst keine neue installation..
-
Ich habe das Teil zum Laufen bekommen. In der Datei tuya.js habe ich zwei Zeilen ergänzt. (Zeilen 13 und 41)
{ fingerprint: tuya.fingerprint('TS0601', [ '_TZE200_yjjdcqsq', '_TZE200_9yapgbuv', '_TZE200_utkemkbs', '_TZE204_utkemkbs', '_TZE204_9yapgbuv', '_TZE204_upagmta9', '_TZE200_cirvgep4', '_TZE200_upagmta9', '_TZE204_yjjdcqsq', '_TZE204_cirvgep4', '_TZE204_jygvp6fk', ]), model: 'TS0601_temperature_humidity_sensor_2', vendor: 'Tuya', description: 'Temperature and humidity sensor', fromZigbee: [tuya.fz.datapoints], toZigbee: [tuya.tz.datapoints], onEvent: tuya.onEvent({ queryOnDeviceAnnounce: true }), configure: async (device, coordinatorEndpoint) => { await tuya.configureMagicPacket(device, coordinatorEndpoint); // Required to get the device to start reporting await device.getEndpoint(1).command('manuSpecificTuya', 'dataQuery', {}); }, exposes: [e.temperature(), e.humidity(), tuya.exposes.batteryState(), tuya.exposes.temperatureUnit()], meta: { tuyaDatapoints: [ [1, 'temperature', tuya.valueConverter.divideBy10], [2, 'humidity', tuya.valueConverter.raw], [3, 'battery_state', tuya.valueConverter.batteryState], [9, 'temperature_unit', tuya.valueConverter.temperatureUnitEnum], ], }, whiteLabel: [ tuya.whitelabel('Tuya', 'ZTH01', 'Temperature and humidity sensor', ['_TZE200_yjjdcqsq', '_TZE204_yjjdcqsq']), tuya.whitelabel('Tuya', 'SZTH02', 'Temperature and humidity sensor', ['_TZE200_utkemkbs', '_TZE204_utkemkbs']), tuya.whitelabel('Tuya', 'ZTH02', 'Temperature and humidity sensor', ['_TZE200_9yapgbuv', '_TZE204_9yapgbuv']), tuya.whitelabel('Tuya', 'ZTH05', 'Temperature and humidity sensor', ['_TZE204_upagmta9', '_TZE200_upagmta9']), tuya.whitelabel('Tuya', 'ZTH08-E', 'Temperature and humidity sensor', ['_TZE200_cirvgep4', '_TZE204_cirvgep4']), tuya.whitelabel('Tuya', 'ZTH07-E', 'Temperature and humidity sensor', ['_TZE201_jygvp6fk', '_TZE204_jygvp6fk']), ],
Die Uhrzeit stimmt und die Werte trudeln ein:
Jetzt probiere ich es auf meinem Produktivsystem.
-
@peterfido sagte in TS0601 Zigbee:
Jetzt probiere ich es auf meinem Produktivsystem.
Wichtiger Hinweis: diese Anpassung wird verloren gehen sobald du den Zigbee-Adapter aktualisierst / neu installierst. Darüber musst du dir im klaren sein. ggf. musst du diese Anpassung wiederholen.
Ein Einspielen bei den zigbee-herdsman-converters ist ausgeschlossen, da diese Änderung da bereits vorhanden ist, aber erst in einer 21.x Version, die nicht mit dem Zigbee-Adapter 1.10 funktioniert.
A
-
@asgothian Ist mir bewusst. Wie müsste denn in diesem Fall eine eigene Converter-Datei aussehen?
Edit: Bei der 1.11.x ist das Gerät noch unbekannt. Da hatte ich die Änderung zuerst auf meinem Testsystem durchgeführt.
-
@asgothian im Github unter zigbee-herdsman-converters/.../tuya.ts
wird das Gerät noch nicht aufgeführt. Müsste dort ab Zeile 1100 stehen. Gibt es für die 21.x Version eine andere Quelle?
-
Ich habe jetzt eine wohl gute Lösung gefunden.
In Proxmox habe ich eine VM erstellt, auf welcher ich zusätzlich curl, mosquitto, zigbee2mqtt und vsftpd installiert habe.
Geht man nach der Anleitung von zigbee2mqtt vor, dann verschwinden bei jedem Neustart die Rechte, den USB-Stick zu nutzen. Ist mir jetzt allerdings egal, da ich heute Morgen mein LAN-Gateway vom Zigbee-Adapter auf zigbee2mqtt umgezogen habe.
Der Umzug war etwas trickreich, da die Konfiguration bei z2m die ext. Pan ID und den Transport-Key in einzelnen dezimalen Zahlen haben möchte. Obendrein ist die ext. Pan ID rückwärts einzutragen. Also die letzte Zahl zuerst und zuletzt die erste Zahl.
Dann noch die Konfigurations-Dateien nach /opt/zigbee2mqtt/data kopieren und umbenennen. Das habe ich dann mit FileZilla über ftp gemacht. Die shepherd.db muss in database.db umbenannt werden.
Dann noch im data Ordner einen Unterordner external_converters erstellen und da die selbst erstellte (ok - zusammenkopierte) Datei reinkopieren.
var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); const fz = require('zigbee-herdsman-converters/converters/fromZigbee'); const tz = require('zigbee-herdsman-converters/converters/toZigbee'); const exposes = require('zigbee-herdsman-converters/lib/exposes'); const reporting = require('zigbee-herdsman-converters/lib/reporting'); const ota = require('zigbee-herdsman-converters/lib/ota'); const utils = require('zigbee-herdsman-converters/lib/utils'); const globalStore = require('zigbee-herdsman-converters/lib/store'); const e = exposes.presets; const ea = exposes.access; const tuya = __importStar(require("zigbee-herdsman-converters/lib/tuya")); const definition = { fingerprint: tuya.fingerprint('TS0601', [ '_TZE204_jygvp6fk', ]), zigbeeModel: ['lumi.sens'], model: 'TS0601_temperature_humidity_sensor_2', vendor: 'EMOS', description: 'Temperature and humidity sensor', extend: [], /** * Clusters reporting "from zigbee" */ fromZigbee: [tuya.fz.datapoints], /** * Clusters to send commands "to zigbee" */ toZigbee: [tuya.tz.datapoints], /** * Defines which fields are exposed in the definition message to configure a frontend * (e.g. Z2M frontend, Home Assistant, Domoticz) */ onEvent: tuya.onEvent({ queryOnDeviceAnnounce: true }), configure: async (device, coordinatorEndpoint) => { await tuya.configureMagicPacket(device, coordinatorEndpoint); // Required to get the device to start reporting await device.getEndpoint(1).command('manuSpecificTuya', 'dataQuery', {}); }, exposes: [e.temperature(), e.humidity(), tuya.exposes.batteryState(), tuya.exposes.temperatureUnit()], meta: { tuyaDatapoints: [ [1, 'temperature', tuya.valueConverter.divideBy10], [2, 'humidity', tuya.valueConverter.raw], [3, 'battery_state', tuya.valueConverter.batteryState], [9, 'temperature_unit', tuya.valueConverter.temperatureUnitEnum], ], }, whiteLabel: [ tuya.whitelabel('Tuya', 'EGS0101', 'Temperature and humidity sensor', ['_TZE200_jygvp6fk', '_TZE204_jygvp6fk']), ], }; module.exports = definition;
Danach können die Thermometer mit Uhr genutzt werden. Es gibt zwar beim Anlernen eine Meldung, dass diese nur von einer älteren Zigbee-Revision unterstützt werden, läuft aber trotzdem.
info 2025-01-12 09:23:39zh:controller:device: Device '0xa4c1385f24e9365e' is only compliant to revision '21' of the ZigBee specification (current revision: 23). info 2025-01-12 09:23:43zh:controller: Succesfully interviewed '0xa4c1385f24e9365e' info 2025-01-12 09:23:43z2m: Successfully interviewed '0xa4c1385f24e9365e', device has successfully been paired info 2025-01-12 09:23:43z2m: Device '0xa4c1385f24e9365e' is supported, identified as: Tuya Temperature and humidity sensor (EGS0101)
und taucht im ioBroker mit Werten auf.
-
Ich hatte ein Issue auf Github eröffnet, und Koenkk hat das Gerät im dev branch hinzugefügt.
Das ging echt flott.
-
Moin in die Runde,
bin auch über das End Gerät TS0601 gekommen.
Es ist ein Bodensensor von Ali, wollte mal schauen ob dann weniger Blumen bei mir sterben
Die Zigbee Version ist so weit ich sehen kann die neuste.
type:zStack3x0
version:2-1.2.7.1.
revision:20210708
port:/dev/ttyUSB0
channel:12Wie bekomme ich diesen kleinen Sensor in mein Netzwerk eingebunden ?
Hat jemand einen Tipp für mich ?danke
Gruß aus dem kühlen Keller
TimmodelZigbee:TS0601
type:EndDevice
nwk:25184
manuf id:4742
manufacturer:_TZE200_npj9bug3
power:Battery
app version:149
hard version:1
zcl version:3
stack version:2
build:0122052017
interviewed:true
configured:true
endpoint:1
profile:260
input clusters:genBasic (0)
genIdentify (3)
msTemperatureMeasurement (1026)
msRelativeHumidity (1029)
genPowerCfg (1)
output clusters:genIdentify (3) -
@sleepless135 dumm gefragt:
- welchen Adapter nutzt du ?
- in welcher Version ?
- ist genau dein Gerät sicher bei zigbee2mqtt.io als supported gelistet ?
A.
-
@asgothian sagte in TS0601 Zigbee:
ist genau dein Gerät sicher bei zigbee2mqtt.io als supported gelistet ?
wenn es
@sleepless135 sagte in TS0601 Zigbee:
das End Gerät TS0601
als Bodensendor sein soll, müsste es eins von diesen
sein
-
@homoran sagte in TS0601 Zigbee:
als Bodensendor sein soll, müsste es eins von diesen
Optimist.
Du unterschätzt das Chaos von TuYa gewaltig. Das kann ein beliebiges sein. Selbst wenn es so wie eines von denen aussieht heisst es nicht das es sich auch so betreiben lässt,
A.
-
@asgothian sagte in TS0601 Zigbee:
Optimist
mistverständnis.
Das kommt davon wenn man zu schreibfaul ist.Also neu:
Wenn @Sleepless135 tatsächlich einen Senso hätte, der@asgothian sagte in TS0601 Zigbee:
sicher bei zigbee2mqtt.io als supported gelistet
ist, müsste er einen der drei abgebildeten haben.
-
@homoran sagte in TS0601 Zigbee:
ist, müsste er einen der drei abgebildeten haben.
leider nein.
- es gibt TuYa Geräte die unterschiedlich aussehen, sich aber gleich melden und auch gleich verhalten
- es gibt TuYa Geräte, die gleich aussehen, sich aber unterschiedlich melden und auch unterschiedlich verhalten.
Wirklich sicher sein kann man sich da nur dann wenn auch der Hersteller / Whitelabel Eintrag zusammen passt.
TuYa ist ein Sumpf.
A.