Giovanni Pirrotta

Just a curious person

Citybot: la tua città, smart, in pochi click

April 09, 2016

A settembre 2015 ho partecipato al raduno Open Data Sicilia, svoltosi a Palermo. In quell’occasione sono venuto a conoscenza del progetto ComunWeb, cioè una soluzione informatica omogenea per tutti i comuni e le comunità di Valle interessate a un portale di comunicazione su piattaforma condivisa. La parte di ComunWeb che ha destato in me maggior attenzione è stata quella relativa all’utilizzo di un modello di dati condiviso fra tutti gli enti locali aderenti (attualmente 178), grazie al quale i flussi di dati tipici di un ente, risultati interni di processi decisionali, vengono rappresentati mediante uno schema standard unico. Questo passaggio, a mio avviso, è la chiave di volta dell’intero progetto perchè è propedeutico a qualsiasi discorso inerente riuso e interoperabilità, temi molto cari a un opendataro come me. Qui non parliamo del classico civic-hacker che passa le notti ad aprire dataset che la pubblica amministrazione quando va bene rilascia in modalità chiusa. No no, qui è la pubblica amministrazione stessa, fonte e sorgente autorevole di dati pubblici che, nell’espletamento dei compiti amministrativi quotidiani, produce ed espone automaticamente i dati verso l’esterno. L’infrastruttura di ComunWeb consente di interrogare i dati dell’ente tramite API REST e con licenza Opendata. I dati ritornano di fatto al cittadino. Chapeau!

Qualche mese più tardi Andrea Borruso creava l’ Albo Pop del comune di Bagheria, uno strumento in grado di collegare l’albo pretorio del comune a più canali online (RSS, Twitter, BOT Telegram), replicato successivamente anche da altri comuni sparsi in tutta Italia e da altre pubbliche amministrazioni.

In rete esistono tantissimi progetti che riusano dati cittadini e creano valore per l’utente finale. Cito ad esempio i BOT sviluppati da Pierfrancesco Paolicelli.

In passato anch’io ho presentato soluzioni applicative, a partire da dati aperti e non, in grado di creare servizi per la cittadinanza: OpenAlboPretorio, Parking in Messina, BOT Telegram per i trasporti (Amat Palermo) e per la Protezione Civile.

Tutti questi progetti erogano servizi per i cittadini, ne migliorano la vivibilità, incentivano la trasparenza della macchina pubblica, forniscono nuove modalità di interazione sfruttando le potenzialità della tecnologia, forniscono nuovi servizi al cittadino creando di fatto valore all’utente finale.

I dati cittadini sono più o meno sempre gli stessi, solitamente riguardano settori come ambiente, macchina amministrativa, cultura, turismo, istruzione, mobilità, sicurezza, sanità, sociale, sport, urbanistica, etc. Queste tematiche sono trasversali per città di qualsiasi dimensione, a partire da essi si potrebbero sviluppare effettivamente un’infinità di applicazioni per migliorare efficacemente la vita al cittadino.

Spesso mi arrivano email di richieste di aiuto, per l’implementazione di servizi che ho realizzato in passato in alcune città. Richieste di amministratori, associazioni o privati che vorrebbero vedere lo stesso identico servizio digitale anche nella loro città.

A questo punto mi faccio delle domande.

Perchè non far funzionare il tutto su un’unica piattaforma, sviluppare l’applicazione una volta sola e renderla disponibile a tutte le città? E ancora, perchè non dare ad ogni cittadino, ed ad ogni città, la possibilità di crearsi uno strumento in grado di creare valore a partire dai dati posseduti senza essere esperti di programmazione?

E’ da qui che sono partito, dalla consapevolezza che, individuata un’applicazione per soddisfare un’esigenza, tale soluzione possa essere replicata a tutte le città, in modo semplice e intuitivo. Piuttosto che avere tante app da installare sul proprio smartphone ho immaginato un’applicazione HUB, un aggregatore configurabile di flussi informativi, scalabile ed estendibile, che possa contenere più servizi, per lo smistamento centralizzato di informazioni generati a partire soprattutto da opendata.

Queste domande sono state il deterrente per la nascita di CityBot.

Disclaimer - CityBot è un prototipo sviluppato dal sottoscritto nei ritagli di tempo extralavorativi e non è ancora in versione stabile. Tuttavia è possibile sperimentarne già alcune funzionalità ma non è prevista ancora una data di rilascio pubblica ufficiale

Image

Perchè un BOT?

Qualche giorno fa Skype (leggi Microsoft) ha annunciato il rilascio di un framework di sviluppo di BOT che consentirà agli sviluppatori di creare BOT dentro Skype. Anche Slack, da tempo, consente di programmare BOT per erogare servizi all’interno della sua chat. Inoltre Facebook, tramite il suo Messenger, ha iniziato a fornire servizi per gli utenti, sotto forma di BOT, anche se per adesso non ha aperto al mondo degli sviluppatori.

Con ciò cosa voglio dire? Voglio dire che l’attenzione da parte di importanti player IT verso i BOT si sta facendo molto seria! Proprio per questo credo fermamente che il mondo dei BOT sia una strada su cui investire tempo e risorse perchè potrebbe rivelarsi un canale su cui sviluppare modelli di business sostenibili.

CITYBOT

CityBot è un configuratore di BOT Telegram in grado di creare servizi informativi per le città, rapidamente e senza essere esperti di programmazione.

CityBot fornisce attualmente le seguenti funzionalità:

  • Flusso RSS Feed - per collegare uno o più feed RSS e tenerti aggiornato sulle informazioni istituzionali e non della tua città: albo pretorio, news dall’università, eventi, notizie in genere, etc.
  • Flusso ComunWeb - se la città aderisce al progetto ComunWeb, a partire dai dati che il comune mette a disposizione tramite le API online, è possibile creare nuovi flussi informativi in CityBot e rendere il cittadino consapevole di ciò che accade nel comune.
  • Area di Attesa - Protezione Civile - servizio che aiuta i cittadini a raggiungere le aree di attesa predisposte dalla Protezione Civile in caso di calamità naturale ed aumentare, in maniera facile e immediata, la sicurezza della città e dei suoi abitanti.
  • ** Pagamento parcheggi in ZTL ** - per far conoscere ai cittadini, data la loro posizione, le tariffe dei parcheggi in ZTL e nelle aree circostanti.

Image

Creazione di un nuovo BOT

Vediamo adesso come creare da zero un nuovo BOT e come arricchirlo di nuove funzionalità. Decidiamo, ad esempio, di creare il CityBot per la città di Palermo. Prima di operare su CityBot dobbiamo entrare in Telegram e creare un nuovo BOT. E’ un’operazione molto semplice, trovate tutte le informazioni sulla documentazione ufficiale di Telegram. Con quest’operazione otterrete il codice identificativo segreto del BOT, chiamato TOKEN, che ci servirà per la creazione del CityBot.

Andando quindi su Telegram creiamo il BOT PalermoCity_Bot.

Ritornando a CityBot, dopo una prima fase di registrazione, effettuiamo il login e ci ritroviamo nella pagina di benvenuto:

Image

A questo punto clicchiamo su Crea il cityBot per la tua città e davanti a noi apparirà la seguente schermata che ci chiederà di inserire il nome della città del BOT e il TOKEN di Telegram, ottenuto in fase di creazione del BOT.

Image

Inseriti nome della città e TOKEN (fittizio nell’esempio),

Image

possiamo creare il BOT. Automaticamente la piattaforma riconoscerà il nome del BOT e ci consentirà di configurarlo in base alle nostre necessità. Cliccando su Configura, Image

entreremo nel pannello di configurazione del BOT:

![Image](/images/citybot-5.jpg?a %}

Dal pannello superiore si potrà accendere il BOT, spegnerlo, eliminarlo o modificare la città. La parte più interessante, però, è quella dei servizi disponibili, in elenco nel pannello inferiore. Nella sezione Plugin disponibili sono presenti i seguenti servizi:

  • **Flusso RSS Feed **
  • **Flusso ComunWeb **
  • **Area di Attesa - Protezione Civile **
  • Parcheggio Zone a Traffico Limitato (ZTL)

Entriamo nel dettaglio in ciascuno dei servizi.

##Flusso RSS Feed L’RSS è uno dei più popolari formati per la distribuzione di contenuti Web, un flusso di testo aggiornato automaticamente sui nuovi articoli del sito a cui si riferisce. Al plugin di CityBot è possibile agganciare uno o più feed RSS, inerenti qualsiasi tipo di news: municipio, università, cronaca, politica, attualità, sport, eventi, etc.

Nel nostro esempio decidiamo di collegare in CityBot le notizie del comune. Sul sito del comune di Palermo i feed RSS sono disponibili alla seguente pagina.

Image

Decidiamo di agganciare al nostro CityBot i seguenti feed:

  • Informazione: Comunicati stampa, scadenze, avvisi, accade a Palermo feed
  • Bandi e Gare: feed

Spostiamoci adesso su CityBot e iniziamo ad aggiungere il primo plugin al nostro CityBot scegliendo quindi flusso RSS Feed.

Clicchiamo su Aggiungi e vedremo comparire il plugin nella sezione Plugin Aggiunti.

Image

A questo punto configuriamo il plugin cliccando su Configura e definiamo un nome per il servizio RSS. Tale nome comparirà nel menù del BOT, per cui cerchiamo di sceglierne uno il più appropriato possibile al contenuto informativo da agganciare. In questo caso, ad esempio, scegliamo il nome “Comune di Palermo”.

![Image](/images/citybot-9.jpg?a %}

Andiamo avanti e iniziamo la configurazione dei feed RSS.

![Image](/images/citybot-10.jpg?p %}

Nella sezione Feed collegati clicchiamo sul bottone Aggiungi (segno più)

Image

e inseriamo il primo feed RSS

Image

Anche in questo caso il nome del feed corrisponderà al nome del sottocomando del BOT. Per il nostro esempio inseriamo il nome News. Il numero max di elementi del feed è configurabile ma nel nostro esempio lasciamo il valore di default 10.

Ripetiamo la stessa operazione per il secondo feed inserendo come nome Bandi e Gare

Image

Per ogni feed possiamo verificarne il contenuto o procedere alla rimozione.

![Image](/images/citybot-14.jpg?o %}

Ritorniamo nel pannello di amministrazione del plugin e accendiamo il servizio.

Image

Dopodichè accendiamo anche il BOT,

Image

ci spostiamo sul nostro smartphone e cerchiamo il Canale PalermoCity_BOT.

Image

Nella schermata compare il messaggio di benvenuto e in basso il menù dei comandi disponibili. A sinistra compare il comando Comune di Palermo, definito nella configurazione del flusso RSS, mentre a destra il comando, sempre presente nel menù principale, relativo alle informazioni di CityBot. Cliccando su quest’ultimo vedremo la seguente schermata:

Image

Nella schermata sono presente informazioni relative a CityBot, tra cui la città di riferimento e il nome dell’utente che ha creato il BOT. Cliccando invece sul primo comando, cioè Comune di Palermo, apparirà il seguente menù:

Image

Il bottone di sinistra, così come configurato precedentemente, è collegato al feed RSS relativo alle informazioni sul comune di Palermo:

Image

Il bottone di destra è collegato invece al feed RSS relativo alle informazioni su Bandi e gare.

Image

##Flusso Comun Web ComunWeb nasce come riuso di una piattaforma realizzata per il comune di Trento, sviluppata da OpenContent e usata oggi da 178 enti locali, 2.123 amministratori locali e 5.000 dipendenti comunali. L’infrastruttura fornita da ComunWeb consente di strutturare e organizzare in modo intelligente le informazioni trattate mediante l’utilizzo di un modello di dati condiviso e di esporre tali dati con licenza opendata attraverso delle API REST.

E’ possibile collegare CityBot ad un flusso dati ComunWeb proveniente da qualsiasi comune aderente. Anche se non ha molto senso agganciare un flusso ComunWeb al nostro CityBot, dato che Palermo non è fra gli enti aderenti, immaginiamo di configurare il nostro CityBot per una città aderente, ad esempio per la città di Ala (TN).

Interrogando le API disponibili risaliamo ai link relativi al catalogo dei dataset, alla lista delle classi globali e a quelle utilizzate. Da quest’ultimo link decidiamo di agganciare CityBot con l’Albo Pretorio e l’elenco delle associazioni presenti in città.

Individuate le fonti dati spostiamoci sul pannello di configurazione di CityBot e aggiungiamo il plugin Flusso ComunWeb.

Image

Entriamo in configurazione e, come per il Flusso RSS, inseriamo il nome che apparirà nel comando del menù principale del BOT; decidiamo di mettere come nome Comune di Ala (TN).

Image

Inseriamo i due link di interrogazione per le informazioni da collegare. Decidiamo di chiamarli Albo Pretorio e Associazioni.

Image

Anche in questo caso accendiamo il servizio, accendiamo il BOT e ci spostiamo sullo smartphone.

Come possiamo vedere dalla schermata, il bottone relativo al Comune di Ala è stato aggiunto a fianco a quello del Comune di Palermo.

Image

Al nuovo bottone è associato il seguente sottomenù:

Image

Al bottone Albo Pretorio corrisponderà il seguente flusso ComunWeb:

Image

Al bottone Associazioni è agganciato invece quest’altro flusso:

Image

Protezione Civile

Dal sito della Protezione Civile leggiamo:

Le aree di attesa sono i luoghi di prima accoglienza per la popolazione; possono essere utilizzate piazze, slarghi, parcheggi, spazi pubblici o privati non soggetti a rischio (frane, alluvioni, crollo di strutture attigue, etc.), raggiungibili attraverso un percorso sicuro. Il numero delle aree da scegliere è funzione della capacità ricettiva degli spazi disponibili e del numero degli abitanti. In tali aree la popolazione riceve le prime informazioni sull’evento e i primi generi di conforto. Le Aree di Attesa della popolazione saranno utilizzate per un periodo di tempo compreso tra poche ore e qualche giorno.

Il plugin Area di Attesa - Protezione Civile si pone come obiettivo quello di individuare in caso di emergenza, l’area di accoglienza più vicina prevista dalla Protezione Civile, fornendoci indicazioni relative alla distanza, percorso e tempo di percorrenza a partire dalla nostra posizione attuale.

Dal pannello di CityBot aggiungiamo il plugin Area di Attesa - Protezione Civile ed entriamo in configurazione. Visualizzeremo la seguente schermata:

Image

A questo punto dovremo disegnare i poligoni corrispondenti alle aree di attesa della Protezione Civile. Possiamo farlo in due modi:

  • disegnando le aree attraverso lo strumento Poligono
  • importando la mappa da file GEOJSON

Nel primo caso bisognerà individuare l’area di attesa sulla mappa, cliccare sullo strumento Poligono in alto a destra,

Image

e iniziare a disegnare il poligono lato per lato.-

Image

Alla chiusura del poligono sarà necessario inserire informazioni relative all’area di attesa disegnata:

Image

Inserite le informazioni dell’area di attesa, per aggiornare la mappa bisognerà cliccare su Aggiorna Dati. Dopo aver disegnato tutte le aree manualmente, per salvare la mappa in CityBot bisognerà cliccare su Salva mappa.

Nel secondo caso basterà invece uplodare la mappa da file GEOJSON, con l’unica accortezza di inserire le informazioni delle aree di attesa in proprietà chiamate name e description, dentro properties.

Esempio di caricamento delle aree di attesa da file GEOJSON:

Image

Usciamo e ritorniamo nel pannello di amministrazione del BOT; accendiamo il servizio e spostiamoci sullo smartphone.

Il nuovo menù principale apparirà nel seguente modo:

Image

Cliccando su Protezione Civile saremo invitati a cliccare sull’icona graffetta e ad inserire la nostra posizione geografica.

Image

CityBot automaticamente calcolerà l’area di accoglienza più vicina, indicando sia la distanza per raggiungerla che il tempo di percorrenza a piedi. Verrà fornita anche la mappa e il link del percorso da seguire, passo passo.

Image

Parcheggio Zone a Traffico Limitato (ZTL)

Il problema dei parcheggi fuori e dentro le ZTL è più o meno trasversale a tutte le città. Vediamo adesso come sfruttare CityBot per calcolare automaticamente la tariffa oraria dei parcheggi, in base alla posizione GPS dello smartphone.

Aggiungiamo quindi l’ultimo dei servizi disponibili in CityBot e procediamo alla sua configurazione.

Image

Anche per questo plugin, come per quello precedente, è possibile disegnare le mappe delle zone di parcheggio manualmente o da file GEOJSON. Nel primo caso indicheremo quindi nel campo Nome il nome dell’area di pagamento (ad es. P1, P2, ZTL1, ZTL2, etc.) e nel campo Descrizione, il dettaglio del pedaggio da pagare (Tariffa oraria, Fascia Oraria, Validità, etc.). Per il nostro esempio, su umap troviamo la mappa dei parcheggi su strada a pagamento di Palermo; decidiamo quindi di caricare su CityBot il file GEOJSON, adattando opportunamente il campo properties (name e description).

Image

Ritorniamo nel pannello del BOT,accendiamo quest’ultimo servizio e il BOT. Spostandoci adesso sullo smartphone il menù sarà adesso:

Image

Cliccando su Pedaggio in ZTL, ci verrà chiesto di inserire la propria posizione, sempre tramite l’icona graffetta, e CityBot ci fornirà le informazioni relative al pedaggio da pagare in base alla nostra posizione.

Image

Conclusioni

In questo post ho voluto raccontare la mia visione di città digitale. Tutto nasce dalla convinzione che l’utilità di un servizio digitale presente in una città può e deve essere esportata con facilità in qualsiasi altra città in modo che tutti i cittadini possano beneficiare degli stessi vantaggi digitali.

Da diversi mesi sto investendo tempo e risorse nello sviluppo di servizi digitali con i BOT Telegram e CityBot è un pò la summa delle esperienze maturate.

In futuro ho in mente di estendere CityBot con le seguenti funzionalità:

  • plugin su altri Punti di Interesse (farmacie, ospedali, parchi, attività commerciali);
  • plugin Raccolta Differenziata;
  • plugin Meteo;
  • plugin Trasporti (agganciato a Transit.land);
  • attivazione Canali per notifiche push.

La piattaforma di CityBot si trova qui. Se volete provare il CityBot creato come esempio per la città di Palermo, cliccate qui.

Se CityBot vi è piaciuto, aiutatemi a farlo conoscere con un tweet, grazie!

Twittami

Image

Per feedback, suggerimenti e critiche non esitate a lasciarmi un commento.

That’s all folks! Stay tuned!

Comments