brightness wert anpassen

maustru

Member
Hallo zusammen

Irgendwie bekomme ich es nicht hin die "brightness" anzupassen (Shelly Dimmer).
Der current_state gibt folgendes aus:

1709719030335.png

1709718928628.png


Nun habe ich schon diverse sachen versucht. Direkt übern injekt note oder einen switch:

1709719135407.png

1709719149286.png

Leider alles ohne Erfolg. Kann mir da jemand weiterhelfen?

Gruss
 
Ich habe mir aus dem netz etwas geholt was darin endete.
1711361044943.png

das ist JSON to JS-Objekt >
Code:
// B. Nelissen
// Loop detection and dimmer preperation

// timeouts
let msLoopDetection = 100;
let msWithinDimming = 2000;
let currentTime=Math.round(Date.now());

// setting variables
let previousTime=context.get('time') || 0;
let previousIson=context.get('ison') || false;
let timeDifference=currentTime-previousTime;

// catch loop and exit
if (msLoopDetection > timeDifference) return;

// dimmer function
function changeBrightness(brightness) {
    var step0 = 5;
    var step1 = 30;
    var step2 = 55;
    var step3 = 100;
    if (!(brightness >= 0 && brightness <= 100)) {
        node.warn('Invalid brightness, set to 42')
        brightness=step1;
    }
    switch (true) {
        case (brightness < step0):
            brightness=step0;
            break;
        case (brightness < step1):
            brightness=step1;
            break;
        case (brightness < step2):
            brightness=step2;
            break;
        case (brightness < step3):
            brightness=step3;
            break;
        default: // when 100
            brightness=step0;
    }
    return brightness;
}

// dimmer when state goes from OFF to ON
if(msg.payload.ison && (msg.payload.ison !== previousIson)){
    switch (true) {
        case (msLoopDetection > timeDifference): // loops should be catched already
            msg = null;
            break;
        case (msWithinDimming > timeDifference): // dimmer
            msg.payload.brightness = changeBrightness(msg.payload.brightness)
            break;
      default: //do nothing
            break;
    }
}

context.set('time',currentTime);
context.set('ison',msg.payload.ison);
return msg;
das ist im loop detection .....
-----------------------------------
Code:
lightOn = msg.payload.ison;
if (lightOn){
    msg.payload = 'on';
}else{
    msg.payload = 'off';
}
return msg;
das ist prep switch
----------------------------------
Code:
brightness = msg.payload;
msg.payloadold = msg.payload;
// set the brightness, turn the light on
msg.payload = {
    "turn": "on",
    "brightness": + brightness
};
return msg;

das ist im brightnesstomqtt
 
mmhhh momentan arbeite ich noch nicht über mqtt ...
Aber ich schau mal ob ich mit den schnipseln was machen kann. Danke auf jedenfall schonmal
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.530
Beiträge
46.435
Mitglieder
4.166
Neuestes Mitglied
xixaxoro
Zurück
Oben