Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
LINKNX - KNXWEB2 - simulation de presence
#1
Bonjour à tous,

J'aimerai mettre en place une simulation de présence pendant les longues périodes d'absence à la maison (durant les vacances par exemple).
J'aimerai creuser l'idée d'enregistrer tous les allumages/extinctions ainsi que les ouvertures des volets durant une semaine de présence pour les rejouer durant une semaine d'absence.
Autant je vois comment enregistrer toutes les actions grâce aux logs en base SQL, autant je cherche la meilleure façon de rejouer ces actions..

Quelqu'un aurait il déjà explorer cela ?
Quelles sont vos expériences sur le sujet (simulation de présence) ?

Merci d'avance!

Vincent
Répondre
#2
J'ai implémenté ça avec pKNyX :

http://www.pknyx.org/browser/pknyx/examp...eplayFB.py
Frédéric

https://pknyx.gbiloba.org (de nouveau en ligne !)
Répondre
#3
Salut,

intéressante l'idée ...

il doit être possible de récupérer les infos dans la base mysql avec un ou plusieurs script lua dans des rules mais pas sur que cela soit "simple"

une idée comme ça :
peut-être faire une rule par object qui appel un script php ( ou autre)
ce script va lire la valeur de l'object dans la base mysql à "J-1semaine" puis mettre à jour la rule correspondante pour être executée au prochain changement d'état de cet object ( je suis pas si c'est clair !!)

@+
Anthony
Répondre
#4
(18/02/2015, 19:29:44)fma38 a écrit : J'ai implémenté ça avec pKNyX :

http://www.pknyx.org/browser/pknyx/examp...eplayFB.py

Hello,

Interessant ! mais n'ayant pas mis en place ton framework, et ayant déjà du mal à trouver le temps pour finaliser la configuration du trio, j'ai un peu peur de la somme de travail que cela représente pour le mettre en place Sad

(18/02/2015, 20:46:58)Energy01 a écrit : Salut,

intéressante l'idée ...

il doit être possible de récupérer les infos dans la base mysql avec un ou plusieurs script lua dans des rules mais pas sur que cela soit "simple"

une idée comme ça :
peut-être faire une rule par object qui appel un script php ( ou autre)
ce script va lire la valeur de l'object dans la base mysql à "J-1semaine" puis mettre à jour la rule correspondante pour être executée au prochain changement d'état de cet object ( je suis pas si c'est clair !!)

@+
Anthony

J'avoue percevoir l'idée mais d'assez loin Rolleyes
j'ai déjà un doute sur ma capacité à ecrire le script php (je sais scripter mais dans le monde Microsoft - powershell, vbs)
mais c'est surtout sur la derniere etape, comment peut-on mettre à jour une regle ? en passant par linknx-cmd ?
de mon côté, j'avais pensé à un script qui génére toutes les regles en parsant le fichier de log sur une periode donnée. Ce qui rejoint ton idée mais de maniere non dynamique
Répondre
#5
Ah, oui, la simulation de présence.
J'y ai déjà pensé aussi, et surtout après avoir lu les belles brochures sur papier glacé...
Les avantages de la domotique, quel beau sujet et le texte grandiloquent ne serait pas complet s'il ne mentionnait pas la simulation de présence pendant les vacances.

C'est bien joli, mais comment ca marche ? L'article n'en dit rien.
Voyons voir ce qui pourrait se cacher derrière cela.

Des régles qui répetent chaque jour le même scénario de lumières et volets? Un peu trop répétitif pour être crédible, même si on tient compte des heures de coucher de soleil...

Siemens propose un module enregistreur (5WG1345-1AB01 PRESENCE SIMULATION BLOCK N 345) qui peut surveiller 32 canaux avec un maximum de 5000 évènements et jusqu'à 4 semaines, pour les rejouer ensuite.
Pas mal, mais avec l'indispensable horloge temps réel à ajouter au bus,en fait, on n'est pas loin des 500 €.

Mais l'idée est bonne d'enregister des événements quand la maison est occupée et puis de les rejouer pendant l'absence des occupants. Mais pas tous les évènements: en cas d'absence, le thermostat, linknx et bien d'autres continuent à faire leur travail prévu, donc pas besoin d'enregistrer ni de rejouer ce que ces systèmes font, sous peine de créer une belle confusion.
Même remarque pour les retours d'état des actionneurs.

Bref, il reste donc à enregister principalement les boutons-poussoirs et des les rejouer.
Notons en passant qu'il est difficile de distinguer l'allumage d'une lampe par une action humaine dans la visualisation knxweb2 ou l'allumage de cette lampe par une règle linknx préenregistrée, sauf si elles utilisent des addresses de groupes distinctes.

Moyennant ces réserves, une solution simple et indépendante est d'utiliser un script pour enregister les activités, les filtrer et les rejouer plus tard.

Voici ma solution mise en place en lua.

Le script logger.lua écoute l'activité du bus via groupsocketlisten, filtre les messages et les enregistre dans un fichier journal p.ex mylog.lua.

L'astuce est que ce journal est en fait aussi un programme lua executable.
Moyennant l'édition des premières lignes de ce fichier pour régler la date de démarrage, il n'y a plus qu'à démarrer l'exécution.

Pour plus de détails, lisez les commentaires des fichiers en pièce jointe (il faut enlever le suffixe.txt bien sur)

Bonnes vacances,
votre maison est sous contrôle, rien ne peut arriver
...
crac, rien ne peut arriver
...
crac, rien ne peut arriver



Pièces jointes
.txt   knxlogger.lua.txt (Taille : 4,87 Ko / Téléchargements : 11)
.txt   mylog.lua.txt (Taille : 1,58 Ko / Téléchargements : 10)
Répondre
#6
C'est l'idée que j'avais avec mon script pour pKNyX : on repasse les événements, décalés d'un temps donné (genre 24h ou 1 semaine pour que ça ait un sens).

Et comme tu le dis, y' pas besoin d'enregistrer beaucoup de choses, en fait : quelques lumières, et quelques stores.

Du coup, vf62, ça ne fait pas beaucoup de trucs à écrire avec pKNyX. En gros, tu installes le framework, et tu adaptes cet exemple.
Frédéric

https://pknyx.gbiloba.org (de nouveau en ligne !)
Répondre


Atteindre :


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