Hallo zusammen.
Nach schier ewiger Suche wende ich mich nun ans Forum, auch auf die Gefahr hin das es sowas sicher schon als Frage/Antwort gibt.
Ich nutze seit einigen Wochen FHEM auf einem PRI erfolgreich. Er steuert sämtliche FunkSteckdosen (auch Zeitgesteuert) mittels eines am GPIO Port angeschlossenem 433MHz sender (3euro aus China) und liefert mir Verschiedene Analoge und digitale Werte von einem mittels USB angeschlossenem Arduino Nano. Nun zum Thema:
Ich möchte die gemessenen Werte von einem LDR am Arduino in Fhem zum Schalten einer Funksteckdose nutzen.
In Fhem werden die gemessenen Werte bereits Angezeigt. Realisiert ist das in der config wie folgt:
define LDR FRM_AD 14
attr LDR room Wohnzimmer
Fehlt nur noch das "Werte-abhängige" schalten
Programmtechnisch also so in etwa if LDR > 800 set Steckdose1 on
if LDR < 800 set Steckdose1 off
Ich habe bereits mehrfach versucht das ganze mit notify zu lösen, jedoch bin ich ein absoluter Perl Neuling.
Ich hoffe ihr könnt mir da weiterhelfen..
Vielen Dank Alex S.
schau dir THRESHOLD an.
gruss
andre
Danke für die schnelle Antwort, aber da habe ich das gleiche Problem.
Ich sagte ja das ich mit dem Pearl-Code schreiben ein absoluter Anfänger bin.
Gruß Alex
du musst ja eben genau keinen perl code schreiben. schau dir doch mal die beispiele zu THRESHOLD an,. in der commandref, im wiki und hier.
gruss
andre
Hallo.
So viel Probiert und gelesen und irgendwie trotzdem kaum Schlauer.... Hoffentlich platzt der Knoten bald....
Lava ist eine Funksteckdose
Werte liegen bei DUNKEL um die 700
Hell um die 1000
sollte also ein ausreichend großer Bereich sein
Mein Versuch
define Helligkeitindoor THRESHOLD LDR Lava
#set Helligkeitindoor desired 800
attr Helligkeitindoor state_cmd1_gt off
attr Helligkeitindoor state_cmd2_lt on
#attr Helligkeitindoor state_format _m _dv _sc
attr Helligkeitindoor webCmd desired
set Helligkeitindoor desired 1000
Aber irgendwie schaltet nichts. Im Log bekomme ich
2014.03.03 18:37:39 2: Helligkeitindoor: no reading yet for LDR temperature
Gruß Alex
define Helligkeitindoor LDR:state:100:800 Steckdose1|set @ on|set @ off
für das device LDR mit dem reading state schalte den aktor Steckdose1 wenn der wert >800 ist an und wenn der wert < 800 ist aus. und das ganze mit hysterese 100.
gruss
andre
Danke für die Hilfe.....
Ist zwar noch irgendwie der Wurm drin. Fehler im Log ist weg, aber es schaltet immer noch nichts.....
Aber ich versuche heut erstmal das alleine herauszubekommen....
Gruß Alex
Hallo zusammen.
Die letzten beiden Abende bin ich kein Stück weiter gekommen.
Deswegen jetzt hier ein Auszug aus meiner config. Vielleicht fällt euch ja die Lösung ein.
Das Licht/die Steckdose lässt sich so einwandfrei schalten. Der Wert vom LDR am Arduino stimmt auch.
Nur aus der THRESHOLD Geschichte heraus geschieht nichts. Wieso? Was mache ich falsch
Gruss Alex
#GPIO sender
define Lichtleiste dummy
attr Lichtleiste room Wohnzimmer
attr Lichtleiste setList on off
attr Lichtleiste icon light_light
define off_Lichtleiste notify Lichtleiste:off {system("/usr/local/bin/send433 10110 3 0 &")}
define on_Lichtleiste notify Lichtleiste:on {system("/usr/local/bin/send433 10110 3 1 &")}
define Arduino1 FRM /dev/ttyUSB0@57600
attr Arduino1 sampling-interval 1000
define LDR FRM_AD 14
attr LDR room Wohnzimmer
define Helligkeit THRESHOLD LDR:state:100:800 Lichtleiste|set @ on|set @ off
attr Helligkeit room Wohnzimmer
in welchem reading steht die helligkeit LDR?
was zeigt ein list auf Hellikeit?
gruss
andre
Hallo
das list zeigt
Internals:
CHANGED
DEF LDR:state:100:800 Lichtleiste|set @ on|set @ off
NAME Helligkeit
NR 130
NTFY_ORDER 50-Helligkeit
STATE active 800
TYPE THRESHOLD
cmd1_gt set Lichtleiste on
cmd2_lt set Lichtleiste off
cmd_default 0
hysteresis 100
init_desired_value 800
offset 0
sensor LDR
sensor_reading state
Readings:
2014-03-05 11:47:05 cmd wait for next cmd
2014-03-05 11:47:05 desired_value 800
2014-03-05 11:47:05 mode active
2014-03-05 11:47:06 state active 800
2014-03-05 11:47:05 threshold_max 800
2014-03-05 11:47:05 threshold_min 700
Attributes:
room Wohnzimmer
state_format _m _dv
was meinst du mit dem Reading?
Gruß Alex
mach bitte auch ein list auf LDR.
Internals:
DEF 14
IODev Arduino1
NAME LDR
NR 125
PIN 14
STATE 305
TYPE FRM_AD
resolution 10
Readings:
2014-03-05 17:49:48 reading 305
2014-03-05 11:47:05 state Initialized
Attributes:
event-min-interval 5
room Wohnzimmer
stateFormat reading
du musst im THRESHOLD device reading statt state verwenden.
gruss
andre
Na klar.
Logisch :-)
1000send Dank. Läuft wunderbar, auch mit den anderen Sensoren.
VG Alex S