22/10/2013, 17:49:39
Pas mal ! Quel prix ?
Sinon, on petit PC embarqué, il y a la Logic Machine 2 (<1000€).
Ou alors, tu utilises eibd/linknx sur une boîte ALIX.
Dernière solution : mon eibd + framework python, pKNyX, toujours sur une carte ALIX (ou n'importe quel petit système faisant tourner eibd et python)
J'ai d'ailleurs commencé à l'utiliser pour implémenter la gestion de ma VMC. Et j'ai justement implémenté un Functional Bloc permettant d'envoyer des choses sur le bus en fonction de plages horaires. Petit exemple :
C'est tout ce qu'il y a à écrire ! La syntaxe pour les plages horaires est celle de cron, sous linux. On peut aussi faire exécuter des choses à intervalle de temps, ou à une date précise donnée.
Dans l'exemple, je change le mode d'occupation, mais tu peux faire ce que tu veux à la place.
Sinon, on petit PC embarqué, il y a la Logic Machine 2 (<1000€).
Ou alors, tu utilises eibd/linknx sur une boîte ALIX.
Dernière solution : mon eibd + framework python, pKNyX, toujours sur une carte ALIX (ou n'importe quel petit système faisant tourner eibd et python)
J'ai d'ailleurs commencé à l'utiliser pour implémenter la gestion de ma VMC. Et j'ai justement implémenté un Functional Bloc permettant d'envoyer des choses sur le bus en fonction de plages horaires. Petit exemple :
Code :
from pknyx.api import FunctionalBlock, Device
from pknyx.api import schedule
class OccupancyFB(FunctionalBlock):
DP_01 = dict(name="occupancy_mode", access="output", dptId="20.003", default=settings.DEFAULT_OCCUPANCY_MODE)
GO_01 = dict(dp="occupancy_mode", flags="CRT", priority="low")
@schedule.cron(day_of_week="mon-fri", hour=6, minute=30) # week day @06:30
@schedule.cron(day_of_week="mon-fri", hour=16, minute=0) # week day @16:00
@schedule.cron(day_of_week="sat-sun", hour=8, minute=30) # week-end @08:30
def occupied(self):
self.dp["occupancy_mode"].value = "occupied"
@schedule.cron(hour=23, minute=0) # every day @23:00
def standby(self):
self.dp["occupancy_mode"].value = "standby"
@schedule.cron(day_of_week="mon-fri", hour=9, minute=0) # week day @09:00
def notOccupied(self):
self.dp["occupancy_mode"].value = "not occupied"
class Timer(Device):
FB_01 = dict(cls=OccupancyFB, name="occupanbcy_fb")
LNK_01 = dict(fb="occupanbcy_fb", dp="occupancy_mode", gad="1/1/1")
DEVICE = Timer
C'est tout ce qu'il y a à écrire ! La syntaxe pour les plages horaires est celle de cron, sous linux. On peut aussi faire exécuter des choses à intervalle de temps, ou à une date précise donnée.
Dans l'exemple, je change le mode d'occupation, mais tu peux faire ce que tu veux à la place.