Domotica con Arduino e BTicino -> vari dubbi

Penso proprio di si, è come rispondere ai delfini, puoi simulare i suoni, ma risponderesti a loro in modo incomprensibile. Abbiamo provato tempo fa a utilizzare tastiere di note marche americane e qualcuna italiana su impianti di allarme, a sniffare i messaggi chiaramente leggibili perchè il protocollo rs 485 è standard però è incomprensibile, magari craccandolo e studiandoci molto si possono ottenere risultati.

Per legge io posso comprare prodotti della Bticino e farli comunicare con una mia centrale, nessuno me lo vieta, il problema è appunto capire cosa si dicono i vari componenti, come avrai notato ci sono dei micro che provvedono a dialogare.

Ma allora esistono delle soluzioni Open per il controllo della casa? Cioè intendo dire attuatori e sensori che comunicano in modo open e a cui posso attaccare un apparecchio Zigbee open?

Innanzitutto buongiorno a tutti, è qualche giorno che leggo discussioni riguardanti la domotica quando tra i vari commenti mi è capitato di leggerne un paio in questa discussione che mi interessano particolarmente:

ibbba: Io personalmente ho domotizzato casa mia (impianto classico con deviatori ed invertitori)per quanto riguarda ogni aspetto,dalle luci all'irrigazione,dal controllo clima alle tende elettriche e porte e cancellati...

khriss75: Non utilizzo i relè passo passo ma quelli normali anche per le luci. Luci ovviamente comandabili anche e soprattutto (97% dei casi) dagli interruttori/deviatori ecc.

Premetto che le mie conoscenze a livello elettrico/elettronico sono abbastanza scarse, tuttavia fino ad ora all'interno di un impianto domotico (almeno per quanto riguarda la gestione delle luci), ho sempre immaginato di dover utilizzare pulsanti e accoppiati ad una scheda con relè al posto dei normali interruttori/deviatori/ecc..

Seppur questa soluzione offra maggior flessibilità (da un giorno all'altro posso cambiare il comportamento di ogni singolo pulsante), soffre a mio avviso di un problema di solidità, infatti se si guasta il "cervello" (la scheda con i relè/arduino o chi al posto suo) si ferma tutto.

Quindi finita la mia premessa chiedo, com'è possibile integrare un sistema tradizionale con la domotica senza sostituire interruttori, deviatori e invertitori?

shake84: Premetto che le mie conoscenze a livello elettrico/elettronico sono abbastanza scarse, tuttavia fino ad ora all'interno di un impianto domotico (almeno per quanto riguarda la gestione delle luci), ho sempre immaginato di dover utilizzare pulsanti e accoppiati ad una scheda con relè al posto dei normali interruttori/deviatori/ecc..

Seppur questa soluzione offra maggior flessibilità (da un giorno all'altro posso cambiare il comportamento di ogni singolo pulsante), soffre a mio avviso di un problema di solidità, infatti se si guasta il "cervello" (la scheda con i relè/arduino o chi al posto suo) si ferma tutto.

Quindi finita la mia premessa chiedo, com'è possibile integrare un sistema tradizionale con la domotica senza sostituire interruttori, deviatori e invertitori?

Ciao, se l'impianto è già predisposto chiaramente è più dura adattarlo alla domotica. Se si utilizzano pulsanti con relè al posto dei deviatori, invertitori e interruttori si può costruire un impianto standard e affiancarlo al sistema domotico, se si guasta il "cervello" non controlli luci e relativo stato da remoto/tablet/arduino ma la luce dal relativo pulsante la accendi eccome! Se invece non si vuol sostituire gli interruttori già presenti allora le cose si complicano e non poco, ma su questa possibilità non ho sufficiente conoscenze per aiutarti a partire da zero

In realtà l'impianto non è ancora predisposto (e nemmeno la casa che andrà ristrutturata completamente con conseguente rifacimento anche dell'impianto elettrico), quindi ho una libertà completa sulla strada da percorrere.

Tra le varie alternative che stavo valutando ci sono:

Ma fino ad ora in queste soluzioni il problema era sempre il "cervello" centrale, se si guasta tutto smette di funzionare.

Quello che mi stai dicendo tu per risolvere il problema e che invece è di utilizzare un'unica scheda con molti relè, utilizzare tanti relè singoli comandati dai pulsanti e allo stesso tempo dall'arduino, in questo modo ogni "pezzo" vive di vita propria.

Effettivamente la tua soluzione è perfettamente logica e semplice, ma stupidamente non avevo pensato a scomporre il problema dell'unica scheda nelle sue sottoparti ;) Nel mentre quindi ti ringrazio e ti faccio un'altra domanda, quali relè mi consiglieresti di utilizzare?

Onde evitare di andate troppo OT ti rimando a due altri miei topic dove sto costruendo una scheda d'interfaccia ai relè http://forum.arduino.cc/index.php?topic=264310.msg1874256#msg1874256 e un altro topic dove ci sono consigli e un link dei relè che sto pensando di usare http://forum.arduino.cc/index.php?topic=265410.msg1874232. Manca ancora la parte d'interrogazione dello stato dei relè ma nel caso ne parliamo di là ;) Ciao

Quindi finita la mia premessa chiedo, com'è possibile integrare un sistema tradizionale con la domotica senza sostituire interruttori, deviatori e invertitori?

E' già la terza domanda su questa questione nello stesso post! XD XD

Invece usando dei relè (e quindi pulsanti) puoi benissimo utilizzare in parallelo il tuo sistema "domotico" e "tradizionale". Se usi dei relè doppio contatto puoi anche avere dei feedback delle uscite, in modo che il tuo "cervello" conosca lo stato di ogni relè.

tapirinho: E' già la terza domanda su questa questione nello stesso post! XD XD

Invece usando dei relè (e quindi pulsanti) puoi benissimo utilizzare in parallelo il tuo sistema "domotico" e "tradizionale". Se usi dei relè doppio contatto puoi anche avere dei feedback delle uscite, in modo che il tuo "cervello" conosca lo stato di ogni relè.

Si lo so, ma le due precedenti domande di altri utenti mi pareva fossero andate perse, in ogni caso qui ho trovato una risposta: http://forum.arduino.cc/index.php?&topic=266753.msg1885848

ciao a tutti sto sfogliando post per post e forse questo è quello più appropriato,io ho un impianto Domotico (e per me lo è) della Bticino quello che vorrei realizzare è una tastiera che in base al numero che si invia manda un socket sul mio indirizzo del gateway domotico....come gateway ho un mh200N Bticino e su arduino una wifi shield

copiando qui e li ero riuscito a farlo con python ma non trovo la giusta sintassi per inviare stringhe con arduino....

posto il codice python e magari qualcuno riesce a indirizzarmi...grazie ....

client

import os

from socket import * host = "192.168.1.130" port = 20000 addr = host, port client = socket(AF_INET, SOCK_STREAM) client.connect(addr) client.send("*1*1*14##")

client.close()

chiedo scusa se sono andato a riaprire un topic di piu di 120 giorni fa :( forse è per questo che non mi fa mettere il codice come code....

Quale shield ethernet hai ? La ufficiale con WIZ5100 o l'economica ENC28J ? (Le librerie sono diverse)

Arduino? nemmeno quello dice UNO, DUE, YUN ............

http://www.arduino.cc/en/Main/ArduinoWiFiShield questa... scusate......arduino uno ah forse mi sono espresso male il codice di python lavora sul pc,forse ho scritto una cosa banale.

Arduino qui funziona da client e il Btcino fa da server che attende ordini

Hai provato con questo esempio? Viene prima di tutto stabilita la connessione wifi con la tua rete, poi una volta confermata, spedisce una stringa

http://www.arduino.cc/en/Reference/WiFiClient

in teoria sostituendo client.println("GET /search?q=arduino HTTP/1.0"); con client.println("*1*1*14##"); ovviamente anche l'IP e la porta vanno cambiati

dovresti avere qualche riscontro, è un protocollo che non conosco

la scheda si collega alla rete wifi qui il report da monitor:

Attempting to connect to SSID: dany dlinkII
Connected to wifi
SSID: dany dlinkII
IP Address: 192.168.0.103
signal strength (RSSI):-38 dBm

Starting connection to server…
disconnecting from server.

posto il codice che uso,grazie in anticipo per la disponibilità…

#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>

#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>

/*
  Web client
 
 This sketch connects to a website (http://www.google.com)
 using a WiFi shield.
 
 This example is written for a network using WPA encryption. For 
 WEP or WPA, change the Wifi.begin() call accordingly.
 
 This example is written for a network using WPA encryption. For 
 WEP or WPA, change the Wifi.begin() call accordingly.
 
 Circuit:
 * WiFi shield attached
 
 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */


#include <SPI.h>
#include <WiFi.h>
//char scs[]="*1*0*53##";//scs string 
char ssid[] = "dany dlinkII"; //  your network SSID (name) 
char pass[] = "miatuapsw";    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;            // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
//char server[] = "www.google.com";    // name address for Google (using DNS)
IPAddress server(192,168,1,130);




// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
WiFiClient client;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600); 
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present"); 
    // don't continue:
    while(true);
  } 
  
  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) { 
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:    
    status = WiFi.begin(ssid, pass);
    
    // wait 10 seconds for connection:
    delay(10000);//10000
  } 
  Serial.println("Connected to wifi");
  printWifiStatus();
  
  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  
  if (client.connect(server, 20000)) {
    Serial.println("connected to server");
    // Make a HTTP request:
    client.println("*1*1*14##");
    //client.println("GET /search?q=arduino HTTP/1.1");
   
    client.println("Connection: close");
    client.println();
  }
}

void loop() {
  // if there are incoming bytes available 
  // from the server, read them and print them:
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
  
 
 }
  

    
    Serial.println("disconnecting from server.");
    client.stop();

    // do nothing forevermore:
    while(true);
  }



void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");

}

quindi? niente?

tutte quelle lib la sopra?

#include <Dhcp.h>
#include <Dns.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
#include <EthernetUdp.h>

#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>

mmm mi sa che sono di troppo quelle librerie…
metto esempio che mi avete linkato…
si collega alla wifi ma non funziona…ora devo capire se arriva il socket o se nn lo interpreta

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "dany dlinkII";          //  your network SSID (name) 
char pass[] = "wireless";   // your network password

int status = WL_IDLE_STATUS;
IPAddress server(192,168,1,129);  // Google

// Initialize the client library
WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.println("Attempting to connect to WPA network...");
  Serial.print("SSID: ");
  Serial.println(ssid);

  status = WiFi.begin(ssid, pass);
  if ( status != WL_CONNECTED) { 
    Serial.println("Couldn't get a wifi connection");
    // don't do anything else:
    while(true);
  } 
  else {
    Serial.println("Connected to wifi");
    Serial.println("\nStarting connection...");
    // if you get a connection, report back via serial:
    if (client.connect(server, 20000)) {
      Serial.println("connected");
      // Make a HTTP request:
      //client.println("GET /search?q=arduino HTTP/1.0");
       client.println("*1*0*53##");
      
      client.println();
    }
  }
}

void loop() {

}

imdany: host = "192.168.1.130"

Hai cambiato gli IP ? Ora usi 129 ?!?

si

IPAddress server(192,168,1,129);

qui: http://forum.arduino.cc/index.php?topic=167794.15

ho letto che qualcuno aveva risolto usando IDE 1.02 ho provato ad usarla per caricare lo sketch e funziona....leggendo qui e li mii sa che devo aggiornare la wifi shield http://www.arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading appena aggiorno vi faccio sapere....comunque ora la luce si spegne quindi per ora funziona .Ora parto con un bel strestest!!!!!..grazie ....

Ciao! Anch'io ho in casa un sistema SCS BTicino per motori delle tapparelle. È possibile utilizzare o meglio, automatizzare questo sistema con Arduino? Alcune ditte che producono centraline per la Smart Home non sono state in grado di aiutarmi. I loro prodotti non si possono interfacciare con Bticino... cosa ne pensate? Si può far riferimento alle guide su GuidoPIC? Quale?