Synology DiskStation als Syslog-Server für RaspberryPi / Ubuntu-Server

oraussetzung: Aktivierter Syslog-Server auf der DiskStation von Synology (Link).

Im Raspberry / Ubuntu-Server muss lediglich die Datei /etc/rsyslog.conf editiert werden und am Schluss folgende Zeilen eingefügt werden:

# Send log to remote syslog server using UDP (for TCP add ad second "@" after the first one)
*.* @192.168.1.10:514

wobei die IP natürlich durch die eures Servers/PCs ersetz werden muss. Der Port bleibt 514 (Standard) bzw. muss auf den in der Synology DiskStation eingestellten Port geändert werden.

anschließend:

sudo service rsyslog restart

Quelle

[Tutorial] Raspberry Pi Syslog an Remote Syslog Server senden

Lichtsensor: BH1750 (GY-30)

Voraussetzungen

Modul verbinden

GND –> Ground
VCC –> 3.3V
SDA –>GPIO2
SCL –> GPIO3
ADDR –> nicht benötigt

Quelltext für Python

#!/usr/bin/python
import smbus
import time
 
# Define some constants from the datasheet
 
DEVICE     = 0x23 # Default device I2C address
 
POWER_DOWN = 0x00 # No active state
POWER_ON   = 0x01 # Power on
RESET      = 0x07 # Reset data register value
 
# Start measurement at 4lx resolution. Time typically 16ms.
CONTINUOUS_LOW_RES_MODE = 0x13
# Start measurement at 1lx resolution. Time typically 120ms
CONTINUOUS_HIGH_RES_MODE_1 = 0x10
# Start measurement at 0.5lx resolution. Time typically 120ms
CONTINUOUS_HIGH_RES_MODE_2 = 0x11
# Start measurement at 1lx resolution. Time typically 120ms
# Device is automatically set to Power Down after measurement.
ONE_TIME_HIGH_RES_MODE_1 = 0x20
# Start measurement at 0.5lx resolution. Time typically 120ms
# Device is automatically set to Power Down after measurement.
ONE_TIME_HIGH_RES_MODE_2 = 0x21
# Start measurement at 1lx resolution. Time typically 120ms
# Device is automatically set to Power Down after measurement.
ONE_TIME_LOW_RES_MODE = 0x23
 
#bus = smbus.SMBus(0) # Rev 1 Pi uses 0
bus = smbus.SMBus(1)  # Rev 2 Pi uses 1
 
def convertToNumber(data):
  # Simple function to convert 2 bytes of data
  # into a decimal number
  return ((data[1] + (256 * data[0])) / 1.2)
 
def readLight(addr=DEVICE):
  data = bus.read_i2c_block_data(addr,ONE_TIME_HIGH_RES_MODE_1)
  return convertToNumber(data)
 
def main():
 
  while True:
    print "Light Level : " + str(readLight()) + " lx"
    time.sleep(0.5)
   
if __name__=="__main__":
   main()

 

Quellen

I2C aktivieren

1. Schritt: Interface aktivieren

Zunächst muss das I2C Interface aktiviert werden:

sudo raspi-config

Unter 5. Interfacing Options kann das Ganze ausgewählt werden.

2. Schritt: Utilities installieren

sudo apt-get update
sudo apt-get install -y python-smbus i2c-tools

Anschließend muss der Raspberry neugestartet werden.

3. Schritt: Überprüfen
Um die erfolgreiche Aktivierung des Interfaces zu überprüfen gibt man folgendes in der Konsole ein:

lsmod | grep i2c_

Enthält die Ausgabe i2c_bcm2708 ist das Modul erfolgreich aktiviert.

4. Schritt: Angeschlossene Hardware überprüfen
Möchte man angeschlossene Hardware abfragen, so kann man dies wie folgt tun:

sudo i2cdetect -y 1

Man erhält eine Ausgabe der Form:

pi@raspberrypi ~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Hier sieht man ein Device auf 0x20 addressiert.

Quellen

 

433MHz Funksteckdosen mit dem Raspberry Pi steuern und an Homematic verknüpfen

Ich habe die Steuerung von Funksteckdosen mit dem Raspberry Pi umgesetzt und eine Schnittstelle zur Homematic Zentrale geknüpft. Das ganze Projekt beschreibt euch der folgende Artikel detailliert in einer Schritt für Schritt Anleitung.

Weiterlesen

GPIO Eingänge: Werte wechseln ständig zwischen 0 und 1

Bei der Umsetzung meiner ersten Projekte mit dem Raspberry Pi ist mir aufgefallen, dass die GPIO Eingänge zwischen 0 und 1 hin und her wechseln, wenn allein ein Kabel eingesteckt ist und obwohl eigentlich noch kein 3,3V Signal anliegt.

Eine kurze Websuche brachte die folgende Lösung:

GPIO.setup(Eingangspin, GPIO.IN,pull_up_down=GPIO.PUD_DOWN)

Die Ursache: Wenn der Stromkreis zwischen dem Eingang und der 3.3V Stromquelle nicht verbunden ist, weil z.B. ein Schalter dazwischen geschaltet ist, „floatet“ das Signal zwischen 0 und 3.3V. Diesen Umstand kann man durch einen Widerstand (z.B. 10K) oder auch via Software beheben. Durch das o.g. wiringPi Kommande kann so das Signal auf „HIGH“ oder „LOW“ festgelegt werden.

Quelle: https://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/

Einen guten Artikel zu diesem Thema findet ihr auch hier:

Raspberry Pi: GPIO – Ausgänge schalten, Eingänge lesen

Raspberry Pi: Python Skript als Hintergrundservice starten

Der folgende Artikel beschreibt die Einrichtung eines Python-Skripts als Service, damit das Skript im Hintergrund und automatisch nach einem Systemstart läuft.
Zunächst definieren wir ein Service-File namens hello.service im Ordner /lib/systemd/system/

cd /lib/systemd/system/
sudo nano hello.service

In der erstellten Datei fügen wir folgenden Inhalt ein:

[Unit]
Description=Hello World
After=multi-user.target
 
[Service]
Type=simple
ExecStart=/usr/bin/python /home/pi/hello_world.py
Restart=on-abort
 
[Install]
WantedBy=multi-user.target

Als nächstes müssen wir nun diesen Service aktivieren

sudo chmod 644 /lib/systemd/system/hello.service
chmod +x /home/pi/hello_world.py
sudo systemctl daemon-reload
sudo systemctl enable hello.service
sudo systemctl start hello.service

Weitere hilfreiche Kommandos

# Check status
sudo systemctl status hello.service
 
# Start service
sudo systemctl start hello.service
 
# Stop service
sudo systemctl stop hello.service
 
# Check service's log
sudo journalctl -f -u hello.service

Quellen:

wiringPi: Installation, Version prüfen und aktualisieren

Installation

Zunächst sollte der Raspberry Pi auf dem aktuellsten Stand sein:

sudo apt-get update && sudo apt-get upgrade

GIT

Für die Installation von wiringPi wird GIT benötigt. Dies kann wie folgt installiert werden:

sudo apt-get install git git-core

wiringPi clonen und installieren

git clone git://git.drogon.net/wiringPi && cd wiringPi &&./build

Nun sollte gpio readall die Pinbelegung anzeigen.

wiringPi Version überprüfen

gpio -v

wiringPi aktualisieren

cd wiringPi
git pull origin
./build

 

Heimautomation mit dem Raspberry Pi

Der kostengünstige Raspberry Pi ist ein Einplatinen-Computer, der für verschiedenste Zwecke eingesetzt werden kann. Auch für die Hausautomation gibt es eine Reihe spannender Anwendungen. Da ich ebenfalls im Besitz eines solchen Gerätes bin, habe ich angefangen auch in unserer Wohnung die Heimautomation zumindest ergänzend mit dem Raspberry Pi umzusetzen. Im folgenden findet ihr eine Sammlung an Tutorials.

  1. 433 Mhz Funksteckdosen mit dem Raspberry Pi steuern (folgt)

Programmierung: Was kommt wohin?

Eine Frage, die ich mir zwischenzeitig auch gestellt habe ist, wo programmiere ich eigentlich meine ganzen Funktionen. Ein Logik-Server kann sich natürlich um alles kümmern. Es hat halt nur den Nachteil: wenn der ausfällt, fallen alle darüber geregelten Funktionen aus. Bei der einen oder anderen Sache wäre das nicht so schlimm. Bei der anderen um so fataler.

Ein Blick ins KNX-User-Forum brachte mir diesen Thread. Dort folgt als Fazit: Sicherheitsrelevante bzw. kritische Grundfunktionen gehören bei KNX als dezentrales System auch dezentral programmiert. Sprich die Lichtschaltung sollte auch bei ausgefallenem Logik-Server noch funktionieren. Szenen sind eher als Komforfunktion anzusehen, daher gehören diese auch auf den Logik-Server.

Eine weitere sicherheitsrelevante Anregung in dem Zusammenhang war z.B. noch: was passiert, wenn die Wetterstation die 300km/h Windgeschwindigkeit nicht mehr melden kann? Eine zweite Sicherheitsebene könnte genau das überprüfen und im Zweifel die Rollos hochfahren.

DALI – Lichtsteuerung über ein Bus-System

DALI ergänzt die Gebäudeautomation um eine ausgeklügelte Lichtsteuerung. Dazu bedient es sich eines eigenen Bus-Systems. Über ein DALI-Gateway ist die die Integration in ein KNX-Bus-System problemlos möglich.  Weiterlesen

« Ältere Beiträge

© 2024 Smarthome

Theme von Anders NorénHoch ↑