Rolladenschalter Logik selber programmieren

Begonnen von rebs88, 02 November 2014, 17:58:03

Vorheriges Thema - Nächstes Thema

rebs88

Hallo,

ich habe einen Schaltereingang über OWSWITCH definiert, erster Codeblock.
dann habe ich einen Ausgang (Rolladen) definiert. zweiter Codeblock
Das reine Schalten des Ausgang habe ich bereits "herausgefunden" :-) dritter Codeblock

Nun hätte ich gern folgende Schalterfunktionen:
Taste Auf = Rollo Auf für 20sek -> also nur das on in ein on for timer 20 :-)
Taste Auf während Auf-Fahren = Rolladen Stop
Meine Idee wäre:
einen Merker (dummy???) setzen wenn der Rolladen fährt, dann eine Abfrage mit DOIF ob der Merker gesetzt ist
und eben dann stoppen. Aber wie setze ich denn Merker dann nach 20 Sekunden zurück?
Ich bin schier am verzweifeln, probier jetzt schon seit Mittwoch jeden Abend mehrere Stunden rum und komm einfach keinen Schritt weiter :-(
Hat jemand ne Idee oder kann mir weiterhelfen?


define Sw1 OWSWITCH DS2408 2EF70C000000 1
attr Sw1 IODev OWioUSB
attr Sw1 model DS2408
attr Sw1 room OWX
#
define Sw1A readingsProxy Sw1:latch.A
attr Sw1A alias SW1A_AUF
attr Sw1A devStateIcon on:shutter_closed off:shutter_open
attr Sw1A icon black_up
attr Sw1A room OWX
attr Sw1A valueFn {($VALUE == 1)?"on":"off"}
#attr Sw1A fp_GrundrissEG 50,100



define RolloG1 OWSWITCH DS2408 CFF60C000000 1
attr RolloG1 IODev OWioUSB
attr RolloG1 model DS2408
attr RolloG1 room OWX
#
define Rollo5_AUF readingsProxy RolloG1:latch.A
attr Rollo5_AUF alias Rollo5_AUF
attr Rollo5_AUF devStateIcon on:shutter_closed off:shutter_open
attr Rollo5_AUF icon shutter_open
attr Rollo5_AUF room OWX
attr Rollo5_AUF setFn {($CMD eq "on")?"output A off":"output A on"}
attr Rollo5_AUF setList on off
attr Rollo5_AUF valueFn {($VALUE == 0)?"off":"on"}
attr Rollo5_AUF webCmd on:off
#attr RolloG1KA fp_GrundrissEG 50,100



define Rollo1AUF_an notify Sw1.A:.ON.* set Rollo1_AUF on
attr Rollo1AUF_an room Definitionen

define Rollo1AUF_aus notify Sw1.A:.OFF set Rollo1_AUF off
attr Rollo1AUF_an room Definitionen
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

Hallo,

ich weiß nicht ob on-for-timer über OWSWITCH geht - vermutlich nicht.
Lösung: Ein at definieren das nach 20 Sekunden ein Stop sendet.
Ich weiß nicht ob Stop geht - ich poste mal mit off

define Rollo1AUF_an notify Sw1.A:.ON.* {
  if (Value("Rollo1_AUF_Stop") eq "") {
    fhem("set Rollo1_AUF on");
    fhem("define Rollo1_AUF_Stop at +00:00:20 set Rollo1_AUF off");
  }
  else {
    fhem("set Rollo1_AUF off");
    fhem("delete Rollo1_AUF_Stop");
  }
}


Sollte (hoffentlich) bei Event auf Sw1.A ON
- prüfen ob das at definiert ist
  - wenn nicht der Rollo ein on senden und das at definieren
- wenn das at bereits definiert ist direkt ein off senden und das at löschen

Da ich die Events nicht kenne ich nicht genau gesehen habe wie nun was korrekt definiert ist schieße ich hiermit mal frech aus der Hüfte.
Fehlermeldungen bitte hier posten und falsche Namen bitte selbst korrigieren.

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.

rebs88

Es klappt nicht mal das kopieren :-(
Wie muss ich denn die Zeile kopieren? Ich denk es liegt nur an den Trennzeichen, oder?
Unknown command if, try help. Unknown command fhem("set, try help. Unknown command fhem("define, try help. Unknown command }, try help. Unknown command else, try help. Unknown command fhem("set, try help. Unknown command fhem("delete, try help. Unknown command }, try help. Unknown command }, try help.
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

#3
Jep.
Da ich die fhem.cfg nicht direkt bearbeite kümmer ich mich um solche "Sonderzeichen" auch nicht.
Diese bitte selbst einfügen oder nur per FHEM-Frontend arbeiten - oder selbst schauen wo welche Zeichen hingehören.
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.

rebs88

So, es kommt nun keine Fehlermeldungmehr beim Speichern und beim rereadcfg.
Aber das fhem läd sich nun zu Tode.
Muss das
"Rollo1_AUF_Stop"
noch definiert werden?
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

Hallo,

Das wird im define at definiert wenn du dir den Code anschaust.
Wozu rereadcfg  ???
Du willst unbedingt die fhem.cfg direkt bearbeiten?
Ok, dann viel Spaß noch.

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.

rebs88

Wie gebe ich es sonst ein?
Sorry, kenn nur die Variante das ich die fhem.cfg bearbeite

- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

#7
Schonmal versucht in der Suche nach "fhem.cfg bearbeiten" und Benutzer *Puschel74 zu suchen?
Aber ich will dich hier zu nichts zwingen bzw. "bekehren" oder etwas "aufzwingen".
Bearbeite deine Konfig so wie es dir gefällt und wie du es gewohnt bist.
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.

rebs88

Nichts für ungut, schönen Abend noch und vielen Dank
für deine Hilfe, ich denke ich komm damit weiter
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

#9
Du kannst nichts dafür.
Ich musste mir nur den Vorwurf der "Bekehrung" und des "Aufzwingens meiner Philosophie" gefallen lassen.
Und das möchte ich natürlich nicht - jeder soll seine Konfig so bearbeiten wie er/sie es für richtig hält.
Ich halte eben "am falschen Weg" fest (in den Augen eines/einiger wenigen) - wobei ich da zum Glück nicht der einzige bin.
Daher muss ich leider etwas aufpassen wie weit ich jemandem "helfe" da sowas ganz schnell als "bekehren" mit recht krassen Vorwürfen ausartet.

Allerdings muss dann eben jeder selbst wissen wie meine "Hilfe" umzubauen ist damit es in der fhem.cfg klappt.
Ich übernehme sicher nicht beide Seiten da ich meine Konfig schon recht lange nichtmehr angefasst habe - und das ist auch gut so.
Über die Befehlszeile und die jeweiligen DEF ist es um einiges einfacher.
Und auch Attribute und Gruppen lassen sich ohne fhem.cfg bequem zuordnen.
Es gibt eigentlich absolut NICHTS was einen dazu bewegen könnte direkt die fhem.cfg zu bearbeiten - es sei den ma weiß was man macht und man will es machen.
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.

rebs88

Darf ich dich noch fragen wo du denn die Codezeilen, die du als Erstes gepostet hast rauskopiert hast?
Musst du das dann in die Befehlszeile eintippen wenn du sowas alegen möchtest?

Falscher Weg/ Richtiger Weg, ich denke das ist eine Glaubensfrage, ich bin da ganz offen
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert

Puschel74

Hallo,

mein Codebeispiel habe ich in Notepad++ erstellt.
Du brauchst eigentlich nur
define Rollo1AUF_an notify Sw1.A:.ON.* {
In die FHEM-Befehlszeile eingeben - sollte es Rollo1AUF_an bereits geben siehst du das sofort.
FHEM meldet sich dann gleich.
Per delete Rollo1AUF_an löschen und das obige nochmal in die Befehlszeile eintragen.
Dann links auf DEF klicken und den Rest einfügen das es so aussieht :
Sw1.A:.ON.* {
  if (Value("Rollo1_AUF_Stop") eq "") {
    fhem("set Rollo1_AUF on");
    fhem("define Rollo1_AUF_Stop at +00:00:20 set Rollo1_AUF off");
  }
  else {
    fhem("set Rollo1_AUF off");
    fhem("delete Rollo1_AUF_Stop");
  }
}

Unten auf modify klicken und wenn alles klappt dann hat FHEM den Code "geschluckt".
Testen und im Logfile schauen ob Fehlermeldungen auftauchen.

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.

rebs88

Super, danke. Das ist ja doch um einiges einfacher ;-)
Jetzt ist nur noch ein Fehler im Code, der Ausgang wird jetzt so im Sekundentakt ein und ausgeschaltet
- Raspberry 512MB
- COC mit RF,Uhr und EEprom (busware.de)
- Homematic HM-LC-BI1PBU-FM Rolladenschalter und Aktor
- 1-Wire - OW - DS2408 am LinkUSBi (als OWSwitch) definiert
- 1-Wire - OW - DS18B20 amLinkUSBi als OWTHERM definiert