Paso 4: Conexión a OpenHab
No voy a entrar en la configuración de OpenHab en esta guía (y sólo voy a hacer uno si no encuentro uno bueno para enlazar). Montón de recursos que hay. Sólo voy a hablar sobre cómo llegar a hablar con el cubo de Arduino.
ARCHIVO DE ARTÍCULOS
Primero, usted necesita configurar Arduino archivo .items. Aquí está las líneas que utilizo:
Esto establece la conexión al puerto serie de Arduino (su puerto COM puede variar, heck puede no incluso ser llamado un puerto COM si estás en linux (creo que lo llaman tty o algo)):
Cadena de Arduino "Arduino [%s]" (arduino) {serial = "COM5"}
Esto establece el botón que puede presionar para abrir/cerrar/detener su puerta de garaje
Interruptor Arduino_toggle "Arduino Toggle"
ARCHIVO DE SITEMAP
A continuación, usted querrá establecer elementos en el archivo de Sitemap que tu controles. Este es mi material:
Esto muestra un icono para una puerta de garaje, así como el estado actual en texto. Desde el icono de garagedoor espera que los Estados "Abiertos" y "Cerrado" el icono visual cambiará para que coincida con el estado de la puerta:
Elemento de texto = icono de Garage_Eric = "garagedoor"
Esto le da un botón que usted puede empujar activa un evento, que envía «1» a arduino, utilizando una regla que analizaremos en la sección de reglas.
Elemento interruptor = Garage_Eric_Button asignaciones = [ON = "Cambiar estado"] icon = "energía"
ARCHIVO DE REGLAS DE
Por último, a establecer una regla que dice estas cosas que hacer:
Esta regla dice que cuando el Arduino envía los datos a través de su puerto serie, para convertir esa cadena a un flotador y luego ver si es más o menos de 7. Para mí, la puerta está abierta cuando lee 2 y cerrado cuando lee 12.
regla "Arduino"
Cuando
Artículo Arduino recibió actualización
entonces {}
dist de flotador var = nuevo Float(Arduino.state.toString.trim);
Si (dist > 7) Garage_Eric.postUpdate("CLOSED");
Si (dist < = 7) Garage_Eric.postUpdate("OPEN");
final
Esta regla dice que cualquier tiempo que pulsa el botón, para enviar "1" a través de puerto serie de Arduino. En mi código (en el ejemplo de garaje), si el garaje Arduino recibe un 1, activa la puerta.
regla "Garaje Eric"
Cuando
Artículo Garage_Eric_Button recibidas comando
entonces
sendCommand (Arduino, "1")
final