Hauptmenü

Rollosteuerung

Begonnen von lt1014, 08 Oktober 2013, 23:30:39

Vorheriges Thema - Nächstes Thema

lt1014

Hallo,
ich möchte mich kurz vorstellen: Mein Name ist Willi, bin 52 Jahre und befasse mich das erste Mal mit Fhem. Ich programmiere in C, Perl und Linux sind mit fremd.

Ich habe eine Rollosteuerung gebaut, die ich über eine RS232 Schnittstelle steuern kann. Dies geschieht jeweils mit 2 ASCII Zeichen [Rollonummer][Auf/Zu/Stopp], so das ich z.B. mit 1A Rollo 1 auffahren, 2Z Rollo 2 schließen und mit 3S Rollo 3 stoppen kann. Das habe ich mit einem USB-RS232 Adapter an meine Fritzbox 7390 angeschlossen, die als FHEM Server dient.
Die Steuerung setzt die Befehle um und gibt sie über einen 433MHz Sender an die Rolladenantriebe weiter.

In die fhem.cfg habe ich folgendes eingetragen:

attr global latitude 4x.xxxx
attr global longitude 1x.xxxxx

define RS232 ECMD serial /dev/ttyUSB0@4800
attr RS232 classdefs Rohrmotor=/var/rohrmotor/rohrmotor.classdef
define Rollo ECMDDevice Rohrmotor
attr Rollo room Wohnzimmer

In der rohrmotor.classdef steht:

set 1A cmd { "1A" }
set 1Z cmd { "1Z" }
set 1S cmd { "1S" }
set 2A cmd { "2A" }
set 2Z cmd { "2Z" }
set 2S cmd { "2S" }
set 3A cmd { "3A" }
set 3Z cmd { "3Z" }
set 3S cmd { "3S" }
.
.
.

Ich kann auf der Weboberfläche im Kommandofeld oder auch mit "putty" die Rollos mit z.B. "set Rollo 2A" bedienen. Auch das automatische Auffahren per Eintrag in fhem.cfg:

"define R1A at *{sunrise("CIVIL")} set Rollo 1A"
oder zu mit:
"define R2Z at *{sunset("CIVIL")}  set Rollo 2Z"
funktioniert einwandfrei.

Soweit so gut, nur:
ich habe es nicht geschafft, in der Weboberfläche Buttons einzufügen, mit denen ich die Rollos steuern kann. Im Menue steht zwar zwischen "Unsorted" und "Everything" mein Raum "Wohnzimmer" und es erscheint:

ECMDDevice
Rollo [letzter Befehl]

aber kein Knopf zum bedienen. Wie kann ich solche Buttons hinzufügen die beim betätigen die Kommandos: z.B. "set Rollo 2Z" usw. ausgeben. Das sollte doch machbar sein, ich bin aber noch nicht dahinter gekommen wie das geht.
Oder bin ich total auf dem falschen Weg und das Ganze geht noch viel einfacher.

Für eine Hilfe wäre ich sehr dankbar.

Viele Grüße Willi
Fritzbox 7490
Raspberry 3
Eigenbau 433MHz Sender
Rolläden Rohrmotor24

Puschel74

Hallo,

schau dir mal webCmd und eventMap an.

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.

MisterEltako

Hallo!

Schon weitergekommen???

Wenn nicht, probiere es als Idee einfach so:

define Rollo_1 dummy
attr Rollo_1 eventMap 1A:Auf 1Z:Zu 1S:Stop
attr Rollo_1 webCmd Auf:Stop:Zu
attr Rollo_1 devStateIcon Auf:fts_shutter_10:Stop Stop:fts_shutter_50:Zu Zu:fts_shutter_100:Auf
attr Rollo_1 room Rolllaeden

define Rollo_2 dummy
attr Rollo_2 eventMap 2A:Auf 2Z:Zu 2S:Stop
attr Rollo_2 webCmd Auf:Stop:Zu
attr Rollo_2 devStateIcon Auf:fts_shutter_10:Stop Stop:fts_shutter_50:Zu Zu:fts_shutter_100:Auf
attr Rollo_2 room Rolllaeden

define Rollo_3 dummy
attr Rollo_3 eventMap 3A:Auf 3Z:Zu 3S:Stop
attr Rollo_3 webCmd Auf:Stop:Zu
attr Rollo_3 devStateIcon Auf:fts_shutter_10:Stop Stop:fts_shutter_50:Zu Zu:fts_shutter_100:Auf
attr Rollo_3 room Rolllaeden

define Rollo_all structure Etage Rollo_1 Rollo_2 Rollo_3
attr Rollo_all webCmd Auf:Stop:Zu
attr Rollo_all devStateIcon Auf:fts_shutter_10:Stop Stop:fts_shutter_50:Zu Zu:fts_shutter_100:Auf
attr Rollo_all room Rolllaeden

define Rolloreaktion notify Rollo.* {\
my $R1= Value("Rollo_1");;\
my $R2= Value("Rollo_2");;\
my $R3= Value("Rollo_3");;\
my $Rs= Value("Rollo_all");;\
if ($R1 eq "Auf") {fhem("set Rollo '1A'")};;\
if ($R1 eq "Zu") {fhem("set Rollo '1Z'")};;\
if ($R1 eq "Stop") {fhem("set Rollo '1S'")};;\
if ($R2 eq "Auf") {fhem("set Rollo '2A'")};;\
if ($R2 eq "Zu") {fhem("set Rollo '2Z'")};;\
if ($R2 eq "Stop") {fhem("set Rollo '2S'")};;\
if ($R3 eq "Auf") {fhem("set Rollo '3A'")};;\
if ($R3 eq "Zu") {fhem("set Rollo '3Z'")};;\
if ($R3 eq "Stop") {fhem("set Rollo '3S'")};;\
if ($Rs eq "Auf") {fhem("set Rollo '1A';;set Rollo '2A';;set Rollo '3A'")};;\
if ($Rs eq "Zu") {fhem("set Rollo '1Z';;set Rollo '2Z';;set Rollo '3Z'")};;\
if ($Rs eq "Stop") {fhem("set Rollo '1S';;set Rollo '2S';;set Rollo '3S'")};;\
}

So kann man schön die Rollläden einzeln schalten und über die structure alle zusammen...
MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

lt1014

Vielen Dank für die schnelle Hilfe.

So gehts, ich muss nur bei '1A' usw. die Apostrophen weglassen, also z.B.:
if ($R1 eq "Auf") {fhem("set Rollo 1A")};;\

Und... Verstehen warum das so geht und was da geschieht.

Gruß
Willi
Fritzbox 7490
Raspberry 3
Eigenbau 433MHz Sender
Rolläden Rohrmotor24