Garagentorsteuerung: Wie Schaltbefehle anpassen

Begonnen von Michi240281, 04 Februar 2014, 15:04:21

Vorheriges Thema - Nächstes Thema

Michi240281

Hallo zusammen,

habe meine Garagentorsteuerung anhand des WIKI Artikels programmiert.

Ich nutze dazu:

- 1x HM-LC-SW1-FM Schaltaktor 1-fach UP
- 1x HM-SEC-SC-2 Tür-Fensterkontakt

Hier mal der Code dazu:

#Garage:

#Torkontakt:
define Garagentor CUL_HM 24D402
attr Garagentor .devInfo 810101
attr Garagentor .stc 80
attr Garagentor actCycle 028:00
attr Garagentor actStatus alive
attr Garagentor autoReadReg 4_reqStatus
attr Garagentor devStateIcon offen:fts_garage_door_10 geschlossen:fts_garage_door_100 .*:fts_garage
attr Garagentor eventMap open:offen closed:geschlossen
attr Garagentor expert 2_full
attr Garagentor firmware 2.2
attr Garagentor group Garage
attr Garagentor model HM-SEC-SC-2
attr Garagentor peerIDs
attr Garagentor room Garage
attr Garagentor serialNr KEQ0****
attr Garagentor subType threeStateSensor
define FileLog_Garagentor FileLog ./log/Garagentor-%Y.log Garagentor
define SVG_FileLog_Garagentor_1 SVG FileLog_Garagentor:SVG_FileLog_Garagentor_1:CURRENT
define ActionDetector CUL_HM 000000
attr ActionDetector actCycle 30
attr ActionDetector event-on-change-reading .*
attr ActionDetector room CUL_HM

#Garagentoraktor
define Garage_Aktor CUL_HM 254DE7
attr Garage_Aktor autoReadReg 4_reqStatus
attr Garage_Aktor expert 2_full
attr Garage_Aktor model HM-LC-SW1-FM
attr Garage_Aktor peerIDs 00000000,
attr Garage_Aktor room hidden
attr Garage_Aktor serialNr KEQ10*****
attr Garage_Aktor subType switch
attr Garage_Aktor webCmd toggle:on:off:statusRequest
define FileLog_Garage_Aktor FileLog ./log/Garage_Aktor-%Y.log Garage_Aktor attr FileLog_Garage_Aktor logtype text
attr FileLog_Garage_Aktor room hidden

#Softwaretaste zum Schließen
define Schliessen dummy
attr Schliessen alias Garage:
attr Schliessen eventMap On:Schliessen
attr Schliessen group Garage
attr Schliessen room Garage
attr Schliessen webCmd Schliessen

#Softwaretaste zum Öffnen
define Oeffnen dummy
attr Oeffnen alias Garage:
attr Oeffnen eventMap On: Oeffnen
attr Oeffnen group Garage
attr Oeffnen room Garage
attr Oeffnen webCmd Oeffnen

#Garage schließen, wenn sie geöffnet ist
define Garage_Schliessen notify Schliessen { if (Value("Garagentor") eq "offen" && "%" ne "off") { fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Schliessen off") } }
attr Garage_Schliessen room CUL_HM

#Garage öffnen, wenn sie geschlossen ist
define Garage_Oeffnen notify Oeffnen { if (Value("Garagentor") eq "geschlossen" && "%" ne "off") { fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Oeffnen off") } }
attr Garage_Oeffnen room CUL_HM


Soweit funktioniert auch alles. Mein Problem ist nun jedoch, dass ich 2 Dummy-Schalter habe, die zum einen im Frontend und zum anderen auch in der App UNTEREINANDER dargestellt werden. Ich hätte aber gerne 1 Schalter mit "Öffnen" und "Schliessen", der dann auch in einer Zeile (also NEBENEINANDER) dargestellt würde. Am liebsten hätte ich alles in einer Zeile: Garagentorstellung (offen, geschlossen); "Oeffnen"; "Schliessen"

Mir wurde von netten Leuten hier das Stichwort "setreading" genannt, jedoch komme ich damit nicht wirklich weiter, da mir der logische Hintergrund fehlt und ich auch aus der "Heimautomatisierung mit Fhem.pdf" und dem Wiki/der command ref nicht schlauer werde, wie man sowas umsetzen könnte. Ich verstehe nicht, wie man dem Garage_Aktor die Information über die Torstellung übergibt und wie man dann weitermachen muss? Den der Garage_Aktor versteht ja als Befehle nur "On/Off/Toggle" und ich sende ja in beiden Fällen (Oeffnen/Schliessen) ein "On".

Es wäre nun also arg nett, wenn mir nochmal jmd einen Schubs in die richtige Richtung geben könnte und/oder es mir auch logisch erklären könnte.

Besten Dank schonmal!!!!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

betateilchen

Du hast doch schon einen Garagentor-Thread hier im Forum. Wozu jetzt noch ein zweiter?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Michi240281

Weil es im ursprünglichen thread um die Auswahl der Hardware (des Aktors) ging und es ein Homematic-spezifisches "Problem" war. Nun geht es um die Programmierung (das hat ja nichts mit der Garagentorsteuerung zu tun / das Problem gibt es ja denke ich an vielen Stellen) und das passt auch einfach viel besser in den Anfängerbereich.

Daher bitte ich es mir nachzusehen!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Michi240281

Schade, dass hier wohl niemand helfen kann!!

Hätte gedacht, dass andere ähnliche Probleme hatten.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Wuppi68

hmmm,

so aus dem Kopf, da ich es noch nicht gemacht habe, nur ein "Proof of conzept"

#Softwaretaste für die Garage
define Garegentor dummy
attr Garegentor alias Garage:
attr Garegentor eventMap On:Schliessen On:Oeffnen
attr Garegentor group Garage
attr Garegentor room Garage
attr Garegentor webCmd Schliessen Oeffnen

btw: Du hast beim eventMap Oeffnen noch ein Leerzeichen nach dem Doppelpunkt

attr Oeffnen eventMap On: Oeffnen
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Michi240281

#5
Zitat von: Wuppi68 am 05 Februar 2014, 10:24:58
hmmm,

so aus dem Kopf, da ich es noch nicht gemacht habe, nur ein "Proof of conzept"

#Softwaretaste für die Garage
define Garegentor dummy
attr Garegentor alias Garage:
attr Garegentor eventMap On:Schliessen On:Oeffnen
attr Garegentor group Garage
attr Garegentor room Garage
attr Garegentor webCmd Schliessen Oeffnen

Sowas geht? Also "On" einfach 2 mal zuweisen?
Zitat
btw: Du hast beim eventMap Oeffnen noch ein Leerzeichen nach dem Doppelpunkt

attr Oeffnen eventMap On: Oeffnen
Stimmt, werde ich korrigieren, danke!! Funktioniert hat es aber trotzdem.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Puschel74

Hallo,

ZitatAlso "On" einfach 2 mal zuweisen?
Klar.
Du kannst on auch 5-mal zuweisen.
Es wird dann aber mMn nur die letzte Zuweisung erhalten bleiben - logischerweise.
On kann ja nur einen Zustand repräsentieren.

Ich denke das sollte oben
attr Garegentor eventMap On:Schliessen Off:Oeffnen
heissen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Michi240281

Zitat von: Puschel74 am 05 Februar 2014, 11:09:12
Ich denke das sollte oben
attr Garegentor eventMap On:Schliessen Off:Oeffnen
heissen.

Grüße

Ne, das war schon so richtig! Ich nutze ja einen Aktor mit einem Kanal, der eben nur On/Off/Toggle "kennt". Jedoch geht das Tor bei einem Impuls (On) auf UND hält an UND geht zu. Daher habe ich ja wie gesagt bisher 2 Dummies, einer für Oeffnen ("On") und einer für Schliessen (auch "On").

Und aus diesen 2 Dummies möchte ich gerne 1 machen.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Puschel74

Hallo,

ZitatUnd aus diesen 2 Dummies möchte ich gerne 1 machen.
Du kannst das ohne Probleme machen.
Genauso kannst du auch die beiden notify in eines zusammenfassen.

Den einen Dummy gibts du
attr Garagentor_schalt eventMap On:Schliessen Off:Oeffnen
mit und im notify prüfst du ja eh schon auf den TFK und kannst ja so auch beim Dummy auf on oder off prüfen.
Welchen Befehl du dann an den Aktor sendest kannst du ja im notify dann definieren - was du ja bereits gemacht hast.

Wozu du da 2 Dummy verwendest und beidemale auf on prüfst kann ich nicht so ganz nachvollziehen.
define Garage_oeffnen_schliessen notify Garagentor_schalt {
  if (Value("Garagentor") eq "offen" && $EVENT ne "off") {
    fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Schliessen off");
  }
  if (Value("Garagentor") eq "geschlossen" && $EVENT ne "on") {
    fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Schliessen off");
  }
}

ungetestet und ohne Anspruch auf Korrektheit und Vollständigkeit.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Michi240281

#9
Zitat von: Puschel74 am 05 Februar 2014, 11:48:36
Hallo,
Du kannst das ohne Probleme machen.
Genauso kannst du auch die beiden notify in eines zusammenfassen.

Den einen Dummy gibts du
attr Garagentor_schalt eventMap On:Schliessen Off:Oeffnen
mit und im notify prüfst du ja eh schon auf den TFK und kannst ja so auch beim Dummy auf on oder off prüfen.
Welchen Befehl du dann an den Aktor sendest kannst du ja im notify dann definieren - was du ja bereits gemacht hast.

Zitat
Wozu du da 2 Dummy verwendest und beidemale auf on prüfst kann ich nicht so ganz nachvollziehen.
Ich habe mich an die Anleitung aus dem WIKI gehalten!!
Zitat
define Garage_oeffnen_schliessen notify Garagentor_schalt {
  if (Value("Garagentor") eq "offen" && $EVENT ne "off") {
    fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Schliessen off");
  }
  if (Value("Garagentor") eq "geschlossen" && $EVENT ne "on") {
    fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1 ;; setstate Schliessen off");
  }
}

ungetestet und ohne Anspruch auf Korrektheit und Vollständigkeit.

Grüße

Ich danke dir (und natürlich auch Wuppi68) recht herzlich!!!!!!! Ich glaube das könnte so tatsächlich funktionieren.  :)

Dürfte ich noch eine Frage loswerden?
Wie bringe ich denn dann den Dummy "Garagentor_schalt" und den TFK "Garagentor" im Frontend in eine Zeile? Also so dass die beiden Dummy-Befehle (Oeffnen, Schliessen) zusammen mit dem Garagentorzustand (offen, geschlossen) in einer Zeile nebeneinander stehen?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Puschel74

#10
Hallo,

ZitatIch habe mich an die Anleitung aus dem WIKI gehalten!!
Ähem ja ok.
Das sind aber nur "Anleitungen" und keine Gesetze  ;D

Anleitungen stellen nur eine! Lösungsmöglichkeit dar und können gerne und jederzeit von jedem auf seine eigenen Wünsche abgeändert werden.
Mir ist schon klar das das am Anfang von FHEM noch etwas schwierig und komplex ist aber mit der Zeit kommt auch der Durchblick  ;)
Und zum Glück gibt es ja das Forum  8)

Für deine Frage habe ich leider keine Lösungsmöglichkeit parat.
Evtl. kann dir "userReading" dabei weiterhelfen.

Grüße

Edith: Kurze Idee.
Verwende das Attribut group - dann hast du sie schonmal untereinander stehen.
attr Garagentor_schalt group Garage
attr Garagentor group Garage
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

ph1959de

ZitatIch habe mich an die Anleitung aus dem WIKI gehalten!!

(scnr:) Warum hast Du dann nicht einen FS20 Aktor verwendet? ;) ... Allein dadurch kannst Du ja schon dem Beispiel nicht mehr blind folgen.
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Michi240281

Blind folgen tut hier niemand!
Da jedoch nach dem man Geräte gepairt hat, diese über ihren Namen angesprochen werden, sind die folgenden Teile der Anleitung ja verwendbar.
Und natürlich ist mir klar, dass es nur EINE Möglichkeit ist, nur wenn man eben ganz am Anfang steht und garkeine Idee hat, wie sowas umzusetzen ist, ist EINE Möglichkeit eben besser als KEINE!

@Puschel: In der gleichen group habe ich die Sachen. Vllt kann hier auch jmd was zu sagen, der Jalousien ansteuert, da habe ich das schon öfter gesehen, dass von links nach rechts der Name, dann der state und dann "Hoch"/"Runter" abgebildet wurde. Oder bei der Heizungssteuerung analog.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Groby

Hallo Michi,

ich habe es so gelöst:

1. Schalter Garage als Taster umprogrammiert mit:

eventMap /on-for-timer-1:on

Meine Garagensteuerung funktioniert nur mit einem Taster (auf-stop-zu-stop-auf).

2. Dem Schalter Garage über den GaragenSensor und ein notify ein neues Reading "status" verpassen:

define WatchGaragenSensor notify GaragenSensor:* {fhem("setreading Garage status ".(ReadingsVal('GaragenSensor','state',''))."")};

3. state für Schalter/Taster Garage auf Reading "status" umbiegen:

stateFormat status

4. Das eigentliche StatusIcon für Schalter/Taster Garage modifizieren:

devStateIcon closed:fts_garage_door_100@green open:fts_garage@red

5. Deinen GaragenSensor kannst Du danach getrost verstecken, da sich der aktuelle Status des GaragenSensors im Reading "status" vom Schalter/Taster Garage widerspiegelt.

Als Ergebnis habe ich im Webinterface den Garagentorstatus für den Schalter/Taster Garage mit Icon "open" oder "closed" und cmd "on". 

Möglicherweise kommt es zur Fehlermeldung bis der GaragenSensor den Schaltzustand einmalig verändert hat, da das Reading "status" für Garage erst geschrieben werden muss. Das erledigt sich aber von selbst...

MfGroby

PS: Alles aus dem Kopf. Ggf Syntax und commandref prüfen...

Michi240281

Hallo Groby,

vielen Dank für deine Antwort! :)

Bei mir funktioniert der Taster auch wie bei dir (auf-stop-zu-stop-auf), allerdings habe ich ihn im Fhem so umprogrammiert, dass ich nicht nur "On" als command habe sondern Öffnen und Schliessen.

Ich denke aber, zusammen mit den Angaben von Puschel kann ich mir jetzt eine für mich perfekte Lösung zusammenbasteln.

Vielen vielen Dank an Euch!!!!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905