VIS – Taster

In diesem kleinen Artikel zeige ich Dir, wie Du Dir für VIS einen Tast-Mechanismus erstellen kannst.

Bevor wir mit der Implementierung des Tasters in VIS beginnen können, müssen wir zunächst prüfen ob der Adapter vis-hqwidgets für das Widget installiert wurde. Falls das Widget noch nicht installiert ist, einfach kurz über die Adapter-Liste installieren. In den Instanzen sollten wir dann den folgenden Eintrag finden:

 

Jetzt können wir mit der Implementierung beginnen. Im ersten Schritt legen wir uns einen beliebigen Datenpunkt in den Objekten an, mit dem wir später den Neustart über die View starten können. Ich habe in meinen Objekten dazu folgenden Datenpunkt angelegt:

Datenpunkte.0.System.control.ButtonA

Alternativ könnt Ihr den Datenpunkt auch unter den JavaScripts Objekten anlegen.

 

Im nächsten Schritt öffnen wir den VIS-Editor mit der gewünschte View und ziehen das Widget hqWidgets on/off per Drag&Drop auf die View.

 

In der Konfiguration des Widgets tragen wir nun die zu schaltende Object ID sowie die Eigenschaften für Min und Max ein. Wichtig ist hier zudem die  Kontrollbox „Taster“, welche wir aktivieren müssen. Zudem habe ich noch das Icon des Widgets angepasst. Dieser Schritt ist aber optional.

 

Im nächsten Schritt wechseln wir in den Bereich Scripts. In den Scripts erstellen wir nun ein neues JavaScript, in das wir folgenden Code einfügen:

function buttonApressed() {
  log('buttonApressed...', 'info');
} 

on({id: 'Datenpunkte.0.System.control.ButtonA', val: true, change: 'ne'}, function (obj) {
  buttonApressed();
});

Nach dem Einfügen des Script-Codes speichern wir das neue Script und aktiveren es. Falls ihr einen anderen Datenpunkt gewählt habt, muss dieser hier in der On-Subscription angepasst werden.

Im Script wurde eine On-Subscription auf den Datenpunkt Datenpunkte.0.System.control.ButtonA angelegt, welche nur auslöst, wenn der Datenpunkt auf „true“ steht. Mittels der Subscription wird dann der hinterlegte Code im Body ausgeführt. In unserem Fall wird die Funktion buttonApressed gestartet, welche in das ioBroker Log einen Eintrag schreibt.

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

2 Gedanken zu „VIS – Taster

  • 3. Juni 2020 um 8:41
    Permalink

    Hallo Matthias,

    da ich (noch) ein Sktipt Neuling bin wäre es für mich interessant zu wissen wie man ein auzsprechendes Gerät (Homematic HMiP-PCBS) einbindet/ansteuert.
    Viele Grüsse

    Antwort
  • 3. November 2020 um 23:22
    Permalink

    Hallo Matthias,
    kann ich den vis Taster so einstellen, wie in Fhem, damit er „on, sleep 0,5, off“ sendet?
    Fhem: set WrD_1001_10701 on,sleep 0.5 quiet,set WrD_1001_10701 off)

    Beispiel in Fhem
    # R107 – Büro – Taster Start
    define TA10701 dummy
    setuuid TA10701 5c648273-f33f-35f0-eea2-86313fddcbd86968
    attr TA10701 alias TA10701 Deckenlampe
    attr TA10701 devStateIcon on:ios-NACK:on off:ios-off:off
    attr TA10701 icon light_downlight
    attr TA10701 room EG-107-Buero
    attr TA10701 webCmd on

    Daten für S7
    define n_LR10701 notify TA10701:.* IF ([TA10701] eq „on“) \
    (set WrD_1001_10701 on,sleep 0.5 quiet,set WrD_1001_10701 off)
    setuuid n_LR10701 5c648273-f33f-35f0-735a-42bf6a10c6670cef
    attr n_LR10701 alias n_LR10701
    attr n_LR10701 disable 0
    attr n_LR10701 room EG-107-Buero,Haus_EG

    Daten an S7
    define WrD_1001_10701 S7_DWrite db 1001 7.1
    setuuid WrD_1001_10701 5c648273-f33f-35f0-85d4-14487d17c28706c6
    attr WrD_1001_10701 IODev myS7
    attr WrD_1001_10701 alias WrD_1001_10701 7.1 Deckenlampe
    attr WrD_1001_10701 event-on-change-reading state
    attr WrD_1001_10701 room EG-107-Buero,Haus_EG
    attr WrD_1001_10701 webCmd on:off

    Gruß Guido

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.