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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Hi Jens,
so ich hab jetzt alles geändert und so wie von dir angewendet. Es funktioniert perfekt. Vielen Dank. Ich kann die Jalousie sauber fahren, Lamellen kippen und sofort werden entsprechend die Werte angezeigt.
Ich habe es auch gleich mal mit Namen versehen. Sieht jetzt besser aus, oder ?
Internals:
DEF 2/3/107:dpt5.001:position_get 2/4/107:dpt5.001:lamellen_get 2/3/7:dpt5.001:position_set 2/4/7:dpt5.001:lamellen_set 2/1/7:dpt1.008:fahren 2/2/7:dpt1.008:kurz
DEVNAME rollo_essen_links
IODev KNX
KNX_MSGCNT 49
KNX_RAWMSG C1107w246bbf
KNX_TIME 2016-10-27 19:15:29
LASTInputDev KNX
MSGCNT 49
NAME rollo_essen_links
NR 313
NTFY_ORDER 50-rollo_essen_links
STATE 58 % 75 %
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-27 19:14:43 fahren-set up
2016-10-27 19:07:05 getG1 100 %
2016-10-27 19:07:05 getG2 100 %
2016-10-26 18:45:58 getG5 100 %
2016-10-27 19:14:59 kurz-set down
2016-10-27 19:15:29 lamellen_get-get 75 %
2016-10-27 19:15:28 lamellen_set-set 75 %
2016-10-27 19:15:29 last-sender 1/1/7
2016-10-27 19:15:20 position_get-get 58 %
2016-10-25 19:07:05 setG1 98 %
2016-10-27 18:52:02 setG2 100 %
2016-10-26 18:44:38 setG3 down
2016-10-27 07:57:22 setG4 50 %
2016-10-27 19:06:07 setG5 down
2016-10-26 19:27:57 setG6 down
2016-10-27 19:15:29 state 58 % 75 %
Readingsname:
1 position_get
2 lamellen_get
3 position_set
4 lamellen_set
5 fahren
6 kurz
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,"position_get-get",""), ReadingsVal($name,"lamellen_get-get",""))}
userattr room_map structexclude
webCmd Ab:Stop:Auf:Pos1:Pos2:Pos3
Jetzt werde ich das auf alle anderen Raffstores anwenden und dann kann ich mich weiter drum kümmern ein DOIF zu bauen, was mir die Lamellen morgens bei gewissen LUX der Wetterstation ein bisschen öffnet.
Grüße,
Visionsurfer
Hallo,
schön, dass es jetzt funktioniert!
Du kannst die alten Readings (setG1 ... getG1 ...) zur besseren Übersicht jetzt auch löschen.
Gib in die Befehlszeile einfach ein:
deletereading rollo_essen_links set.*
deletereading rollo_essen_links get.*
Dann hast du nur noch die Readings mit den von dir vergebenen Namen.
Gruß Jens
Moin,
alles klar. Danke werde ich noch machen.
Heute morgen haben meine Raffstores pünktlich zum gewünschten LUX Wert geöffnet. Sehr geil. Alles automatisch.
Nun muss ich noch schauen, wie ich den Status in der structure überschrieben bekomme. Weil nach dem öffnen steht dann dort als Status "set value 25 g4". Wenn ich alle Raffstores per Befehl schließe, wird sauber 100% 100% übermittelt. Aber halt nach dem ausführen von meinem DOIF, steht wie gessagt "set value 25 g4" im Status meiner gebildeten structure.
Muss ich mal schauen. Noch eine andere Baustelle.
Grüße,
Visionsurfer