FHEM Forum

FHEM => Automatisierung => Thema gestartet von: gestein am 16 April 2020, 10:59:49

Titel: ASC: Readingsgroup für Beschattung etc.
Beitrag von: gestein am 16 April 2020, 10:59:49
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 (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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: ZeitlerW am 18 April 2020, 16:53:49
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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: Beta-User am 19 April 2020, 06:58:10
Ü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.
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: CoolTux am 19 April 2020, 07:11:32
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.
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: gestein am 19 April 2020, 07:31:34
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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: ZeitlerW am 19 April 2020, 10:53:58
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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: CoolTux am 19 April 2020, 11:11:27
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.
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: sweethome am 19 April 2020, 13:34:05
Hallo CoolTux,

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

Danke

Roland
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: Typ1er am 19 April 2020, 13:42:33
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?
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: CoolTux am 19 April 2020, 14:02:54
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.
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag 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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: CoolTux am 20 April 2020, 07:59:16
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
Titel: Antw:ASC: Readingsgroup für Beschattung etc.
Beitrag von: Darkwing Duck am 11 August 2020, 12:19:23
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?