GELÖST : SmartVisu zu FHEM converter für KNX Jalousie

Begonnen von Paradisebaker, 18 Februar 2017, 16:53:45

Vorheriges Thema - Nächstes Thema

Paradisebaker

Hallo
Ich bin neu hier und gerade dabei, mir meine bestehende KNX-Welt in FHEM und Smartvisu leichter/schöner zu machen.
Alle Geräte (Jalousien und Leuchten) sind schon in FHEM und können dort auch super bedient werden.
Smartvisu ist über Fronthem angebunden und Licht einschalten funktioniert schonmal.
Bei den Jalousien hab ich aber noch Probleme.
Ich kann rauf und runter fahren. Aber allein schon der stop-button funktioniert schon nicht, er wird zurzeit (wert 1) als "runterfahren" interpretiert.
Meiner Meinung nach stehe ich beim Converter an, ich weiss einfach nicht, wie ich mitgeben soll, dass die 2. GA angesprochen werden soll.
Hier die FHEM config der Jalousie:
define Jal.OG.Buero.Sued.Ost KNX 0/0/27:dpt1.008:updown 0/1/27:dpt1.001:stop 0/6/27:dpt1.001:shade 4/1/27:dpt5.001:pos 4/2/27:dpt5.001:tilt
attr Jal.OG.Buero.Sued.Ost IODev KNX
attr Jal.OG.Buero.Sued.Ost eventMap /off g1:Auf/on g2:Stop/on g1:Ab/on g3:Shade
attr Jal.OG.Buero.Sued.Ost group Jalousien
attr Jal.OG.Buero.Sued.Ost room Buero


Das GAD sieht so aus:
"Jal.OG.Buero.Sued.Ost.stop" : {
         "converter" : "OnOff",
         "device" : "Jal.OG.Buero.Sued.Ost",
         "type" : "item",
         "reading" : "state",
         "set" : "state"
      },


Im Smartvisu benutze ich den basic.shutter:
<div class="block">
                <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">

                        <div data-role="collapsible" data-collapsed="false">
                                <h3>Jalousie</h3>

                                {{ device.shutter ('Jal_OG.buero.ost.sued', 'Ost-Süd', 'Jal_OG.buero.ost.sued.move', 'Jal_OG.buero.ost.sued.stop', 'Jal_OG.buero.ost.sued.pos',
                                '', 'buero_jalousie_lamelle', 'Jal_OG.buero.ost.sued.shade', 0, 255, 5, 'full') }}
                        </div>

                        <div data-role="collapsible">
                                <h3>Einstellungen</h3>

                                <p></p>
                        </div>

                </div>
        </div>


Wie bekomme ich es hin, dass die Werte weiter hinten in der widget-definition richtig an FHEM weitergegeben werden?
Vielen Dank schonmal für eure Hilfe

raman

Hallo,
im Widget device.shutter ist der Wert für Stop fest mit 1 definiert und kann über die eigene Definition nicht geändert werden!
Die 1 wird dann vom OnOff-Converter in on gewandelt.

Entweder du nimmst device.shutter als Vorlage für ein eigenes Widget und passt es für deine Bedürfnisse an: aus der 1 ein 'stop' machen (wenn das für deinen Fall der richtige Befehl ist).
Andere Möglichkeiten auf FHEM-Seite wären ein eigener Konverter oder ein Dummy mit entsprechendem Notify bzw. DOIF, mit dem du das
Stop-Event auswertest.

Die erste Möglichkeit ist wahrscheinlich am einfachsten umzusetzen!

Paradisebaker

Hallo raman
Vielen Dank, das war genau der Tipp, den ich gebraucht habe.
Nach ein bisschen Tüfteln funktioniert das jetzt genau so, wie ich es wollte.
Hier mal die entsprechende Config, vielleicht gibt es ja auch noch andere, die KNX-Jalousien so einbinden wollen.
(Ich kann mir nicht so ganz vorstellen, dass ich der Einzige sein sollte).

Das Device mit den 5 GAs (KNX : move, lamelle, position, status position, status lamelle)
define Jal.OG.Buero.Sued.Ost KNX 0/0/27:dpt1.008:updown 0/1/27:dpt1.001:stop 0/6/27:dpt1.001:shade 4/1/27:dpt5.001:pos 4/2/27:dpt5.001:angle
attr Jal.OG.Buero.Sued.Ost IODev KNX
attr Jal.OG.Buero.Sued.Ost eventMap /off g1:Auf/on g2:Lamab/off g2:Lamauf/on g1:Ab/on g3:Shade
attr Jal.OG.Buero.Sued.Ost group Jalousien
attr Jal.OG.Buero.Sued.Ost room Buero
attr Jal.OG.Buero.Sued.Ost webCmd Auf:Lamauf:Lamab:Ab:::Shade


Hier die entsprechende Fronthem config:

      "Jal.OG.Buero.Sued.Ost.shade" : {
         "device" : "Jal.OG.Buero.Sued.Ost",
         "set" : "state",
         "converter" : "Direct",
         "type" : "item",
         "reading" : "state"
      },
      "Jal.OG.Buero.Sued.Ost.angle" : {
         "device" : "Jal.OG.Buero.Sued.Ost",
         "set" : "state",
         "converter" : "NumDisplay",
         "reading" : "angle-get",
         "type" : "item"
      },
      "Jal.OG.Buero.Sued.Ost.pos" : {
         "type" : "item",
         "reading" : "pos-get",
         "converter" : "NumDisplay",
         "device" : "Jal.OG.Buero.Sued.Ost",
         "set" : "state"
      },
      "Jal.OG.Buero.Sued.Ost.stop" : {
         "type" : "item",
         "reading" : "state",
         "converter" : "Direct",
         "device" : "Jal.OG.Buero.Sued.Ost",
         "set" : "state"
      },
      "Jal.OG.Buero.Sued.Ost.move" : {
         "set" : "state",
         "device" : "Jal.OG.Buero.Sued.Ost",
         "converter" : "Direct",
         "type" : "item",
         "reading" : "state"
      }


Das modifizierte widget (widget_jalousie.html)

{% macro one(id, txt, item_move, item_stop, item_pos, item_shift, item_angle, item_saved, min, max, step, mode) %}
        {% import "basic.html" as basic %}
        {% set uid = uid(page, id) %}

        <div class="blind">
                <table align="center" cellpadding="1">
                        <tr>
                                <td valign="center">
                                        <div class="set">{{ basic.button(id|_('up'), item_move, '', 'control_arrow_up.svg', 'Auf', 'mini') }}</div>
                                        <div class="set">{{ basic.button(id~'stop', item_stop, '', 'arrow-u', 'Lamauf', 'micro') }}</div>
                                        <div>{{ basic.button(id~'saved1', item_saved, 'Shade', '', 'Shade', 'micro') }} </div>
                                        <div class="set">{{ basic.button(id~'stop', item_stop, '', 'arrow-d', 'Lamab', 'micro') }}</div>
                                        <div class="set">{{ basic.button(id~'down', item_move, '', 'control_arrow_down.svg', 'Ab', 'mini') }}</div>
                                </td>
                                <td rowspan="3" align="center" class="pos"> {{ txt }}
                                        {{ basic.shutter(id, item_pos, item_angle, min, max, step, mode) }}</td>

                        </tr>
                </table>
        </div>

{% endmacro %}


Und zuletzt noch die Portion der SmartVISU page:
<div data-role="collapsible" data-collapsed="false">
                                <h3>Jalousie</h3>
                                {% import "widget_jalousie.html" as jalousie %}

                                {{ jalousie.one ('Jal.OG.Buero.Sued.Ost', 'Ost-Süd', 'Jal.OG.Buero.Sued.Ost.move', 'Jal.OG.Buero.Sued.Ost.stop', 'Jal.OG.Buero.Sued.Ost.pos',
                                '', 'Jal.OG.Buero.Sued.Ost.angle', 'Jal.OG.Buero.Sued.Ost.shade', 0, 100, 5, 'half') }}
                        </div>


Nochmal vielen Dank für den Tipp

LG
Markus

schnibberle

Zitat von: Paradisebaker am 18 Februar 2017, 16:53:45

Hier die FHEM config der Jalousie:
define Jal.OG.Buero.Sued.Ost KNX 0/0/27:dpt1.008:updown 0/1/27:dpt1.001:stop 0/6/27:dpt1.001:shade 4/1/27:dpt5.001:pos 4/2/27:dpt5.001:tilt
attr Jal.OG.Buero.Sued.Ost IODev KNX
attr Jal.OG.Buero.Sued.Ost eventMap /off g1:Auf/on g2:Stop/on g1:Ab/on g3:Shade
attr Jal.OG.Buero.Sued.Ost group Jalousien
attr Jal.OG.Buero.Sued.Ost room Buero


Das GAD sieht so aus:
"Jal.OG.Buero.Sued.Ost.stop" : {
         "converter" : "OnOff",
         "device" : "Jal.OG.Buero.Sued.Ost",
         "type" : "item",
         "reading" : "state",
         "set" : "state"
      },


Im Smartvisu benutze ich den basic.shutter:
<div class="block">
                <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">

                        <div data-role="collapsible" data-collapsed="false">
                                <h3>Jalousie</h3>

                                {{ device.shutter ('Jal_OG.buero.ost.sued', 'Ost-Süd', 'Jal_OG.buero.ost.sued.move', 'Jal_OG.buero.ost.sued.stop', 'Jal_OG.buero.ost.sued.pos',
                                '', 'buero_jalousie_lamelle', 'Jal_OG.buero.ost.sued.shade', 0, 255, 5, 'full') }}
                        </div>

                        <div data-role="collapsible">
                                <h3>Einstellungen</h3>

                                <p></p>
                        </div>

                </div>
        </div>



Schonmal vielen Dank für deinen Ansatz, der nach langer Google Suche der einzige im Netz ist.

Ich kämpfe auch mit meiner KNX Integration in FHEM.

Habe einen MDT KNX Jalousiekator und würde den gerne auch per FHEM steuern :
Ich habe insgesamt 5 Gruppenadressen
3/1/120:dpt1.008:updown - Fahrt Hoch/Runter
3/1/121:dpt1.001:stop - Stop/Schritt (Also stoppen der Jalousie sowie Lamellenänderung)
3/1/122:dpt5.001:pos - Absolute Position senden (z.B. Jalousie auf 60%)
3/1/123:dpt5.001:pos-set - Rückmeldung Absolute Positition (Meldet während der Fahr und am Ende die aktuelle Position der Jalousie)
3/1/124:dpt5.001:angle - Absolute Position der Lamelle senden (zB. Lamellen auf 20%)
3/1/125:dpt5.001:angle-set - Rückmeldung Absolute Lamellenposition (Meldet während der Fahrt und am Ende die Position der Lamelle)

Wie müsste ich hier die Eventmap anpassen ?
   eventMap   /off g1:Auf/on g2:Lamab/off g2:Lamauf/on g1:Ab/on g3:Shade
Wie bekomme ich das sauber in eine FTUI Visu ?