Dämmerungssensor und HM-Sen-MDIR-O

Begonnen von BenWend, 21 April 2013, 22:59:53

Vorheriges Thema - Nächstes Thema

BenWend

Hallo,

ich habe gerade zwei Stunden damit verbracht, meinen HM-Sen-MDIR-O (Bewegungsmelder für den Außenbereich) einzubinden. Ich hatte vor, ihn als Dämmerungssensor zu verwenden, um meinen Intertechno ITDS-50 Dämmerungssensor zu ersetzen, der mir einfach zu ungenau war.

Nachdem ich den HM-Sen-MDIR-O recht schnell über den HomeMatic LAN Konfigurations-Adapter eingebunden hatte, stand ich vor den Fragen:

- Wie schalte ich Aktoren bei Bewegung?
- Wie lese ich die Helligkeit aus und gebe FHEM-weit die Info, ob es dunkel oder hell ist?

Irgendwann hat es dann geklappt:


#---- Lichtsensor

define Lichtsensor1 dummy
attr Lichtsensor1 room Lichtsensoren

define Daemmerung notify Aussenmelder_1.*brightness.* {\
if(ReadingsVal("Aussenmelder_1","brightness","---")<=120){\
fhem "set Lichtsensor1 dunkel"};;\
if(ReadingsVal("Aussenmelder_1","brightness","---")>120){\
fhem "set Lichtsensor1 hell"};;\
}



#---- Auffahrtlicht steuern

define Bewegung_Auffahrt notify Aussenmelder_1:motion.* {\
if (Value("Lichtsensor1") eq "dunkel") {\
fhem "set Lichtschalter_03 on-for-timer 00:04:45";;\
fhem "set Lichtschalter_09 on-for-timer 00:04:45";;\
}}


Vielleicht spart dies anderen HM-Sen-MDIR-O Neulingen etwas Zeit beim reinfuchsen.

Schöne Grüße

Ben

FFHEM

Hallo Ben,

hat mir soeben geholfen, vielen Dank!

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

der-Lolo

Auch von mir ein Danke, genau was ich gesucht habe...

martinp876

Hi,

schön, dass es geklappt hat.
Falls es interessiert, alternativ zum gewählten Ansatz das ganze über die Zentrale zu steuern kann HM dies nattürlich auch mir direktem peeren erledigen - ist ja ihr Geschäft.

Das vorgehen wäre dann:
1) peeren
set <mdir> peerChan 0 <licht> single

2) einstellen des Aktors, wann er schalten soll
2a) kann man machen, indem man die register "manuell" setzt
2b) oder per template (HMinfo)

Templates kann man selbst bauen. Voreingestellt habe ich einen für motionDetector zu dimmer oder switch

define hm HMInfo #einmalig, wenn man noch kein HMInfo hat

set hm templateList #alle vorhandenen templates

set hm <licht> motionOnSw <mdir>:short <time> <level>

Also bei dir
set hm Lichtschalter_03 motionOnSw Aussenmelder_1:short 285 120
set hm Lichtschalter_04 motionOnSw Aussenmelder_1:short 285 120

Falls du einen dimmer steuern willt nutze motionOnDim - oder schreibe ein eigenes Template

bin ein Freund von peeren - ich hoffe, die Templates helfen...
Gruss Martin



der-Lolo

Hallo Martin,
sorry ich muss mich hier nochmal ein bisschen schlauer machen, bzw. ich verstehe noch nicht ganz...

Ich habe einen HM-LC-Dim1TPBU-FM und einen HM-Sec-MDIR
Ich las in diesem Artikel dass es möglich ist
den Dim1 mit dem MDIR zu peeren Kanal 01.
dann dem Kanal 02 eine Schaltzeit 23:00 bis 06:30 zu geben und 10% Lichleistung als Parameter mitzugeben.
der Kanal 3 wäre dann der Taster.
Ich bekomm es aber nicht hin, der MDIR schaltet das Licht nicht...

Kannst DU mir das vielleicht nochmal erklären..?

Danke!




martinp876

Hallo der-Lolo,

ah, einmal jemand, der die logischen Kanäle nutzen will.

erst einmal das Ziel:
1) normale Taster sollen zum ein/ausschalten genommen werden
2) zwischen 23:00 und 6:30 soll immer 10% Licht an sein (nachtlicht)
3) der dämmerungsschalter soll über den MDIR funktionieren.

nun, sollte nicht so schwer sein.
Ich würde Channel 01 immer für die Taster lassen. Alle Taster, sie du willst werden mit channel01 gepeert und wie gewohnt programmiert, als dimmer eben

Channel 02 könnte das Nachtlicht sein. Da der dimmer keine Uhr hat musst du ihm einen trigger schicken. Dies kann man verschieden tun - und demnach unterscheidet sich die Programmierung
a) täglich 2 Trigger, einer "an", einer "aus". Channel 2 ist ein ein/aus schalter.
b) Channel02 wird "oszillierend" programmiert. Du stellst eine ontime von (23:00-6:30=7:30h =^ 7,5*3600sec=27000) ein und eine offtime von 59400sec. Täglich um 23:00 schickst du einen "on" auf Kanal02 - wenn du willst auch einen Off um 6:30, ist aber nicht notwendig. Der Kanal 2 wird immer zwischen on/off toggeln, mit dem täglichen Trigger synchronisierst du die Uhrzeit.
Im Kanal02 stellst du die Nachtlicht-helligkeit ein

Channel 03 ist dann ein "einfacher" dämmerungsschalter. Den kannst du einstellen wie obenbeschrieben - HM templates oder manuell.

So und nun musst du die Kanäle zusammenfassen:
Es stellt sich die Frage, wie die Prioritäten sein sollen
ch1: 50% (jemand hat licht gemacht)
ch2: 10% (es ist Nacht)
ch3: 60% (es ist Dunkel und es hat sich einer Bewegt)

Sinnvol wäre m.E. einfach: der hellste hat recht.
Man kann auch addieren - und somit sehen "holla, gleich kommt einer".

Also erst einmal addieren
OR: Das Verknüpfungsergebnis ist der höhere von beiden Pegeln.

logicCombination = or

damit sollte es laufen
Gruss Martin


der-Lolo

Anpassungen an das Ziel:

Der MDIR soll das Licht schalten für 135 Sekunden wenn der Brightness Wert kleiner als 40 ist. *
Der MDIR soll das Licht nachts für 135 Sekunden schalten, aber mit nur 10% Lichtleistung **
Wenn der Brightness Wert >40 ist soll das Licht nur über den Taster des Dimmers schalten

*über Die Register würde ich dem MDIR gerne sagen das er nach schalten 120 Sekunden nicht aktiv eingreift.
**der zweite Kanal würde also über define at nur zwischen 23 und 6 Uhr die Leistung auf 10% reduzieren.

Ein set hm fl_dim1.1 motionOnDim fl_mot:short 135 40
Bewirkt allerdings eine Art Wechselschaltung - die erste Bewegung schaltet den Dimmer an, die nächste wieder ab...

Jetzt Blick ich nicht mehr durch...

Mit der Leistung des MDIR ohne peeren bin ich ehrlich gesagt unzufrieden, teilweise ist man schon durch den Flur wenn das licht angeht, ich hoffe das es durch das peeren besser wird - und frage mich ob man im MDIR eine Empfindlichkeit einstellen kann sodass dieser sensibler schaltet...

martinp876

hab ich  noch nicht komplett.

im Bezug auf den motion-anteil. Hört sich einfach an
- wenn dunkel (<40) und Bewegung Licht 10% an für 135 sec

was soll im Zeitraum 23-6:30 begrenzt werden? Taster/Bewegungsmelder, alles garnichts?

ZitatEin set hm fl_dim1.1 motionOnDim fl_mot:short 135 40
Bewirkt allerdings eine Art Wechselschaltung - die erste Bewegung schaltet den Dimmer an, die nächste wieder ab...
verstehe ich nicht. Sollte nicht sein. kannst du die register einmal schicken? Nach dem template kann der mdir nicht "abschalten" - nur an.

Zum MotionDetector selbst: Alles was du einstellen kannst ist ind en Registern. Ichkann dirnichtlalle beschreiben, da ich keinen zum testen habe. Dennoch sind
evtFltrPeriod
evtFltrNum
darüber sollte sich die sensitivity einstellen lassen

deine "auszeit" denke ich sollte man mit
minInterval
captInInterval
steuern. wenn du captureIn Interval verbietest sollte der mdir in dieser Zeit nicht mehr triggern. dann das Interval auf 120 setzen. Steht so in der Registerbeschreibung.

Soweit klar?

Gruss Martin

der-Lolo

also wenn MDIR Brightness <40 dann Licht 100%
und nur wenn zwischen 23:00 und 06:30 Licht nach trigger MDIR 10%

Ich stell mir das so vor, MDIR schaltet Kanal 1 wenn <40 mit 100%
zwischen 23:00 und 06:30 die Leistung von Kanal 2 auf 10% setzen

Kanal 1 und Kanal 2 UND verknüpft, sodass der kleiner wert gilt.

Kanal 3 = oder Taster 100%

der-Lolo

get fl_dim1.1 reg all liefert:

fl_dim1.1 type:dimmer -
list:peer   register         :value
   1:         fuseDelay        :1 s
   1:         logicCombination :or
   1:         ovrTempLvl       :80 C
   1:         powerUpAction    :off
   1:         redLvl           :40 %
   1:         redTempLvl       :75 C
   1:         statusInfoMinDly :2 s
   1:         statusInfoRandom :1 s
   1:         transmitTryMax   :6
   3:fl_mot_chn:01   lgActionTypeDim  :toggelDim
   3:fl_mot_chn:01   lgActionTypeDim  :toggelDim
   3:fl_mot_chn:01   lgCtDlyOff       :geLo
   3:fl_mot_chn:01   lgCtDlyOff       :geLo
   3:fl_mot_chn:01   lgCtDlyOn        :geLo
   3:fl_mot_chn:01   lgCtDlyOn        :geLo
   3:fl_mot_chn:01   lgCtOff          :geLo
   3:fl_mot_chn:01   lgCtOff          :geLo
   3:fl_mot_chn:01   lgCtOn           :geLo
   3:fl_mot_chn:01   lgCtOn           :geLo
   3:fl_mot_chn:01   lgCtRampOff      :geLo
   3:fl_mot_chn:01   lgCtRampOff      :geLo
   3:fl_mot_chn:01   lgCtRampOn       :geLo
   3:fl_mot_chn:01   lgCtRampOn       :geLo
   3:fl_mot_chn:01   lgCtValHi        :100
   3:fl_mot_chn:01   lgCtValHi        :100
   3:fl_mot_chn:01   lgCtValLo        :50
   3:fl_mot_chn:01   lgCtValLo        :50
   3:fl_mot_chn:01   lgDimJtDlyOff    :rampOff
   3:fl_mot_chn:01   lgDimJtDlyOff    :rampOff
   3:fl_mot_chn:01   lgDimJtDlyOn     :rampOn
   3:fl_mot_chn:01   lgDimJtDlyOn     :rampOn
   3:fl_mot_chn:01   lgDimJtOff       :dlyOn
   3:fl_mot_chn:01   lgDimJtOff       :dlyOn
   3:fl_mot_chn:01   lgDimJtOn        :dlyOff
   3:fl_mot_chn:01   lgDimJtOn        :dlyOff
   3:fl_mot_chn:01   lgDimJtRampOff   :off
   3:fl_mot_chn:01   lgDimJtRampOff   :off
   3:fl_mot_chn:01   lgDimJtRampOn    :on
   3:fl_mot_chn:01   lgDimJtRampOn    :on
   3:fl_mot_chn:01   lgDimMaxLvl      :100 %
   3:fl_mot_chn:01   lgDimMaxLvl      :100 %
   3:fl_mot_chn:01   lgDimMinLvl      :0 %
   3:fl_mot_chn:01   lgDimMinLvl      :0 %
   3:fl_mot_chn:01   lgDimStep        :5 %
   3:fl_mot_chn:01   lgDimStep        :5 %
   3:fl_mot_chn:01   lgMultiExec      :on
   3:fl_mot_chn:01   lgMultiExec      :on
   3:fl_mot_chn:01   lgOffDly         :0 s
   3:fl_mot_chn:01   lgOffDly         :0 s
   3:fl_mot_chn:01   lgOffDlyBlink    :on
   3:fl_mot_chn:01   lgOffDlyBlink    :on
   3:fl_mot_chn:01   lgOffDlyNewTime  :0.4 s
   3:fl_mot_chn:01   lgOffDlyNewTime  :0.4 s
   3:fl_mot_chn:01   lgOffDlyOldTime  :0.4 s
   3:fl_mot_chn:01   lgOffDlyOldTime  :0.4 s
   3:fl_mot_chn:01   lgOffLevel       :0 %
   3:fl_mot_chn:01   lgOffLevel       :0 %
   3:fl_mot_chn:01   lgOffTime        :111600 s
   3:fl_mot_chn:01   lgOffTime        :111600 s
   3:fl_mot_chn:01   lgOffTimeMode    :absolut
   3:fl_mot_chn:01   lgOffTimeMode    :absolut
   3:fl_mot_chn:01   lgOnDly          :0 s
   3:fl_mot_chn:01   lgOnDly          :0 s
   3:fl_mot_chn:01   lgOnDlyMode      :setToOff
   3:fl_mot_chn:01   lgOnDlyMode      :setToOff
   3:fl_mot_chn:01   lgOnLevel        :100 %
   3:fl_mot_chn:01   lgOnLevel        :100 %
   3:fl_mot_chn:01   lgOnLvlPrio      :high
   3:fl_mot_chn:01   lgOnLvlPrio      :high
   3:fl_mot_chn:01   lgOnMinLevel     :10 %
   3:fl_mot_chn:01   lgOnMinLevel     :10 %
   3:fl_mot_chn:01   lgOnTime         :111600 s
   3:fl_mot_chn:01   lgOnTime         :111600 s
   3:fl_mot_chn:01   lgOnTimeMode     :absolut
   3:fl_mot_chn:01   lgOnTimeMode     :absolut
   3:fl_mot_chn:01   lgRampOffTime    :0.5 s
   3:fl_mot_chn:01   lgRampOffTime    :0.5 s
   3:fl_mot_chn:01   lgRampOnTime     :0.5 s
   3:fl_mot_chn:01   lgRampOnTime     :0.5 s
   3:fl_mot_chn:01   lgRampSstep      :5 %
   3:fl_mot_chn:01   lgRampSstep      :5 %
   3:fl_mot_chn:01   shActionTypeDim  :jmpToTarget
   3:fl_mot_chn:01   shActionTypeDim  :jmpToTarget
   3:fl_mot_chn:01   shCtDlyOff       :geLo
   3:fl_mot_chn:01   shCtDlyOff       :geLo
   3:fl_mot_chn:01   shCtDlyOn        :geLo
   3:fl_mot_chn:01   shCtDlyOn        :geLo
   3:fl_mot_chn:01   shCtOff          :geLo
   3:fl_mot_chn:01   shCtOff          :geLo
   3:fl_mot_chn:01   shCtOn           :geLo
   3:fl_mot_chn:01   shCtOn           :geLo
   3:fl_mot_chn:01   shCtRampOff      :geLo
   3:fl_mot_chn:01   shCtRampOff      :geLo
   3:fl_mot_chn:01   shCtRampOn       :geLo
   3:fl_mot_chn:01   shCtRampOn       :geLo
   3:fl_mot_chn:01   shCtValHi        :100
   3:fl_mot_chn:01   shCtValHi        :100
   3:fl_mot_chn:01   shCtValLo        :50
   3:fl_mot_chn:01   shCtValLo        :50
   3:fl_mot_chn:01   shDimJtDlyOff    :rampOff
   3:fl_mot_chn:01   shDimJtDlyOff    :rampOff
   3:fl_mot_chn:01   shDimJtDlyOn     :rampOn
   3:fl_mot_chn:01   shDimJtDlyOn     :rampOn
   3:fl_mot_chn:01   shDimJtOff       :dlyOn
   3:fl_mot_chn:01   shDimJtOff       :dlyOn
   3:fl_mot_chn:01   shDimJtOn        :dlyOff
   3:fl_mot_chn:01   shDimJtOn        :dlyOff
   3:fl_mot_chn:01   shDimJtRampOff   :off
   3:fl_mot_chn:01   shDimJtRampOff   :off
   3:fl_mot_chn:01   shDimJtRampOn    :on
   3:fl_mot_chn:01   shDimJtRampOn    :on
   3:fl_mot_chn:01   shDimMaxLvl      :100 %
   3:fl_mot_chn:01   shDimMaxLvl      :100 %
   3:fl_mot_chn:01   shDimMinLvl      :0 %
   3:fl_mot_chn:01   shDimMinLvl      :0 %
   3:fl_mot_chn:01   shDimStep        :5 %
   3:fl_mot_chn:01   shDimStep        :5 %
   3:fl_mot_chn:01   shOffDly         :0 s
   3:fl_mot_chn:01   shOffDly         :0 s
   3:fl_mot_chn:01   shOffDlyBlink    :on
   3:fl_mot_chn:01   shOffDlyBlink    :on
   3:fl_mot_chn:01   shOffDlyNewTime  :0.4 s
   3:fl_mot_chn:01   shOffDlyNewTime  :0.4 s
   3:fl_mot_chn:01   shOffDlyOldTime  :0.4 s
   3:fl_mot_chn:01   shOffDlyOldTime  :0.4 s
   3:fl_mot_chn:01   shOffLevel       :0 %
   3:fl_mot_chn:01   shOffLevel       :0 %
   3:fl_mot_chn:01   shOffTime        :111600 s
   3:fl_mot_chn:01   shOffTime        :111600 s
   3:fl_mot_chn:01   shOffTimeMode    :absolut
   3:fl_mot_chn:01   shOffTimeMode    :absolut
   3:fl_mot_chn:01   shOnDly          :0 s
   3:fl_mot_chn:01   shOnDly          :0 s
   3:fl_mot_chn:01   shOnDlyMode      :setToOff
   3:fl_mot_chn:01   shOnDlyMode      :setToOff
   3:fl_mot_chn:01   shOnLevel        :100 %
   3:fl_mot_chn:01   shOnLevel        :100 %
   3:fl_mot_chn:01   shOnLvlPrio      :high
   3:fl_mot_chn:01   shOnLvlPrio      :high
   3:fl_mot_chn:01   shOnMinLevel     :10 %
   3:fl_mot_chn:01   shOnMinLevel     :10 %
   3:fl_mot_chn:01   shOnTime         :111600 s
   3:fl_mot_chn:01   shOnTime         :111600 s
   3:fl_mot_chn:01   shOnTimeMode     :absolut
   3:fl_mot_chn:01   shOnTimeMode     :absolut
   3:fl_mot_chn:01   shRampOffTime    :0.5 s
   3:fl_mot_chn:01   shRampOffTime    :0.5 s
   3:fl_mot_chn:01   shRampOnTime     :0.5 s
   3:fl_mot_chn:01   shRampOnTime     :0.5 s
   3:fl_mot_chn:01   shRampSstep      :5 %
   3:fl_mot_chn:01   shRampSstep      :5 %

martinp876

Hi,

warum ist jede Zeile doppelt? Ist das ein Ausgabefehler?

So würde ich channel 2 (mein Faforit für den MDIR) programmieren.

Kommandos nur bei Licht kleiner 40 entgegennehmen.
3:fl_mot_chn:01 shCtDlyOff :ltLo
3:fl_mot_chn:01 shCtDlyOn :ltLo
3:fl_mot_chn:01 shCtOff :ltLo
3:fl_mot_chn:01 shCtOn :ltLo
3:fl_mot_chn:01 shCtRampOff :ltLo
3:fl_mot_chn:01 shCtRampOn :ltLo
3:fl_mot_chn:01 shCtValLo :40

jetzt die Jumptabelle.
3:fl_mot_chn:01 shDimJtDlyOff :dlyOn
3:fl_mot_chn:01 shDimJtRampOff :dlyOn
3:fl_mot_chn:01 shDimJtOff :dlyOn
3:fl_mot_chn:01 shDimJtDlyOn :rampOn
3:fl_mot_chn:01 shDimJtRampOn :no
3:fl_mot_chn:01 shDimJtOn :on

Anternativ könnte shDimJtOn :no
gesetzt werden. Damit wird die einschaltzeit NICHT verlängert, sollte noche in trigger WÄHREND on kommen

und die Level (sind klar, denke ich ):
3:fl_mot_chn:01 shOnLevel :100 %

sowie die Anschaltzeit
3:fl_mot_chn:01 shOnTime :135

Das ganze oben sollte mit einem Rutsch funktionieren, wenn du das Template nutzt

Bei dem Zeitchannel kannst du
a) den Kanal über "at" einfach auf 10/100% setzen oder
b) ihn über einen timer intern laufen lassen und über FHEM täglich die Zeit synchen.

Gruss Martin

der-Lolo

Wow, zwei Stunden gebastelt und keinen millimeter weiter...
Was mache ich nur falsch?

set fl_dim1.2 regSet fl_mot_chn:01 shCtDlyOff :ltLo
gibt mir zurück:
fl_mot_chn:01 failed: supported register are fuseDelay intKeyVisib lgActionTypeDim lgCtDlyOff lgCtDlyOn lgCtOff lgCtOn lgCtRampOff lgCtRampOn lgCtValHi lgCtValLo lgDimElsActionType lgDimElsJtDlyOff lgDimElsJtDlyOn lgDimElsJtOff lgDimElsJtOn lgDimElsJtRampOff lgDimElsJtRampOn lgDimElsOffTimeMd lgDimElsOnTimeMd lgDimJtDlyOff lgDimJtDlyOn lgDimJtOff lgDimJtOn lgDimJtRampOff lgDimJtRampOn lgDimMaxLvl lgDimMinLvl lgDimStep lgMultiExec lgOffDly lgOffDlyBlink lgOffDlyNewTime lgOffDlyOldTime lgOffLevel lgOffTime lgOffTimeMode lgOnDly lgOnDlyMode lgOnLevel lgOnLvlPrio lgOnMinLevel lgOnTime lgOnTimeMode lgRampOffTime lgRampOnTime lgRampSstep logicCombination ovrTempLvl pairCentral powerUpAction redLvl redTempLvl shActionTypeDim shCtDlyOff shCtDlyOn shCtOff shCtOn shCtRampOff shCtRampOn shCtValHi shCtValLo shDimElsActionType shDimElsJtDlyOff shDimElsJtDlyOn shDimElsJtOff shDimElsJtOn shDimElsJtRampOff shDimElsJtRampOn shDimElsOffTimeMd shDimElsOnTimeMd shDimJtDlyOff shDimJtDlyOn shDimJtOff shDimJtOn shDimJtRampOff shDimJtRampOn shDimMaxLvl shDimMinLvl shDimStep shOffDly shOffDlyBlink shOffDlyNewTime shOffDlyOldTime shOffLevel shOffTime shOffTimeMode shOnDly shOnDlyMode shOnLevel shOnLvlPrio shOnMinLevel shOnTime shOnTimeMode shRampOffTime shRampOnTime shRampSstep statusInfoMinDly statusInfoRandom transmitTryMax
Durchs lesen in dem ein oder anderem thread bin ich auf den peerCheck aufmerksam geworden...
schön das FHEM solche werzeuge bereithält.
weniger schön das Ergebnis

set hm peerCheck -  lieferte mir gerade
peerCheck done:
 incomplete list
   
 empty list
    empty: bd_sw
    empty: fl_dim
    empty: fl_mot
    empty: sw_all
 peer not verified
    fl_dim1.1 p:fl_mot


martinp876

Hi Der-Lolo,

ZitatWow, zwei Stunden gebastelt und keinen millimeter weiter...
das tut mir leid.

das regset arbeitet (siehe Commandref):
set <channel-entity> regSet <regName> <value> <peerChannel>

wenn du ein "get reg" machst bekommst du
list:peer       register         :value
3:fl_mot_chn:01 shCtDlyOff :ltLo

also
list:3
peer: fl_mot_chn:01
reg: shCtDlyOff
value: ltLo

also ist das Kommando:
set fl_dim1.2 regSet shCtDlyOff ltLo fl_mot_chn:01

dein "Sender" ist fl_mot_chn:01 und hat offensichtlich keine eigene Channel-entity? wenn du diesem Channel als entity definierst fällt der doppelpunkt weg



Zitatincomplete list
keine Einträge, also gut


Zitatempty list
empty: bd_sw
empty: fl_dim
empty: fl_mot
empty: sw_all
für diese Entities wurden keine peers gefunden

Zitatpeer not verified
fl_dim1.1 p:fl_mot
diese peer<->peer verknüpfung konnte nicht verifiziert werden. d.h. entweder fehlt der Eintrag bei fl_dim1.1 oder bei fl_mot

Gruss Martin

der-Lolo

Hallo Martin,
vielen Dank für Deine Hilfe und Deine mühe - ich bin diese Woche beruflich im Ausland, werde also nicht an der Hardware arbeiten können.
Ich wünsche mir aber das grundlegende Funktionen auch ohne FHEM funktionieren, der WAF steigt doch sicher deutlich wenn zumindest die Grundfunktionen auch funktionieren falls FHEM mal nicht verfügbar ist. Bei meinen Basteleien kam es mittlerweile mehrfach zu dem Eintrag :
2013.09.08 19:58:50 1: CallBlockingFn: Can't connect to localhost:7072

;-) Ich schätze mal ich habe den Raspi abstürzen lassen - oder was bedeutet das?

Kannst DU mir Lesematerial empfehlen damit ich mich besser in dieses thema einarbeiten kann?

martinp876

Hi,

zum einen hoffe ich, dass das Schreiben der Register verständlich ist. Zum Anderen wollte ich für standart-funktionen "templates" vorsehen bzw von Usern schreiben lassen. Das schalten per motion-detector ist ein klarer Kandidat, den es schon gibt.

Einlesen in HM empfehle ich neben Wiki das EinsteigerDoc.
Zu welchen Themen suchst du Lesematerial?

CallBlocking ist ein Angang in FHEM weitere Processe zu betreiben um diese zeitlich vom hauptprozess zu entkoppeln. Die "rückführung" der Ergebnisse wird über ein einloggen des Tochterprocesses zu FHEM erreicht. Das ist eine recht lose und fragile Kopplung, aber einfach zu erstellen. Was hier schief gegangen ist, ist dass das Resultat des Tochterprozesses sich nicht einloggen kann. somit können die erarbeiteten Ergebnisse nicht eingearbeitet werden.
Warum das passiert kann ich nicht sagen - hier spielen neben den FHEM interna auch System-resources eine Rolle - das ist eben der Schwachpunkt der Implementierung.

Gruss Martin