Wert eines Geräts erhöhen oder verringern

Hallo!

Ich habe mich kürzlich gefragt, als ich einen Knopf installiert habe (Zigbee2MQTT),
wie es möglich ist, einen Wert wie in meinem Fall die Helligkeit zu erhöhen.

Denn mein Knopf ermöglicht mir mehrere Aktionen, von denen mich vier interessieren:

  • arrow_left_hold,
  • arrow_right_hold,
  • arrow_left_release,
  • arrow_right_release

Aber auf der Seite von Gladys kann ich keine „während“-Schleife machen.

Daher möchte ich die Helligkeit erhöhen oder verringern, solange ich einen Knopf gedrückt halte, und wenn ich ihn loslasse, wird die Aktion gestoppt.

Vielleicht kannst du das von einer Szene aus mit Pausen machen.

Der Auslöser ist dein Klick.
Du machst eine Pause von 1 Sekunde.
Du holst den Zustand des Buttons.
Weiter nur, wenn der Button immer noch auf hold ist.
Helligkeit erhöhen.
Nochmal eine Pause von 1 Sekunde machen.
Und so weiter…

Das ist zwar eine Lösung, aber eine umständliche :smiley:
Der Wert der Helligkeit bei manchen Lampen beträgt 255, ich kann mir nicht vorstellen, 255 Blöcke zu erstellen, um „Helligkeit erhöhen“ zu sagen :grinning_face:

Vielleicht könnte man aber einen Block haben, der die Aktion x und y wiederholt, solange der Sensor nicht in einem bestimmten Zustand ist :slight_smile:

Hallo @spenceur!
Kannst du dein Gerät nicht so konfigurieren, dass es alle 500 ms (oder sogar alle 50 ms) eine 1 sendet? In diesem Fall musst du die Szene nur einmal konfigurieren, ohne das Kästchen „Nur einmal ausführen […]“ anzukreuzen. Die Szene „+1“ wird so lange wiederholt, wie du gedrückt hältst. Bei 500 ms müsstest du 127 Sekunden gedrückt halten, um den gesamten Bereich zu durchlaufen.
Umgebungsgeräte sind in der Regel so konfiguriert, dass sie den Schritt oder die Frequenz alle x Sekunden senden, um nicht so lange gedrückt halten zu müssen. Mit einem virtuellen Gerät könntest du das sogar selbst machen.

Ach stimmt, daran habe ich gar nicht gedacht, aber das sollte eigentlich funktionieren :thinking:
Ich werde es so schnell wie möglich testen!

@Terdious @pierre-gilles, eine Idee, wie man den letzten Wert abrufen und +1 darauf machen kann?

Das ist so nicht möglich, wir haben keine mathematischen Funktionen in den Szenen :slight_smile:

Es ist aber über Node-RED möglich

Ja, das ist genau das, was ich momentan nutze. Ich frage mich, ob das nicht zum Kern gehören sollte.

Klar :slight_smile: Es gibt eine ähnliche Funktionsanfrage: Somme, moyenne, calculs dans les scènes

Danach geht die Anfrage aber in alle Richtungen, es ist nicht sehr konkret, daher würde ich gerne konkrete Funktionsanfragen erstellen.

Für deine Anfrage fehlen im Grunde zwei Dinge:

  • In der Lage sein, eine mathematische Operation mit einer „Szene-Variablen“ durchzuführen: Addition, Subtraktion, Multiplikation, Division
  • In der Lage sein, eine Variable in eine Aktion „Gerät steuern“ einzufügen.

Ich werde das auf meiner Seite ausprobieren, um zu sehen, was ich (oder auch nicht) erreichen kann!

Entschuldigung, vielleicht war ich nicht klar, aber ich würde die Feature-Anfragen selbst nicht erstellen, das müsst ihr tun, wenn ihr sie in Gladys sehen wollt :slight_smile:

Eigentlich ging es über Node Red, aber der Knopf funktioniert nicht über Gladys (ich würde meinen Flow weitergeben).

@pierre-gilles doch, doch, ich hatte es verstanden, aber ich bin bei der Arbeit, also hatte ich noch keine Zeit, es zu tun.

Hier ist, was ich in der Zwischenzeit gemacht habe:


Im Großen und Ganzen erhalte ich über einen Z2M-Knoten die Klickaktion und leite die Info dann über einen großen Switch an die gewünschte Lampe weiter, wieder über andere Z2M-Knoten

[
    {
        "id": "04fe395c3e704b2a",
        "type": "switch",
        "z": "7ae9230582bf5831",
        "name": "",
        "property": "payload.action",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "on",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "off",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_move_up",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_move_down",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "brightness_stop",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_click",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_click",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_hold",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_hold",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_left_release",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "arrow_right_release",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 11,
        "x": 330,
        "y": 220,
        "wires": [
            [
                "2df8d7b2f5291fb7"
            ],
            [
                "1c3acbbddd183827"
            ],
            [],
            [],
            [],
            [
                "93fd7fdfe19f9209"
            ],
            [
                "a5f5aad809a82a17"
            ],
            [
                "e666d44b7b131d3e"
            ],
            [
                "43d6067a8e026fec"
            ],
            [
                "69f3c1ddc48ca93c"
            ],
            [
                "69f3c1ddc48ca93c"
            ]
        ]
    },
    {
        "id": "072c37a2c2c16bd9",
        "type": "debug",
        "z": "7ae9230582bf5831",
        "name": "",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 340,
        "y": 80,
        "wires": []
    },
    {
        "id": "b2b7835c2619dfff",
        "type": "zigbee2mqtt-in",
        "z": "7ae9230582bf5831",
        "name": "Steuerung",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x842e14fffe462c2a",
        "device_id": "0x842e14fffe462c2a",
        "state": "0",
        "outputAtStartup": true,
        "x": 50,
        "y": 120,
        "wires": [
            [
                "072c37a2c2c16bd9",
                "04fe395c3e704b2a"
            ]
        ]
    },
    {
        "id": "28ff1c7daf962686",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "state",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 700,
        "y": 120,
        "wires": []
    },
    {
        "id": "2df8d7b2f5291fb7",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"on\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 100,
        "wires": [
            [
                "28ff1c7daf962686"
            ]
        ]
    },
    {
        "id": "1c3acbbddd183827",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"off\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 520,
        "y": 140,
        "wires": [
            [
                "28ff1c7daf962686"
            ]
        ]
    },
    {
        "id": "7f4dd9cc9aed52fb",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 920,
        "y": 240,
        "wires": []
    },
    {
        "id": "a5f5aad809a82a17",
        "type": "zigbee2mqtt-get",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "state": "0",
        "x": 560,
        "y": 240,
        "wires": [
            [
                "bc87b3c6c082b665"
            ]
        ]
    },
    {
        "id": "bc87b3c6c082b665",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = msg.payload.brightness+50;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 240,
        "wires": [
            [
                "7f4dd9cc9aed52fb"
            ]
        ]
    },
    {
        "id": "dfc4380a19b4d4cc",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 920,
        "y": 200,
        "wires": []
    },
    {
        "id": "93fd7fdfe19f9209",
        "type": "zigbee2mqtt-get",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "state": "0",
        "x": 560,
        "y": 200,
        "wires": [
            [
                "077a9abae383f024"
            ]
        ]
    },
    {
        "id": "077a9abae383f024",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = msg.payload.brightness-50;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 740,
        "y": 200,
        "wires": [
            [
                "dfc4380a19b4d4cc"
            ]
        ]
    },
    {
        "id": "43d6067a8e026fec",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"+50\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 320,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "e666d44b7b131d3e",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"-50\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 280,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "fba10e4b7c87bb54",
        "type": "zigbee2mqtt-out",
        "z": "7ae9230582bf5831",
        "name": "",
        "server": "d51526c1d3f21365",
        "friendly_name": "0x000b57fffe4960e8",
        "device_id": "0x000b57fffe4960e8",
        "command": "brightness_move",
        "commandType": "z2m_cmd",
        "payload": "payload",
        "payloadType": "msg",
        "transition": 0,
        "x": 820,
        "y": 340,
        "wires": []
    },
    {
        "id": "69f3c1ddc48ca93c",
        "type": "function",
        "z": "7ae9230582bf5831",
        "name": "",
        "func": "msg.payload = \"stop\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 360,
        "wires": [
            [
                "fba10e4b7c87bb54"
            ]
        ]
    },
    {
        "id": "d51526c1d3f21365",
        "type": "zigbee2mqtt-server",
        "name": "",
        "host": "192.168.1.59",
        "mqtt_port": "1884",
        "mqtt_username": "z2m",
        "mqtt_password": "BdoseXmoNi5OpOJsYEdY",
        "tls": "",
        "usetls": false,
        "base_topic": "zigbee2mqtt"
    }
]

erledigt

ich habe mir nicht allzu viele Gedanken gemacht, um ehrlich zu sein :slight_smile:

Danke @spenceur! Lasst uns jetzt abstimmen lassen :slight_smile: