Wie ich mit Node - Red und dem FT55 meine Fibaro Dimmer dimme. Update des Flow

Hallo Liebe Community,

da ich bei mir die Eltako FT55 verbaut habe und damit meine Dimmer steuere,
bin ich wiedermal darüber gestolpert das ein Faden mit homee nicht möglich ist.
Das hat mir nicht gefallen und gefällt mir immer noch nicht.

Also ab an die Arbeit und geschaut was mir so Node-Red bietet.
Das dimmen über einen Slider im Dashboard habe ich schon fertig in Benutzung und darauf wollte ich jetzt aufbauen.

Das Ergebniss möchte ich euch nun mitteilen.
Jetzt kann ich mit einen langen Tastendruck hoch bzw. runterdimmen und mit einem kurzen Tastendruck wird an bzw. ausgeschaltet.
Nach dem ausschalten bleibt der letzte Dimmwert im Speicher.
Hier ein Bild von dem Flow.

und hier ist der Flow zum importieren in Node Red.

Bitte den Flow von weiter unten nehmen!!!

18 „Gefällt mir“

Mega! :+1:

1 „Gefällt mir“

Geile Sache @Micha

1 „Gefällt mir“

Kleines Update
Ich musste noch eine Sicherheitsabschaltung einbauen , da der homee bei fehlendem Abschaltsignal vom Taster immer weiter mit befehlen befeuert wird.

Daher hier der Flow mit der Abschaltung.
[{"id":"95ee282b.531148","type":"function","z":"c8fce8a4.e63828","name":"Dimmer","func":"var count1 = msg.payload;\nvar count = context.get('count')||0;\nglobal.set ('dimmcounter',count);\nif( count > 100){count = 98}\nif(count < 4){count=4} \ncount += count1;\ncontext.set('count',count);\nvar Dimmer = global.get('Dimmer');\nif (msg.payload && Dimmer === 1) \n// im nächsten Schritt wird der Wert an homee gesendet , hier muss die AttributID eingetragen werden\n{ return [{payload: StringPUT:/nodes/7/attributes/19/?target_value=+ JSON.stringify(count)},null];}\n","outputs":2,"noerr":0,"x":1040,"y":280,"wires":[["bb851f2.192fce","c9fe4fe2.9b04b"],[]]},{"id":"52410a00.da60f4","type":"function","z":"c8fce8a4.e63828","name":"Status Taster und Dimmer abrufen","func":"var StatusTaster = global.get('StatusTaster');\nvar Dimmer = global.get('Dimmer');\nif (StatusTaster === 1 && Dimmer === 1)\n{return {payload: -2}} // die -2 ist der Wert um wieviel runtergedimmt wird\nif (StatusTaster === 2 && Dimmer === 1)\n{return {payload: 2}} // die 2 ist der Wert um wieviel hochgedimmt wird\n","outputs":1,"noerr":0,"x":800,"y":280,"wires":[["95ee282b.531148","d8f4f0e7.09a66"]]},{"id":"542962f3.f0129c","type":"function","z":"c8fce8a4.e63828","name":"Status des Tasters speichern","func":"global.set ('StatusTaster',msg.payload)\nif (msg.payload === 0 )\n{ global.set ('Dimmer',0)}","outputs":1,"noerr":0,"x":780,"y":240,"wires":[[]]},{"id":"d8f4f0e7.09a66","type":"delay","z":"c8fce8a4.e63828","name":"Dimmgeschwindigkeit","pauseType":"delayv","timeout":"300","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"milliseconds","drop":false,"x":780,"y":320,"wires":[["52410a00.da60f4"]]},{"id":"548856d2.13e678","type":"delay","z":"c8fce8a4.e63828","name":"Dauer des Tastendruck für Dimmer","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":620,"y":400,"wires":[["e133f0e8.df1fd"]]},{"id":"e133f0e8.df1fd","type":"function","z":"c8fce8a4.e63828","name":"Dimmer aktivieren","func":"var StatusTaster = global.get('StatusTaster');\nif (msg.payload && StatusTaster === 1 || 2) \nglobal.set('Dimmer',1)\nreturn{payload: 1} ","outputs":1,"noerr":0,"x":900,"y":400,"wires":[["d8f4f0e7.09a66"]]},{"id":"1dbc2231.cc2d3e","type":"delay","z":"c8fce8a4.e63828","name":"Dauer für das Ausschalten der Lampe","pauseType":"delay","timeout":"1100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":630,"y":460,"wires":[["7183039f.25b0cc"]]},{"id":"7183039f.25b0cc","type":"function","z":"c8fce8a4.e63828","name":"Lampe ausschalten","func":"var StatusTaster = global.get('StatusTaster');\nif ( msg.payload === 1 && StatusTaster === 0){return {payload: StringPUT:/nodes/7/attributes/19/?target_value=0}}\n","outputs":1,"noerr":0,"x":910,"y":460,"wires":[["bb851f2.192fce"]]},{"id":"d5af7587.a0d8b8","type":"function","z":"c8fce8a4.e63828","name":"Umwandeln des Tastersignal ","func":"if (msg.payload.attribute && msg.payload.attribute.id === 111 && msg.payload.attribute.current_value === 1){\nreturn {payload: 1}}\nif (msg.payload.attribute && msg.payload.attribute.id === 111 && msg.payload.attribute.current_value === 2){\nreturn {payload: 0}}\nif (msg.payload.attribute && msg.payload.attribute.id === 111 && msg.payload.attribute.current_value === 0){\nreturn {payload: 2}}","outputs":1,"noerr":0,"x":340,"y":260,"wires":[["542962f3.f0129c","52410a00.da60f4","548856d2.13e678","1dbc2231.cc2d3e"]]},{"id":"c9fe4fe2.9b04b","type":"function","z":"c8fce8a4.e63828","name":"Sicherheitsabschaltung","func":"var count = global.get('dimmcounter');\nif (count >100 || count <4) {\nreturn {payload: 0}}\n","outputs":1,"noerr":0,"x":770,"y":200,"wires":[["542962f3.f0129c"]]}]

Hi @Micha,

coole Sache, ohne mir das jetzt näher angeschaut zu haben, müsste man doch mit dem Taster dann selbst in homee 8 Kombinationen mit dem FT55 hinbekommen, oder?

Edit: Ich sehe schon weder die Neutrale Position wird von homee verarbeitet, noch ist der FT55 in den Bedingungen zu finden, sehr schade :frowning:

Ist das Absicht oder ein Bug @Timo @Thomas ?

Viele Grüße
JayJay

3 „Gefällt mir“

In den Bedingungen war er mal drin(fehlerhafter weise ).
Leider hat das Team von CA das wieder entfernt.
Da wollte sich @Timo eigentlich drum kümmern.

Ja so ist es , homee beschränkt sich wieder selbst.

3 „Gefällt mir“

Völlig unverständlich, daß homee da “beschnitten” wird, und man auf 3rd Party Lösungen zurückgreifen muß, obwohl homee das von Haus aus könnte :frowning:

Viele Grüße
JayJay

5 „Gefällt mir“

So nun ist es soweit.
@coffeelover hatte mich um eine Lösung gebeten mit nur einen Tastendruck zu dimmen und zu schalten.
Das ganze habe ich mal fertig gemacht und bei Node-Red online gestellt.
https://flows.nodered.org/flow/b0a8df9a33b4c53427a5304f31c8705a

Mit einem Tastendruck wird an bzw. ausgeschaltet.
mit 2 fachen Tastendruck und anschließendem halten wird hoch gedimmt und
mit 3 fachen Tastendruck und anschließendem halten wird runter gedimmt.

mit 4 fachen Tastendruck ( ohne halten ) wird sofort auf 100% gedimmt.

Edit: sollte der Wert 100 oder 0 erreicht werden so wird kein weiteres Signal an homee gesendet, somit gibt es auch keine Warnungen mehr vom homee Node.

Viel Spaß beim experimentieren.
VG Micha

11 „Gefällt mir“

Hi @Micha
da ich das Thema ja wieder aktiviert habe und es bei mir erfolgreich läuft: Wie kann ich denn den jeweils 2 Schalter ansprechen? Indem ich bei “Umwandeln des Tastersignals” den “value” auf 1 ändere?

var AIDT = 640; // AttributID FT55 Taster
if (msg.payload.attribute && msg.payload.attribute.id === AIDT &&msg.payload.attribute.current_value === 0){
return {payload: 1}}

:coffee:

1 „Gefällt mir“

Der current_value muss dann auf 1 geändert werden.

Die 1 bzw. 0 ist oben bzw. Unten drücken.

VG Micha

1 „Gefällt mir“

moin @Micha,

hier könnte ich auch die klassischen enocean taster gut mit einer hue-bridge-node verbinden und das rauf und runterdimmen mit deiner Vorarbeit regeln, gell?

Ich bin ja nach wie vor von der homee-Zigbee-Umsetzung enttäuscht und bleibe lieber bei der hue-bridge :man_shrugging:

Ja das geht natürlich.
Die FT55 lassen sich super in Node Red benutzen.