FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hyper2910 am 15 April 2014, 20:18:07

Titel: einfache Garagentorsteuerung
Beitrag von: hyper2910 am 15 April 2014, 20:18:07
Hallo zusammen,

Ich habe mir eine einfache Garagentorsteuerung zusammengebastelt, das ganze fuer ca. 30eur.

1. Viele (Garagen)torantriebe haben keine seperaten Schalter für "Schliessen" und "Öffnen", sondern nur einen Taster, der das Tor schliesst wenn es offen ist und öffnet, wenn es geschlossen ist.

2. 443MHz Funksteckdose aus dem Baumarkt, gibt es bei uns 3 stueck fuer 15eur.

3. Altes 5V  Handyladegeraet

4. Einfaches 5V Relais

Ich schalte also die Steckdose und damit schaltet das Relais und der schliesser öffnet oder schließt das Tor.
Einen beliebigen Fensterkontakt um zu sehen ob das Tor offen oder geschlossen ist.

Alles funktioniert soweit

Hier mal der Code

##### 8  Garage
### 8.1 Garagentor AUF/ZU mit 443Mhz Schalter
define TorOeffner IT 0000FFF0FF FF F0
attr TorOeffner IODev CUL443
attr TorOeffner fp_Groundfloor 815,485,2,
attr TorOeffner group Garagentor
attr TorOeffner room Draussen,Schalter
define Lamp1On_for2sec notify TorOeffner.on { \
      fhem ("set TorOeffner on") ;; \
       fhem ("define TorOeffnerOff at +00:00:02 set TorOeffner off")}
define Lamp1Off notify TorOeffner.off {fhem ("set TorOeffner off")}

### 8.2 Garagentor Zustandsanzeige
define Garagentor MAX ShutterContact 018d62
attr Garagentor IODev cm




Wie bekomme ihres jetzt hin das ich als Schalter einen Auf Zu Schalter bekomme und das Tor auf Zu nur reagiert wenn der ShutterContact open ist und umgekehrt?


Vielleicht kann mir hier jemand helfen!
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 17 April 2014, 13:01:21
Keiner eine Idee?

Gesendet von meinem SGP521 mit Tapatalk

Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 18 April 2014, 13:16:58
Also die Umbenennung ist gemacht.

Nur ist mir nicht klar, wie man Up sperren kann, wenn das Tor schon offen ist.
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: mi.ke am 18 April 2014, 13:53:40
ZitatWie bekomme ihres jetzt hin das ich als Schalter einen Auf Zu Schalter bekomme und das Tor auf Zu nur reagiert wenn der ShutterContact open ist und umgekehrt? 

ungetestet !

define GaragenTorSchalter dummy
attr setList state: auf zu
attr webCmd auf:zu


define  GaragenTorSchalter notify  GaragenTorSchalter_n {
if ((Value "ShutterContact" eq "open") && (Value "GaragenTorSchalter" eq "zu" )) fhem ("set GarageTOR zu");
if ((Value "ShutterContact" eq "closed") && (Value "GaragenTorSchalter" eq "auf" )) fhem ("set GarageTOR auf");
}


cheers
mi.ke
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Puschel74 am 18 April 2014, 13:58:58
Hallo,

Zitatungetestet !
Offensichtlich.

define  GaragenTorSchalter notify  GaragenTorSchalter_n {
Worauf sollte das notify triggern?

Tipp: Das Device lautet GaragenTorSchalter_n und das habe ich bisher noch nirgends gefunden.

Ausserdem heisst das Device und das notify gleich - das kann so auch nicht klappen.

Grüße
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Paul am 18 April 2014, 14:03:22
ZitatWorauf sollte das notify triggern?

Auf auf und zu
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: mi.ke am 18 April 2014, 14:05:20
Hast ja recht . . .
Meine notify heissen alle _n am Ende.
Hab die wegstaben verbixelt.

so wird eher ein schuh draus:
define GaragenTorSchalter_n notify GaragenTorSchalter {
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Puschel74 am 18 April 2014, 14:06:53
Hallo,

so sieht es besser aus  ;)

Grüße
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: mi.ke am 18 April 2014, 14:28:34
Zitat von: Puschel74 am 18 April 2014, 14:06:53
Hallo,

so sieht es besser aus  ;)

Grüße


@Puschel74

Hab letztes Jahr an Ostern meinen ersten Fensterkontakt angeschraubt.
Bis dahin dachte ich, Perl wird mit a geschrieben.

Da bin ich schon stolz, dass Du nicht mehr Unzulänglichkeit aufgedeckt hast . . .

Beste Grüße und schöne Feiertage . . .
. . . und vielen Dank für Deinen unermüdlichen Einsatz hier im Forum !

Cheers
mi.ke
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Puschel74 am 18 April 2014, 14:40:39
Hallo,

aus
((Value "ShutterContact" eq "open")
müsste noch
((Value("ShutterContact")eq "open")
gemacht werden - das Device im Value noch klammern.
So hab ich das zumindest bei mir und das klappt einwandfrei  ;D

@mi.ke
Und ein Jahr später hilfst du schon anderen Anfängern - so schnell kann man sich in FHEM "einarbeiten"  ;)
Und wenn man den Dreh einmal raus hat fragt man sich warum man so kompliziert gedacht hat  :-[

Dir auch schöne Ostern ... und auch ein Danke das du uns hier unterstützt.

Grüße
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 18 April 2014, 19:38:27
Hallo,

vielen Dank an alle.

habe das mal auf mich adaptiert:

##### 8  Garage
### 8.1 Garagentor AUF/ZU mit 443Mhz Schalter
define TorOeffner IT 0000FFF0FF FF F0
attr TorOeffner IODev CUL443
attr TorOeffner eventMap on:Up off:Down
attr TorOeffner fp_Groundfloor 815,485,2,
attr TorOeffner group Garagentor
attr TorOeffner room Draussen,Schalter
define Lamp1On_for2sec notify TorOeffner.on { \
      fhem ("set TorOeffner on") ;; \
       fhem ("define TorOeffnerOff at +00:00:02 set TorOeffner off")}
define Lamp1Off notify TorOeffner.off {fhem ("set TorOeffner off")}



define GaragenTorSchalter dummy
attr GaragenTorSchalter setList state: auf zu
attr GaragenTorSchalter webCmd auf:zu
attr GaragenTorSchalter room Test

define  GaragenTorSchalter_n notify GaragenTorSchalter  { \
if ((Value ("Garagentor") eq "open") && (Value ("GaragenTorSchalter") eq "zu" )) fhem ("set TorOeffner on");;\   
if ((Value ("Garagentor") eq "closed") && (Value ("GaragenTorSchalter")eq "auf" )) fhem ("set TorOeffner on");;\ }


Jedoch bekomme ich im Log immer

Bareword found where operator expected at (eval 582) line 2, near ") fhem"
(Missing operator before fhem?)
Bareword found where operator expected at (eval 582) line 3, near ") fhem"
(Missing operator before fhem?)
2014.04.18 19:36:43 3: GaragenTorSchalter_n return value: syntax error at (eval 582) line 2, near ") fhem "
syntax error at (eval 582) line 3, near ") fhem "

Bareword found where operator expected at (eval 591) line 2, near ") fhem"
(Missing operator before fhem?)
Bareword found where operator expected at (eval 591) line 3, near ") fhem"
(Missing operator before fhem?)
2014.04.18 19:36:56 3: GaragenTorSchalter_n return value: syntax error at (eval 591) line 2, near ") fhem "
syntax error at (eval 591) line 3, near ") fhem "


Vielleicht kann ja mal einer drüberschauen
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: mi.ke am 18 April 2014, 19:57:20

fehlen die geschweiften Klammern:

define  GaragenTorSchalter_n notify GaragenTorSchalter  { \
if ((Value ("Garagentor") eq "open") && (Value ("GaragenTorSchalter") eq "zu" )) {fhem ("set TorOeffner on")};;\   
if ((Value ("Garagentor") eq "closed") && (Value ("GaragenTorSchalter")eq "auf" )) {fhem ("set TorOeffner on")};;\ }
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 19 April 2014, 09:53:20
Hallo zusammen,


irgendwie bekomme ich es nicht hin:

1. Ich habe einen Steckdose, welche für 2Sek Schaltet und damit über ein Relais den TastenDruck zum Öffnen/Schliessen imitiert.


2. das ganze sieht so aus und klappt einwandfrei
define TorOeffner IT 00000FFF0F FF F0
attr TorOeffner IODev CUL443
attr TorOeffner eventMap on:Auf off:Zu
attr TorOeffner fp_Groundfloor 815,485,2,
attr TorOeffner group Garagentor
attr TorOeffner icon building_carport
attr TorOeffner room Draussen,Schalter
define Lamp1On_for2sec notify TorOeffner.on { \
      fhem ("set TorOeffner on") ;; \
       fhem ("define TorOeffnerOff at +00:00:02 set TorOeffner off")}
define Lamp1Off notify TorOeffner.off {fhem ("set TorOeffner off")}



Dann habe ich von meiner MAX! Heizungsanlage einen FensterShutter über, welcher am Tor montiert ist und Opened bzw. Closed als State hat, funktioniert auch einwandfrei

define Garagentor MAX ShutterContact 018d62
attr Garagentor IODev cm
attr Garagentor devStateIcon opened:fts_garage@red closed:fts_garage_door_100@green
attr Garagentor group Garagentor
attr Garagentor room Draussen,Schalter



also habe ich im FHEM jetzt einen Schalter Auf und Zu und den Zustand des Tores, Opened oder Closed.

Jetzt möchte ich, das der "Auf" Button nur dann funktioniert, wenn das Tor geschlossen ist. Und der "Zu" Button nur dann wenn das Tor auf ist. So das ich nicht mit "Auf" ein offenes Tor schließe!


Vielleicht hat jemand von euch ja eine Idee?  Der ZU Button muss im Prinzip das gleiche machen, was der AUF Button macht nur abhängig vom Torzustand.

Ich wünsche euch frohe Ostern

Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 21 April 2014, 09:38:29
Hi zusammen,

desweiteren bekomme ich bei Neustart diese Fehlermeldung

statefile: Undefined value Zu


Könnte mir jemand nochmals helfen

Gruss Dirk
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 23 April 2014, 23:05:04
Niemand eine Idee?

Gesendet von meinem SGP521 mit Tapatalk

Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Bennemannc am 24 April 2014, 07:01:35
Hallo,

klarer Fall von if (oder IF). Kleingeschrieben ist es das PERL if - groß geschrieben das Fhem IF.
Du fragst den Zustand des MAX! Kontaktes ab. Aus der Commandref:
IF (<Bedingung>) (<FHEM-Kommandos1>) ELSE (<FHEM-Kommandos2>)
wobei man das ELSE weg lassen kann. Da bedeutet für Dich bei drücken aus "AUF"
IF (MAX!_Kontakt eq "zu") (set TorOeffner on) -- wenn das Tor schon auf ist, ist die Bedingung nicht erfüllt und es passiert nichts.
IF (MAX!_Kontakt eq "auf") (set TorOeffner off) -- das gleiche umgekehrt.
Das Ganze kannst Du dann von einem notify auslösen lassen (wobei ich Dein notify konstrukt nicht so ganz verstehe).
Ich würde einen Dummy - Schalter definieren der AUF und ZU kann - die beiden Zustände lösen ein notify aus, was dann über die IF Abfrage den Befehl an das Tor absetzt. Wenn der notify auf den DUMMY -Schalter reagiert, kann man die IF erweitern um den Zustand des Dummy's abzufragen. Beispiel:

define Dummy_Befehl notify
IF (MAX!_Kontakt eq "zu" && DUMMY eq "auf") (set TorOeffner on-for-timer 2)
ELSE IF (MAX!_Kontakt eq "auf" && DUMMY eq "zu") (set TorOeffner on-for-timer 2)

Das wars dann schon - es wird so immer nur geschaltet wenn der jeweils andere Zustand vorhanden ist.

Gruß Christoph

PS den Code habe ich nicht getestet - er soll Dir nur einen (von mehreren) Weg aufzeigen, Dein Problem zu lösen.
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 07 Mai 2014, 07:03:42
Hi,

ich bekomms einfach nicht hin.


dieses hier habe ich und funktioniert.

(http://unbenannt.png)

define TorOeffner IT 00000FFF0F FF F0
attr TorOeffner IODev CUL443
attr TorOeffner fp_Groundfloor 815,485,2,
attr TorOeffner group Garagentor
attr TorOeffner icon building_carport
attr TorOeffner room Draussen,Schalter
attr TorOeffner webCmd on-for-timer 4:open:closed

### 8.2 Garagentor Zustandsanzeige
define Garagentor MAX ShutterContact 018d62
attr Garagentor IODev cm
attr Garagentor devStateIcon opened:fts_garage@red closed:fts_garage_door_100@green
attr Garagentor fp_Groundfloor 888,500,0,
attr Garagentor group Garagentor
attr Garagentor icon fts_garage_door_60
attr Garagentor room Draussen,Schalter


Was ich jetzt möchte, wäre das Tor Auf dann nur der Befehl ZU zusehen ist und dieser ON-FOR-TIMER 4 macht. und bei TOR ZU nur AUF zu sehen ist und dieser denn Befehl ON-FOR-TIMER macht.

Desweiteren soll es dann auch möglich sein über eine URL direkt zu öffnen
z.b. so:
192.xxx.xxx.xxx:8083/fhem?cmd.TOR=set Tor AUF oder
192.xxx.xxx.xxx:8083/fhem?cmd.TOR=set Tor ZU
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Bennemannc am 07 Mai 2014, 07:45:24
Hallo,

also ich habe das mit dem "devStateIcon" gelöst. Das kann drei Werte aufnehmen, Zustand:Symbol:Aktion(bei Klick auf das Symbol).
Beispiel opened:fts_garage@red:zu closed:fts_garage_door_100@green:auf.

Gruß Christoph
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 07 Mai 2014, 13:04:12
Hi Christoph,


verstehe ich nicht, was mir das bringt.

Aber vielleicht stehe ich momentan irgendwo auf dem Schlauch!
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Bennemannc am 07 Mai 2014, 15:17:23
Hallo,

na das wonach Du gefragt hast. Ist das Tor offen, dann kann man durch das Klicken auf das Icon das Tor zu fahren. Umgekeht ist das Tor zu, kann man mit einem Klick das Tor auf fahren. Ich nutze das fasst nur, weil ich das viel anschaulicher finde als diese webcmd's.
Macht fhem denn das 'on-for-timer 4' als webcmd ?
Ich würde das anders machen . Ein Notify auf den Dummy löst ein "set xxx on-for-timer" aus.
z.B.
define dummy_klick notify IF ([toröffner:Status] eq "closed") (set toröffner_auf on-for-timer 4) ELSE (set toröffner_zu on-for-timer 4)

Gruß Christoph
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: bgewehr am 08 Mai 2014, 16:31:57
Zitat von: hyper2910 am 07 Mai 2014, 07:03:42

define TorOeffner IT 00000FFF0F FF F0
attr TorOeffner IODev CUL443


Ist Dir klar, dass mit diesen Informationen jeder halbwegs versierte Bastler Deine Garage öffnen kann?
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 08 Mai 2014, 17:27:20
Ja klar, deswegen habe ich Werte ja auch geändert. 

Gesendet von meinem SGP521 mit Tapatalk

Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 08 Mai 2014, 21:19:24
Das mit dem devStateIcon funktioniert bei mir nicht,  naja dann lassen wir das so

Gesendet von meinem SGP521 mit Tapatalk

Titel: Antw:einfache Garagentorsteuerung
Beitrag von: Zrrronggg! am 10 Mai 2014, 22:15:57
Da ich in diesem Thread ein bisscehn den Faden verloren habe und nicht weiss was schon gelöst und was noch offen ist werfe ich mal flockig ein: Den WikiArtikel

http://www.fhemwiki.de/wiki/Garagentorsteuerung

schon gelesen?
Titel: Antw:einfache Garagentorsteuerung
Beitrag von: hyper2910 am 11 Mai 2014, 11:02:22
Hi,

ja gelesen und daher kam meine Idee das mit ein paar "billigen Komponenten" zu verwirklichen.


Die Grundfunktionen sind da, nur klappt das mit wenn Tür Offen kann nur Geschlossen werden und umgekehrt nicht.