NEWS
TS0601 Zigbee
-
@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.