Unterschiedliche Werte bei Rolläden

Begonnen von visionsurfer, 25 Oktober 2016, 21:56:35

Vorheriges Thema - Nächstes Thema

visionsurfer

Hallo,

ich hab ein komische Erscheinung. Ich habe ein paar Fenster mit Raffstores und ein paar Fenster mit Rolläden.

Ich habe alles 100% gleich eingerichtet. Immer nach dem gleichen Schema. Nur das halt bei den Raffstores zusätzlich eine Gruppenadresse für die Lamellenposition in % dazu gekommen ist.

Jetzt hab ich das Problem, das mir fast jedes Fenster einen unterschiedlichen Status anzeigt.

So sieht es bei rollo_lounge aus:


Internals:
   DEF        2/3/4:dpt5.001 2/1/4:dpt1.008 2/2/4:dpt1.008 2/3/104:dpt5.001
   DEVNAME    rollo_lounge
   IODev      KNX
   KNX_MSGCNT 9
   KNX_RAWMSG C1107w2368ff
   KNX_TIME   2016-10-25 20:53:20
   LASTInputDev KNX
   MSGCNT     9
   NAME       rollo_lounge
   NR         340
   NTFY_ORDER 50-rollo_lounge
   STATE      100 %
   TYPE       KNX
   Gaddr:
     1          2/3/4
     2          2/1/4
     3          2/2/4
     4          2/3/104
   Gcode:
     1          2304
     2          2104
     3          2204
     4          2368
   Model:
     1          dpt5.001
     2          dpt1.008
     3          dpt1.008
     4          dpt5.001
   Readings:
     2016-10-25 19:07:05   getG2           up
     2016-10-25 19:07:05   getG3           up
     2016-10-25 20:53:20   getG4           100 %
     2016-10-25 20:53:20   last-sender     1/1/7
     2016-10-25 20:01:26   setG1           0 %
     2016-10-25 20:52:59   setG2           down
     2016-10-25 19:46:41   setG3           down
     2016-10-25 19:47:56   setG4           50 %
     2016-10-25 20:53:20   state           100 %
     2016-10-25 19:36:35   value           0
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 30% g1:Pos1/value 50% g1:Pos2
   room       Lounge
   webCmd     Ab:Stop:Auf:Pos1:Pos2


Bei rollo_buero sieht es so aus:


Internals:
   DEF        2/3/2:dpt5.001 2/1/2:dpt1.008 2/2/2:dpt1.008 2/3/102:dpt5.001
   DEVNAME    rollo_buero
   IODev      KNX
   KNX_MSGCNT 5
   KNX_RAWMSG C1108w236600
   KNX_TIME   2016-10-25 21:46:51
   LASTInputDev KNX
   MSGCNT     5
   NAME       rollo_buero
   NR         277
   NTFY_ORDER 50-rollo_buero
   STATE      0 %
   TYPE       KNX
   Gaddr:
     1          2/3/2
     2          2/1/2
     3          2/2/2
     4          2/3/102
   Gcode:
     1          2302
     2          2102
     3          2202
     4          2366
   Model:
     1          dpt5.001
     2          dpt1.008
     3          dpt1.008
     4          dpt5.001
   Readings:
     2016-10-25 21:46:51   getG4           0 %
     2016-10-25 21:46:51   last-sender     1/1/8
     2016-10-25 20:20:46   setG1           10 %
     2016-10-25 21:46:29   setG2           up
     2016-10-25 20:18:26   setG3           down
     2016-10-25 21:46:51   state           0 %
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 30% g1:Pos1/value 50% g1:Pos2
   room       Buero
   webCmd     Ab:Stop:Auf:Pos1:Pos2


Bei einem Raffstore in dem Fall rollo_tv sieht es so aus:


Internals:
   DEF        2/3/8:dpt5.001 2/1/8:dpt1.008 2/2/8:dpt1.008 2/4/8:dpt5.001 2/3/108:dpt5.001
   DEVNAME    rollo_tv
   IODev      KNX
   KNX_MSGCNT 6
   KNX_RAWMSG C1107w236cff
   KNX_TIME   2016-10-25 20:49:54
   LASTInputDev KNX
   MSGCNT     6
   NAME       rollo_tv
   NR         341
   NTFY_ORDER 50-rollo_tv
   STATE      down
   TYPE       KNX
   Gaddr:
     1          2/3/8
     2          2/1/8
     3          2/2/8
     4          2/4/8
     5          2/3/108
   Gcode:
     1          2308
     2          2108
     3          2208
     4          2408
     5          236c
   Model:
     1          dpt5.001
     2          dpt1.008
     3          dpt1.008
     4          dpt5.001
     5          dpt5.001
   Readings:
     2016-10-25 19:07:05   getG3           up
     2016-10-25 20:49:54   getG5           100 %
     2016-10-25 20:49:54   last-sender     1/1/7
     2016-10-25 20:50:59   setG2           down
     2016-10-25 21:38:10   setG3           down
     2016-10-25 20:50:23   setG4           25 %
     2016-10-25 21:38:10   state           down
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g2:Ab/on g3:Stop/value 0% g2:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       TV
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Ich habe überall eigentlich die Gruppenadresse mit welche den Status ausspuckt mit eingearbeitet. Meistens die Gruppenadresse die hinten dreistellig ist.

Warum zeigt es mir manchmal bei State nur "down" an und nicht wie z.B. bei den anderen Fenstern, den State in % Wert ?

Kriege ich es irgendwie hin, das immer alles gleich ist ? Ich würde am liebsten halt dort immer Werte stehen haben. 0 oder 100 oder was auch immer.

Weil ich habe für alle meine Raffstores eine Gruppe gebildet. Mit einem DOIF möchte ich die bei bestimmter Helligkeit am morgen automatisch hochfahren, bzw. die Lamellen kippen. Wenn in der Gruppe bei State sauber z.B. 0% drin steht, klappt das alles. Aber wenn da z.B. "down" drin steht, funktioniert mein DOIF nicht. Hin und wieder steht sogar in der Gruppe "undefined" drin.

Kann man das irgendwie verbessern ?

Grüße,
Visionsurfer



visionsurfer

Moin,

also wenn ich es richtig verstanden habe, könnte ich mein Problem vielleicht mit stateRegex lösen.

Ich hab mir das in der Wiki angeschaut. Nur leider verstehe ich es nicht. Wie kann ich damit aus z.B. "down" dann ein 100% machen oder aus auf oder ab ein 0% ?

Wobei es mich wundert, warum das bei mir so oder so nicht automatisch da steht. Weil ich hab ja eine Gruppenadresse die den Status zurück gibt. Die senden doch immer nach dem Fahrbefehl dann einen Wert in %. Müsste doch eigentlich sauber laufen.

Grüße,
Visionsurfer

EIB-Fan

Hallo visionsurfer,

ich würde zuerst einmal deinen KNX-Gruppenadressen in Fhem noch einen zusätlichen Namen geben.

siehe KNX-Referenz:


define lamp1 KNX 0/10/12:dpt1:meinName


Das hat den Vorteil, dass du nicht mit den Readings getG1, getG2 usw. arbeitest sondern mit dem von dir zugewiesenen Namen z. B. position-get.

Bei meinen Rolladen sieht das zum Beispiel so aus.


define R002 KNX 1/1/2:dpt5.001:setzen 1/4/2:dpt5.001:position 1/5/2:dpt1:stoerung 1/6/2:dpt1:hindernis 1/7/2:dpt1:blockade


Wenn du nur die Position als STATE sehen willst, ist dies z.B. ausreichend.


attr R002 stateCmd {sprintf("%s ", ReadingsVal($name,"position-get",""))}


Natürlich musst du die Gruppenadressen und Readings an deine Programmierung anpassen.

Ich möchte dir noch einen Tipp mit auf den Weg geben.

Du hast in den vergangenen Tagen sehr viele Forumsbeiträge geschrieben. Teilweise konntest du dir diese selbst nach ein wenig probieren selbst beantworten. Ich habe selbst vor ca. 2 Jahren mit Fhem begonnen und meine ersten Gehversuche waren nicht perfekt. Ich habe anfangs nur die Funktion sichergestellt (must-have) und heute programmiere ich Erweiterungen (nice-to-have). Das hatte den Vorteil, dass ich nach kurzer Zeit ein funktionierendes System hatte und mich in der Folge "in Ruhe" um die zusätzlichen Features kümmern können. Teilweise erfordern vermeintliche "Kleinigkeiten" viel Zeitaufwand. Ich denke, dass du von Anfang an zu viel Perfektion erwartest ohne dazu die notwendige Erfahrung in der Programmierung von Fhem und Perl zu haben. Das muss wachsen.  8)

Weiterhin viel Erfolg!

Gruß Jens

visionsurfer

Hallo Jens,

vielen Dank für die Infos. Das werde ich mir auf jeden Fall anschauen.
Ich gebe dir grundsätzlich recht. Aber kennst du das Gefühl, wenn man für etwas brennt, bzw. heiß drauf ist.

Ich hab vor 2 Jahren gebaut und in mein Eigenheim alles mit KNX und Co. ausstatten lassen. In der Zwischenzeit ist der Elektriker pleite und bis auf ein bisschen Rolladen auf Knopfdruck hoch und runter und Licht an mit Bewegungsmelder, ging bisher bei uns gar nichts. Visualisierung durch einen EibPort Server und das war es.
Durch FHEM hab ich einen Weg gefunden, wie ich es selbst machen kann und es krasse Möglichkeiten gibt. Es gibt sehr viel Dokumentation, Videos bei Youtube usw.
Klar du hast recht, ich will wahrscheinlich gleich alles auf einmal. Leider hab ich gerade auch kein Urlaub, das ich mich mal 2 Wochen hinsetzen kann.
Viele Sachen sind sehr gut beschrieben und total sehr einfach mit vielen Erklärungen und Beispielen. Einige Sachen halt nicht und da fehlt mir dann der Zusammenhang oder Verständnis. Und dann denke ich halt "learning by doing" und nerve halt das Forum :)

Also das mit dem Name werde ich umsetzen.

Mir fehlt leider der Zusammenhang, ob z.B. die Gruppenadressen in einer bestimmten Reihenfolge stehen müssen. Weil mein Bus hat insbesondere für jeden Rolladen immer pro Rolladen eine Gruppenadresse für den Status z.B. 2/3/104

Die habe ich auch immer mit definiert. Leider muss ich zugeben hab ich noch nicht verstanden, ob es egal ist, ob die als erstes steht, oder halt auf Position 4.

Und Grundsätzlich würde ich wahrscheinlich am liebsten erreichen das ich als STATE immer halt die % sehen. Also 0 oder 100 oder was auch immer. Meiner Meinung kann man dann später damit am besten arbeiten. Ich brauch kein UP oder DOWN, oder AUF oder AB. Wenn ich die Rolländen beim hochfahren stoppe, steht dann auch der % Wert sind. Also z.B. 20%.
Ich hab noch nicht kapiert, warum nicht immer und jedesmal einfach der richtige % Wert drin steht, sondern halt manchmal down oder up.

Ich werde mal versuchen das mit deinem stateCmd attr.

Grüße,
Visionsurfer


visionsurfer

Hallo Jens,

ich habe eventuell mein Problem erkannt. Weiß nur nicht wie und ob man es lösen kann.

Es gibt quasi bei mir 2 Positionen. Weil ich hab Rollos mit Raffstores. Zum einen kann ich das ganze Rollo hoch und runter fahren. Zum anderen kann ich aber auch die Lamellen kippen. Wenn bei mir z.B. STATE 50 % steht, dann dann es sein das der Rolladen hochgefahren ist und in der Mitte steht oder halt die Lamellen 50% gekippt sind.

Daher kommt dann wahrscheinlich auch meine Gruppe die ich gebildet habe, durcheinander. Vermute ich zumindest.

Grüße,
Visionsurfer

EIB-Fan

Hallo visionsurfer,

deine verschiedenen Werte kommen, sofern du kein Attribut event-on-change/update-reading gesetzt hast, immer vom zuletzt aktualisiertem Reading. Das kann mal die Position der Rolllade ( z.B. 20%) oder auch die Endposition (up/down) sein. Bei den Raffstores gibt es den von dir beschriebenen Effekt. Mit setzen des Attributes event-on-change-reading kannst du auch die Readings eingrenzen, welche aktualisier werden. Natürlich muss das alles zusammen spielen. Dazu ist es wichtig zu wissen, welches Ziel man hat. Hier ist auch der WAF wichtig (WAF = woman acceptance factor). Wenn du hier im Forum liest, erkennt man, dass dieser zumeist der Wichtigste ist ...  8)

Du könntest STATE um den zweiten Wert erweitern. Readings musst du natürlich wieder anpassen.


attr R002 stateCmd {sprintf("%s %s", ReadingsVal($name,"position-get","")), ReadingsVal($name,"neigung-get",""))}


Du kannst dir aber auch eine readingsGroup anlegen. Das ist allerdings wieder etwas umfangreicher. Das kannst du dann im nächsten Schritt angehen. ;)

Gruß Jens

visionsurfer

Hi Jens,

Danke für deinen Support. Ich hab das Gefühl wir kommen der Sache näher. Schau mal hier:


Internals:
   DEF        2/3/107:dpt5.001 2/4/107:dpt5.001 2/3/7:dpt5.001 2/4/7:dpt5.001 2/1/7:dpt1.008 2/2/7:dpt1.008
   DEVNAME    rollo_essen_links
   IODev      KNX
   KNX_MSGCNT 14
   KNX_RAWMSG C1107w246bff
   KNX_TIME   2016-10-26 19:31:28
   LASTInputDev KNX
   MSGCNT     14
   NAME       rollo_essen_links
   NR         313
   NTFY_ORDER 50-rollo_essen_links
   STATE      25 %
   TYPE       KNX
   Gaddr:
     1          2/3/107
     2          2/4/107
     3          2/3/7
     4          2/4/7
     5          2/1/7
     6          2/2/7
   Gcode:
     1          236b
     2          246b
     3          2307
     4          2407
     5          2107
     6          2207
   Model:
     1          dpt5.001
     2          dpt5.001
     3          dpt5.001
     4          dpt5.001
     5          dpt1.008
     6          dpt1.008
   Readings:
     2016-10-26 19:29:12   getG1           100 %
     2016-10-26 19:31:28   getG2           100 %
     2016-10-26 18:45:58   getG5           100 %
     2016-10-26 19:31:28   last-sender     1/1/7
     2016-10-25 19:07:05   setG1           98 %
     2016-10-26 18:45:00   setG2           down
     2016-10-26 18:44:38   setG3           down
     2016-10-26 19:29:44   setG4           25 %
     2016-10-26 19:30:30   setG5           down
     2016-10-26 19:27:57   setG6           down
     2016-10-26 19:16:23   state           25 %
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g5:Ab/on g6:Stop/value 0% g5:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       Essen
   stateCmd   {sprintf("%s %s", ReadingsVal($name,"g1-get","")), ReadingsVal($name,"g2-get",""))}
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Jetzt bekomme ich in den Readings, zumindest sauber den Status von G1 und G2. Also vom gesamten Rolladen (G1) und von der Position der Lamellen (G2) (ich weiß ich muss es noch benennen). Aktuell ist somit quasi alles dicht. Rolladen unten und Lamellen geschlossen.

Wenn das jetzt immer so in die Readings geschrieben wird, kann ich ja dann auch später an anderer Stelle mich dadrauf berufen. Nach dem Motto. Wenn Lamellen morgens 100% zu, dann kippen bei LUX 100 auf 25%.

Gerade Raffstores sind ja wahrscheinlich eine Besonderheit, weil man zwei Werte berücksichtigen muss. Wie sind die Lamellen und wie ist der Gesamtzustanden vom Rolladen (offen, geschlossen, halbe Position). Bei einem normalen Rolladen, hab ich das Problem ja nicht.

Also sieht doch gut aus, oder was meinst du ?

Was mich noch etwas verunsichert ist der "STATE". Da steht weiterhin 25%. Wahrscheinlich egal, weil ich werde mich auf State sowieso nicht berufen können (ich muss ja wahrscheinlich immer meine G1 und G2 Werte abfragen, wenn ich irgendwie handeln will). Daher wird STATE wahrscheinlich egal sein ? Oder bin ich auf dem Holzweg und hab einen Gedankenfehler ?

Trotzdem vielen Dank für deine Unterstützung. Wenn ich da mal saubere Werte drin habe, kann ich das auf alle anderen Raffstores anwenden und dann kann ich mit meiner Gruppe weiter machen und der Handlung die ich gerne morgens ausführen möchte.

Grüße,
Visionsurfer

EIB-Fan

#7
Hallo,

nicht g1-get sondern getG1 usw. So wie die Readings bezeichnet sind.


   Readings:
     2016-10-26 19:29:12   getG1           100 %
     2016-10-26 19:31:28   getG2           100 %
     2016-10-26 18:45:58   getG5           100 %
     2016-10-26 19:31:28   last-sender     1/1/7
     2016-10-25 19:07:05   setG1           98 %
     2016-10-26 18:45:00   setG2           down
     2016-10-26 18:44:38   setG3           down
     2016-10-26 19:29:44   setG4           25 %
     2016-10-26 19:30:30   setG5           down
     2016-10-26 19:27:57   setG6           down
     2016-10-26 19:16:23   state           25 %


Bin unterwegs, nur kurz zur Info.

(Habe es noch einmal angepasst)

Gruß Jens

visionsurfer

Moin,

ok. Dann hatte ich das falsch verstanden. Ich habe es geändert, bewirkt aber meiner Meinung trotzdem nichts.

Das ist die Ausgangslage:


Internals:
   DEF        2/3/107:dpt5.001 2/4/107:dpt5.001 2/3/7:dpt5.001 2/4/7:dpt5.001 2/1/7:dpt1.008 2/2/7:dpt1.008
   DEVNAME    rollo_essen_links
   IODev      KNX
   KNX_MSGCNT 21
   KNX_RAWMSG C1107w246bff
   KNX_TIME   2016-10-27 07:55:41
   LASTInputDev KNX
   MSGCNT     21
   NAME       rollo_essen_links
   NR         313
   NTFY_ORDER 50-rollo_essen_links
   STATE      25 %
   TYPE       KNX
   Gaddr:
     1          2/3/107
     2          2/4/107
     3          2/3/7
     4          2/4/7
     5          2/1/7
     6          2/2/7
   Gcode:
     1          236b
     2          246b
     3          2307
     4          2407
     5          2107
     6          2207
   Model:
     1          dpt5.001
     2          dpt5.001
     3          dpt5.001
     4          dpt5.001
     5          dpt1.008
     6          dpt1.008
   Readings:
     2016-10-26 19:29:12   getG1           100 %
     2016-10-27 07:55:41   getG2           100 %
     2016-10-26 18:45:58   getG5           100 %
     2016-10-27 07:55:41   last-sender     1/1/7
     2016-10-25 19:07:05   setG1           98 %
     2016-10-26 21:04:54   setG2           100 %
     2016-10-26 18:44:38   setG3           down
     2016-10-27 07:54:21   setG4           25 %
     2016-10-27 07:54:43   setG5           down
     2016-10-26 19:27:57   setG6           down
     2016-10-26 19:16:23   state           25 %
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g5:Ab/on g6:Stop/value 0% g5:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       Essen
   stateCmd   {sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Wenn ich von dieser Ausgangslage die Lamellen auf 50% fahre, sieht das ganze so aus:


Internals:
   DEF        2/3/107:dpt5.001 2/4/107:dpt5.001 2/3/7:dpt5.001 2/4/7:dpt5.001 2/1/7:dpt1.008 2/2/7:dpt1.008
   DEVNAME    rollo_essen_links
   IODev      KNX
   KNX_MSGCNT 22
   KNX_RAWMSG C1107w246b7f
   KNX_TIME   2016-10-27 07:57:23
   LASTInputDev KNX
   MSGCNT     22
   NAME       rollo_essen_links
   NR         313
   NTFY_ORDER 50-rollo_essen_links
   STATE      25 %
   TYPE       KNX
   Gaddr:
     1          2/3/107
     2          2/4/107
     3          2/3/7
     4          2/4/7
     5          2/1/7
     6          2/2/7
   Gcode:
     1          236b
     2          246b
     3          2307
     4          2407
     5          2107
     6          2207
   Model:
     1          dpt5.001
     2          dpt5.001
     3          dpt5.001
     4          dpt5.001
     5          dpt1.008
     6          dpt1.008
   Readings:
     2016-10-26 19:29:12   getG1           100 %
     2016-10-27 07:57:23   getG2           50 %
     2016-10-26 18:45:58   getG5           100 %
     2016-10-27 07:57:23   last-sender     1/1/7
     2016-10-25 19:07:05   setG1           98 %
     2016-10-26 21:04:54   setG2           100 %
     2016-10-26 18:44:38   setG3           down
     2016-10-27 07:57:22   setG4           50 %
     2016-10-27 07:54:43   setG5           down
     2016-10-26 19:27:57   setG6           down
     2016-10-26 19:16:23   state           25 %
   Readingsname:
Attributes:
   IODev      KNX
   eventMap   /value 100% g5:Ab/on g6:Stop/value 0% g5:Auf/value 25% g4:Pos1/value 50% g4:Pos2/value 75% g4:Pos3
   room       Essen
   stateCmd   {sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}
   userattr   room_map structexclude
   webCmd     Ab:Stop:Auf:Pos1:Pos2:Pos3


Wenn ich das richtig verstanden habe, müsste sich durch das attr doch STATE ändern ?

Tut sich aber nichts. Ist mein Attr immer noch falsch ?

Grüße,
Visionsurfer


EIB-Fan

Hallo,

state und STATE können unterscheidliche Werte sein. state ist ein Reading / STATE ist der angezeigte Wert im Web-Interface.

Mit stateCmd kannst du state beieinflussen und somit auch STATE. Habe in der Referenz gerade gelesen das der Syntax um $state erweitert ist. Hab eich bei mir nicht programmiert.

Mit stateFormat kannst du STATE beeinflussen.

Je nachdem was du machen willst.

Probier bitte zuerst nur einen Wert zu ändern, damit das Prinzip funktioniert. Dann kannst du es erweitern.

Testreihenfolge (getG1 usw. musst du selbst anpassen).


attr rollo_essen_links stateCmd {sprintf("%s", ReadingsVal($name,"getG1",""))}

attr rollo_essen_links stateCmd {$state = sprintf("%s", ReadingsVal($name,"getG1",""))}

attr rollo_essen_links stateCmd {sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}

attr rollo_essen_links stateCmd {$state = sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}

attr rollo_essen_links stateFormat {sprintf("%s", ReadingsVal($name,"getG1",""))}

attr rollo_essen_links stateFormat {sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}


Sollte dies nicht funktionieren entferne mal vorübergehend alle anderen Attribute und teste per set aus der Befehlszeile.

Deine vielen getGx & setGx sind sehr übersichtlich. >:(

Vergib doch einfach mal für ein Device den Funktionen der Gruppenadressen Namen, wie ich es schon beschrieben haben.

Gruß Jens

visionsurfer

Hi,

o.k. werde ich ausprobieren.

Ich hatte das mit den Bezeichnungen schon probiert, so wie von dir erklärt und beschrieben.

Ich hatte dann in meiner Definition das hier als Beispiel bei meiner Stop Gruppenadresse drin:

2/2/7:dpt1.008:stop

Im attr hatt ich dann folgendes stehen:

/on stop:Stop/

Also ich das dann so gespeichert hatte und meinen Rolladen stoppen wollte, kam eine Fehlermeldung das def on nur dpt1 haben darf. Selbst als ich die ".008" entfernt habe, funktionierte das stop nicht mehr.
Also bin ich wieder zurück auf meine GXY Bezeichnungen, weil das zumindest funktioniert.

Ich konnte auch nicht entdecken was ich da falsch gemacht haben könnte.

Grüße,
Visionsurfer


EIB-Fan

Hallo,

so, ich hab mal eine Rolllade bei mir umprogrammiert. Einen Fehler hab ich in meinen Beispielen mit der Anzeige von 2 Werten festgestellt. Eine Klammer ist zu viel.

{sprintf("%s %s", ReadingsVal($name,"getG1","")), ReadingsVal($name,"getG2",""))}

Sonst funktioniert die Beispiele, wie von dir gewünscht.

Hier das list von dem funktionierenden Device.


   DEF        1/1/13:dpt5.001:position_set 1/4/13:dpt5.001:position_get 1/5/13:dpt1:stoerung 1/6/13:dpt1:hindernis 1/7/13:dpt1:blockade
   DEVNAME    R106
   IODev      tul
   LASTInputDev tul
   MSGCNT     28
   NAME       R106
   NR         96
   NTFY_ORDER 50-R106
   STATE      Position: 13 % Störung: 3
   TYPE       KNX
   tul_MSGCNT 28
   tul_RAWMSG C11d8w140d21
   tul_TIME   2016-10-27 10:58:22
   Gaddr:
     1          1/1/13
     2          1/4/13
     3          1/5/13
     4          1/6/13
     5          1/7/13
   Gcode:
     1          110d
     2          140d
     3          150d
     4          160d
     5          170d
   Model:
     1          dpt5.001
     2          dpt5.001
     3          dpt1
     4          dpt1
     5          dpt1
   Readings:
     2016-10-26 13:00:53   blockade-get    off
     2016-10-26 13:00:53   blockade_gesamt 0
     2016-10-27 10:53:19   hindernis-get   off
     2016-10-27 10:51:36   hindernis_gesamt 3
     2016-10-27 10:58:22   last-sender     1/1/216
     2016-10-27 10:58:22   position_get-get 13 %
     2016-10-27 10:48:02   position_set-set 10 %
     2016-10-27 10:58:22   state           Position: 13 % Störung: 3
     2016-10-26 13:00:53   stoerung-get    off
     2016-10-26 13:00:53   stoerung_gesamt 0
   Readingsname:
     1          position_set
     2          position_get
     3          stoerung
     4          hindernis
     5          blockade
Attributes:
   IODev      tul
   stateCmd   {sprintf("Position: %s Störung: %s", ReadingsVal($name,"position_get-get",""), ReadingsVal($name,"hindernis_gesamt",""))}


Die Readings mit dem Zusatz "_gesamt" werden nicht durch die Rollladen geschrieben, sondern durch ein zusätzliches DOIF erzeugt.

Für das jetzt erstellte Device sieht das im WEB-IF so aus.

Lösche doch bitte mal ein Device bei dir und lege es im WEB-IF komplett neu an. Bitte nicht die fhem.cfg direkt bearbeiten!

Gruß Jens


visionsurfer

Hi Jens,

super. Vielen, vielen Dank. Das schau ich mir heute Abend noch mal genau an.

Kannst du zufällig noch was sagen, warum das mit meinem stop nicht geklappt hat ? Weil ich würde das schon gerne beschriften. Das wäre viel praktischer. Ich hoffe ich hab mein Beispiel oben verständlich beschrieben.

Grüße,
Visionsurfer

EIB-Fan

Hallo,

programmier bitte erst mal die grundlegenden Sachen, wie von mir beschrieben. Danach kannst du das Schritt für Schritt erweitern.  ;)

Bist du dir auch sicher, was deine Gruppenadressen von KNX für Funktionen sind?  :o

Bezüglich der Stop-Programmierung.

Hier ein Beispiel aus meiner Lichtprogrammierung. Du musst hier g1, g2 ... verwenden.


attr Test_Licht eventMap /value 2 g1:Nachtlicht/value g1:slider,0,1,100/on g2:AN/off g2:AUS


Gruß Jens

visionsurfer

Hi,

ah so. Kann ich im eventMap also nicht die Namen ansprechen. Sondern muss dort weiterhin die G1, G2 usw. verwenden ? Das geht bei mir, keine Frage. Ich hatte nur in das eventMap probiert auch da ganze mit den zugeteilten Namen anzusprechen.

Ja eigentlich bin ich mir bei meinen Gruppenadressen sicher. Hier mal ein Beispiel für Rollo TV:

Langzeit auf /ab   = 2/1/8
Kurzzeit stop        = 2/2/8
Position %            = 2/3/8
Position Status     = 2/3/108
Lamellen %           = 2/4/8
Lamellen Status    = 2/4/108

Somit hab ich 6 Gruppenadressen für ein Fenster.

Grüße,
Visionsurfer