Re: [Perl-workflow-devel] Using Workflow for managing home automation
Brought to you by:
jonasbn
From: Alejandro I. <ai...@p2...> - 2012-04-15 15:09:55
|
On Sun, Apr 15, 2012 at 5:55 AM, Sebastian Stuecker <seb...@go...> wrote: > Hello folks, > > I hope it is ok to post to this list. If not, please tell me. > > I am trying to utilize the workflow framework that you guys have created and > I am fascinated about the possibilities and the way it is so generic and > configurable. > > However, there is one thing I am not sure if it is achievable. I have > defined a workflow with a bunch of states and I use this to control a > computer. This may sound weird. This "computer" can have several states: On, > Off, Booting, Halting, Unknown. > > Now, a user requests this computer to be just on. The user does not care > about the current state. The damn thing shall be on as quickly as possible. > > But if the computer is currently in the off state, it cannot be on directly > from there. It has to move through the booting-state and only if the booting > succeeds it will be on. I have actions defined how to move from off to > booting ( i just have a radio controlled socket to switch it on, but it > could also be wake on lan, etc.) and I have an action to move from booting > to on (some tests have to perform ok). > > I am looking for a way of "path-finding" from the actual state to a desired > state like I can do this for example with the Graph CPAN module which can > find the shortest path between two nodes. > Coming from the automation world I find your post quite interesting and in that sense the state-action-state paradigm is similar somewhat to ladder logic on a PLC. What I don't understand is this last bit... why do you need this path-finding stuff? As I see it, you should simply stick to the event-based (e.g. EDA, SEDA, EPC, etc.) model just like you would if you were automating using ladder language. Going on a limb, but IMHO I think you are confusing EPC-style workflows with Petri-net style WF engines. -- Alejandro Imass > Is there any way to achieve this or do you think my whole idea is crap? :) |