Garagentorsteuerung: Wie Schaltbefehle anpassen

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

Vorheriges Thema - Nächstes Thema

Wuppi68

Hey,

noch ist es nicht beendet :-)

Wenn es bei Dir läuft möchten wor gerne DEINEN Code haben ;-)

Am besten dann den ersten Eintrag von Dir noch einmal editieren und Deine Lösung unten dran hängen sowie den Betreff auf und dem Begriff gelöst ergänzen :-)
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

moonsorrox

das würde mich auch interessieren, da ich im Frühjahr mein Garagentor automatisiere, alles schon vorbereitet muss nur noch der Motor ran..! :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Michi240281

Natürlich bekommt Ihr meinen Code dann!

Ich mache mich am Samstag ran und wenn ich es hinbekomme, werde ich den gesamten Code hier direkt posten.

Wie kann ich denn den Betreff des threads ändern?
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

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.

Groby

Hallo Zusammen,

der eigentliche Code ist doch bereits der unten beschriebene "notify", der den Status vom Sensor GaragenSensor "open/closed" in das neue Reading "status" vom Schalter Garage kopiert. Alle weiteren unten beschriebenen Schritte sind Bordmittel und Attribute des Schalters Garage. Diese können über "attr Garage..." über die cmd-Zeile oder über das Webinterface einfach eingegeben werden (save nicht vergessen).

Ich persönlich halte die "Taster" Methode für wesentlich sinnvoller als "rauf/runter" zu programmieren, da man mit dieser Schalter/Sensor Kombination die Laufrichtung des Garagentores niemals richtig abbilden kann. Spätestens wenn das Tor einen "Nothalt" macht, oder der Schalter 2 mal kurz hintereinander betätigt wird, weiß man nicht wo das Tor steht bzw. in welche Richtung es fährt. Nicht zu vergessen der Garagentor Handsender und der "interne" Garagentorschalter sind nicht unter fhem-Kontrolle und können jederzeit dazwischen funken!!!

Die Taster Methode hat zudem einen hohen "waf" (woman acceptance factor) so wie man es vom "echten" Taster gewohnt ist. Jedes Kommando ist eben "auf/stop/runter" je nach vorherigem Torzustand. Sowohl über den Hardware Schalter/Taster als auch im webinterface. Den Gargagentorzutand "open/closed" liest man einfach vom Icon ab. Wie in meinem Beispiel sogar in Farbe "closed=grün/open=rot"...

MfGroby

Michi240281

#20
So, ich habe mal folgenden Code "offline" erstellt. Am Samstag wird sich dann rausstellen, ob alles so funktioniert wie es soll. Ich habe das "setreading" auf den Dummy bezogen, da ich ja über den Dummy schalte und dann gerne in einer Zeile den Dummy-Schalter mit den Befehlen "Oeffnen", "Schliessen" und den state des Torkontakts angezeigt bekommen möchte. Ich hoffe, das kann man so machen (also setreading dem Dummy zuweisen).

Wenn jmd Lust hat, kann er ja gerne mal über den Code drüber schauen, ob ich irgendwo Syntax- und/oder Logikfehler gemacht habe. Besten Dank!


#####################################
######Neue Garagentorsteuerung#######
#####################################

##########################
#Torkontakt (HM-SEC-SC-2)#
##########################

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@red geschlossen:fts_garage_door_100@green .*: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 (HM-LC-SW1-FM)#
################################

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 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

##########################################################
#Status des Torkontakts in Dummy mittels Reading einfügen#
##########################################################

define WatchGaragenTor notify Garagentor:* {fhem("setreading Garage_Schalten status".(ReadingsVal('Garagentor','state',''))."")};

#########################
#Steuerung mittels Dummy#
#########################

define Garage_Schalten dummy
attr Garage_Schalten eventMap On:Oeffnen Off:Schliessen
attr Garage_Schalten group Garage
attr Garage_Schalten room Garage
attr Garage_Schalten stateFormat status
attr Garage_Schalten webCmd Oeffnen:Schliessen

#############################################
#Notify zum Schalten abhängig von Torkontakt#
#############################################

define Garage_Oeffnen_Schliessen notify Garagentor_Schalten { 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 Oeffnen off");
}
}
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

Hmmm, also irgendwo hakt es noch! Mit o.a. Code meldet Fhem beim Speichern der cfg:

ERROR:
Unknown command fhem("set, try help. Unknown command }, try help. Unknown command if, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help.


Jmd ne Idee? Weiterhin wird der state wohl nicht auf den Dummy übertragen (s. Anhang).
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

#22
So, ich habs hinbekommen! Hier der Code:

###########################
### Garagentorsteuerung ###
###########################

##############
# 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@red geschlossen:fts_garage_door_100@green .*:fts_garage
attr Garagentor eventMap open:offen closed:geschlossen
attr Garagentor expert 2_full
attr Garagentor firmware 2.2
attr Garagentor model HM-SEC-SC-2
attr Garagentor peerIDs
attr Garagentor serialNr KEQ0*****
attr Garagentor subType threeStateSensor
define FileLog_Garagentor FileLog ./log/Garagentor-%Y.log Garagentor
define SVG_FileLog_Garagentor SVG FileLog_Garagentor:SVG_FileLog_Garagentor:CURRENT
attr SVG_FileLog_Garagentor devStateIcon .*:control_x
attr SVG_FileLog_Garagentor label "Garagentor Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_FileLog_Garagentor room Plots
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 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

############################################################
# Status des Torkontakts in Dummy mittels Reading einfügen #
############################################################

define WatchGaragentor notify Garagentor:* {fhem("setreading Garage_Schalten status ".(ReadingsVal('Garagentor','state',''))."")}

###########################
# Steuerung mittels Dummy #
###########################

define Garage_Schalten dummy
attr Garage_Schalten alias Garage
attr Garage_Schalten devStateIcon open:fts_garage@red closed:fts_garage_door_100@green .*:fts_garage
attr Garage_Schalten eventMap On:Schliessen Off:Oeffnen
attr Garage_Schalten group Schalter
attr Garage_Schalten room Garage
attr Garage_Schalten stateFormat status
attr Garage_Schalten webCmd Oeffnen:Schliessen

################################################
# Notifys zum Schalten abhängig von Torkontakt #
################################################

define Garage_Oeffnen notify Garage_Schalten { if (Value("Garagentor") eq "geschlossen" && $EVENT eq "Oeffnen") { fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1") } }

define Garage_Schliessen notify Garage_Schalten { if (Value("Garagentor") eq "offen" && $EVENT eq "Schliessen") { fhem("set Garage_Aktor off ;; set Garage_Aktor on-for-timer 1") } }


Zwar mit 2 Notifies, aber nicht so schlimm! Hauptsache es funktioniert! Falls jmd die beiden Notifies zu einem zusammenfassen könnte, möge er es gerne posten! Ich habs nicht hinbekommen! Fhem hat ständig gemeckert! Aussehen tuts jetzt wie im Anhang!

Eine Frage habe ich noch: Jetzt wird ja der Status vom TFK an den Dummy übergeben, das funktioniert ja auch, allerdings übergibt der "closed/open", und nicht "geschlossen/offen" wie ich es im threestatesensor per eventmap geändert habe. Nur wie bekomme ich das im Dummy hin? Oder geht das nicht? Eventmap habe ich dort ja bereits verwendet.
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

Hmmm, seltsam:

Gestern funktionierte alles, heute wird das Reading nicht auf den Dummy übertragen. Jmd ne Idee, woran das liegen könnte? Code siehe oben.

Danke im vorraus!
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

Habs wieder hinbekommen! :)

Könnte jmd mit mehr Erfahrung evtl. aus meinen 2 Notifies einen 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