Good morning,
before using HA I used codesys.
With the previous system I had created a skill on alexa developer that gave me the possibility to turn on / off anything programmed in codesys and to tell me the status of some sensors or which lights were on.
To do this I had created a json file on the developer site of alexa and used ngrok as ssl authentication and a python file on the pi to interface with codesys.
Now on HA I have installed duckdsn and am able to securely access my assistant.
But now I don’t know how to proceed.
Does anyone manage to issue HA commands through alexa?
Thanks, Alberto
This is my python code on pi
import logging
from flask import Flask, render_template
from flask_ask import Ask, statement, question, session
import sys
sys.path.insert(0, "..")
from opcua import Client
from opcua import ua
from opcua.common.node import Node
app = Flask(__name__)
ask = Ask(app, "/")
logging.basicConfig()
logging.getLogger("flask_ask").setLevel(logging.DEBUG)
client = Client("opc.tcp://localhost:4840")
client.connect()
root = client.get_root_node()
@ask.launch
def start_skill():
welcome_message = 'dimmi'
return question(welcome_message)
@ask.intent('SpegniTutto')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.SCENARI.Buonanotte")
Comando.set_value(True)
text = 'Ho iniziato il processo di spegnimento totale'
client.disconnect()
return statement(text)
@ask.intent('AccendiPassaggio')
def change_CorrExt(power_states):
client.connect()
root = client.get_root_node()
StatoReleCorrExt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D0_CorrExt")
StatoReleAndrone = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D6_Androne")
cmdCorridoioExt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.P0_CorridoioEXT")
cmdAndrone = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.P0_Androne")
if StatoReleCorrExt.get_value() == False:
cmdCorridoioExt.set_value(True)
if StatoReleAndrone.get_value() == False:
cmdAndrone.set_value(True)
text = 'Ok, ho acceso la luce nel passaggio per il giardino'
client.disconnect()
return statement(text)
@ask.intent('SpegniPassaggio')
def change_CorrExt(power_states):
client.connect()
root = client.get_root_node()
StatoReleCorrExt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D0_CorrExt")
StatoReleAndrone = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D6_Androne")
cmdCorridoioExt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.P0_CorridoioEXT")
cmdAndrone = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.P0_Androne")
if StatoReleCorrExt.get_value() == True:
cmdCorridoioExt.set_value(True)
if StatoReleAndrone.get_value() == True:
cmdAndrone.set_value(True)
text = 'Ok, ho spento la luce nel passaggio per il giardino'
client.disconnect()
return statement(text)
@ask.intent('AccendiSalaZero')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D11_Sala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Sala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce in sala '
else:
text = 'La luce in sala era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniSalaZero')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D11_Sala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Sala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce in sala '
else:
text = 'La luce in sala era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiSalaUno')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D4_Sala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.PSala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce in sala al primo piano '
else:
text = 'La luce in sala al primo piano era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniSalaUno')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D4_Sala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.PSala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce in sala al primo paino '
else:
text = 'La luce in sala al primo piano era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiCorridoio')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D5_Corr")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PCorridoio")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce in corridoio al primo piano '
else:
text = 'La luce in corridoio al primo piano era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniCorridoio')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D5_Corr")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PCorridoio")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce in corridoio al primo piano '
else:
text = 'La luce in corridoio al primo piano era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiAntecucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D1_Antecucina")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PAntecucina")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce antecucina al primo piano '
else:
text = 'La luce antecucina al primo piano era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniAntecucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D1_Antecucina")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PAntecucina")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce antecucina al primo paino '
else:
text = 'La luce antecucina al primo piano era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiCucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D10_Cucina")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Cucina")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce in cucina '
else:
text = 'La luce in cucina era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniCucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D10_Cucina")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Cucina")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce in cucina '
else:
text = 'La luce in cucina era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiScala')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D2_Scala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PScala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce sulla scala '
else:
text = 'La luce sulla scala era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniScala')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D2_Scala")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PScala")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce sulla scala '
else:
text = 'La luce sulla scala era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiPareti')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D12_Pareti")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Pareti")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso le applique sulle pareti della sala '
else:
text = 'Le applique sulle pareti della sala erano già accese !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniPareti')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D12_Pareti")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Pareti")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho Spento le luci sulle pareti della sala '
else:
text = 'Le luci sulle pareti della sala erano già spente !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiLetto')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D3_Letto")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PLetto")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso la luce in camera da letto '
else:
text = 'La luce in camera da letto era già accesa !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniLetto')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D3_Letto")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.PLetto")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento la luce in camera da letto '
else:
text = 'La luce in camera da letto era già spenta !!'
client.disconnect()
return statement(text)
@ask.intent('AccendiPilastro')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D13_Pilastro")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Pilastro")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, ho acceso le luci del pilastro in sala '
else:
text = 'Le luci del pilastro in sala erano già accese !!'
client.disconnect()
return statement(text)
@ask.intent('SpegniPilastro')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D13_Pilastro")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.P0_Pilastro")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == True:
Comando.set_value(True)
text = 'Ok, ho spento le luci del pilastro in sala '
else:
text = 'Le luci del pilastro erano già spente !!'
client.disconnect()
return statement(text)
@ask.intent('ApriTapSala')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_SALA")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPSALA_100")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, sto aprendo la tapparella della sala '
else:
text = 'Non posso applicare questo comando mentre la tapparella della sala è in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('ChiudiTapSala')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_SALA")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPSALA_0")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, sto chiudendo la tapparella della sala '
else:
text = 'Non posso applicare questo comando mentre la tapparella della sala è in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('ApriTapCucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_CUCINA")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPCUC_100")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, sto aprendo la tapparella della cucina '
else:
text = 'Non posso applicare questo comando mentre la tapparella della cucina è in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('ChiudiTapCucina')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoRelè = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_CUCINA")
Comando = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPCUC_0")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if StatoRelè.get_value() == False:
Comando.set_value(True)
text = 'Ok, sto chiudendo la tapparella della cucina '
else:
text = 'Non posso applicare questo comando mentre la tapparella della cucina è in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('ApriTaparelle')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoReleCucinaUp = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_CUCINA")
StatoReleSalaUp = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_SALA")
StatoReleCucinaDw = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_CUCINA")
StatoReleSalaDw = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_SALA")
ComandoCucina = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPCUC_100")
ComandoSala = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPSALA_100")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if (
StatoReleCucinaUp.get_value() == False and StatoReleSalaUp.get_value() == False and
StatoReleCucinaDw.get_value() == False and StatoReleSalaDw.get_value() == False
):
ComandoCucina.set_value(True)
ComandoSala.set_value(True)
text = 'Ok, sto aprendo tutte le tapparelle '
else:
text = 'Non posso applicare questo comando mentre le tapparelle risultano in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('ChiudiTaparelle')
def change_Sala(power_states):
client.connect()
root = client.get_root_node()
StatoReleCucinaUp = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_CUCINA")
StatoReleSalaUp = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_UP_SALA")
StatoReleCucinaDw = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_CUCINA")
StatoReleSalaDw = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.TAPPARELLE.RL0_DW_SALA")
ComandoCucina = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPCUC_0")
ComandoSala = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.TAPSALA_0")
#print ("Lo stato del relè è " , StatoRelè.get_value())
if (
StatoReleCucinaUp.get_value() == False and StatoReleSalaUp.get_value() == False and
StatoReleCucinaDw.get_value() == False and StatoReleSalaDw.get_value() == False
):
ComandoCucina.set_value(True)
ComandoSala.set_value(True)
text = 'Ok, sto chiudendo tutte le tapparelle '
else:
text = 'Non posso applicare questo comando mentre le tapparelle risultano in funzione !!'
client.disconnect()
return statement(text)
@ask.intent('CheckStatus')
def change_stat(power_states):
client.connect()
root = client.get_root_node()
StatoRelèCorrEXT = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D0_CorrExt")
StatoRelèAndrone = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D6_Androne")
StatoRelèSala = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D11_Sala")
StatoRelèCucina = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D10_Cucina")
StatoRelèPareti = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D12_Pareti")
StatoRelèPilastro = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P0.D13_Pilastro")
StatoRelèAntecucina = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D1_Antecucina")
StatoRelèScala = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D2_Scala")
StatoRelèLetto = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D3_Letto")
StatoRelèSala1 = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D4_Sala")
StatoRelèCorridoio = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.P1.D5_Corr")
StatoRelèFacciata = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D8_Facciata")
StatoRelèGiardino = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.ESTERNO.D9_Giardino")
TempExt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.OneWireLD.rtEsterna")
TempCaldaia = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.OneWireLD.rtCaldaia")
SpesaElettrica = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.GESTIONE_CLIMA_CASA.Spesa")
ConsumoWatt = client.get_node("ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.GESTIONE_CLIMA_CASA.Watt")
#array
cosa = ["Corridoio esterno", "Androne", "Sala", "Cucina", "Pareti", "Pilastro", "Antecucina", "Scala", "Letto", "Sala 1", "Corridoio 1", "Facciata", "Giardino"]
stato = [StatoRelèCorrEXT.get_value(), StatoRelèAndrone.get_value(), StatoRelèSala.get_value(), StatoRelèCucina.get_value(), StatoRelèPareti.get_value(), StatoRelèPilastro.get_value(), StatoRelèAntecucina.get_value(), StatoRelèScala.get_value(), StatoRelèLetto.get_value(), StatoRelèSala1.get_value(), StatoRelèCorridoio.get_value(), StatoRelèFacciata.get_value(), StatoRelèGiardino.get_value()]
onstate=""
i = 0
while i < 12:
#print (str(cosa[i]) + " " + str(stato[i]))
if (
stato[i] == True
):
onstate = onstate + "." + str(cosa[i])
i = i + 1
if (
onstate == ""
):
statoluci = "Non ci sono luci accese"
else:
statoluci = "Le luci accese sono:" + str(onstate)
text = statoluci + ". La temperatura esterna è di:" + str("{0:.1f}".format(TempExt.get_value())) + " gradi. La temperatura della caldaia è di: " + str("{0:.1f}".format(TempCaldaia.get_value())) + " gradi. In questo momento il consumo elettrico è di: " + str("{0:4.2f}".format(ConsumoWatt.get_value())) + " watt, e la spesa è di" + str("{0:2.2f}".format(SpesaElettrica.get_value())) + " Euro."
client.disconnect()
return statement(text)
if __name__ == '__main__':
app.run(debug=True)
This is a skill alexa:
{
"interactionModel": {
"languageModel": {
"invocationName": "configura",
"intents": [
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"samples": []
},
{
"name": "AMAZON.StopIntent",
"samples": []
},
{
"name": "AMAZON.NavigateHomeIntent",
"samples": []
},
{
"name": "AccendiPassaggio",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi passaggio",
"Accendi corridoio esterno",
"Accendi luce ingresso",
"Accendi la luce di ingresso"
]
},
{
"name": "SpegniPassaggio",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni passaggio",
"Spegni corridoio esterno",
"Spegni luce ingresso",
"Spegni la luce ingresso di ingresso"
]
},
{
"name": "AccendiSalaZero",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi sala",
"Accendi luce sala",
"Accendi luce in sala",
"Accendi la luce in sala"
]
},
{
"name": "SpegniSalaZero",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni sala",
"Spegni luce sala",
"Spegni luce in sala",
"Spegni la luce in sala"
]
},
{
"name": "AccendiCucina",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi cucina",
"Accendi luce cucina",
"Accendi luce in cucina",
"Accendi la luce in cucina"
]
},
{
"name": "SpegniCucina",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni cucina",
"Spegni luce cucina",
"Spegni luce in cucina",
"Spegni la luce in cucina"
]
},
{
"name": "AccendiScala",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi scala",
"Accendi luce scala",
"Accendi la luce sulla scala"
]
},
{
"name": "SpegniScala",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni scala",
"Spegni luce scala",
"Spegni la luce sulla scala"
]
},
{
"name": "AccendiPareti",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi pareti",
"Accendi luce pareti",
"Accendi la luce sulle pareti"
]
},
{
"name": "SpegniPareti",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni pareti",
"Spegni luce pareti",
"Spegni la luce sulle pareti"
]
},
{
"name": "AccendiPilastro",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi pilastro",
"Accendi luci pilastro",
"Accendi le luci sul pilastro",
"Accendi il pilastro"
]
},
{
"name": "SpegniPilastro",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni pilastro",
"Spegni luce pilastro",
"Spegni la luce sul pilastro",
"Spegni il pilastro"
]
},
{
"name": "AccendiCorridoio",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi luce corridoio",
"Accendi luce corridoio primo piano",
"Accendi la luce del corridoio",
"Accendi corridoio"
]
},
{
"name": "SpegniCorridoio",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni luce corridoio",
"Spegni luce corridoio primo piano",
"Spegni la luce del corridoio",
"Spegni corridoio"
]
},
{
"name": "AccendiSalaUno",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi luce sala primo piano",
"Accendi la luce della sala al primo piano"
]
},
{
"name": "SpegniSalaUno",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni luce sala primo piano",
"Spegni la luce della sala al primo piano"
]
},
{
"name": "AccendiLetto",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Accendi luce letto",
"Accendi luce camera camera d letto",
"Accendi la luce in camera da letto"
]
},
{
"name": "SpegniLetto",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Spegni luce letto",
"Spegni luce camera da leto",
"Spegni la luce in camera da letto"
]
},
{
"name": "ApriTapSala",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Apri taparella sala",
"Apri la taparella in sala",
"Apri la taparella della sala",
"Alza la taparella della sala",
"Alza la taparella in sala",
"Alza taparella sala"
]
},
{
"name": "ChiudiTapSala",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Chiudi taparella sala",
"Chiudi la taparella in sala",
"Chiudi la taparella della sala",
"Abbassa la taparella della sala",
"Abbassa la taparella in sala",
"Abbassa taparella sala"
]
},
{
"name": "ApriTapCucina",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Apri taparella cucina",
"Apri la taparella in cucina",
"Apri la taparella della cucina",
"Alza la taparella della cucina",
"Alza la taparella in cucina",
"Alza taparella cucina"
]
},
{
"name": "ChiudiTapCucina",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Chiudi taparella cucina",
"Chiudi la taparella in cucina",
"Chiudi la taparella della cucina",
"Abbassa la taparella della cucina",
"Abbassa la taparella in cucina",
"Abbassa taparella cucina"
]
},
{
"name": "ApriTaparelle",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Apri tutte le taparelle",
"Apri le taparelle",
"Apri taparelle",
"Alza le taparelle",
"Alza tutte le taparelle",
"Alza taparelle"
]
},
{
"name": "ChiudiTaparelle",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Chiudi tutte le taparelle",
"Chiudi le taparelle",
"Chiudi taparelle",
"Abbassa taparelle",
"Abbassa tutte le taparelle",
"Abbassa le taparelle"
]
},
{
"name": "CheckStatus",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Stato luci",
"Info",
"Informazioni",
"Verifica"
]
},
{
"name": "SpegniTutto",
"slots": [
{
"name": "power_states",
"type": "LIST_OF_STATS"
}
],
"samples": [
"Buonanotte",
"Spegni tutto"
]
}
],
"types": [
{
"name": "LIST_OF_STATS",
"values": [
{
"name": {
"value": "Acceso"
}
},
{
"name": {
"value": "Spento"
}
}
]
}
]
}
}
}