Neues Modul: Rolladensteuerung

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

Vorheriges Thema - Nächstes Thema

tatu123

oooohhhhh   :o :( :o Verdammt ich wuste es. Es ist zu einfach.

Danke das wars. sorry

HoTi

Zitat von: mrfloppy am 06 August 2018, 20:42:39
Hat jemand das ROLLO Modul in Verbindung mit der Rollladensteuerung in Perl am laufen?

Da sich ja zB. die Pct - Position geändert was muss man da alles ändern ?


LG Thomas

Ähm ja hier....

Deswegen wurde Position in Pct geändert. Damit das Modul komplett kompatibel zur Steuerung ist.

Wenn du Cluni's Code verwenden willst kannst du das nach seiner Anleitung machen, nur die erwähnten Anpassungen am Rollo-Modul musst nicht nicht mehr machen.

Ausnahme:

ZitatBesonderheiten beim ROLLO-Modul


Ihr müsst für die Nutzung mit dem ROLLO-Modul ein paar Dinge konfigurieren:
   - Das Attribut type von normal auf HomeKit umstellen. Dadurch dreht sich das Verhalten um und wird einigermaßen kompatibel zu meinem Code.
     Bedenkt dabei bitte - für den fall, dass ihr irgendwo Befehle zu Fahren der Rollladenhinterlegt habt: Hat man vorher "set <name> position 30" ausgeführt, so muss man nun den Befehl "set <name> position 70" schicken, um die gleiche Wirkung zu erziehlen...
   - Außerdem das Attribut "blockMode" an den ROLLO-Geräten bitte auf blocked setzen - dies bewirkt, dass bei eingeschaltetem Aussperrschutz der Rollladen nicht gefahren werden kann.

Viel Spaß beim Testen bei mir läuft es jetzt einwandfrei.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

mrfloppy

@HoTi

Die restlichen Angaben die Cluni erwähnt hat auch rausnehmen oder nur die beiden von dir erwähnten ändern?

ZitatIhr müsst für die Nutzung mit dem ROLLO-Modul ein paar Dinge konfigurieren:
   - Am Aktor muss das Attribut Auto_Pos_Befehl auf position gesetzt werden
   - Im Attribut userReadings bitte folgendes eintragen: pct {100-ReadingsNum($name,'position',0)}
   - Im Attribut userattr bitte folgendes eintragen: subType
   - Im Attribut subType bitte folgendes eintragen: blindActuator
   - Das Attribut type von normal auf HomeKit umstellen. Dadurch dreht sich das Verhalten um und wird einigermaßen kompatibel zu meinem Code.
     Bedenkt dabei bitte - für den fall, dass ihr irgendwo Befehle zu Fahren der Rollladenhinterlegt habt: Hat man vorher "set <name> position 30" ausgeführt, so muss man nun den Befehl "set <name> position 70" schicken, um die gleiche Wirkung zu erziehlen...
   - Außerdem das Attribut "blockMode" an den ROLLO-Geräten bitte auf blocked setzen - dies bewirkt, dass bei eingeschaltetem Aussperrschutz der Rollladen nicht gefahren werden kann.

Danke LG
RaspiMatic, RFXtrx433 E USB, Div. Thermostate, CUL433, Fhemduino, Signalduino, Temp/luftfeuchesensoren,Fensterkontakte,Intertechno Schalter,....... HM-IP

87insane

Also ich komme nicht mehr mit!

Ich habe selber die Sonoff T1 (2 Gang) in Betrieb mit ESPEASY. Was hat sich für mich geändert? Die Positionsgenauigkeit ist bei mir eh, eher so semi.
Vermute es liegt am Delay (Taster drücken -> Bis es bei FHEM ankommt).

Frank_Huber

Bei den letzten Posts geht es eher um diese separate "Rolladensteuerung über Perl", NICHT um das Modul selbst.
lass dich dadurch nicht verwirren. ;)

HoTi

Zitat von: mrfloppy am 10 August 2018, 08:30:46
@HoTi

Die restlichen Angaben die Cluni erwähnt hat auch rausnehmen oder nur die beiden von dir erwähnten ändern?

Danke LG

Die Attribute gibt es im Modul. Einfach anpassen nach den gewünschten werden, wie es Cluni beschreibt.
Viele Grüße aus  Oberbayern
Tim (RettungsTim)

yep_DD

Hallo zusammen,

ich habe mich jetzt hier angemeldet um eine Frage zu stellen. Ich habemich versucht durch die 45 Seiten durchzuwühlen, aber keine Antwort bekommen. Besteht die Möglichkeit die Blenden zu stellen? Zum Beispiel habe ich bei mir das Modul wetter- und zeitabhängig eingebunden. Wenn das Modul aber jetzt zum Beispiel hoch fährt auf "halb", dann stehen die Lamellen offen. Wenn das Modul runterfährt auf "halb" stehen die Lamellen zu. Besteht da die Option, dass noch einzubinden als neuen Zustand: "Lamellen Offen", "Lamellen zu"?

Liebe Grüße

87insane

Das sieht für mich eher aus als hättest du die Zeiten deines Rolladen falsch eingetragen. Abgesehen davon das es mit richtigen Schaltern im Zusammenspiel mit dem Modul nicht so ganz läuft, sehe ich da kein Problem. Du könntest auch einfach anstatt 50% nur 40% beim runter fahren angeben. Ich verstehe dein Problem natürlich aber das Modul als solches erleichtert schon einiges :)

sparkiie

Leider funktioniert bei mir die DoIf Aktion aus dem Wiki nicht.
Bei mir (Intertechno) entspricht der Stop Befehl dem vorhergegangenen Befehl - also beim Hochfahren, wird zum stoppen noch einmal 'on' gesendet. Jemand eine Idee?

define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq "on" and [meinRolloModul] ne "drive-up") (set meinRolloModul extern open) DOELSEIF ([meinRollo_Kanal1] eq "off" and [meinRolloModul] eq "drive-up") (set meinRolloModul extern stop)

87insane

Was genau geht denn nicht? Ist doch egal was da genau gesendet werden muss. Bei mir geht das DOIF auch nicht aber ich habe es mit einer anderen Lösung hin bekommen. Ist genau das gleiche aber in PERL. Kannst du auf der vor Seite sehen...

sparkiie

Die Erkennung des Stop Befehls funktioniert leider nicht.
Bei mir wird zum stoppen beim Hochfahren (on) nochmal on gesendet.

87insane

Lager den Zustand doch in eine separate variable bzw ein User Reading aus. Danach kannst du im DOIF einfach diese abfragen.
Das tatsächliche on von deinem kanal1 wäre dann egal. Ich gehe mal davon aus, das in dem state bei dir immer On steht und das dein Problem ist. Dann würde das hier helfen.

sparkiie

Okay. So tief stecke ich noch nicht im Thema.
Hast du vielleicht ein Beispiel für so eine Lösung?

sparkiie

Ist es denn nicht auch möglich mit dem 1. on Befehl für das Hochfahren der Rollos einen Timer zu starten, der bspw. 30 Sekunden lang abwartet, ob ein weiterer on Befehl gesendet wird.

Das würde bedeuten, dass beim Hochfahren der Stop Befehl dann auch erkannt wird, oder?

87insane

#674
Hi und guten Morgen,

leider bin ich aktuell sehr eingebunden und meine Antworten dauern etwas.

1. Zum Thema Timer: Ein Timer wird so oder so gesetzt (so wie ich das Modul verstehe). Du muss aber auch die Zeiten deiner Rollo-Fahrten eintragen bei:
secondsDown
secondsUp
und ich empfehle immer auch switchTime wegen der Motoren. Diese setze ich immer auf 2.
Der Timer ist aber natürlich wegen Delays vom Schalter zu Fhem nicht 100% genau.

2. Thema Beispiel oder auch Lösung:
Ich persönlich würde es über ein UserReading machen oder einen anderen Indikator. Die Frage ist, steuerst du nur über FHEM oder FHEM und Schalter oder nur Schalter?
So kann man ein UserReading zb. setzen:
Perl:
fhem("setreading DeinGerät running on")

Wenn du nur über die Schalter hoch und runter fährst, dann kannst du ja einfach immer abwechselt ein on und ein off senden und dementsprechend in das Reading schreiben und dann auch wieder auslesen. Das DOIF aus dem WIKI geht hin und guckt:
define rollo_manuell_auf DOIF ([meinRollo_Kanal1] eq "on" and [meinRolloModul] ne "drive-up") (set meinRolloModul extern open) DOELSEIF ([meinRollo_Kanal1] eq "off" and [meinRolloModul] eq "drive-up") (set meinRolloModul extern stop)

MacheWenn (DOIF), RolloKanal1 ist = on UND das RolloModul ungleich drive-up ist setze RolloModul = extern open. Damit weiß das Modul, dass nicht über FHEM sondern über einen externen Taster geschaltet wird. Das gleiche dann auch umgekehrt. Wenn du nun aber immer ein "on" sendest für Start und eins für Stop wird natürlich RolloKanal1 niemals off sein. In diesem Fall muss du dir also überlegen, welchen Indikator du dann noch nehmen kannst. Mir fällt spontan eben nur ein dies dann in einem anderen Reading zu speichern oder aber das ReadingAge aus zu lesen, wann es gesetzt wurde. Sowas wie:
Wenn RolloModul = drive-up UND ist (ReadingsAge("RolloKanal1", "running", 0) > 1) DANN ...... STOP und WENN nicht dann fahr eben los.

Mein Beispiel hier zielt darauf ab, zu lesen, fährt das Rollo hoch und wann das letzte "on" gesendet wurde. Es gibt einige Möglichkeiten. Mir fällt aktuell auch nicht ein ob das ggf. andere Fehler hervorruft, in meinen Augen sollte das so gehen und du sparst dir das zusätzliche Reading. Bin gespannt, ob sich hier noch wer anders zu Wort meldet.