Neues Modul: Rolladensteuerung

Begonnen von ThomasRamm, 11 Januar 2016, 00:00:21

Vorheriges Thema - Nächstes Thema

ThomasRamm

Hallo, da ich kein passendes Modul für meine Hardware gefunden habe, habe ich einige Ideen aus dem Forum aufgegriffen und ein neues Modul geschrieben.

Dieses Modul ist gedacht für alle die kein fertiges Rolladenmodul haben, sondern ihre Steuerung selber zusammengebastelt haben und deren Rolladensteuerung auf 1,2 oder 3 Ausgängen beruht.
Über welche Hardware/Module die Ausgänge angesprochen werden ist egal, Hauptsache man kann sie mit <device> ON bzw. <device> OFF in fhem steuern.

(http://forum.fhem.de/index.php?action=dlattach;topic=47202.0;attach=44053;image)

Was kann das Modul alles?

Sollte die Steuerung mithilfe eines Ausgang die Richtung bestimmen, wird diese immer vor einem Rollo-Start gesetzt.

Bei einem Richtungswechsel während der Fahrt wird der Rollo für 1 Sekunde gestoppt und dann in der Gegenrichtung gestartet um den Motor zu schonen.

Fährt das Rollo zur Position offen oder geschlossen, wird der Motor noch 5 sec. länger an gelassen, um Positionsverschiebungen aufgrund ungenauer Parameter auszugleichen. Bei jedem vollständigen schliessen/öffnen ist die Position damit wieder korrekt.

Die Rollo-Position wird in 10%-Schritten von 0% (offen) bis 100% (geschlossen) zwischengespeichert um auf der Oberfläche für jede Position ein Icon festlegen zu können. Die Ungenauigkeiten die dadurch zwischen echter Position und gespeicherter Position entstehen könnten werden durch oben angeführte Korrektur ebenfalls ausgeglichen.

Ist ein Rollo mit diesem Modul definiert kann man auf der Oberfläche per Klick das Rollo hoch/runter oder auf eine bestimmte Position fahren. Der aktuelle Status des Rollo (fährt hoch/runter,offen,geschlossen,etc.) wird angezeigt.
Die Oberflächenicons werden per devStateIcon gesteuert.

Beim Anlegen des Moduls wird dieses Attribut mit Standardwerten angelegt, so dass man sich einiges an Tipparbeit sparen kann, aber trotzdem die Möglichkeit hat die Darstellung individuell anzupassen.

Auch eine direkte Tastenansteuerung des Motors kann mit berücksichtigt werden, sofern der Motorstatus in fhem verfügbar ist. In diesem Thread und im wiki sind weitere Erklärungen dazu verfügbar.

Die Steuerung kann auch direkt per klick auf das Icon erfolgen, im geschlossenen Zustand fährt es dann hoch, beim fahren wird es gestoppt,...

Eine genaue Beschreibung und weitere Erklärungen zum Modul findest du im FHEM WIKI

Vielen Dank an alle die Ihre Ideen hier im Forum posten und Neulinge unterstützen, ohne euch währe ich nicht so weit gekommen.
Ich hoffe durch diesen Beitrag evtl. auch jemandem helfen zu können der das gleiche Problem wie ich hat.



die aktuellste Version findet ihr hier (zur Erstinstallation ebenfalls den Update Befehl benutzen) https://github.com/RettungsTim/fhem-rollo/

ToDo
aktuell keine weiteren Anforderungen

miche

Hallo,

das ist genau das was ich gesucht habe!

Nur mit dem FS20rsu bekomm ich das nicht geregelt.
wenn ich bei define <name> ROLLO <device> <ausgang> <ausgang-ab>
bei Ausgang ON und Ausgang ab OFF schreibe fährt gar nichts.
schreibe ich nur ON, fahren die Rollladen, aber falsch herum!

Hast du da noch einen Tipp für mich?

Danke

ThomasRamm

Kenne mich mit dem FS20 Modul nicht aus.
Wie würdest du ihn denn in ohne diesem Modul herunterfahren lassen?
Müssen dann in fhem 2 Ausgänge auf ON geschaltet werden oder nur einer?
Kannst du die zwei SET Befehle (zum hochfahren und den zum runterfahren) die du in fhem eingeben könntest mal posten?
Das Modul führt ja auch nur fhem Befehle aus und ich könnte leichter schauen ob der code so vom Modul generiert würde.

Ich vermute mal spontan das du nur 1 Ausgang schalten musst. Dann müssten 2 Zeilen im Modul geändert werden.

Zeile 255:
    #***** ROLLO LOSFAHREN *****#
    fhem("$befehl1"); #richtung auf/ab
    fhem("$befehl2"); #rollo

ändern in:
    #***** ROLLO LOSFAHREN *****#
    if ($ab eq "on") {
      fhem("$befehl1");
    } else {
    fhem("$befehl2");
    }


und der zweite Block zum stoppen des Rollos:
Zeile 295:
  #Rollo stoppen
  Log3 $name,1,"DEBUG: set $hash->{port} off";
  fhem("set $hash->{device} $hash->{port} off");

ändern in:
  #Rollo stoppen
   if ($hash->{STATE} eq "drive-down") {
   fhem("set $hash->{device} $hash->{portAb} off");
  } else {
   fhem("set $hash->{device} $hash->{port} off");
  }


Gruß
Thomas

HoTi

Haaaa wie geil. 8)

Jetzt hasse ich dich aber   :'( und ich glaube meine Frau hasst dich noch mehr. Nun muss ich alle Rolloabdenkungen wieder auf machen und meine Steuerung umbauen.

Ich habe da gerade 4 fach Homematic Schalter drin. Kanal 1 ist auf und Kanal 2 ist zu. Die Relais sind Schaltungstechnisch verriegelt damit es kein Unglück gibt.

Wenn dein Modul funktioniert muss ich aber die Hardware umbauen *grml*

Ich muss dann mal im WC Testen, da ist am einfachsten dran zu kommen.

Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Franz Tenbrock

Hallo
wie ist das mit der Automatik?

Vor einigen Wochen wurde im Forum hier was vorgestellt, das funktioniert bei mir auch richtig gut.
müsste also eigentlich nichts ändern..

Habe meine Fensterkontakte etwas getunt so dass die Kontakte mitbekommen wie der Türgriffschalter steht, unsere Kinder haben immer die Fenster nur halb geschlossen.

http://forum.fhem.de/index.php/topic,36820.msg290913.html#msg290913

Kann man mit deinem Modul dann die Fensterkontakte ganz einfach integrieren, so als Attribut oder so?
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

SvenJust

Zitat von: RettungsTim am 11 Januar 2016, 10:23:05
Nun muss ich alle Rolloabdenkungen wieder auf machen und meine Steuerung umbauen.

Ich habe da gerade 4 fach Homematic Schalter drin. Kanal 1 ist auf und Kanal 2 ist zu. Die Relais sind Schaltungstechnisch verriegelt damit es kein Unglück gibt.

Wenn dein Modul funktioniert muss ich aber die Hardware umbauen *grml*

Schau doch mal in den Code von 44_ROLLO.pm. Die Stellen, an denen Befehle an die Hardware geschickt werden, können einfach identifiziert und ggfs geändert werden. Das sollte leichter fallen, als die Rollladenkästen zu öffnen.

VG
Sven
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

ThomasRamm

Zitat von: RettungsTim am 11 Januar 2016, 10:23:05
Wenn dein Modul funktioniert muss ich aber die Hardware umbauen *grml*
Ich muss dann mal im WC Testen, da ist am einfachsten dran zu kommen.

wozu umbauen? Den Code modifizieren ist doch wesentlich einfacher.
Das Modul ist nur ein Überbau für bereits in fhem bestehende Rollo-Fahrbefehle in der Form on/off

Wie kannst du denn über die Befehlszeile dein Rollo aktuell steuern?
wenn du mit folgenden Befehlen dein Rollo steuern kannst:
set meinHomeMaticModul Kanal1 on (fährt hoch)
set meinHomeMaticModul Kanal1 off (stoppt)
set meinHomeMaticModul Kanal2 on (fährt runter)
dann den Code wie Im Post oben modifizieren, sind nur 2 kleine eingriffe im code.
In der Definition schreibst du dann einfach:
define meinRollo meinHomeMaticModul Kanal1 Kanal2

HoTi

Ja so ist es.

Kanal1    Kanal2    Aktion
    0              0         NICHTS
    0              1         HOCH
    1              0         RUNTER
    1              1         UNZULÄSSIG

Da ich aber wie immer hoffe das es ein richtiges FHEM Modul wird (Eingecheckt) wäre meine änderung bei jedem update weg.
Könnte man das als attribut einbauen, das jeder das selber definieren kann? Ich muss mich mal mit der Programmierung beschäftigen und das da einbauen.


Viele Grüße aus  Oberbayern
Tim (RettungsTim)

miche

#8
also beim FS20rsu ist das so:

Rauffahren: ON
Rauffahren stopp: ON

Runterfahren: OFF
Runterfahren stopp OFF


Hab die Zeilen geändert, jedoch fährt jetzt gar nichts mehr!

HoTi

#9
Ich habe das jetzt mal geändert für mich. Funktioniert gut, danke dir!

Hast du zufällig auch mal dran gedacht manuelles Fahrem am Rollotaster mit abzufangen?

Ich kann auch am Rollo den Taster selber bedinen, dann weiß FHEM aber leider nicht mehr wo das Rollo steht.

Ich habe das schon mal versucht zu Programieren, aber scheiter dann doch immer wieder.
Dardurch das ich einen Rückkanal bei den Homematic Geräten habe sollte die Zeitmessung und auswertung kein Problem sein für jemanden der programmieren kann. Für ein Freizeitprogrammierer mit zwei kleinen Kindern aber anscheinend unmöglich :-(

Ich wäre auch für hinweise und tipps wie es geht dankbar, weil ich daran gerade verzweifel.

*edit*

hätte da gerne ein Problem :-D

2016.01.11 13:25:28 1: PERL WARNING: "my" variable $value masks earlier declaration in same scope at ./FHEM/44_ROLLO.pm line 139.
2016.01.11 13:25:37 1: PERL WARNING: Use of uninitialized value $value in concatenation (.) or string at ./FHEM/44_ROLLO.pm line 141.
2016.01.11 13:26:55 1: PERL WARNING: Use of uninitialized value $value in concatenation (.) or string at ./FHEM/44_ROLLO.pm line 180.
2016.01.11 13:26:55 3: DEBUG: set EG_wz_RO_li_RUNTER on
2016.01.11 13:26:55 3: set EG_wz_RO_li_HOCH on
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

ManfredC

Zitat von: RettungsTim am 11 Januar 2016, 10:23:05


Ich habe da gerade 4 fach Homematic Schalter drin. Kanal 1 ist auf und Kanal 2 ist zu. Die Relais sind Schaltungstechnisch verriegelt damit es kein Unglück gibt.

Du könntest Dir auch mal das Modul STELLMOTOR anschauen. Damit kann man auch Rolläden fahren, und zwar solche die 2 getrennte Relais zum rauf/runterfahren nutzen, oder eins für "go" und eins für die Richtung, so wie das hier vorgestellte Modul. Mit STELLMOTOR brauchst Du Deine Hardware nicht umbauen => besserer WAF  ;)

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

-Manfred

HoTi

Zitat von: ManfredC am 11 Januar 2016, 13:52:39
Du könntest Dir auch mal das Modul STELLMOTOR anschauen. Damit kann man auch Rolläden fahren, und zwar solche die 2 getrennte Relais zum rauf/runterfahren nutzen, oder eins für "go" und eins für die Richtung, so wie das hier vorgestellte Modul. Mit STELLMOTOR brauchst Du Deine Hardware nicht umbauen => besserer WAF  ;)

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

-Manfred

Super danke, das tut das selbe wie das Modul hier. Leider habe ich das Manuelle Fahren am Taster damit nicht erschlagen.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

miche

Kann man das Modul auf einfache weise für die FS20rsu umprogrammieren?
Ich hab mal versucht das Modul zu verstehen, aber als FHEM Anfänger ist das zu viel für mich!


AndiL

Hallo Thomas,

das ist ja ein toller Lösungsansatz.
Damit könnte ich meine FS20 8-fach-Empfänger sinnvoll beschäftigen und meine Uralteigenbaurolladensteuerung endlich rauswerfen.

Für das manuelle Fahren der Rolläden habe ich z.Z. für jeden Rolladen noch einen (potentialfreien) Taster. Diese könnte ich ja auf einen FS20-8fach-Sender legen. Da könnte man in Fhem sogar lange und kurze Tastendrücke auswerten. Nur zum Stoppen fehlt mir dann leider irgendetwas.

Schade Weihnachten ist schon vorbei, aber vielleicht darf ich mir ja doch noch was wünschen.  ::) ::) ::)

Könntest Du bitte noch einen Setbefehl  "Toggel", wie es den bei den HM-Rolladenaktoren gibt, einbauen?

Dann könnte man(n) mit z.B. kurzen Tastendruck:
set <Rolloname> <toggle>
          Fährt das Rollo in die andere Richtung wie bei letzter Fahrt

und bei Bedarf mit langem Tastendruck
set <Rolloname> <stop>
          Stopt ein fahrendes Rollo
mit nur einem externen Taster auf/stop/zu ziemlich komfortabel bedienen.

Bin selber leider Perldummy daher bekomme ich das bestimmt nicht selber hin....

Grüße
Andi
FHEM 5.8 auf RasPi 3
***********************************
FB 7390, FS20, HM mit USB-CFG, 1-wire (DS1820 und DS2408), Buderus KM200 mit GB 152, Phillips HUE und Bastelkram....

HoTi

Ich bekomme es nicht hin. Das ist dann doch zu hoch für mich.

Das Modul funktioniert aber ich hätte es gerne das es Manuelles fahren mit bekommt. Die Werte dafür hätte es schon, weil die HM Kanäle eine rückmeldung haben, aber ich bekomme es noch nicht mal hin mir ein Log eintrag zu schreiben wenn der Kanal extern getriggert wurde :-(
Viele Grüße aus  Oberbayern
Tim (RettungsTim)