Vai al contenuto
PLC Forum


Controllo vocale Webserver openhab


liguriagusto

Messaggi consigliati

Buongiorno a tutti,

sto cercando di realizzare un controllo vocale simile ad Amazon Echo, ora vi spiego meglio.

Ho un webserver KNX in openhab installato su Raspberry (e va da Dio)

Ora su un altro dispositivo (raspberry o smartphone) Android con l'ausilio dell APP Tasker + Autovoice vorrei comandare il webserver con i comandi vocali e qui mi sorge il problema, ovvero:

-se codifico in Tasker le vari frasi vocali (es.: spegni la luce dello studio) e invio il comando (luce_studio OFF) tutto funziona regolarmente
-io pero vorrei inviare direttamente 'la frase vocale' ad openhab e farla elaborare da lui in quando è già tutto programmato per farlo (e questo non so come farlo!!)

 

Link al commento
Condividi su altri siti


Ciao, mi sfugge una cosa.

L'app per Android di openHAB ha il suo metodo

per inserire le istruzioni vocali.

Vuoi invece utilizzare Google Now?

Perchè utilizzare anche Tasker e plugin vari?

Link al commento
Condividi su altri siti

Lo so conosco bene l'app per Android e funziona anche bene l.unico problema è che per dare un comando vocale bisogna avere in mano il cellulare e premere il pulsante di riconoscimento vocale.

Io voglio creare un sistema che resti sempre in ascolto;  ovvero creare un sistema che quando entro In casa e pronuncio la frase dedicata mi accendi la luce senza bisogno di premere nessun pulsante o avere nulla in mano

Link al commento
Condividi su altri siti

Immaginavo...

per inviare stringhe di testo a openHAB puoi utilizzare il binding TCP.

Una volta ricevuta occorre passarla alla rule che esegue il controllo.

Bisogna capire se autovoice/tasker è in grado di inviare tali stringhe

via web.

 

Hai sempre bisogno di un dispositivo continuamente in ascolto.

Commercialmente parlando potresti considerare componenti come:

- Amazon Echo

- Google Home

- Apple Homekit + Siri

Di questi tre ho letto di integrazioni con Amazon Echo e Apple Homekit.

 

Nel caso del primo occorre un bridge software (installato sullo stesso dispositivo di openHAB oppure no)

che viene configurato e riconosciuto da Echo. Tramite il bridge Echo è in grado di inviare comandi agli

Item definiti in openHAB e precedentemente configurati nel bridge stesso.

 

Homekit funziona solo con openHAB 2.0 e anch'esso richiede la presenza di un bridge software che

integra i due sistemi. Ad ogni modo credo che tu abbia sempre bisogno di un dispositivo Apple.

Dovrebbe funzionare anche la Apple tv comunque.

 

Anche per Google Home stanno venendo fuori componenti software ma un pò più a rilento.

Qualcuno ha tentato un "doppio salto carpiato" usando le connessioni Google Home -> IFTTT

e poi successivamente l'addon IFTTT <-> openHAB. Non credo sia così comodo.

 

Questo per quanto riguarda componenti commerciali che poi vanno ad incidere sul prezzo.

Fuori da questi sistemi sei "into the wild" e quindi devi arrangiarti un pò.

 

Tieni presente che openHAB 1.x accetta comandi del tipo...

http://192.168.0.250:8080/CMD?L_Sala_Veletta=ON

quindi se rimedi un dispositivo che può essere configurato/programmato per

inviare comandi di quel tipo saresti a posto.

Non è ancora come vuoi tu... ovvero non potresti sfruttare la rule già definita.

 

Alternative opensource potrebbero essere...

- Mycroft

- Jasperf

Ma è comunque tutto sulle tue spalle.

 

Link al commento
Condividi su altri siti

Quote

per inviare stringhe di testo a openHAB puoi utilizzare il binding TCP.

Una volta ricevuta occorre passarla alla rule che esegue il controllo.

Bisogna capire se autovoice/tasker è in grado di inviare tali stringhe

via web.

si esiste un plug-in che fa questo, quindi una soluzione potrebbe essere questa.

 

Per quanto riguarda i prodotti commerciali (amazon echo, Google Home) li ho considerati, ma mi pare che per ora parlano solo in inglese non sono ancora venduti in Italia, poi realizzare 'da solo' un sistema analogo c'è più soddisfazione.

 

Quote

Tieni presente che openHAB 1.x accetta comandi del tipo...


http://192.168.0.250:8080/CMD?L_Sala_Veletta=ON

quindi se rimedi un dispositivo che può essere configurato/programmato per

inviare comandi di quel tipo saresti a posto.

Non è ancora come vuoi tu... ovvero non potresti sfruttare la rule già definita.

 

infatti attualmente per testare il progetto ho utilizzato questo sistema, da qui mi chiedevo se OpenHab poteva accettare un comando tipo:

 

http://192.168.0.250:8080/.....?Variabile_OH="string"

???

 

Link al commento
Condividi su altri siti

Il comando che hai postato sta a livello application nello stack iso/osi

e quindi a livello più alto di quello accettato dal binding tcp.

 

Ti serve qualcosa posto a livello di trasporto e quindi protocolli

tipo tcp o udp.

Ho trovato qualcosa che potresti sfruttare utilizzando il protocollo udp

 

http://hastarin.github.io/android-udpsender/

e

https://forum.mysensors.org/topic/1238/how-to-receive-data-on-openhab-using-udp-solved

 

attenzione alla parte in cui spiega come ricevere pacchetti da una porta qualsiasi di un client.

tasker dovrebbe passare all'app android la stringa da trasmettere.

 

Attenzione che quello che riceve openHAB in questo caso non va trattato come comando

ma come update.

Link al commento
Condividi su altri siti

Tornando a livello più alto, riguardando le istruzioni sull'interfaccia rest di openHAB,

ho trovato questo...

Quote

Likewise, you can send a status update using the HTTP verb PUT to the same uri, passing the new state as a plain string argument in the body (encoding text/plain).

In order to send a command to an item, you would use the item uri (http://localhost:8080/rest/items/Temperature_FF_Office) and send an HTTP POST with the according command in the request body as text/plain.

It's also possible to send a status update using a HTTP GET request (http://localhost:8080/CMD?Temperature_FF_Office=12.3). This way it's actually possible to send status updates simply through a web browser address bar.

In questo modo configurando un Item di tipo String e inviando una richiesta HTTP di tipo POST  è possibile,

inserendo il testo nel corpo della richiesta, passare un testo qualunque.

Non è però una richiesta inline come per lo status update ma potrebbe funzionare anche 

con quest'ultimo.

Link al commento
Condividi su altri siti

Ho provato tramite il binding TCP utilizzando il protocollo UDP e sono abbastanza soddisfatto del risultato. Ho avuto diversi problemi nel configurare il tutto, ma alla fine sono riuscito nell'intento. Ho creato una Rule che quando la variabile StringUDP riceve dei nuovi dati li elabora

La parte di ricezione è funzionante, ora devo strutturare la parte in android (o simili) che trasmetta i dati, ci sarà nuovamente da studiare per ottenere un buon risultato!!

Link al commento
Condividi su altri siti

Guarda questi se possono esserti utili.

http://lifehacker.com/how-to-create-custom-voice-commands-with-tasker-and-aut-1282209195

http://lifehacker.com/open-mic-brings-the-moto-xs-touchless-control-to-any-1211465747

Poi potresti tentare di installare Android su un Raspberry pi 3 a meno che tu l'abbia già fatto.

Non so se la batteria apprezza lasciare il cellulare sempre in ascolto

Magari gli ultimi modelli reggono un pò meglio ma su quelli un pò vecchiotti... boh.

 

 

 

Link al commento
Condividi su altri siti

Quote

Poi potresti tentare di installare Android su un Raspberry pi 3 a meno che tu l'abbia già fatto.

Ho installato Android sul Pi 3, 'funziona' però non riesco a far funzionare Tasker e i vari plug-in.

Installando Tasker + plug-in su uno smartphone, il sistema di invio e ricezione comandi tramite UDP  funziona ma non mi soddisfa  in quanto presenta troppi aspetti negativi (lasciare sempre lo smartphone collegato al caricabatteria, il microfono ha un raggio limitato e non puoi sostituirlo).

Ora sto pensando di realizzare un riconoscimento vocale col Raspberry e Raspian anche se so che non sarà un impresa semplice!!

Ho visto questi esempi:

https://www.rhydolabz.com/wiki/?p=16234
 

https://diyhacking.com/best-voice-recognition-software-for-raspberry-pi/
 
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...