i3 länger als long-push -> Event "blank" und Eventcounter Frage

  • Hallo,


    ich habe folgendes beobachtet,


    drücke ich kurz, wird der Eventcounter um eins erhöht und der Event "S" gemeldet.

    drücke ich lang, wird der Eventcounter um eins erhöht und der Event "L" gemeldet.

    Perfekt, so solls sein :)

    Drücke ich länger als longpush-duration wird der Eventcounter erhöht und der Event ist leer.

    Was auch ok ist, aber lasse ich dann die Taste los wird erst ca. 3 Sekunden später nochmals der Eventcounter erhöht.

    Warum ist das so?


    Folgender Anwendungsfall :

    Ich möchte eine Lampe dimmen.


    pushing short => 5%

    pushing long => 30%

    pushing länger als long-push (event is blank) => dimmer soll von 0% langsam auf 100% rampen.

    Wenn ich den Taster loslasse soll das dimmen stoppen. Was aber nicht geht, weil es keine sofortige Information gibt, dass der Taster losgelassen wurde (leider erst 3Sekunden später).

    Mir fehlt der Status "Taste wurde losgelassen".


    War das irgendwie verständlich wo mein Probelm liegt ? :)


    i3 with FW 1.8.3 and Button-Mode momentrary

    Shelly Adapter version: 4.0.3

    CoAP or MQTT protocol: COAP

    Node version: v12.16.3

    Operating system: Ubuntu 18.04.4

  • Hallo zmaier,


    was passiert den mit dem "input-state" des jeweiligen Eingangs? Wird der auch erst so spät zurückgesetzt?

    Wie/wo wertest Du die Signale/Werte denn aus?

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Warum ist das so?

    In der neuen Firmware (1.9) gibt es dafür Optionen, wie lange ein Longpush mindestens und maximal dauern darf..

    pasted-from-clipboard.png


    In der aktuellen 1.83 gibt es meines Wissens aber zumindest den Max-Wert, den müsstest du mal testweise hochschrauben..

    Wenn der Push länger als dort eingestellt dauert, dann gibt es ein "unbekanntes" Event, deshalb wird der Zähler hochgedreht, aber eben nicht als Longpush interpretiert.

    7x Shelly1, 6x Shelly 1PM, 9x Shelly 2.5, 3x Shelly2, 1x Shelly EM, 2x ShellyDimmer, 2x ShellyDimmer2, 1x Shelly 3EM, 1x Shelly4Pro, 1x Shelly Button1, 4x Shelly Duo, 3x ShellyVintage, 1x Shelly Bulb, 1x ShellyPlug, 2x ShellyRGBW2, 1x Shelly PlugS. 1x Shelly Sense, 1x Shelly i3, 1x Shelly Gas, 1x Shelly H&T, 1x Shelly Flood, 1x ShellyDoor&Window2, 1x TempAddon,

  • Hallo,


    diese Einstellung gibt es auch in der V1.83. Aber das beantwortet nicht meine Frage und erklärt leider auch nicht das beobachtete Verhalten.


    Longpush funktioniert ja wie gewollt, aber ein push länger als Longpush setzt das Event auf "unbekannt" und setzt den Counter hoch noch während der Taster gedrückt ist - das ist auch noch ok, aber wenn ich dann den Taster loslasse gibt es keine zusätzlich sofortige Information dass jetzt der Taster nicht mehr gedrückt ist.


    Perfekt wäre:

    Ich drücke die Taste länger als max-long-push, dann erfolt ein Eventcount, der Event-Typ geht auf "unbekannt" noch während der Taster gedrückt ist, und dann wenn ich den Taster loslasse erfolgt sofort nocheinmal ein Eventcount.

    Damit könnte ich meinen Anwendungsfall realisieren.

  • Hallo,


    Der Inputstate ändert sich beim Loslassen nicht da button Type Momentary eingestellt ist.

    Ich hab das mal ausprobiert...

    Da ich meine i3 nur im Toggle-Modus auswerte, bei dem der Input-State immer dem aktuellen Signal am Eingang abbildet, kannte ich diese "Reaktionen" bei Momentary noch gar nicht...


    diese Einstellung gibt es auch in der V1.83. Aber das beantwortet nicht meine Frage und erklärt leider auch nicht das beobachtete Verhalten.

    Ja, die Option wird in der App zwar angeboten, aber funktioniert noch nicht (so wie der Temperaturoffset beim AdOn). Wird wohl erst beim kommenden Update real.

    Auswertung erfolgt im iobroker mitels blockly script.

    Wenn nun mal außer Short-, Long- kein Overlong-Press zur Verfügung gestellt wird - was spricht (zumindest aktuell, bis sich da vielleicht noch was tut) dagegen den i3 im Toggle-Modus zu betreiben und den Input-State im Blockly auch zeitlich auszuwerten?

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Ich "klöppel" da grad ein Blockly zusammen . ..

    Reicht dem Dimmer eine Helligkeitsangabe zum Ein-/Ausschalten (z.B. 100% = an + maximal hell und 0% = aus)?

    Oder muss da noch ein ON/OFF gesetzt werden?

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Longpush funktioniert ja wie gewollt, aber ein push länger als Longpush setzt das Event auf "unbekannt" und setzt den Counter hoch noch während der Taster gedrückt ist - das ist auch noch ok, aber wenn ich dann den Taster loslasse gibt es keine zusätzlich sofortige Information dass jetzt der Taster nicht mehr gedrückt ist.

    ok, jetzt hab ichs verstanden :P ich guck mal, ob ich das in English so verpackt kriege, dass die Entwickler es verstehen..

    Eulhofer
    http://<ip>/light/0?dim=up
    oder
    http://<ip>/light/0?dim=down
    reicht, ein zusätzliches On ist nicht notwendig..

    Oder wolltest du das über %-Angaben lösen?

    7x Shelly1, 6x Shelly 1PM, 9x Shelly 2.5, 3x Shelly2, 1x Shelly EM, 2x ShellyDimmer, 2x ShellyDimmer2, 1x Shelly 3EM, 1x Shelly4Pro, 1x Shelly Button1, 4x Shelly Duo, 3x ShellyVintage, 1x Shelly Bulb, 1x ShellyPlug, 2x ShellyRGBW2, 1x Shelly PlugS. 1x Shelly Sense, 1x Shelly i3, 1x Shelly Gas, 1x Shelly H&T, 1x Shelly Flood, 1x ShellyDoor&Window2, 1x TempAddon,

  • Seven of Nine ... keine Ahnung, ich hab keine Dimmer und zmaier schrieb eingangs was von 5% bei short, 30% bei long etc... da dachte ich man steuert die über %-Angaben an...

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Seven of Nine : ich hab mit meinen rudimentären Englischkenntnissen eine Anfrage an shelly geschickt, mal schaun was da zurückkommt.

    ok, dann warte ich mal was die Jungs vom Support schreiben..

    7x Shelly1, 6x Shelly 1PM, 9x Shelly 2.5, 3x Shelly2, 1x Shelly EM, 2x ShellyDimmer, 2x ShellyDimmer2, 1x Shelly 3EM, 1x Shelly4Pro, 1x Shelly Button1, 4x Shelly Duo, 3x ShellyVintage, 1x Shelly Bulb, 1x ShellyPlug, 2x ShellyRGBW2, 1x Shelly PlugS. 1x Shelly Sense, 1x Shelly i3, 1x Shelly Gas, 1x Shelly H&T, 1x Shelly Flood, 1x ShellyDoor&Window2, 1x TempAddon,

  • Hallo zmaier,


    hier das Blockly-Konstrukt:

    Blockly.jpg


    Blockly-Dimmer.txt


    Importiere den Inhalt der txt-Datei in deine Skripte.

    Unter allen Kommentaren, die mit -> beginnen musst Du die bei dir gültigen/entsprechenden Objekt-IDs auswählen. (mein Input ON/OFF muss dein i3-Input sein, meine Helligkeit muss deine Dimmeransteuerung sein).

    Die Zahl ganz oben hinter "maxShortduration" gibt die Maximaldauer in 0,1s an bis zu der ein Tasterdruck als Shortpress bewertet wird (hier 6 = 600ms).

    Die Zahl ganz oben hinter "maxLongduration" gibt die Maximaldauer in 0,1s an bis zu der ein Tasterdruck als Longpress bewertet wird (hier 15 = 150ms = 1,5s).

    "Shortdim" ist der Dimmwert, der bei erkanntem Shortpress gesetzt wird (hier 5%).

    "Longdim" ist der Dimmwert, der bei erkanntem Longpress gesetzt wird (hier 30%).

    "Dimspeed" ist die Steigerung und damit die Geschwindigkeit der Helligkeitserhöhung bei längerem Tastendruck als Longpress (hier Erhöhung um 2% je 0,1s = von 0% bis 100% in Longpress + 5 Sekunden (hier 6,5s))

    Nach Import das Skript speichern und noch nicht starten.

    Warum auch immer ist es nützlich erst nochmal die Instanz neu zu starten (vielleicht muss da mein ID/Variablenmüll erst noch eliminiert werden).

    Dann Skript starten und hoffen, dass es so klappt wie bei mir.


    Ich habe zum Testen eine SPS mit verschiedenen Signalzeiten (Short, Long, OverLong, MoreOverLong) programmiert und den i3-Eingang damit beschaltet.

    Im ioBroker habe ich mir - da ich keinen Dimmer habe - Uservariablen steuern lassen und so die Dimmwerte ausgelesen, die je nach Tasterdrucklänge ausgegeben wurden.


    Ach ja - Du hattest nicht beschrieben, wie du die Lampe wieder ausschalten willst.

    Ich habe das so programmiert, dass bei einem Shortpress geprüft wird, ob die Lampe an ist. Ist sie an, wird sie ausgeschaltet. War sie aus, werden die 5% gesetzt.

    Ist die Lampe an, und du machst einen Tastendruck über maxLongduration, dann wird der Dimmwert einfach weiter erhöht.

    Also wenn da schon 5% waren, dann wird mit nächstem Overlongpress alle 0,1s um 2% erhöht bis max 100%.

    Und wenn da schon 30% waren, dann wird mit dem nächsten Overlongpress alle 0,1s um 2% erhöht bis max 100%.

    Oder wenn Du mit dem ersten OverLong bis auf 65% hochgegangen bist, dann macht der nächste OverLong da weiter und es wird immer heller - fängt also nicht immer von 0% an.

    Und egal wie der Wert vorher über 0% war - Longpress steuert auf 30%, aber Shortpress schaltet erstmal aus.


    Probier mal aus - war spannend für mich das zusammenzuklöppeln.

    Ich hoffe es funktioniert bei Dir.


    Ach ja - der Input des I3 muss auf toggle konfiguriert sein, sonst geht gar nichts...


    Viele Späße - gute Nacht.

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Hallo zmaier,


    ich glaube nicht, dass du zu "blöd" bist - die Meldung sagt uns ja, wo es klemmt.


    Welche Version hat deine Javascript-Instanz denn?

    Ich habe (keine Ahnung, wie ich da rangekommen bin 9.8.3).

    Wenn Du 9.8.4 hast, dann kann es sein, dass der block-type "wait" noch nicht vorhanden ist.

    Guck doch mal bei den Blöcken "Timeouts", ob da der "Pause"-Block zu finden ist (im Blockly-Bild fast ganz unten). Den habe ich nur gesetzt, da es immer einen Moment dauert, bis der Blockly-Befehl auch beim Empfänger (bei mir die Uservariablen) ankommt. ist in der Praxis vielleicht gar nicht nötig.


    Ich habe den mal rausgenommen - probier nun mal.


    DimLongpush.txt

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.

  • Das freut mich - hab auch viel gelernt beim zusammenstellen....

    Viele Grüße,

    Wolfgang

    .

    .

    .

    Nachdem ich meine Haussteuerung jahrelang ausschließlich mit einer TSX3722-SPS (Telemecanique) verkabelt hatte und mittlerweile dezentral auf die Kleinsteuerung EasyE4 von Eaton umrüste, bin ich nun auch dem Shelly-Wahn verfallen.

    Ich freue mich die Systeme miteinander zu verknüpfen und damit final Cloudverweigerer werden zu können.