[73_AutoShuttersControl.pm] Workaround Jalousien:Lamellen steuern -Version 0.8.x

Begonnen von daelch, 14 April 2020, 23:33:18

Vorheriges Thema - Nächstes Thema

Wscheff

Da gehts um ein anderes derivat von homematic (nicht IP)

Leider lassen sich nach meiner Erkenntnis für die IP Komponenten die Lamellen nicht einzeln setzten, sonder n nur zusammen mit der Behanghöhe.

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

daelch

Zitat von: Wscheff am 15 April 2020, 16:55:50
Da gehts um ein anderes derivat von homematic (nicht IP)

Leider lassen sich nach meiner Erkenntnis für die IP Komponenten die Lamellen nicht einzeln setzten, sonder n nur zusammen mit der Behanghöhe.

Von welchem IP Aktor sprichst Du? Dem HMIP-BBL?

Laut Doku: https://www.eq-3.de/downloads/download/homematic/hm_web_ui_doku/HmIP_Device_Documentation.pdf

...hat er zwei Datenpunkte Level und Level_2.
zap hatte an anderer Stelle schon mal gesagt, dass diese getrennte Befehle für Behang und Lamellen darstellen. Zumindest auf diesen IP Aktor müsste es zutreffen.

Es gibt noch einen IP Jalousieaktor, den HmIP-FBL.
Laut dieser Quelle hat er auch zwei Daten Punkt, Level und Level_2: https://homematic-forum.de/forum/viewtopic.php?t=38094
Es müssen beiden Befehle abgesetzt werden, dann fährt die Jalousie in Position und Lamellenstellung.

IP Wired habe ich nicht geprüft... aber wahrscheinlich gilt dort selbiges.

Beta-User

Danke für die Klarstellung!

Ich halte es auch für wahrscheinlich, dass zwei getrennte Befehle _möglich_ sind, denn das ist die einfachste Variante, um nur das eine oder nur das andere zu ändern. Alles andere ist mehr Programmieraufwand, und gute Programmierer sind faul, oder ::) ? (Bitte keine Diskussion über die Qualitäten des Hauptentwicklers der CCU-Firmware, bitte... ;D , wir sind so schon recht OT :P .).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wscheff

Zitat von: daelch am 15 April 2020, 17:29:05
Von welchem IP Aktor sprichst Du? Dem HMIP-BBL?

Laut Doku: https://www.eq-3.de/downloads/download/homematic/hm_web_ui_doku/HmIP_Device_Documentation.pdf

...hat er zwei Datenpunkte Level und Level_2.
zap hatte an anderer Stelle schon mal gesagt, dass diese getrennte Befehle für Behang und Lamellen darstellen. Zumindest auf diesen IP Aktor müsste es zutreffen.

Es gibt noch einen IP Jalousieaktor, den HmIP-FBL.
Laut dieser Quelle hat er auch zwei Daten Punkt, Level und Level_2: https://homematic-forum.de/forum/viewtopic.php?t=38094
Es müssen beiden Befehle abgesetzt werden, dann fährt die Jalousie in Position und Lamellenstellung.

IP Wired habe ich nicht geprüft... aber wahrscheinlich gilt dort selbiges.

Ja genau. Ich habe den HmIP-BBL.  Danke fürs recherchieren.

Aus der Doku und dem link habe ich mir die Verstellung mittels eventMap gebastelt. Dasgeht sehr gut
ich habe rausgefunden dass höhe mit Level gefahren werden kann, für die Lamellenverstellung müssen aber zwingend BEIDE Level und Level 2 eingegeben werden.

Ich mach das im Prinzip so wie du daelch.
nach einem Vorschlag von alkazaa



{
usr=>{'^up' => 'datapoint 4.LEVEL 100',
       '^down' => 'datapoint 4.LEVEL 0',
   '^mid' => 'datapoint 4.LEVEL 50',
   '^open' => '".sprintf("datapoint 4.LEVEL_2 1.0 4.LEVEL %0.1f", ReadingsVal("$NAME","3.LEVEL",1))."',
   '^half' => '".sprintf("datapoint 4.LEVEL_2 0.5 4.LEVEL %0.1f", ReadingsVal("$NAME","3.LEVEL",1))."',
   '^close' => '".sprintf("datapoint 4.LEVEL_2 0.0 4.LEVEL %0.1f", ReadingsVal("$NAME","3.LEVEL",1))."',
       '(hoehe|h)\s(\d{1,3})'  => '".sprintf("datapoint 4.LEVEL %0.2f", $2/100)."',
   '(winkel|w)\s(\d{1,3})' => '".sprintf("datapoint 4.LEVEL_2 %0.2f 4.LEVEL %0.2f", $2/100, ReadingsVal("$NAME","3.LEVEL",1))."'},
fw =>{'^up' => 'up',
       '^down' => 'down',
   '^mid' => 'mid',
   '^open' => 'open',
   '^half' => 'half',
   '^close' => 'close',
   '(hoehe|h)\s(\d{1,3})'  => 'pct',
   '(winkel|w)\s(\d{1,3})' => 'w'}
}


CoolTux

Ich habe nun eine erste Version für die Unterstützung von "festen Zuordnungen"

Voraussetzung ist das das Rollo mit set ROLLONAME "feste Zurodnung" fährt.

Beispiel:

set ROLLOKuecheRechts Beschattung

Was musst Du machen?

Zusätzlich in den Positionsattributen noch ein :"feste Zuordnung" vergeben.

Beispiel:
attr ROLLOKuecheRechts ASC_Shading_Pos 15:Beschattung


ACHTUNG!!! Das geht aktuell ausschließlich bei Shading_Pos und Ventilate_Pos

Ist ja nun mal vorerst zum testen.

Und hier nun die Version
https://git-tuxnet.ddns.net/FHEM/mod-AutoShuttersControl

(Sollte das aufrufen der Seite nicht funktionieren befindest Du Dich nicht in Deutschland oder dessen Nachbarländer)


Happy testing
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Fast vergessen. Testen kann man am besten mit Ventilator.
Warten bis dunkel ist oder ein Raum mit Roommate nehmen und den Roommate schlafen legen und dann Fenster öffnen wenn ein Sensor eingerichtet ist.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Na ja, das mit der "festen Zuordnung" war eigentlich anders gemeint gewesen  :o .

Da ich keinen Dummy nehmen will und mein ZWave-Aktor keinen setter Beschattung kennt, kann ich wohl nicht mittesten...

(Ansonsten hätte ich noch eine etwas andere Idee, wie man das ganze ggf. irgendwie in den Griff bekommen könnte).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Zitat von: Beta-User am 15 April 2020, 19:46:07
Na ja, das mit der "festen Zuordnung" war eigentlich anders gemeint gewesen  :o .

Da ich keinen Dummy nehmen will und mein ZWave-Aktor keinen setter Beschattung kennt, kann ich wohl nicht mittesten...

(Ansonsten hätte ich noch eine etwas andere Idee, wie man das ganze ggf. irgendwie in den Griff bekommen könnte).

Das ist erstmal nur ein Anfang. Ich bilde mir ein das ich da Recht viel Platz für andere Befehle gelassen habe.

Wie wäre denn genau Dein Befehl. Kannst Du in einem einzigen Befehl bei Dir die komplette Stellung übergeben?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Nein. Einer reicht nicht, brauche zwei FHEM-Befehle.

Aber evtl. wäre es eine Idee, mit zwei Attributen zu arbeiten: Einer für die "feste" Zuordnung von pct-Werten zu Slat-pct-Werten (oder "Ereignis" - Slat-Werten), einer für den Befehl (analog dem, was z.B. WeekdayTimer kennt). Da könnte man dann "set $NAME dim $pct; set <slatdevice> dim $slatpct" reinschreiben...? (Oder einen Perl-Befehl). Damit könnte der User "seinen" Befehl beliebig zusammenbauen, auch sowas wie hex-Umwandlungen wären denkbar.

Die "eigentlichen" ASC-Attribute so zu "mißbrauchen", finde ich nicht so toll, dann sind die Werte wieder sehr viel schwerer einzustellen. Mit einem einzigen slat-Werte-Attribut wäre wenigstens alle Ungemach an einer Stelle vereint...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Ich denke es geht ja um Beschatten und Lüften und so, da finde ich die Slat Werte schon korrekt als zweiten Wert in den jeweiligen Positionsattributen aufgehoben.

Bei Dir wäre also

set $NAME dim $pct; set <slatdevice> dim $slatpct

??
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Zitat von: CoolTux am 15 April 2020, 20:36:13
Bei Dir wäre also

set $NAME dim $pct; set <slatdevice> dim $slatpct
Ja. Das würde hier passen.
Für einen CUL_HM kann man das afaik kombinieren, müßte aber dann trotzdem beide Level-Angaben irgendwie in den Befehl einbauen, der dann aber nur an ein Device geht.

Zitat von: CoolTux am 15 April 2020, 20:36:13
Ich denke es geht ja um Beschatten und Lüften und so, da finde ich die Slat Werte schon korrekt als zweiten Wert in den jeweiligen Positionsattributen aufgehoben.
Jein. Da der Slatlevel nach jeder Fahrt bei diesem Typ (und afaik auch bei den HM) wieder hergestellt wird, ist das auch relevant, wenn man z.B. von lüften auf zu fährt... Kurz: Es spielt bei JEDER FAHRT eine Rolle. Wird es nicht über ASC gelöst, brauche ich für den Rest einen Würgaround. Wäre schön, wenn wir das vermeiden könnten.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Wir können das weiter ausbauen.

Jetzt interessiert mich aber ob diese einfache Lösung erstmal geht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

daelch

CoolTux, vielen Dank für Deine Mühen.

Eine blöde Anfängerfrage: wie bekomme ich den Code von https://git-tuxnet.ddns.net/FHEM/mod-AutoShuttersControl in mein FHEM?

Viele Grüße
Christoph

CoolTux

Hinter dem HTTPS bla bla bla auf der rechten Seite gibt es ein Symbol mit File nach unten. Da rauf drücken.
Die alte 73_AutoShuttersControl.pm sicherst Du weg.
cp -v /opt/fhem/FHEM/73_AutoShuttersControl.pm /opt/fhem/FHEM/73_AutoShuttersControl.pm.old
Dann die 73_AutoShuttersControl.pm Datei nach /opt/fhem/FHEM/ kopieren.
Die Rechte anpassen
chown fhem: /opt/fhem/FHEM/73_AutoShuttersControl.pm

Im Anschluss einen kompletten Neustart von FHEM machen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net