ESP_SCSGATE

Ho rimesso mano ad un'idea lasciata in sospeso mesi fa, cioè l'integrazione tra SCSGATE ed il popolare dispositivo iot ESP8266.

Obiettivi:

- superare il problema della mancanza di isolamento galvanico del dispositivo

- superare il problema della necessità di una alimentazione esterna (autoalimentare dal bus scs)

- dare la possibilità a dispositivi "client" di interagire direttamente in wifi, evitando la necessità di un server web

- dare la possibilità di modificare/riprogrammare la parte di colloquio/interfaccia esterna

Nella versione 1, stabile e funzionante, questi obiettivi sono stati tutti soddisfatti, nelle versioni successive vedremo quel che si può fare.

Questo è l'oggetto:

 ESCAPE='HTML'

SCHEDA BASE

E' praticamente la stessa di SCSGATE con l'aggiunta di un alimentatore incorporato che preleva dal bus la corrente necessaria al funzionamento.

Lo schema elettrico: http://guidopic.altervista.org/esp_scsgate/espscsgate_sch.pdf

Ha un connettore per l'eventuale riprogrammazione del PIC, un connettore verso il bus SCS, un connettore per la scheda ESP8266 ed un jumper per resettare il funzionamento in modalità AP.

ESP8266

Il firmware caricato nella scheda ESP8266 implementa le seguenti funzioni:

- Funzionamento indipendente come AP (access point) WiFi, con server DHCP per l'assegnazione di indirizzi IP dinamici ai dispositivi connessi

- Funzionamento come client WiFi di un router di lan domestica

- Proposizione dell'elenco di reti WiFi ricevute

- Server UDP che fa da tramite tra SCSGATE e i dispositivi connessi

Il manuale completo del dispositivo è qui: http://guidopic.altervista.org/esp_scsgate/espscsgate.pdf

Il firmware è compilabile con l'IDE di Arduino, lo sketch del firmware è qui: http://guidopic.altervista.org/esp_scsgate/udpknxgate_v1.4.ino

VERSIONE 2.0

Nella versione 2.0 è implementata anche un server web che ha come scopo la gestione delle modalità di funzionamento (AP o CLIENT) e che può interagire con SCSGATE sia in andata (comandi di controllo), che in ritorno (notifiche di cambiamenti di stato).

Per l'interazione completa con SCSGATE non basta però un browser, ma necessita di un'applicazione locale (Windows o Android o altro).

E poi nulla vieta una vostra implementazione sul firmware di ESP8266.

Qui il manuale della versione 2.0 (software di esp8266) - compatibile con il firmware PIC dalla versione 18.93      http://guidopic.altervista.org/esp_scsgate/espscsgate_2.pdf

ESEMPI D'USO

Il primo esempio d'uso è mio, per i successivi aspetto vostre notizie.

Il software di esempio è esattamente lo stesso che ho proposto per il test di SCSGATE, basta scegliere la modalità di connessione UDP e digitare l'indirizzo ip della scheda ESP8266.  E' scritto in VB6 e quindi per modificarlo usate Visual Studio 2008.

Qui trovate l'esempio, fate riferimento alla versione più evoluta perchè le prime versioni non consentivano la connessione udp. http://guidopic.altervista.org/alter/software-pc-demo-per-knxgate-e-scagate.html

ANDROID

Android è oramai un sistema consolidato e diffusissimo.

Ebbene, scrivendo un'APP android potrete connettervi ed interagire con ESP_SCSGATE, in maniera diretta, oppure attraverso il wifi della LAN di casa vostra. Configurando opportunamente i vostri server/router quindi anche da INTERNET (adottate le opportune precauzioni di sicurezza per evitare che altri vi accendano le luci!).

Io NON sono un esperto di Android, tuttavia con qualche giorno di impegno mi sono scaricato Android Studio e partendo da qualche esempio trovato in internet ho costruito una piccolissima applicazione dimostrativa. Caricandola sul cellulare, essa apre una connessione UDP all'indirizzo 192.168.2.200, premendo il tasto "query" invia il comando @q che interroga la versione di esp_scsgate installata; premeno i tasti "Luce ON" e "Luce OFF" invia dei comandi per accendere o spegnere la luce collegata all'indirizzo domotico 31.

Naturalmente è solo un esempio d'uso dedicato a chi sa smanettare con Android studio. Lo trovate qui: http://guidopic.altervista.org/esp_scsgate/AndroidUDPClient2_V1.0.zip

PROGETTO ANDROID - work in progress

Paolo Rescigno ha dato vita ad un progetto complesso di integrazione diretta tra ESP_SCSGATE ed ANDROID - il progetto è in rete nel repository di "Azure DevOps", funzionante (beta version). Chi volesse collaborare può contattare Paolo ([email protected]).

Qualche info da Paolo:

"Il codice è molto grezzo e praticamente privo di documentazione. Complessivamente ci ho investito non più di una ventina di giorni di lavoro in quasi due anni (non essendo uno sviluppatore professionista e trattandosi della mia prima app Android, lo ritengo un gran successo…).

L’app è ancora in fase embrionale, ma avendo raggiunto un livello di funzionalità sufficienti per le mie esigenze reali, l’investimento su ulteriori sviluppi (viste, gestione del contesto, risoluzione crash occasionali, ed ulteriore ottimizzazione dell’uso della batteria) si è fermato alcuni mesi fa...

Nel folder Configuration si trovano i file di definizione dell’impianto, senza cui l’applicazione non visualizza alcunché (inizialmente inserivo un pulsante per ogni dispositivo scoperto, adesso il codice è commentato): il file generic.scsxml dovrà contenere

SCSDeploymentIdentifier type="IP_Address" value="0.0.0.0"/    (ho tolto i simboli iniziali e finali di < e di >)

e una riga di definizione per ciascun controllo voglia visualizzare

      SCSControl id="78" label="Bathroom 2 Mirror Light"/   (ho tolto i simboli iniziali e finali di < e di >)

Purtroppo il file di configurazione è parte dell’APK, quindi si dovrà necessariamente ricompilare per installare l’app con la configurazione aggiornata…

La libreria scscontrol.cs è cross-platform, ed è stata utilizzata inizialmente per monitorare il bus da PC (l’applicazione purtroppo deve essere modificata per funzionare con la nuova versione della libreria; se le interessa posso cercare di fargliela avere in qualche giorno). Utilizza il gateway in modalità testo (deve essere impostata prima con l’app da PC; evito di reimpostarla ogni volta per evitare di bruciare la EEPROM del PIC), ma gestisce solo frame brevi, anche frammentati, ignorando acknowledge del gateway e dei dispositivi del bus, utilizzando solamente i messaggi di stato come feedback; è predisposta per il discovery del gateway e dei dispositivi (in base allo stato attuale è possibile determinare il tipo di dispositivo, eccezion fatta per i dimmer spenti che restituiscono lo stesso valore di un normale interruttore)."

Lo "zip" del progetto:  http://guidopic.altervista.org/esp_scsgate/SCS_Remote.zip

MQTT

MQTT sta diventando uno standard di fatto nelle comunicazioni Iot.  La versione 3 di esp_scsgate consente questo tipo di connessione, testata con DOMOTICZ ed apposito plugin che consente l'integrazione quasi automatica per luci, dimmer, tapparelle. Il plugin (non è mio) viene dichiarato compatibile con HOME_ASSISTANT ma non lo posso assicurare. Se posso proverò.

Qui trovate il manuale della versione 3 con tutti i dettagli del caso: 

http://guidopic.altervista.org/esp_scsgate/espscsgate_3.pdf

 

HOME ASSISTANT

Emanuele ha predisposto un plugin che consente al software home-assistant di colloquiare con scsgate tramite collegamento udp: https://github.com/terminet85/scsgate/tree/new/hardware

La versione 3.x di ESP_SCSGATE è invece pienamente compatibile con HOME ASSISTANT senza necessità di alcun plugin, per i dispositivi di automazione: luci, tapparelle, dimmer.

ALEXA

I sistemi di controllo vocali sono la nuova frontiera domotica. Alexa ne è un esempio, ESP_SCSGATE può essere connesso ad Alexa in tre modi:

1 - con la skill standard di connessione tra Alexa e "casa intelligente" (home-assistant) , che però passa per il "cloud" e richiede un abbonamento 

2 - passando per home-assistant, scrivendo una apposita skill che connette i due mondi, seguendo ad esempio questa guida: https://indomus.it/guide/integrare-gratuitamente-amazon-echo-alexa-con-home-assistant-via-haaska-e-aws/

3 - con una connessione diretta esp_scsgate (dalla versione 4), senza home-assistant, con alcune limitazioni spiegate sul manuale: http://guidopic.altervista.org/esp_scsgate/espscsgate_4.pdf

Ve ne serve uno?

Costruirli a mano richiede tempo, ma se ne avete bisogno posso farne uno anche a voi:  modulo programmato, completo di esp8266, cavetto di connessione al bus, eventualmente anche modulino per riprogrammare esp8266