Skip to content
root edited this page Mar 17, 2015 · 2 revisions

Introduction

Ziel ist es ein Raspberry PI in HAP einzubinden, um bspw. weitere Sensoren auszulesen. Diese können an der GPIO Schnittstelle angeschlossen & ausgewertet werden.

Details

Hier als Bespiel das Auslesen eine DS18S20 Temperaturesensur, via 1wire.

  1. Installation der Kernelmodule:
pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo modprobe wire
pi@raspberrypi ~ $ sudo modprobe w1_gpio
pi@raspberrypi ~ $ sudo modprobe w1_therm
pi@raspberrypi ~ $ sudo apt-get install bc
  1. Anschluss Dalles DS1820 am PI
  • 4,7kOhm Pull-Up zwischen den DATA & 3,3V Leitung nicht vergessen

GPIO:

  • VDD : PIN 1 ( 3,3 V, nicht 5V!)
  • DATA : PIN 5 (GPIO 3)
  • GND : PIN 6 (GND)
  1. Übertragung & Anzeige in der GUI erfolgt via einer virtuellen CU, die angelegt werden muss
  • Es muss eine virtuelle CU angelegt werden
  • In der virtuellen CU wird pro Kanal eine device angelegt
  • Formula: return ((X-5000)*0.001);
  • Type: Switch

https://github.com/netmb/hap/wiki/images/Device_V.png

---> Anzeige in der GUI dann wie gewohnt durch einen "value layer" mit der jeweiligen Device

  1. Raspberry PI Skript zum auslesen des DS18S20

  2. Im Verzeichnis /sys/bus/w1/devices/w1_bus_master1/ nachschauen, welche ID der Sensor im BUS hat (hier 10-000802016a2f).

  3. IP bei Telnet ersetzen

  4. Destination & device ersetzen

#!/bin/bash

# Temperatur des Sensors auslesen
etxt=$(grep 't=' /sys/bus/w1/devices/w1_bus_master1/10-000802016a2f/w1_slave | awk -F 't=' '{print $2}')
# 4 digites mit Offset für negative Temperaturen
number=${etxt:0:4}
number_offset=$(($number+5000))

/usr/bin/expect <<EOD
spawn telnet 192.168.1.2 7891
sleep 2
send "source <Dummy_M> destination <Server-CCU> status device <Dummy_D> value $number_offset\r"
sleep 2
send "exit\r"
interact
EOD
  • Dummy_M = Dummy Modul
  • Server-CCU = Server CCU ID
  • Dummy_D = Dummy Device
Clone this wiki locally