ok67
-
Innlegg
19 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Innlegg skrevet av ok67
-
-
-
Etter rmykje prøving og feiling er eg komme eit museskritt vidare og får til å slå av og på thermostatmodus via Z2M, med denne definisjonen, men hanger for øyeblikket på å få til termostatdelen. Den har eit termostatkluster, men det ligg på endpoint 2 og ikkje 1.
Du kan prøve koden nedanfor og tilpasse den til varianten uten -N og sjå om du får slått på thermostatmodus, då vil den lyse grønn når den er i termostatmodus og temperaturen er under setpunktet.
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 extend = require('zigbee-herdsman-converters/lib/extend'); const e = exposes.presets; const ea = exposes.access; const DataType = { uint16: 0x21, enum8: 0x30, } const manufacturerOptions = { namron : {manufacturerCode: 0x1224} }; const op_modeValues = ['onnoff', 'HVAC']; const tz_opmodeCfg = { key : ['OperationMode'], convertSet: async (entity, key, value, meta) => { const numOpMode = Number(value=='HVAC'); const payload = {0x1000: {value: numOpMode, type: DataType.enum8}}; await entity.write('genBasic', payload, manufacturerOptions.namron); return {readAfterWriteTime: 250, state: {OperationMode: value}}; }, convertGet: async (entity, key, meta) => { await entity.read('genBasic', 0x1000, manufacturerOptions.namron); } } const fz_opmodeCfg = { cluster: 'genBasic', type: ['attributeReport', 'readResponse'], convert: (model, msg, publish, options, meta) => { const result = {}; const data = msg.data; if (data.hasOwnProperty(0x1000)) { result['OperationMode'] = op_modeValues[msg.data['0x1000']]; } return result; }, } const definition = { zigbeeModel: ['4512749-N'], model: '4512749-N', vendor: 'Namron', description: 'Thermostatplugg-test', fromZigbee: [fz.metering, fz.electrical_measurement, fz.on_off, fz.temperature, fz_opmodeCfg], toZigbee: [tz.on_off, tz.power_on_behavior, tz_opmodeCfg], exposes: [ e.temperature(), e.power(), e.current(), e.voltage(), e.switch(), e.power_on_behavior(), e.enum('OperationMode', ea.SET, op_modeValues).withDescription('Set operation mode as ON/OFF or as Thermostate'), ], configure: async (device, coordinatorEndpoint, logger) => { const endpoint = device.getEndpoint(1); await reporting.bind(endpoint, coordinatorEndpoint, ['genBasic', 'genOnOff', 'haElectricalMeasurement', 'msTemperatureMeasurement']); await endpoint.read('haElectricalMeasurement', ['acVoltageMultiplier', 'acVoltageDivisor']); await endpoint.read('haElectricalMeasurement', ['acPowerMultiplier', 'acPowerDivisor']); await endpoint.read('haElectricalMeasurement', ['acCurrentMultiplier', 'acCurrentDivisor']); await reporting.onOff(endpoint); await reporting.temperature(endpoint, {min: 10, change: 10}); await reporting.rmsVoltage(endpoint, {min: 10, change: 20}); // Voltage - Min change of 2v await reporting.rmsCurrent(endpoint, {min: 10, change: 10}); // A - z2m displays only the first decimals, so change of 10 await reporting.activePower(endpoint, {min: 10, change: 1}); // W - Min change of 0,1W }, }; module.exports = definition;
-
@slippern Eg har prøvd å lage mi eiga configureringsfil og linke til den frå configuration.yaml i zigbee2mqtt directoryet, men external_converters: opsjonen blir automatisk fjerna av systemet kvar gang eg legg til eller fjernar ein dings frå zigbee nettet. Eg har ein viss idee om noko eg kan prøve for å få pluggen opp gå som termostat, men så lenge eg ikkje får systemet til å inkludere konfigurasjonsfila så blir det litt vanskeleg. Eg har stilt spørsmålet på forumet til Z2M, så får vi sjå om det kjem nokon respons. Virkar for å vere ein bug, eller så er det eg som gjer noko fundamentalt gale.
- Men no har vi kanskje bevega oss langt utanfor temaet for denne tråden...
-
Anderslien skrev (5 minutter siden):
Men hvor endres dette og hva skal jeg endre til for å få termostat funksjon? Jeg kan fint endre modus ved å bare gå inn på enheten, men det hjelper ikke.
Eg har ingen Z-wave dingsar, så eg veit ikkje.
For zigbeevarianten av pluggen har eg funne ut korleis eg gjer det med ZHA Toolkit, men slit med å få det til med zigbe2MQTT...
-
Ser ut for at det står noko om det under Device Operating Mode
SitatDevice Operating Mode
Device operating mode can be configured through configuration parameter 7.
1. Switch Mode
1.1. This mode enables to control relay output directly using basic set or binary set.
1.2. Thermostat related command class will be invalid.
1.3. Short press the action button to switch on/off load.
2. Thermostat (automatic heating) Mode
2.1. The device will turn on or off relay output automatically according to the temperature value set through
command class Thermostat Set Point.
2.2. Binary set command class will be invalid.
2.3. The action button can not control relay output directly.
2.4. Basic Set (Value = 0x00) = Set Economy Mode (Thermostat Heating Mode)
Basic Set (Value = 0xFF) = Set Comfort Mode(Thermostat Energy Save Heating Mode) -
@slippern Eg har lasta ned kildekoden til både zigbee2mqtt og herdsmanconverterane og finn ikkje igjen lista som ligg under attributtar i klartekst, så eg lurer på om den kanskje blir satt opp som eit resultat av egenskapar som systemet finn under intervjuet ved tilkopling? Men no er ikkje hverken javascript eller Python noko som eg har noko er faring med, og det er år og dag sidan eg dreiv med litt hobbyprogrammering i C++, så eg er nok litt rusten i å finne ut av korleis ting heng saman her.
-
slippern skrev (1 time siden):
Har du også satt 0x1000 til 1 i Zigbee2mqtt?
Dessverre stod det lite i loggen om termostatfunksjonen.
Har ikkje satt 0x1000 attributten på denne pluggen, då eg ikkje får det til med Z2M.
På dei pluggane eg har på hytta har eg satt attributten då eg brukar ZHA og ZHA Toolkit på den installasjonen.
-
slippern skrev (3 minutter siden):
@ok67
Hva skjer om du fyrer avgårde dette i dev consolen
Samme feilmelding som før, error 2023-10-16 20:48:57
Publish 'set' 'command' to 'NamronPlugg' failed: 'Error: Cluster 'genBasic' has no command '4096''
Slik eg tolkar det så er det nederste delen av dev consolen for å sende kommandoar, medan den øverste delen er for å lese/skrive attributtar. Problemet med den øverste delen er at der kan du ikkje skrive inn verdiar som du sjølv vil, du må velge frå ein nedtreksmeny. Det er greit å vege endpoint 1, klynge (Cluster) genBasic, men egenskap for 0x1000 er truleg ikkje blant forhåndsvalga (eg har prøvd alle alternativa som er tilgjengeleg). Etter å ha valgt egenskap kan du så velge kva verdi du vil skrive til den egenskapen. (Går ut frå at egenskap heiter attribut om du har engelsk språksetting, som eg vel eigentleg burde ha valgt då det gjer det enklare å søke opp lure ting på nettet).
-
Zigbee-varianten av denne krever at du set ein produsentspesifik proprietær atributt for å få den til å fungere som termostat. Ut av boksen så fungerer den som ein rein av og på plugg. Kanskje det er slik for z-wave-pluggen også? Den infoen stod godt gjemt i dokumentasjonen som fulgte med i eska.
-
Logfil, klippa og limt frå nettlesarvinduet, den blir kanskje lagra av HA ein eller annan stad også?
La til ei fil med all info også, i tilfelle den skulle fortelje noko meir
-
-
Kva for log du treng og korleis eg skal få den fram etc trur eg du må forklara nærmare, gjerne med teskei.
-
Scan-kommandoen som eg tidlegare gjorde med ZHA-tools gav følgende tilbakemelding
-
-
Dersom det er nokon her som er ræserar i definering av Z2M konfigurering så kan eg scanne manualen som føl med pluggen. Eg ser at den har mykje meir informasjon enn den som ligg ute på nettet
-
slippern skrev (På 9.10.2023 den 21.02):
Eg har no konvertert systemet mitt til Z2M, då eg har noko utstyr som ikkje fungerer skikkeleg med ZHA, men det var ingen suksess når det gjeld Namronpluggen. Den blir ikkje gjenkjend som termostat, og eg får også same feilmeldinga som deg når eg prøver å sende over settinga manuelt slik du gjorde. Så konfigureringa av Namronpluggen ser ut for å vere mangelfull under Z2M
-
slippern skrev (3 minutter siden):
Ser også at du har den nye varianten som heter 4512749-N, jeg har kun den som heter 4512749.
Då kan det kanskje vere forskjell på versjonane.
Ser at den proprietære attributten ikkje er beskriven i manualen som ligg ute på nett, den er kun beskriven i papiret som ligg i eska saman med pluggen.
-
slippern skrev (På 10.1.2023 den 20.09):
Siden Namron ZigBee Termostatplugg er identisk til denne; Zigbee Smart Plug SR-ZG9020A (sunricher.com)
Og at Sunricher ikke skriver noe om termostat-funksjonen så har jeg konkludert med at den ikke har noen innebygd termostat. Namron har heller ikke gitt meg noen tilbakemelding bortsett fra at de skulle sjekke med leverandør.
Siden "Smartpluggen" ellers funker ok så har jeg laget en PR så den vil forhåpentligvis bli offisielt støttet i neste release.
Litt gammal tråd ser eg, men kan bekrefte at Namron sin Zigbee plugg med termostat fungerer som termostatplugg, berre den er konfigurert rett.
Ut av boksen fungerer den som av/på plugg, men ved å skrive til ein produsentproprietær attributt så vil termostatmodus bli aktivert. Dette står i leafletten som følger med, og etter litt prøving og feiling med ZHA Toolkit så fekk eg det til å fungere. Når den atributten er satt så ser den ut til å bli hugsa av pluggen, sjølv om den blir fråkopla. Det vedlagte biletet viser kva eg gjorde i ZHA Toolkit for å få det til å fungere. Som sagt nok å utføre denne kommandoen ein gang pr plugg. Kanskje Zigbe2MQTT har denne funksjonen innebygd? Eg har ikkje prøvd Zigbee2MQT, så eg veit ikkje.
- 1
[Test] ZigBee Smart-Plugger
i Integrasjoner
Skrevet · Endret av ok67
Då er det truleg berre nyvarianten som har termostatmodus.
For dei som har nyvariante så er det i alle fall håp, eg har fått ihop ein kode som ser ut for å fungere for den i termostatmodus med Z2M. Eg har aldri programmert i javascript før så det var ikkje heilt rett fram, og dokumentasjonen på Z2M er vel heller ikkje av det enkle slaget...
Eg har lagt koden ut på forumet til Z2M i håp om at nokon kan gi nokre tips på ein enklare måte å gjere det på, då eg har reprodusert mykje av termostatkoden i systemet for å få den til å snakke med endpoint 2 og ikkje endpoint 1 som ser ut for å vere standard. Eg ser for meg at det bør vere ein måte å fortelje systemet at det aktuelle klusteret ligg på endpoint 2 og ikkje 1 utan å hardkode alle rutinane til endpoint 2...