Raspberry Pi + FHEM + Linux



FHEM + Raspberry-Pi + Homematic


Ubuntu = Client
Raspberry Pi = Server

Verbindung herstellen:
Pi: $tightvncserver start
Pi: $tightvncserver

Ubuntu: xtightvncviewer raspberrypi:1  (hier die IP verwenden anstatt den Namen)


FHEM: Allge. Befehle:
hminfo muss erst in fhem.cfg definiert werden. siehe commandref => hminfo
hminfo (in fhem.cfg >> define hm Hminfo
set hm rssi

list
clear msgevents
set get config
get LichtFH regList 

set getConfig # auslesen der Daten aus dem HM Device und der seiner Kanäle 
set peerChan…. # direktes „verlinken“ von 2 Kanälen 
get regList # liste aller Register, die von dieser entity unterstützt werden. Muss für Kanal und Device gesondert ausgeführt werden. Es werden Wertebereiche und Optionen angegeben, nicht die aktuellen Inhalte! 
get reg all # alle Daten, die für diese Entity gelesen (getConfig) wurden. Muss für jeden Kanal separat ausgeführt werden. Man erhält die aktuellen Inhalte, wenn vorher ein getConfig gemacht wurde. 
get saveConfig # speichern der gelesenen Daten in ein File. Daten werden für das ganze Device incl. Kanälen geschrieben. Die Daten können dann ggf. mir regBulk wieder geschrieben werden. 
set peerBulk … #schreiben der gespeicherten Links in den channel 
set regBulk … #schreiben der gespeicherten Daten in das Device oder den Channel 

FHEM sichern / backup:

FHEM Kommandozeile:
backup 

eingeben
Backup-Datei wird unter /var/opt/fhem/Backup gespeichert;

FHEM Server neustarten:
FHEM Kommandozeile: 

shutdown restart
FHEM HMLan1, HMLan2 und VCCU:
fhem.cfg VCCU reinkopiert, dann shutdown restart:
#HMLAN1--------Keller----------
define HMLAN1 HMLAN 192.168.178.9:1000
attr HMLAN1 hmId 1E9F18
attr HMLAN1 hmLanQlen 1_min
attr HMLAN1 wdTimer 25
#HMLAN1--------Keller----------

#HMLAN2--------nähe Fritzbox----------
define HMLAN2 HMLAN 192.168.178.7:1000
attr HMLAN2 hmId 1E9F18
attr HMLAN2 hmLanQlen 1_min
attr HMLAN2 wdTimer 25
#HMLAN2--------nähe Fritzbox----------
#VCCU
define VCCU CUL_HM 1E9F18
attr VCCU model CCU-FHEM
attr VCCU IOList HMLAN1,HMLAN2
attr VCCU model CCU-FHEM
attr VCCU room Homematic
attr VCCU subType virtual
attr VCCU webCmd virtual:update
#VCCU

Ein / Ausschalten:
define PumpeAnAus WeekdayTimer Zirkulation 22:05|on-for-timer:120 22:10|on-for-timer:220 {fhem("set @ %")}
oder
set <name> on -> Schaltet den Aktor ein
set <name> off -> Schaltet den Aktor aus
set <name> toggle -> Ändert den Zustand des Aktors, d.h. ein eingeschalteter Aktor wird ausgeschaltet

Peeren / Pairen:
wenn die Geräte mit einer Zentrale (in diesem Fall fhem, aber auch CCU) verbunden sind, kann man nur noch über die Zentrale peeren.
Pair = Verbindung zur Zentrale
peer = Verbindung der Geräte untereinander.
Für Dich bedeutet das:
Die Seite mit der Fernbedienung öffnen und auf den Button gehen. Oben bei "set" Buttonname dahinter peerChan wählen und in das Textfeld (ohne die Anführungszeichen) "0 Name_des_Actor_Kanals single set". Anschließend beide Geräte nacheinander in den Anlernmodus bringen. Dann überträgt die Zentrale das peering. Das single set bedeutet, das Du nur einen Schalter für ein/aus hast, also toggle Modus. Bei manchen Fernbedienungen kann man auch zwei Kanäle, getrennt ein und aus definieren.


set HMLAN1 hmPairForSec 30   #im Eingabefeld oben, dann Anlerntaste (pair Taste) am Aktor / Sensor drücken. In fhem.cfg muss nun das neue Gerät angezeigt werden. Rename nicht vergessen.


temp:
Set TreppenlichtI regSet shCtValLo 5 SensorFritzBox


Bearbeitungsmodus für fhem.cfg aktivieren

Sofern die fhem.cfg nach einer Neuinstallation nicht sofort bearbeitet werden kann und die Meldung "You can enable saving this file by setting the editConfig attribute, but read the documentation first for the side effects." ausgegeben wird, muss der Bearbeitungsmodus wieder aktiviert werden. Um das zu tun, gibt man in die obige FHEM Kommandozeile

attr WEB editConfig 1

ein und bestätigt das Ganze mit der Enter-Taste. Im Anschluss noch links oben auf "Save config" klicken und die Bearbeitung kann losgehen.

+++++++++++

Konfiguration Bewegungsmelder

Code: [Auswählen]
define pir.Haustuer CUL_HM 289BBE
attr pir.Haustuer IODev CUL1
attr pir.Haustuer actCycle 000:10
attr pir.Haustuer actStatus alive
attr pir.Haustuer autoReadReg 4_reqStatus
attr pir.Haustuer event-on-change-reading .*
attr pir.Haustuer event-on-update-reading motion
attr pir.Haustuer expert 2_full
attr pir.Haustuer firmware 1.6
attr pir.Haustuer model HM-Sen-MDIR-O-2
attr pir.Haustuer room CUL_HM
attr pir.Haustuer serialNr LEQ0416502
attr pir.Haustuer subType motionDetector
define FileLog_pir.Haustuer FileLog ./log/pir.Haustuer-%Y.log pir.Haustuer
attr FileLog_pir.Haustuer logtype text
attr FileLog_pir.Haustuer room CUL_HM

Auswertung Motion

Code: [Auswählen]
define actpir.Haustuer notify pir.Haustuer:motion:.on.* { if (ReadingsVal("pir.Haustuer","brightness","80") < "150") { fhem("set switch.Haustuer on-for-timer 900") } }

+++++++++++++
die Empfindlichekeit der Bewegung ist im MDIR einzustellen. 
hast du ein 
get <mdir> regList
gemacht? Da gibt es einen kleinen Hinweistext zu den Registern. 

die Helligkeitsschwelle ist im Aktor einzustellen. Der MDIR sendet bei jeder Bewegung, die den Filter gepasst hat einen trigger incl helligkeit. Diese wertet der Actor aus.

Einstellen geht am Einfachsten mit templates aus HMInfo

set hm  templateSet <Licht> motionOnSw   <mdir>:short <ontime> <brightness>

also 
set hm  templateSet MeinLicht motionOnSw  MeinMdir:short 20 30

Licht geht für 20sec an, wenn eine "motion" erkannt wird und es dunkler ist als 30 (15%). Was auch immer 15% in lux ist ;)
+++++++++++++
Mit den Dingern stehe ich auch etwas auf Kriegsfuß. Bei mir die MDIR-O für draußen. Trotzdem habe ich sie alle ans Laufen bekommen.
Leider schreibst du nicht wie du das Pairing gemacht hast, da ist es mit Hilfe schwierig. Wie sagt Puschel immer: Die Glaskugel ist beim Polierer...

Also ich habe es so gemacht:
1. FHEM in Anlernmodus, Bewegungsmelder (BM) in Anlernmodus (siehe Anleitung des BM). Device wird angelegt.
2. set BM getConfig
3. Taste am BM kurz drücken.
4. Pairing in FHEM kontrollieren (PairedTo)
5. Evtl. Register verändert mit regSet, mindestens minInterval auf 20, captInInterval auf on
6. Taste am BM kurz drücken.
7. set BM getConfig
8. Taste am BM kurz drücken.
9. Register kontrollieren (set_ ...) muß weg sein, Werte müssen stimmen
10. Fettisch!

Wobei trotz geglücktem Pairing meine BM mit Firmware 1.5 trotzdem immer nach Broadcast senden, die mit Firmware 1.6 senden an die HMID. Komisch, aber muss ich nicht verstehen. Einer mit Firmware 1.6 hat überhaupt erst dann korrekt gearbeitet nachdem ich diesen mit 10Lux Schwelle angelernt hatte (siehe Anleitung). Muss man auch nicht verstehen.
++
sieht nach einem timingproblem aus. 
kannst du das logging einmal auf ein umstellen? 
hmProtocolEvents ist - wie immer wieder beschrieben - ein Performancefressen. Ich empfehle es nicht einzuschalten. 
Logge wie in Wiki beschrieben (oder garnicht)
 wenn es nicht klappt schicke die Logs gemäß sniffen (Wiki). 
schalte nicht zu viele Logs ein. 
+++++++++++++

Homematic Device mit VCCU anlernen:
    set VCCU hmPairForSec 300

Keine Kommentare:

Kommentar veröffentlichen