Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Nouveau composant KNXWEB
#1
Hello à tous,

J'ai développé un nouveau composant pour knxweb qui permet d'effectuer un send value avec affichage d'un status (binaire).

Dans mon cas, il m'était nécessaire pour :

Envoyer une valeur numérique correspondant au mode timer que j'utilise (0 = Manuel, 1 = timer 1, 2 = timer 2) et avoir le feedback à l'aide d'un objet binaire (qui est calculé à l'aide d'une rule assez simple dans linknx).

Les deux fichiers de l'archive s'ajoutent donc dans /js et afin de les utiliser les lignes suivantes sont à ajouter :

dans design.html :

Code :
<script type="text/javascript" src="js/csendFB.js"></script>

et dans designedit.html :
Code :
<script type="text/javascript" src="js/csendFB.js"></script>
et
Code :
<script type="text/javascript" src="js/editcsendFB.js"></script>


Pour info : je peux donc de la sorte mettre le chauffage sur mode timer 1, timer 2 ou manuel dans une pièce à l'aide de ceci :

Code :
<objects>
        <object type="5.xxx" id="heating_timeMode_Office" gad="13/7/1" init="persist">Mode time Bureau</object>
        <object type="1.001" id="heating_timeMode1_Office" gad="13/6/1" init="request">Mode time 1 Bureau</object>
        <object type="1.001" id="heating_timeMode2_Office" gad="13/6/51" init="request">Mode time 2 Bureau</object>
        <object type="1.001" id="heating_timeModeManual_Office" gad="13/6/1" init="request">Mode time Manual Bureau</object>

...
...

        <object type="1.001" id="mode_confort_Office" gad="13/1/1" init="request">Mode Confort Bureau
            <listener gad="13/0/1" />
        </object>
        <object type="1.001" id="mode_night_Office" gad="13/3/1" init="request">Mode Nuit Bureau
            <listener gad="13/2/1" />
        </object>
</objects>

Règles pour les timers

Code :
<rules>
<!--Rule for timer-->
<rule id="heating_office_time1">
            <condition type="and">
                <condition type="object" id="heating_timeMode_Office" value="1" />
                <condition type="or">
                    <condition type="timer" trigger="true">
                        <at hour="5" min="30" exception="no" wdays="12345" />
                        <until hour="8" min="0" />
                    </condition>
                    <condition type="timer" trigger="true">
                        <at hour="6" min="30" wdays="67" />
                        <until hour="11" min="0" />
                    </condition>
                    <condition type="timer" trigger="true">
                        <at hour="6" min="30" exception="yes" />
                        <until hour="11" min="0" />
                    </condition>
                </condition>
            </condition>
            <actionlist>
                <action type="set-value" id="mode_night_Office" value="off" />
                <action type="set-value" id="mode_confort_Office" value="on" />
            </actionlist>
            <actionlist type="on-false">
                <action type="set-value" id="mode_night_Office" value="on" />
                <action type="set-value" id="mode_confort_Office" value="off" />
            </actionlist>
        </rule>
        <rule id="heating_office_time2">
            <condition type="and">
                <condition type="object" id="heating_timeMode_Office" value="2" />
                <condition type="or">
                    <condition type="timer" trigger="true">
                        <at hour="6" min="30" exception="no" wdays="1234567" />
                        <until hour="11" min="0" />
                    </condition>
                </condition>
            </condition>
            <actionlist>
                <action type="set-value" id="mode_night_Office" value="off" />
                <action type="set-value" id="mode_confort_Office" value="on" />
            </actionlist>
            <actionlist type="on-false">
                <action type="set-value" id="mode_night_Office" value="on" />
                <action type="set-value" id="mode_confort_Office" value="off" />
            </actionlist>
        </rule>

Règle pour les feedbacks


Code :
<rule id="heating_timeMode1_Office_FB">
            <condition type="object" id="heating_timeMode_Office" value="1" trigger="true" />
            <actionlist>
                <action type="set-value" id="heating_timeModeManual_Office" value="off" />
                <action type="set-value" id="heating_timeMode2_Office" value="off" />
                <action type="set-value" id="heating_timeMode1_Office" value="on" />
            </actionlist>
        </rule>
        <rule id="heating_timeMode2_Office_FB">
            <condition type="object" id="heating_timeMode_Office" value="2" trigger="true" />
            <actionlist>
                <action type="set-value" id="heating_timeModeManual_Office" value="off" />
                <action type="set-value" id="heating_timeMode2_Office" value="on" />
                <action type="set-value" id="heating_timeMode1_Office" value="off" />
            </actionlist>
        </rule>
        <rule id="heating_timeModeManual_Office_FB">
            <condition type="object" id="heating_timeMode_Office" value="1" trigger="true" />
            <actionlist>
                <action type="set-value" id="heating_timeModeManual_Office" value="on" />
                <action type="set-value" id="heating_timeMode2_Office" value="off" />
                <action type="set-value" id="heating_timeMode1_Office" value="off" />
            </actionlist>
        </rule>

Enfin en gros, je pourrais soit contrôler la température en manuel soit selon deux configurations horaires définies.

J'aurais aimé pouvoir configurer les rules horaires directement via une interface user friendly (un peu comme un agenda) mais ça sera sûrement pour plus tard.

Qu'en pensez vous?


Pièces jointes
.zip   csendFB.zip (Taille : 1,89 Ko / Téléchargements : 2)
Répondre
#2
Salut,

tu dois avoir un problème dans ta rule "heating_timeModeManual_Office_FB"
la condition devrait être value="0" et pas "1" je pense
comme ça :
Code :
<rule id="heating_timeModeManual_Office_FB">
  <condition type="object" id="heating_timeMode_Office" value="0" trigger="true" />
  <actionlist>
    <action type="set-value" id="heating_timeModeManual_Office" value="on" />
    <action type="set-value" id="heating_timeMode2_Office" value="off" />
    <action type="set-value" id="heating_timeMode1_Office" value="off" />
  </actionlist>
</rule>

pourquoi ne pas avoir utilisé le widget thermostat avec les Modes de chauffage ?
au lieu d'avoir des valeurs 0/1/2 il y a les valeurs frost/night/standby/comfort
et donc idem en fonction de ces valeurs et timer faire ce que tu veux dans les rules

tu ne montre pas la partie "design.xml" de knxweb je suppose que tu as 3 "BP"/images dans knxweb 1 pour chaque "état" et pas 1 seul donnant l'état "globale"

Citation :J'aurais aimé pouvoir configurer les rules horaires directement via une interface user friendly (un peu comme un agenda) mais ça sera sûrement pour plus tard.

Qu'en pensez vous?

c'est une idée intéressante pour représenter les rules avec uniquement des conditions avec timer mais je pense assez limitée
dès qu'il y a une condition autre, comme ce que tu utilise, cela complique la modélisation / saisie
gérer les AND/OR/Not puis tous les types de conditions ... et doit-on limiter à un nombre définit de condition timer et un nombre de conditions autre (non timer) ...
il faut pouvoir modifier créer ces rules pas uniquement les afficher sinon l'intérêts reste limité
l'affichage est "relativement simple" (avec google agenda par exemple) mais la saisie modification ... pas facile de faire simple et "user-friendly" ... (sans parlé du WAF...)
si vous avez des idées n'hésitez pas à proposer ...

@+
Anthony.

Répondre
#3
(01/12/2011, 16:42:06)Energy01 a écrit : tu dois avoir un problème dans ta rule "heating_timeModeManual_Office_FB"
la condition devrait être value="0" et pas "1" je pense
comme ça :
Code :
<rule id="heating_timeModeManual_Office_FB">
  <condition type="object" id="heating_timeMode_Office" value="0" trigger="true" />
  <actionlist>
    <action type="set-value" id="heating_timeModeManual_Office" value="on" />
    <action type="set-value" id="heating_timeMode2_Office" value="off" />
    <action type="set-value" id="heating_timeMode1_Office" value="off" />
  </actionlist>
</rule>

Oups, j'ai fait un copier/coller et j'ai oublié de changer la valeur en 0.
Merci Wink

(01/12/2011, 16:42:06)Energy01 a écrit : pourquoi ne pas avoir utilisé le widget thermostat avec les Modes de chauffage ?
au lieu d'avoir des valeurs 0/1/2 il y a les valeurs frost/night/standby/comfort
et donc idem en fonction de ces valeurs et timer faire ce que tu veux dans les rules

J'utilise en plus le widget thermostat afin d'avoir un contrôle manuel sur les modes.

De plus j'utilise 3 boutons comme je le fais en réalité sur les BP du thermostat (le 4ème étant utilisé pour basculer manuellement entre les modes).

(01/12/2011, 16:42:06)Energy01 a écrit : tu ne montre pas la partie "design.xml" de knxweb je suppose que tu as 3 "BP"/images dans knxweb 1 pour chaque "état" et pas 1 seul donnant l'état "globale"

En effet, j'ai 3 boutons.

(01/12/2011, 16:42:06)Energy01 a écrit : c'est une idée intéressante pour représenter les rules avec uniquement des conditions avec timer mais je pense assez limitée
dès qu'il y a une condition autre, comme ce que tu utilise, cela complique la modélisation / saisie
gérer les AND/OR/Not puis tous les types de conditions ... et doit-on limiter à un nombre définit de condition timer et un nombre de conditions autre (non timer) ...
il faut pouvoir modifier créer ces rules pas uniquement les afficher sinon l'intérêts reste limité
l'affichage est "relativement simple" (avec google agenda par exemple) mais la saisie modification ... pas facile de faire simple et "user-friendly" ... (sans parlé du WAF...)

Pour ce qui est du WAF, ce n'est pas un problème, je peux faire à peu près tout ce que je veux pour la maison car j'ai du renoncer à faire parler la maison et lui donner un prénom (féminin cela va sans dire).

Un peu comme S.A.R.A.H dans Eureka (pour ceux qui connaissent)

Enfin bref, l'idée était d'avoir une fonction pour simplement appeler un paramètre horaire genre mode confort de telle à telle heure le reste du temps, mode nuit. Les paramètres horaires seraient uniquement dispo sur la web interface mais madame n'ira pas y mettre sont nez.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)