Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

[Test] ZigBee Smart-Plugger


VikingOy

Anbefalte innlegg

1 hour ago, picnic84 said:

De er listet som støttet av Z2M: https://www.zigbee2mqtt.io/devices/A1Z.html
 

Jeg synes for øvrig de ligner mistenkelig på tuya plugger jeg har fra aliexpress, de fungerer ihvertfall veldig bra selv om jeg ikke tør stole på dem med tyngre laster.

Lenke til kommentar
Del på andre sider

7 minutes ago, thoralex said:

De er listet som støttet av Z2M: https://www.zigbee2mqtt.io/devices/A1Z.html
 

Jeg synes for øvrig de ligner mistenkelig på tuya plugger jeg har fra aliexpress, de fungerer ihvertfall veldig bra selv om jeg ikke tør stole på dem med tyngre laster.

Akkurat dette som er min bekymring. Vil bare ha noen kompakte, rimelige zigbeeplugger som er solgt av en "legit" kilde. Computersalg oppleves litt halvveis.

Lenke til kommentar
Del på andre sider

slippern skrev (På 9.10.2023 den 21.02):


Z2M har tilsvarende funksjon, forsøkte og legge inn dette:
image.thumb.png.61bacd895004d613e207d106a75b7745.png

Men får bare feilmeldingen 'Error: Cluster 'genBasic' has no command '4096''

 

Ser også at du har den nye varianten som heter 4512749-N, jeg har kun den som heter 4512749.

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

Lenke til kommentar
Del på andre sider

ok67 skrev (12 minutter siden):

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

Kan ta en titt på dette om du sender meg loggen etter at du har inkludert den på nytt.

Jeg som laget definisjonsfilen til 4512749, også ble definisjonsfilen til 4512749-N forket og kun endret navn og noe på rapporteringen, så er ikke overrasket at termostatfunksjons ikke funker.

  • Like 1
Lenke til kommentar
Del på andre sider

På hytta brukar eg framleis ZHA, og der kjem den opp slik i Home Assistant. Den fungerer då som termostat etter at den magiske 0x1000 attributten er satt til 1 med ZHA Toolkit. Før attributten er satt har ikkje justering av termostaten nokon innverknad på pluggen.

ZHA-thermostat.png

Lenke til kommentar
Del på andre sider

ok67 skrev (På 13.10.2023 den 18.37):

Kva for log du treng og korleis eg skal få den fram etc trur eg du må forklara nærmare, gjerne med teskei.

Gå inn i zigbee2mqtt -> Logs -> og sett "Show only" til debug.

Kjør så en inkludering av enheten.

  • Like 1
Lenke til kommentar
Del på andre sider

slippern skrev (3 minutter siden):

@ok67
Hva skjer om du fyrer avgårde dette i dev consolen
image.thumb.png.a6a883381fec9c296e819013bdad7b7b.png

Samme feilmelding som før, error 2023-10-16 20:48:57Publish '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).

Screenshot_2023-10-16_20-54-56.png

Lenke til kommentar
Del på andre sider

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.

Lenke til kommentar
Del på andre sider

@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.

Lenke til kommentar
Del på andre sider

@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...

Lenke til kommentar
Del på andre sider

  • 3 måneder senere...

@slippern

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;

 

Lenke til kommentar
Del på andre sider

Fikk bare feilmelding om at det var unsupported.

 

Publish 'set' 'OperationMode' to '0x9035eafffe5fa03c' failed: 'Error: Write 0x9035eafffe5fa03c/1 genBasic({"4096":{"value":0,"type":48}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4644,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'UNSUPPORTED_ATTRIBUTE')'

Lenke til kommentar
Del på andre sider

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...

Endret av ok67
Lenke til kommentar
Del på andre sider

EDIT: Endret post til test

 

Testet et par rimelige kompakte plugger nå:
1.) Med DNB Supertilbud får Aeotec pluggene til 399 * 0,8 = 319,20 pr stk hos Power.

https://www.power.no/smarte-hjem/smart-kontroll/smart-stroemstyring-og-skjoeteledninger/aeotec-smart-veggplugg/p-1132218/

Verdict: Disse gir en bakgrunnslyd med summing. Jeg returnerte alle mine.

2.) Elektroimportøren har noen kompakte plugger til normalpris 499,-. Nå på kampanje til 399,-. Kjøpte noen slike. De fungerer bra så langt. Ingen summing i mitt øre, og veldig kompakte. Parret lett med Deconz. https://www.elektroimportoren.no/namron-zigbee-smart-plug-16a-hvit/4512766/Product.html

Endret av picnic84
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.