configurazione termostato e lampadine

60 views
Skip to first unread message

luca

unread,
Sep 18, 2017, 3:22:38 PM9/18/17
to freedom...@googlegroups.com
ciao a tutti,

sto ultimando di configurare freedomotic, ma non riesco a configurare come si deve il termostato.

il termostato legge via mqtt la temperatura di una stanza, vorrei che quando supera il setpoint invii sempre via mqtt un comando ad un topic, però non riesco a capire come fare, nelle automazioni non trovo qualcosa del tipo send mqtt.

Stesso discorso per le lampadine, quando clicko se la lampadina si accende deve inviare "1" via mqtt altrimenti "0"

magari è una banalità ma non riesco a capire come.

grazie
/luca
--
Luca Sanna

Mauro Cicolella

unread,
Sep 19, 2017, 10:09:05 AM9/19/17
to Freedomotic - IoT and Smart Spaces Framework
Forse la versione del plugin che hai è antecedente alle ultime modifiche fatte.
Comunque serve creare un command (file con estensione .xcmd) come questo https://github.com/freedomotic/freedomotic/tree/master/plugins/devices/mqtt-client/src/main/resources/data/cmd

Puoi dargli il nome che vuoi e va personalizzato il "message to send" che viene pubblicato sul topic corrispondente all'address dell'oggetto.
Quindi per la lampadina dovresti averne due diversi di cui uno per "turn on" e l'altro per "turn off" che devi associare opportunamente nel tab dei comandi dell'oggetto in questione.

Mauro

luca

unread,
Sep 19, 2017, 12:41:51 PM9/19/17
to Mauro Cicolella, Freedomotic - IoT and Smart Spaces Framework
Perfetto grazie Mauro, prometto che quando finisco di configurare tutto scrivo due righe.

solo un'altra info riguardo al plugin aggiornato, intanto sto usando la release con influxdb, ma il sistema non controlla eventuali aggiornamenti? grazie 

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Freedomotic - IoT and Smart Spaces Framework" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a freedomotic-i...@googlegroups.com.
Per postare in questo gruppo, invia un'email a freedom...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/freedomotic-it/d59af494-16cd-4272-9dcc-a0164502704d%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
--
Luca Sanna

Mauro Cicolella

unread,
Sep 20, 2017, 2:41:52 AM9/20/17
to luca, Freedomotic - IoT and Smart Spaces Framework
Al momento non è implementato alcun controllo di versione e aggiornamento automatico. 

Il 19/Set/2017 18:41, "luca" <sanl...@gmail.com> ha scritto:
Perfetto grazie Mauro, prometto che quando finisco di configurare tutto scrivo due righe.

solo un'altra info riguardo al plugin aggiornato, intanto sto usando la release con influxdb, ma il sistema non controlla eventuali aggiornamenti? grazie 

Il giorno mar 19 set 2017 alle ore 16:09 Mauro Cicolella <mauro.c...@gmail.com> ha scritto:
Forse la versione del plugin che hai è antecedente alle ultime modifiche fatte.
Comunque serve creare un command (file con estensione .xcmd) come questo https://github.com/freedomotic/freedomotic/tree/master/plugins/devices/mqtt-client/src/main/resources/data/cmd

Puoi dargli il nome che vuoi e va personalizzato il "message to send" che viene pubblicato sul topic corrispondente all'address dell'oggetto.
Quindi per la lampadina dovresti averne due diversi di cui uno per "turn on" e l'altro per "turn off" che devi associare opportunamente nel tab dei comandi dell'oggetto in questione.

Mauro


Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:
ciao a tutti,

sto ultimando di configurare freedomotic, ma non riesco a configurare come si deve il termostato.

il termostato legge via mqtt la temperatura di una stanza, vorrei che quando supera il setpoint invii sempre via mqtt un comando ad un topic, però non riesco a capire come fare, nelle automazioni non trovo qualcosa del tipo send mqtt.

Stesso discorso per le lampadine, quando clicko se la lampadina si accende deve inviare "1" via mqtt altrimenti "0"

magari è una banalità ma non riesco a capire come.

grazie
/luca
--
Luca Sanna

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Freedomotic - IoT and Smart Spaces Framework" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a freedomotic-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a freedomotic-it@googlegroups.com.
--
Luca Sanna

luca

unread,
Sep 20, 2017, 11:31:21 AM9/20/17
to Mauro Cicolella, Freedomotic - IoT and Smart Spaces Framework
per le lampadine funziona tutto, invece per il termostato non riesco a dirgli se la temperatura supera il setpoint manda un comando e se invece è bassa manda un altro, nei comandi trovo solo se il termostato viene clickato, dove sbaglio? 
grazie

Il giorno mer 20 set 2017 alle ore 08:41 Mauro Cicolella <mauro.c...@gmail.com> ha scritto:
Al momento non è implementato alcun controllo di versione e aggiornamento automatico. 
Il 19/Set/2017 18:41, "luca" <sanl...@gmail.com> ha scritto:
Perfetto grazie Mauro, prometto che quando finisco di configurare tutto scrivo due righe.

solo un'altra info riguardo al plugin aggiornato, intanto sto usando la release con influxdb, ma il sistema non controlla eventuali aggiornamenti? grazie 

Il giorno mar 19 set 2017 alle ore 16:09 Mauro Cicolella <mauro.c...@gmail.com> ha scritto:
Forse la versione del plugin che hai è antecedente alle ultime modifiche fatte.
Comunque serve creare un command (file con estensione .xcmd) come questo https://github.com/freedomotic/freedomotic/tree/master/plugins/devices/mqtt-client/src/main/resources/data/cmd

Puoi dargli il nome che vuoi e va personalizzato il "message to send" che viene pubblicato sul topic corrispondente all'address dell'oggetto.
Quindi per la lampadina dovresti averne due diversi di cui uno per "turn on" e l'altro per "turn off" che devi associare opportunamente nel tab dei comandi dell'oggetto in questione.

Mauro


Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:
ciao a tutti,

sto ultimando di configurare freedomotic, ma non riesco a configurare come si deve il termostato.

il termostato legge via mqtt la temperatura di una stanza, vorrei che quando supera il setpoint invii sempre via mqtt un comando ad un topic, però non riesco a capire come fare, nelle automazioni non trovo qualcosa del tipo send mqtt.

Stesso discorso per le lampadine, quando clicko se la lampadina si accende deve inviare "1" via mqtt altrimenti "0"

magari è una banalità ma non riesco a capire come.

grazie
/luca
--
Luca Sanna

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Freedomotic - IoT and Smart Spaces Framework" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a freedomotic-i...@googlegroups.com.
Per postare in questo gruppo, invia un'email a freedom...@googlegroups.com.
--
Luca Sanna
--
Luca Sanna

Mauro Cicolella

unread,
Sep 20, 2017, 12:32:18 PM9/20/17
to Freedomotic - IoT and Smart Spaces Framework
Ti rispondo al volo.
In realtà non stai sbagliando nulla.
Non è presente un trigger del genere. Per gli oggetti questi vengono creati via codice come puoi vedere in https://github.com/freedomotic/freedomotic/blob/master/plugins/objects/base-things/src/main/java/com/freedomotic/things/impl/Thermostat.java#L101 o in https://github.com/freedomotic/freedomotic/blob/master/plugins/objects/base-things/src/main/java/com/freedomotic/things/impl/Light.java#L102

Tuttavia il tuo caso coinvolge delle "extra conditions" nel senso che si fa un controllo tra due behavior dello stesso oggetto oppure di due oggetti diversi.
Questa funzionalità non è gestibile da frontend per cui bisogna creare il trigger manualmente. Ti rimando alla discussione specifica https://groups.google.com/forum/#!topic/freedomotic-it/6IFlRHdIXpQ
Vedi se riesci a risolvere. In caso contrario, non appena posso, provo a darti una mano.


Mauro

Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:

Luca

unread,
Sep 21, 2017, 9:32:26 AM9/21/17
to Freedomotic - IoT and Smart Spaces Framework
Ho provato a crearne uno dalla maschera delle automazioni e poi verificare il file nella dir data/trg
ho creato questo

<trigger>
  <name>When setpoint &lt; soggiorno-temperatura</name>
  <description>When termostato is clicked</description>
  <uuid>3da8f825-2943-4aec-8296-365ceadd8a03</uuid>
  <channel>app.event.sensor.object.behavior.clicked</channel>
  <payload>
    <payload>
      <statement>
        <logical>AND</logical>
        <attribute>object.name</attribute>
        <operand>EQUALS</operand>
        <value>termostato</value>
      </statement>
      <statement>
        <logical>AND</logical>
        <attribute>soggiorno-temperatura</attribute>
        <operand>GREATER_THEN</operand>
        <value>setpoint</value>
      </statement>
    </payload>
  </payload>
  <suspensionTime>0</suspensionTime>
  <hardwareLevel>false</hardwareLevel>
  <persistence>true</persistence>
  <delay>0</delay>
  <priority>0</priority>
  <maxExecutions>-1</maxExecutions>
  <numberOfExecutions>0</numberOfExecutions>
</trigger>

però non riesco a capire dove trovo i nomi degli oggetti, o basta dargli il nome che ho scelto durante la configurazione di ogni oggetto, in più quel clicked peso andrà cambiato.

grazie




Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:

Mauro Cicolella

unread,
Sep 23, 2017, 4:36:05 AM9/23/17
to Freedomotic - IoT and Smart Spaces Framework
Allora nel precedente post avevo indicato erroneamente che bisognava modificare il trigger.
In realtà le "extra conditions" si riferiscono alle automazioni quindi occorre creare un .xrea.
Ti riporto un esempio

<reaction>
  <trigger>Every minute</trigger>
  <conditions>
    <condition>
      <target>Termostato</target>
      <statement>
        <logical>AND</logical>
        <attribute>temperature</attribute>
        <operand>GREATER_THAN</operand>
        <value>[].setpoint</value>
      </statement>
    </condition>
  </conditions>
  <sequence>
    <command>turn on all lights</command>
  </sequence>
</reaction>

In <target></target> si specifica il nome dell'oggetto così come lo hai assegnato.
<attribute></attribute> indica il nome del behavior di quell'oggetto che vuoi confrontare con un altro behavior dello stesso oggetto o di un oggetto differente.
<value></value> se il confronto lo fai con un behavior del medesimo oggetto la sintassi è [].nome_behavior altrimenti tra le parentesi quadre metti il nome dell'altro oggetto di cui stai confrontando il behavior.

Ovviamente a monte di tutto c'è un trigger che in questo caso è un controllo fatto ogni minuto, ma potrebbe essere "quando un oggetto viene cliccato" o qualsiasi altro.
Quindi la logica in questo caso è: ogni minuto controlla se la temperatura è maggiore del setpoint del termostato di nome "Termostato" e in caso affermativo accendi tutte le luci.

Spero di essere stato abbastanza chiaro.
In caso di dubbi scrivi pure

Mauro


Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:

luca

unread,
Sep 24, 2017, 11:07:14 AM9/24/17
to Mauro Cicolella, Freedomotic - IoT and Smart Spaces Framework
scusami, ma ho delle lacune, abbi pazienza

allora dentro
#freedomotic/data/rea 
creo il file caldaia.xrea con dentro questo

<?xml version="1.0" encoding="UTF-8" ?>
<reaction>
  <trigger>Every minute</trigger>
  <conditions>
    <condition>
      <target>soggiorno-temperatura</target>
      <statement>
        <logical>AND</logical>
        <attribute>temperature</attribute>
        <operand>GREATER_THAN</operand>
        <value>[termostato].setpoint</value>
      </statement>
    </condition>
  </conditions>
  <sequence>
    <command>turn-on-caldaia</command>
  </sequence>
</reaction>

qui confronto la temperatura del soggiorno con il setpoint del termostato, perchè se cerco di leggere tramite mqtt la stessa tmeperatura dal soggiorno e dal termostato, solo uno dei due riesce a leggerla, si vede che il primo che legge il topic la acquisisce, l'altro resta in attesa

nel command ho messo il nome del file che ho creato in 
#freedomotic/plugins/devices/mqtt-client/data/cmd

che si chiama turn-on-caldaia.xcmd che al suo interno ha

<command>
    <name>Caldaia ON message on Mqtt topic</name>
    <receiver>app.actuators.protocol.mqtt-client.in</receiver>
    <description>publishes a message ON a mqtt topic</description>
    <hardwareLevel>true</hardwareLevel>
    <delay>0</delay>
    <timeout>0</timeout>
    <properties>
        <properties>
            <property name="mqtt.topic" value="home/caldaia/comando"/>
            <property name="mqtt.message" value="1"/>
            <property name="mqtt.sub-qos" value="0"/>
            <property name="mqtt.pub-qos" value="0"/>
        </properties>
    </properties>
</command>

fin qui è corretto? se si mancherebbe creare il trigger, userei quando cambia la temperatura, ma solo quella del soggiorno, però non capisco come e dove crearlo

grazie per la pazienza

--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Freedomotic - IoT and Smart Spaces Framework" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a freedomotic-i...@googlegroups.com.
Per postare in questo gruppo, invia un'email a freedom...@googlegroups.com.

Per altre opzioni visita https://groups.google.com/d/optout.
--
Luca Sanna

Mauro Cicolella

unread,
Sep 25, 2017, 3:46:30 AM9/25/17
to Freedomotic - IoT and Smart Spaces Framework
Dando per scontato che i nomi degli oggetti siano quelli indicati bisogna correggere nella reaction il command con
<command>Caldaia ON message on Mqtt topic</command>
perchè si utilizza il <name></name> indicato nel .xcmd e non il nome del file.

Se soggiorno-temperatura è il nome dell'oggetto che vuoi controllare il trigger da creare ha questa forma

<?xml version="1.0" encoding="UTF-8" ?>
<trigger>
  <name>When soggiorno-temperatura has changed</name>
  <description>When a temperature has changed</description>
  <channel>app.event.sensor.object.behavior.change</channel>
  <payload>
    <payload>
      <statement>
        <logical>AND</logical>

        <attribute>object.name</attribute>
        <operand>EQUALS</operand>
        <value>soggiorno-temperatura</value>

      </statement>
   </payload>
  </payload>
  <suspensionTime>0</suspensionTime>
  <hardwareLevel>false</hardwareLevel>
  <persistence>true</persistence>
  <delay>0</delay>
  <priority>0</priority>
  <maxExecutions>-1</maxExecutions>
  <numberOfExecutions>0</numberOfExecutions>
</trigger>

In sostanza si controllano tutti gli eventi relativi ad un cambio di stato e quando viene modificato un oggetto che ha nome "soggiorno-temperatura" il trigger scatta.
Non ho avuto modo di testarlo ma dovrebbe funzionare.


Mauro

Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:

Mauro Cicolella

unread,
Dec 9, 2017, 2:41:20 AM12/9/17
to Freedomotic - IoT and Smart Spaces Framework
Ha poi funzionato il trigger proposto?

Mauro

Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:

luca

unread,
Dec 10, 2017, 4:43:27 AM12/10/17
to Mauro Cicolella, Freedomotic - IoT and Smart Spaces Framework

Si tutto apposto, adesso per vari problemi, sia di hardware che tempo, sono fermo


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "Freedomotic - IoT and Smart Spaces Framework" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a freedomotic-i...@googlegroups.com.
Per postare in questo gruppo, invia un'email a freedom...@googlegroups.com.

Per altre opzioni visita https://groups.google.com/d/optout.
--
Luca Sanna

Mauro Cicolella

unread,
Dec 12, 2017, 4:56:45 AM12/12/17
to Freedomotic - IoT and Smart Spaces Framework
Ok, l'importante è che abbia funzionato.


Mauro

Il giorno lunedì 18 settembre 2017 21:22:38 UTC+2, Luca ha scritto:
Reply all
Reply to author
Forward
0 new messages