Trigger con controlli incrociati su più elementi dell'impianto

36 views
Skip to first unread message

MRlucamarini

unread,
May 30, 2017, 10:48:57 AM5/30/17
to Freedomotic - IoT and Smart Spaces Framework
Buongiorno a tutti,
sapete che io vedo il sistema più dalla parte dell'utente più che del tecnico e del programmatore e quindi vi rompo le scatole per sottoporvi un problema.

Mi trovo a gestire il mio impianto di climatizzazione e la cosa che vorrei fare è creare un trigger del tipo:
- se la temperatura rilevata dal termostato è superiore e quella di setpoint del oggetto climatizzatore
- e se l'oggetto climatizzatore è spento
- e se l'utente è in casa

allora accendi il climatizzatore

Ovviamente si potrebbero inserire altri controlli tipo quello di prevedere la velocità di ventilazione anche in base a orario e via dicendo.
Ma fermiamoci a questo esempio.
Queste sono tutte informazioni che ho ma in oggetti diversi.
temperatura rilevata da oggetto termostato bticino
temperatura di setpoint clima da oggetto climatizzatore
presenza dell'utente da stato utente (rilevato con un sistema approssimativo ma tanto per cominciare diciamo che ho uno stato presente o no dell'utente)

Il problema è che dovrei scrivere un trigger prendendo lo stato da tre oggetti diversi e mi trovo in difficoltà perché Mauro mi aveva mandato una versione modificata di freedomotic che permetteva di fare questo ma credo che con la presente non funzioni (per lo meno ho provato e non va)

Qualcuno mi può aiutare? 
Si può fare dalla versione attuale del programma?
Se si mi date un idea per la sintassi?
Vi ringrazio in anticipo.

P.S. capisco che la mia richiesta possa sembrare personale e al momento lo è ma ovviamente in un sistema domotico la prima cosa che mi viene in mente è l'integrazione tra diversi oggetti e al momento freedomotic mi pare un po' chiuso da questo punto di vista perché generalmente prevede comandi del tipo: se accendi questo fai quest'altro oppure a quest'ora fai questo e questo ma non gestendo variabili e controlli incrociati tra oggetti risulta difficile rendere davvero "intelligente" la casa :-)

Mauro Cicolella

unread,
May 31, 2017, 1:05:03 PM5/31/17
to Freedomotic - IoT and Smart Spaces Framework
Ciao Luca
la feature è implementata nelle ultime dailybuild già da quasi un anno.
Trovi ulteriori dettagli e l'esempio di trigger nella relativa discussione https://groups.google.com/forum/#!topic/freedomotic-it/ZrPJ7Y6Bou4
In pratica se il behavior presente nella condizione aggiuntiva riguarda un oggetto differente bisogna anteporre il nome dell'oggetto tra parentesi quadre seguito dal punto. Es [Condizionatore].temperature

Mauro

MRlucamarini

unread,
Jun 1, 2017, 6:57:53 AM6/1/17
to Freedomotic - IoT and Smart Spaces Framework
In effetti mi ricordo che lo avevi testato con me mandandomi un jar modificato però ho riprovato ora e non va...
Devo capire se ho la versione aggiornata...
Domani ci guardo
Luca

MRlucamarini

unread,
Jun 1, 2017, 7:56:14 PM6/1/17
to Freedomotic - IoT and Smart Spaces Framework
Ho provato a creare questo xtrg ma non funziona...
Magari sbaglio qualcosa visto che sono le due di notte...

<reaction>
  <trigger>Every five seconds</trigger>
  <conditions>
    <condition>
      <target>Zona Notte</target>
      <statement>
        <logical>AND</logical>
        <attribute>temperature</attribute>
        <operand>GREATER_THAN</operand>
        <value>[clima1p].conditioning-temperature</value>
</statement>
<statement>
<logical>AND</logical>
        <attribute>[clima1p].powered</attribute>
        <operand>EQUALS</operand>
        <value>false</value>
      </statement>
    </condition>
  </conditions>
  <sequence>
    <command>accendi-clima-basso-1p</command>
  </sequence>
</reaction>

MRlucamarini

unread,
Jun 3, 2017, 6:28:03 AM6/3/17
to Freedomotic - IoT and Smart Spaces Framework
Nessuno mi sa dire dove sbaglio?
Ho usato l'ultima dailybuild scaricabile dal sito freedomotic nella pagina download.
Magari è solo un errore mio di sintassi :-)

MRlucamarini

unread,
Jun 3, 2017, 6:46:47 AM6/3/17
to Freedomotic - IoT and Smart Spaces Framework
Ho cambiato la sintassi così...
Ora si accende solo se tocco la temperatura di setpoint altrimenti non esegue il trigger...
Boh
ragazzi io non so bene come vanno scritti i trg quindi ditemi voi :-)

<reaction>
  <trigger>Every ten seconds</trigger>
  <conditions>
    <condition>
      <target>Zona Notte</target>
      <statement>
        <logical>AND</logical>
        <attribute>temperature</attribute>
        <operand>GREATER_THAN</operand>
        <value>[clima1p].conditioning-temperature</value>
</statement>
</condition>
<condition>
<target>clima1p</target>
<statement>
<logical>AND</logical>
        <attribute>powered</attribute>
        <operand>EQUALS</operand>
        <value>false</value>
      </statement>
    </condition>
  </conditions>
  <sequence>
    <command>accendi-clima-basso-1p</command>
<command>Turn on clima1p</command>
  </sequence>
</reaction>

MRlucamarini

unread,
Jun 3, 2017, 7:17:39 AM6/3/17
to Freedomotic - IoT and Smart Spaces Framework
Rettifico... si accende solo perchè imposto la temperatura di condizionamento...
deve essere un automatismo dell'oggetto
Quindi il trigger non va proprio...

Mauro Cicolella

unread,
Jun 3, 2017, 9:32:01 AM6/3/17
to Freedomotic - IoT and Smart Spaces Framework
Devo rivedere la questione dal principio.
Non appena riesco a trovare il tempo per occuparmene ti faccio sapere.

Mauro

Il giorno martedì 30 maggio 2017 16:48:57 UTC+2, MRlucamarini ha scritto:

Mauro Cicolella

unread,
Jun 4, 2017, 9:31:26 AM6/4/17
to Freedomotic - IoT and Smart Spaces Framework
Ciao,
allora con l'ultima build appena creata (la 207.bc63f02 per intenderci) il problema dovrebbe essere risolto almeno per quanto risulta dai test che ho fatto.
La sintassi corretta prevede che ogni condizione da testare vada in uno specifico blocco <condition></condition> mentre per quanto riguarda l'attributo <value></value> ci sono 3 opzioni possibili:
1. un valore costante tipo un intero oppure true/false 
2. se il confronto va fatto con un behavior dello stesso oggetto target la sintassi è [].behavior (tra le quadre non c'è nulla)
3. se il confronto va fatto con il behavior di un oggetto differente da target la sintassi è [nome_oggetto].behavior

Quindi la sintassi dell'ultimo trigger riportato da Luca dovrebbe andare senza ulteriori modifiche.

Mauro


Il giorno martedì 30 maggio 2017 16:48:57 UTC+2, MRlucamarini ha scritto:

Mauro Cicolella

unread,
Jul 26, 2017, 10:15:55 AM7/26/17
to Freedomotic - IoT and Smart Spaces Framework
Ciao
il problema si è risolto?


Mauro

Il giorno martedì 30 maggio 2017 16:48:57 UTC+2, MRlucamarini ha scritto:

MRlucamarini

unread,
Jul 26, 2017, 11:18:24 AM7/26/17
to Freedomotic - IoT and Smart Spaces Framework
Ciao,
perdonami! Il problema non si è risolto e ero convinto di averti già informato!
Forse volevo farlo e mi sono dimenticato... scusa.
Ho fatto vari test ma non funziona...
Allora ho inserito un controllo molto semplice tipo: alle 19.00 se la luce 1 è accesa allora accendi la luce due ma non va 
All'inizio ero convinto che il problema dipendesse da come scrivevo i controlli ma mi pare proprio che il motore di freedomotic non li esegua proprio.
Mi spiego: se metto il trigger con il comando in teoria dovrei vedere almeno nel log che verifica e decide se eseguirlo... oppure vedere un errore...
In realtà non vedo nulla :-(
Luca
Message has been deleted

MRlucamarini

unread,
Aug 9, 2017, 7:17:56 AM8/9/17
to Freedomotic - IoT and Smart Spaces Framework
Scusa Mauro ho fatto un post sbagliato e poi cancellato.
Volevo dire se mi confermi che per il controllo incrociato di condizioni su più oggetti devo creare il file xrea nella directory /data/rea
Poi ho controllato le vecchie mail che mi avevi mandato e in effetti era specificato...
Ora faccio dei controlli con una installazione pulita di freedomotic e vediamo se così si risolve
ciao!
Reply all
Reply to author
Forward
0 new messages