ASC: Readingsgroup für Beschattung etc.

Begonnen von gestein, 16 April 2020, 10:59:49

Vorheriges Thema - Nächstes Thema

gestein

Hallo,

im Wiki zum ASC sind ja ein paar Beispiele für readingsgroups aufgeführt, die ganz nützliche Übersichten bieten:
https://wiki.fhem.de/wiki/AutoShuttersControl#readingsGroup_f.C3.BCr_die_Beschattung

Leider funktionieren die nicht mehr in der neuen Version, da es z.B. folgendes nicht mehr gibt:
ASC_Shading_StateChange_Sunny => 'ASC_Shading_StateChange_Sunny:knob,min:100,max:40000,angleArc:85,rotation:anticlockwise,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,angleOffset:270',
ASC_Shading_StateChange_Cloudy => 'ASC_Shading_StateChange_Cloudy:knob,min:100,max:40000,angleArc:85,width:50,height:50,fgColor:#FF9900,bgColor:#CCCCCC,step:20,lineCap:round,',


Die beiden Attribute wurden ja in eines zusammengefasst: ASC_Shading_StateChange_SunnyCloudy 25000:12000

Wie müsste man die Abfragen umändern, damit das wieder mit den Readingsgroups klappt?
Ich schaffe es leider nicht.

Danke im Voraus
liebe Grüße
Gerhard

ZeitlerW

Hallo Gerhard,

ich kämpfe geraden am gleiche Thema. Wenn Du eine Lösung findest würde ich mich freuen, wenn du diese posten würdest!

lG
Wolfgang

Beta-User

Über eine ReadingGroup dürfte es nicht so einfach sein, diese Werte einzeln zu extrahieren.

Um über die Kommandozeile eine Übersicht zu erhalten, kann man aber (ähnliches Beispiel) folgendes eingeben:
list .* ASC_Shading_InOutAzimuth

Um dann einzelne oder mehrere Werte (auch mehrere miteinander) zu ändern, kann man erst mal nachsehen, ob man die richtigen erwischt, z.B. in der Form:
list ASC_Shading_InOutAzimuth=110.* ASC_Shading_InOutAzimuth
Paßt das, kann man letztlich das eigentliche Kommando abgeben:
attr ASC_Shading_InOutAzimuth=110.* ASC_Shading_InOutAzimuth 111:281

Das klappt natürlich nur, wenn das betreffende Attribut schon vergeben wurde. Aber man kann z.B. die devspec auch auf
list ASC=(1|2)
ändern oder direkt nur einen Rollladen mit dem Namen ansprechen.
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

Wenn es rein nur für die Übersicht ist ohne zu schalten.
Geht in eine ReadingGroup auch Perlcode? Wenn ja kann man doch die ASC API abfragen da bekommt man einzelne Werte.
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

gestein

Hallo,

Eigentlich geht es um das Aktualisieren der Beispiele auf der Wiki-Seite des ASC.
Dort sind ein paar gute Beispiele für solche readingsGroups aufgeführt, die die Einstellungen recht übersichtlich darstellen.
Damit konnte man auch die Werte ändern.

Aber das war für Version 0.6.
In der aktuellen Version wurden ja einige Parameter zusammengefasst.
Damit funktionieren die Beispiele natürlich nicht mehr.

Für mich sind die readingsGroups schon sehr komplex und ich müsste mich da mal wirklich einlesen.
Allerdings fehlt mir die Zeit dazu, weil ich an etlichen Fronten im fhem mit Problemen kämpfe 😉

Das scheint also nicht (mehr) so einfach zu gehen.
Mal sehen, vielleicht finde ich in einer ruhigen Minute mal eine Lösung.

Danke!
Lg, Gerhard

ZeitlerW

Hallo zusammen,

hier ein erster Schnipsel zum Auslesen:

defmod RG_test readingsGroup <Gerät>,<InAzi>,<OutAzi>,<MinEle>,<MaxEle>,<Sunny>,<Cloudy>\
(Rollo|Jalousie)_.*..:<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_InOutAzimuth","")))[0])}>,<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_InOutAzimuth","")))[1])}>,<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_MinMax_Elevation","")))[0])}>,<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_MinMax_Elevation","")))[1])}>,<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_StateChange_SunnyCloudy","")))[0])}>,<{((split/:/,(AttrVal($DEVICE,"ASC_Shading_StateChange_SunnyCloudy","")))[1])}>


Jetzt gehts um die commands.

Wolfgang

CoolTux

defmod RG_test readingsGroup <Gerät>,<InAzi>,<OutAzi>,<MinEle>,<MaxEle>,<Sunny>,<Cloudy>\
(Rollo|Jalousie)_.*..:<{ ascAPIget('ShadingAzimuthLeft',$DEVICE) }>,<{ ascAPIget('ShadingAzimuthRight',$DEVICE) }>,<{ ascAPIget('ShadingMinElevation',$DEVICE) }>,<{ ascAPIget('ShadingMinElevation',$DEVICE) }>,<{ ascAPIget('ShadingStateChangeSunny',$DEVICE) }>,<{ ascAPIget('ShadingStateChangeCloudy',$DEVICE) }>


Mag das bitte einmal jemand testen ob es funktioniert.
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

sweethome

Hallo CoolTux,

nur ohne den Leerzeichen im Perl-Code funktioniert dann alles einwandfrei.

Danke

Roland

Typ1er

#8
so klappt es 👍

defmod RG_test readingsGroup <Gerät>,<InAzi>,<OutAzi>,<MinEle>,<MaxEle>,<Sunny>,<Cloudy> (Rollladen|Jalousie)_.*..:<{ascAPIget('ShadingAzimuthLeft',$DEVICE)}>,<{ascAPIget('ShadingAzimuthRight',$DEVICE)}>,<{ascAPIget('ShadingMinElevation',$DEVICE)}>,<{ascAPIget('ShadingMaxElevation',$DEVICE)}>,<{ascAPIget('ShadingStateChangeSunny',$DEVICE)}>,<{ascAPIget('ShadingStateChangeCloudy',$DEVICE)}>



bei Max Elevation war noch ein Tippfehler


kann man die Werte so auch setzen per command?

CoolTux

Na seht ihr, das sage ich doch die ganze Zeit das es getter jetzt gibt. Und in ein paar Wochen mache ich die setter zum setzen dafür. Muss nur schauen wie man das am besten hin bekommt.
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

ZeitlerW

Hallo CoolTux,

so geht es natürlich viel schöner. Könntest Du bei Gelegenheit die Doku für die Getter um diese Variablen ergänzen :).

lG
Wolfgang

CoolTux

Zitat von: ZeitlerW am 20 April 2020, 07:53:36
Hallo CoolTux,

so geht es natürlich viel schöner. Könntest Du bei Gelegenheit die Doku für die Getter um diese Variablen ergänzen :).

lG
Wolfgang

Mache ich. Dauert aber ein klein wenig.


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

Darkwing Duck

Hat sich in der Zwischenzeit jemand mal weiter daran versucht, das Beispiel aus dem Wiki für die Beschattungssteuerung mit den settern aus der API nachzubauen? Ich stehe etwas auf dem Schlauch, wie man aus dem "knob"-Widget heraus (bzw generell aus dem commands-Attribut der ReadingsGroup) die set-Methode aufrufen soll.

Abgesehen davon, sehe ich das richtig, dass die API bisher für die beiden Azimuth- sowie die beiden Elevation-Werte lediglich get-Methoden zur Verfügung stellt?