{"id":363,"date":"2018-10-14T14:23:30","date_gmt":"2018-10-14T13:23:30","guid":{"rendered":"https:\/\/www.clodo.it\/blog\/?p=363"},"modified":"2024-04-09T16:00:27","modified_gmt":"2024-04-09T15:00:27","slug":"domotica-diy-personale","status":"publish","type":"post","link":"https:\/\/www.clodo.it\/blog\/domotica-diy-personale\/","title":{"rendered":"My Home Automation &#8211; Memole"},"content":{"rendered":"<p style=\"text-align: right;\">Aggiornato in dicembre 2019.<\/p>\n<p>Qui racconto le soluzioni di home-automation che ho adottato in casa mia, progetto perennemente in corso. E&#8217; sempre stato un sogno nel cassetto realizzare un prodotto (hardware+software) user-friendly e open-source dedicato alla home-automation, anche se non ho mai rilasciato nulla perch\u00e8 ancora oggi sto usando casa mia come caso di studio e sviluppo :P.<\/p>\n<p>Nel leggere il progetto di <a href=\"https:\/\/twitter.com\/cesco_78\">Francesco Tucci<\/a> : <a href=\"http:\/\/www.iltucci.com\/blog\/la-domotica-fai-da-me\/\">La domotica fai da me<\/a> mi \u00e8 venuta voglia di raccontarvi il mio, molto simile come motivazione di base.<\/p>\n<p>Premessa: NON mi occupo di questo per lavoro, l&#8217;ho realizzato negli anni SOLO per casa mia SOLO per hobby, anche se \u00e8 sempre stato un sogno nel cassetto realizzare un prodotto per home-automation user-friendly&nbsp; e open-source.<\/p>\n<p>Come dice Francesco,<\/p>\n<blockquote><p>&#8220;Non sono dipendente da servizi che potrebbero fallire o chiudere&#8221;<\/p><\/blockquote>\n<p>il mio sistema di domotica \u00e8 nato dal rifiuto di volermi appoggiare su progetti commerciali di terze parti. Casa mia dovr\u00e0 funzionare anche tra trent&#8217;anni quando sar\u00f2 un vecchio rimbambito. E magari non essere costretto a usare App Android separate tra loro e poter liberamente scrivere script di interoperabilit\u00e0.<\/p>\n<p>Non sempre \u00e8 possibile, la domotica\/IoT \u00e8 piena di soluzioni cloud-only, tendenzialmente capita che uso queste soluzioni al fine di capire le mie necessit\u00e0, per poi (col tempo) migrarle a soluzioni open.<br \/>\nIl riconoscimento vocale in casa, lo faccio con degli Alexa, perch\u00e8 una soluzione non-cloud affidabile ancora non esiste.<\/p>\n<h2>Memole, la centralina di controllo<\/h2>\n<p>Un Raspberry PI principale, chiamato <strong>Memole,&nbsp;<\/strong>l&#8217;assistente di casa, quasi un membro della famiglia.<\/p>\n<p>Memole gestisce tutta la casa. DHCP &amp; DNS per la rete privata (con blocco anti-ads e anti-malware a monte via PiHole), ha UI (tablet in casa) e chatbot (Telegram), gestisce la casa e comanda tutti gli altri hub.<\/p>\n<ul>\n<li>Ha un unico file <i>config.json<\/i> con tutte le opzioni specifiche di casa mia: temperature volute, widgets da mostrare nella UI, mappa mac-address&gt;plugin, etc.<\/li>\n<li>Riempie un unico file <em>data.json<\/em> con tutti i dati che raccoglie.<\/li>\n<li>Raccoglie dati via <em>nmap<\/em> sui devices in rete. Questo per avere un&#8217;elenco dei devices in rete locale. <a href=\"http:\/\/www.clodo.it\/host\/images\/9f6324511d7c979efabc14c2adc9b14ab0bff5e1.png\">Shot di UI<\/a><\/li>\n<li>Nel file config.json ci sono tutti i map mac-address-&gt;plugin, ad esempio c&#8217;\u00e8\n<pre>\"C8-FF-77-D8-FE-C5\": {                \n\t\"name\": \"Dyson Camera\",                \n\t\"type\": \"dyson-pure-cool\",                \n\t\"category\": \"Domotics\",                \n\t\"dyson_name\": \"Camera\",\n},<\/pre>\n<p>Memole dopo aver verificato quali devices sono online, se al device corrisponde un plugin (nel caso di esempio &#8220;dyson-pure-cool&#8221;) lancia lo script che lo controlla per raccogliere dati<br \/>\n(nel caso di esempio temperatura, umidit\u00e0 etc).<\/li>\n<li>Monta un webserver (nginx) con un&#8217;interfaccia jQuery tutta in ajax che legge il <em>data.json<\/em> e genera la UI.<br \/>\nOvviamente la vedo da smartphone.<br \/>\nIn casa, ho dei tablet in modalit\u00e0 Kiosk che mostrano l&#8217;interfaccia.<br \/>\nLa vedo da remoto via port-forwarding su una VPS mia su Amazon EC2.<br \/>\nAd esempio, un widget in config.json cos\u00ec<\/p>\n<pre>\"riscald_primo\": {\n                \"x\": 55,\n                \"y\": 16,\n                \"width\": 18,\n                \"height\": 10,\n                \"title\": \"Riscaldamento Primo\",\n                \"text\": \"[field=devices.B8-27-EB-7A-26-B9.caldaiaRelayPrimo,format=bool] [field=devices.B8-27-EB-7A-26-B9.temperature_detected_primo]\\u00b0 [fontawesome]f18e[\\\/fontawesome] [field=config.temperature_target_primo]\\u00b0\"\n            },<\/pre>\n<p>viene renderizzato in html cos\u00ec: <a href=\"http:\/\/www.clodo.it\/host\/images\/528c2399c5a9c8d1341097e0e290f9779897275c.png\"><img decoding=\"async\" src=\"https:\/\/www.clodo.it\/host\/thumbs\/528c2399c5a9c8d1341097e0e290f9779897275c.png\"><\/a><\/li>\n<li><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"http:\/\/www.clodo.it\/host\/thumbs\/ec4b999f3694f4222e103822bfa027cef7512ee5.jpg\" alt=\"\" width=\"139\" height=\"200\">Uso anche un bot Telegram per interazione. Ad esempio, se tiro il campanello di allarme della sauna, l&#8217;avviso arriva dal bot Memole. Risponde a comandi quali &#8220;accendi studio&#8221;, &#8220;spegni tutte le luci&#8221;, &#8220;dimmi lo stato uso corrente&#8221;, &#8220;accendi camino elettrico&#8221; etc.<\/li>\n<li>Memole interroga anche gli altri Raspberry dislocati in casa, generalmente usati come sensori (temperature, umidit\u00e0 etc) o come interfaccie cablate ad altri sistemi (ad esempio ho un raspberry in caldaia che traduce comandi di Memole in comandi seriali via modbus alla pompa di calore).<\/li>\n<li>La maggior parte dei pulsanti fisici (i &#8216;frutti&#8217;) sono pulsanti che Memole sente, e comanda altri device correlati.<br \/>\nAd esempio, in mansarda ho dei pulsanti tradizionali, che se premuti accendono delle fascie di led di Philips Hue. Se doppio-click, cambiano preset di colori.<\/li>\n<\/ul>\n<h2>Konnex<\/h2>\n<p>Ho un sistema Instabus\/EIB\/Konnex, uno standard open che permette l&#8217;interoperabilit\u00e0 di componenti elettriche.<br \/>\nIn pratica quando ho costruito casa, ho fatto mettere una canalina che contiene un bus-dati EIB.<br \/>\nIn un sistema elettrico normale ogni interruttore \u00e8 collegato a una luce fisicamente, io invece in OGNI interrutture di casa ho un modulo che manda un telegramma &#8220;\u00e8 stato premuto&#8221; e basta, e una centralina che reagisce in base alla configurazione, tipicamente un &#8220;accendi la luce X&#8221;.<br \/>\n<a href=\"https:\/\/www.clodo.it\/host\/images\/a26557ab56e0f42b7253a1473b6c8dc122b41c5e.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"https:\/\/www.clodo.it\/host\/thumbs\/a26557ab56e0f42b7253a1473b6c8dc122b41c5e.png\" alt=\"\" width=\"179\" height=\"200\"><\/a>Questo mi permette via API di controllare tutto (per dire, aprire il garage o il cancello elettrico dalla mia UI).<br \/>\nPermette anche la creazione di scenari, tipo &#8220;Se premo il bottone vicino all&#8217;uscita, spegni tutte le luci e chiudi tutti i vasistas&#8221;.<\/p>\n<p>Uso il software ETS5.5 per la configurazione e debugging, e un Gira Ethernet per il controllo dai miei scripts.<\/p>\n<h2>Autoalimentazione elettrica<\/h2>\n<p>Ho diverse soluzioni semi-funzionanti per rilevare l&#8217;uso della corrente elettrica.<br \/>\nL&#8217;ultimo in uso oggi sono le API di TeslaWall2 (<a href=\"https:\/\/t.co\/xpvADuP9XG\">qui<\/a> un esempio di output json), che mi permettono di leggere in realtime il consumo di casa, quanto produce il fotovoltaico, quanto \u00e8 coperto dalla batteria di accumulo, quanto compro da Enel.<\/p>\n<p>Ho un fotovoltaico da 18 kW, una batteria di accumulo da 13.5 kW (sto valutando se metterne altre due), il tutto in un trifase con stabilizzatore di tensione.<\/p>\n<p>In estate ho un&#8217;autoalimentazione da <a href=\"https:\/\/twitter.com\/Clodo76\/status\/991287516685889536\">oltre il 90%<\/a>, in inverno con il riscaldamento una percentuale molto pi\u00f9 bassa.<\/p>\n<h2>Riscaldamento<\/h2>\n<p>Questo \u00e8 stato uno dei primi obiettivi del mio sistema, in quanto per scelta NON ho alcun termostato in casa e se il riscaldamento funziona male mia moglie giustamente sclera.<\/p>\n<p>Attualmente ho tre Raspberry che rilevano temperatura e umidit\u00e0 per piano.<br \/>\nIl raspberry centralina li interroga, e in base a un&#8217;algoritmo scritto in uno script determina se comunicare ad un quarto Raspberry collegato via modbus alla caldaia l&#8217;attivazione dei rel\u00e8.<br \/>\nPraticamente ho un termostato software.<\/p>\n<p>Cerco di usare una caldaia a gas SOLO come sistema di backup, ma a regime il riscaldamento a pavimento \u00e8 alimentato da una pompa di calore, un Hybrid Cube Daikin per l&#8217;acqua calda, otto splitter e altre tre macchine esterne degli splitter. Via modbus ho i dati in realtime dello stato caldaia e delle temperature (water inlet, leaving, outside, tank etc).<\/p>\n<p>Al fine di aumentare l&#8217;autosostenimento, applico regole tipo il cercare di alzare la temperatura finch\u00e8 il fotovoltaico produce evitando se ragionevole l&#8217;uso della corrente di notte.<\/p>\n<h2>Alexa &#8211; Amazon Echo<\/h2>\n<p>Come interfaccia di gestione vocale, per la copertura della maggior parte delle aree di casa, son costretto ad usare degli Echo (ne ho un po&#8217;, a memoria 8). Lo so, discutibile come privacy, e cloud-based.<br \/>\nMa NON uso alcuna skill per la domotica. Mi son scritto la mia skill (Lambda su AWS), in modo che Alexa funzioni da gateway traslando comandi vocali per passarli a Memole.<br \/>\nQuindi un domani mi baster\u00e0 trovare un&#8217;equivalente che faccia un riconoscimento e TextToSpeech. Ad oggi, con un Raspberry e soluzioni non-cloud, il riconoscimento di testo libero (senza esercitazione su word specifiche) \u00e8 tragico.<\/p>\n<h2>Piscina<\/h2>\n<p>Uso un <a href=\"http:\/\/www.astralpool.it\/blue-connect\/\">Blue Connect<\/a> (cloud-based) come aiuto nella gestione, perch\u00e8 \u00e8 parecchio complicato gestire il PH, la salinit\u00e0 etc, ma il resto della gestione (come la schedulazione della pompa di filtraggio o il riscaldamento) \u00e8 anch&#8217;essa gestita direttamente da Memole.<\/p>\n<h2>Rete lan<\/h2>\n<p>Ho 15 punti lan e diversi router wifi. La casa \u00e8 ampia, \u00e8 l&#8217;unico modo per avere una copertura decente da ogni punto della casa.<br \/>\nSto testando l&#8217;uso di Ubiquiti con punti mesh per risolvere il problema di copertura con un&#8217;unico SSID.<br \/>\nUso un Vigor 2760 come router primario per l&#8217;ADSL, QoS etc, principalmente perch\u00e8 il mio ISP mi ha dato una configurazione IPv6 strana che riesco a far andare solo con quello. Ai tempi della richiesta IPv6, diversi anni fa, a detta del mio ISP fui il primo a chiederlo&#8230;<\/p>\n<h2>Antifurto<\/h2>\n<p>No. Cio\u00e8, c&#8217;\u00e8 l&#8217;antifurto, un TecnoAlarm, ma per scelta \u00e8 totalmente manuale e separato dalle mie diavolerie DIY.<\/p>\n<h2>Altri agganci con hub IoT<\/h2>\n<p>Memole interagisce con diversi hub di altre soluzioni domotiche (alcune cloud-based). Ribadisco, Memole \u00e8 l&#8217;interfaccia primaria, i seguenti hub sono usati come &#8216;helper&#8217; da Memole, mai direttamente.<br \/>\nAttualmente come gateways ho:<\/p>\n<ul>\n<li>Un hub Z-Wave Fibaro con cui controllo qualche presa comandata e&nbsp;gestisco <a href=\"https:\/\/www.fibaro.com\/it\/products\/motion-sensor\/\">gli occhietti Fibaro<\/a><\/li>\n<li>Un hub Philips Hue per diverse luci RGB.<\/li>\n<li>Un <a href=\"https:\/\/www.fing.io\/fingbox-network-security-appliance\/\">Fingbox<\/a> anche se sto cercando di abolirlo<\/li>\n<\/ul>\n<p>Quindi attualmente quando devo agganciare un devices IoT, posso scegliere se Konnex, Z-Wave (via Fibaro), Zigbee, o perlomeno scelgo un device che potr\u00f2 controllare direttamente da Memole via LAN (via API), o se ha un&#8217;interfaccia almeno seriale (modbus ad esempio), gli piazzo un Raspberry che Memole controller\u00e0.<\/p>\n<h2>Altri devices agganciati<\/h2>\n<ul>\n<li>Un <a href=\"https:\/\/lametric.com\/\">Lametric Time<\/a> come UI per l&#8217;output di qualche valore<\/li>\n<li>4 <a href=\"https:\/\/www.dyson.it\/ventilatori-e-termoventilatori-dyson\/purificatori\/dyson-pure-cool\/visione.aspx\">Dyson Pure Cool<\/a>, per rilevamento e pulizia qualit\u00e0 dell&#8217;aria in casa.<\/li>\n<li>Un videocitofono Biticino (che odio, prima o poi lo costruisco da solo).<\/li>\n<li>Una <a href=\"https:\/\/www.jacuzzi.it\/wellness\/sasha\/mi\">sauna Jacuzzi MI<\/a>. La elenco qui perch\u00e8 ho fatto io l&#8217;aggancio con Alexa per comandare Memole da dentro la sauna e per la gestione di musica d&#8217;ambiente e cromoterapia.<\/li>\n<li>Una shower toilet <a href=\"https:\/\/www.youtube.com\/watch?v=5EB_69OWBYY\">Ghroe Sensia Arena<\/a> , praticamente un bagno stile giapponese. Non \u00e8 ancora collegata a Memole, non c&#8217;\u00e8 motivo, ma lo riporto qui perch\u00e8 \u00e8 comunque un device tecnologico parte della casa.<\/li>\n<\/ul>\n<h2>Altri devices tecnologici in casa, non legati a IoT<\/h2>\n<ul>\n<li>Diversi sistemi di home-theater, nelle varie aree (cinema con proiettore in taverna, salotto, camere, palestra) di cui non sto a elencare hardware. Generalmente Android.<\/li>\n<li>Sono un gran fan delle tecnologie VR. Ho 2 aree distinte, tantissimi headset, soprattutto<a href=\"https:\/\/www.clodo.it\/blog\/my-racing-simulator-track-and-rally\/\"> una postazione gaming che cerco di tenere tecnologicamente all&#8217;avanguardia<\/a>.<\/li>\n<li>Un cabinato da bar originale Jamma ristaurato con una collezione di giochi arcade pre-anni-90. Mame, C64, Amiga, GameBoy e laser-disc emulation via Daphne. Monta un catodico originale, una scheda VGA custom per riprodurre il feeling esatto a 15 khz e risoluzione esatta nativa (Bubble Bobble per dire gira a 256\u00d7224, 256 colori), crediti inserendo monete.<\/li>\n<li>Un laghetto per tartarughe (con pompa e cascata) controllato da Memole.<\/li>\n<\/ul>\n<h2>Fine<\/h2>\n<p>Bon, per ora mi fermo, magari se l&#8217;argomento piace integrer\u00f2 qualche altra spiegazione.<br \/>\nCiao!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aggiornato in dicembre 2019. Qui racconto le soluzioni di home-automation che ho adottato in casa mia, progetto perennemente in corso. E&#8217; sempre stato un sogno nel cassetto realizzare un prodotto (hardware+software) user-friendly e open-source dedicato alla home-automation, anche se non ho mai rilasciato nulla perch\u00e8 ancora oggi sto usando casa mia come caso di studio &hellip; <a href=\"https:\/\/www.clodo.it\/blog\/domotica-diy-personale\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">My Home Automation &#8211; Memole<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":515,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,24,5],"tags":[],"uagb_featured_image_src":{"full":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",704,384,false],"thumbnail":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation-150x150.jpg",150,150,true],"medium":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation-300x164.jpg",300,164,true],"medium_large":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",660,360,false],"large":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",660,360,false],"1536x1536":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",704,384,false],"2048x2048":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",704,384,false],"post-thumbnail":["https:\/\/www.clodo.it\/blog\/wp-content\/uploads\/2018\/10\/feature-homeautomation.jpg",704,384,false]},"uagb_author_info":{"display_name":"Clodo","author_link":"https:\/\/www.clodo.it\/blog\/author\/clodo\/"},"uagb_comment_info":1,"uagb_excerpt":"Aggiornato in dicembre 2019. Qui racconto le soluzioni di home-automation che ho adottato in casa mia, progetto perennemente in corso. E&#8217; sempre stato un sogno nel cassetto realizzare un prodotto (hardware+software) user-friendly e open-source dedicato alla home-automation, anche se non ho mai rilasciato nulla perch\u00e8 ancora oggi sto usando casa mia come caso di studio&hellip;","_links":{"self":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/363"}],"collection":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/comments?post=363"}],"version-history":[{"count":11,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions"}],"predecessor-version":[{"id":651,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/posts\/363\/revisions\/651"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/media\/515"}],"wp:attachment":[{"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/media?parent=363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/categories?post=363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.clodo.it\/blog\/wp-json\/wp\/v2\/tags?post=363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}