Neues Modul für REV Ritter iComfort

Begonnen von memed, 22 Juli 2016, 11:23:41

Vorheriges Thema - Nächstes Thema

Volker80

Hallo zusammen

gibt es eigentlich neue Entwicklungen was die Zuverlässigkeit betrifft?

Meine Erfahrungen möchte ich natürlich auch gerne zur Verfügung stellen.

1. Dieser Fehler ist immernoch nach jeden FHEM start in der Logfile vorzufinden, bisher ohne erkennbare Einschränkungen
PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/79_REVI.pm line 109
das ist die Zeile 109
    Log3 $name, 5, "REVI ($name) - Define a0:".$a[0]." a1:".$a[1]." a2: ".$a[2]." a3: ".$a[3];   

2. zwischendurch kam es einmal vor, das ein JaluSchalter nicht mehr angesprochen wurde den dieser hatte auf einmal einen anderen Namen REVI_00000000
meine Fehlerbehebung verlief erfolglos aber durch umbennen de define in FHEM konnte ich es weiter nutzen. Nach einem Stromausfall hatte es seinen ursprünglichen Namen wieder.

3. Zuverlässigkeit: Naja man kann schon sagen das ca. 25% der Befehle nicht ausgeführt werden, was bei einer Zeitsteuerung schon lästig ist.
Meine Lösung: ich habe mir bei der Zeitsteuerung einfach eine Wiederholung nach 2 Minuten eingebaut.



gerne Kann ich die Logs zur Verfügung stellen

hurido bis denn

elw

Hallo Zusammen,

Habe mich mal wieder dran gemacht und versucht euren Fehler nachzuvollziehen. Ja, unter einigen umständen tritt er bei mir auch auf.
Ich weiß allerdings im Moment nicht, wie ich ihn weg bekomme.

Den Fehler bekomme ich, wenn ich folgendes mache:

-automatisches anlegen der Devices unter REVICOMFORT
-umbenennen mit einem Namen
-Die Def ändern von  "001ea181 ?" in "001ea181 84479"
- Resultat zwei mal drücken um ein oder auszuschalten

Ich kann euch aber einen Workaraund anbieten:

- löscht diese Devices wieder und merkt euch die Adresse
- legt die Devices neu an mit "define Steckdose REVI 001ea181 84462"
- nun hatte ich bei jedem Druck eine Funktion.

Ich schau mal, ob ich den Fehler finde.

Gruß

Volker80

Hey

na vielleicht hilft dir das etwas. Ab Zeile 13 ist der Unterschied zu sehen.

Einmal mit Fehler

2018.02.13 09:06:22 5: REVI  (Terrasse_rechts)  def: (00195dc1 84479) String a: 2 b: 2 A0: Terrasse_rechts A1: on B0: 00195dc1 b1: 84479
2018.02.13 09:06:22 5: REVI  (Terrasse_rechts)  NEW REVI on
2018.02.13 09:06:22 5: REVI (Terrasse_rechts) funcset: 3F
2018.02.13 09:06:22 4: REVICOMFORT (REV_Gate) - sending data: S?d=3F&a=00195dc1
2018.02.13 09:06:22 5: (REV_Gate) REVICOMFORT  - S?d=3F&a=00195dc1
2018.02.13 09:06:22 5: (REV_Gate) REVICOMFORT  - send: S?d=3F&a=00195dc1
2018.02.13 09:06:22 5: (REV_Gate) REVICOMFORT  - send Hex: 533F643D334626613D3030313935646331
2018.02.13 09:06:22 5: SW: 533F643D334626613D30303139356463310A
2018.02.13 09:06:22 5: (REV_Gate) REVICOMFORT  - sending Data: 533F643D334626613D30303139356463310A
2018.02.13 09:06:22 5: REVI (Terrasse_rechts) send to IODEV: S?d=3F&a=00195dc1
2018.02.13 09:06:22 3: REVI (Terrasse_rechts) - set Terrasse_rechts on
2018.02.13 09:06:22 5: REVI  (Terrasse_rechts)  def: (00195dc1 84479) String a: 2 b: 2 A0: Terrasse_rechts A1: ? B0: 00195dc1 b1: 84479
2018.02.13 09:06:22 5: REVI  (Terrasse_rechts)  NEW REVI ?
2018.02.13 09:06:23 4: REVICOMFORT (REV_Gate) - received data: F?a=00195DC1

2018.02.13 09:06:23 5: REVICOMFORT (REV_Gate) - current buffer content: F?a=00195DC1

2018.02.13 09:06:23 4: REV_Gate  Parse send Data to REVI: REV_Gate  F?a=00195DC1
2018.02.13 09:06:23 5: REV_Gate: dispatch F?a=00195DC1
2018.02.13 09:06:23 5: REVI  (REV_Gate) Parse Message1: F?a=00195DC1
2018.02.13 09:06:23 5: REVI (REV_Gate) - Rückstate b: F 00195DC1 und splitt: F?a=00195DC1
2018.02.13 09:06:23 3: REVI (REV_Gate) - Error backstate F addresse:00195dc1
2018.02.13 09:06:23 5: REVI (REV_Gate) - Parse F 00195dc1 ? FF
2018.02.13 09:06:23 5: REVI  (REV_Gate)  - is defined F?a=00195DC1 hash: HASH(0x15703f8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15703f8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15c0dc0)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 00195dc1 adresse 00195dc1
2018.02.13 09:06:23 5: REVI(REV_Gate) 1Integer list:  n: Terrasse_rechts
2018.02.13 09:06:23 5: REVI(REV_Gate) 2Integer list: 1
2018.02.13 09:06:23 5: REVI(REV_Gate) 2Integer n: Terrasse_rechts
2018.02.13 09:06:23 5: REVI(REV_Gate) Hex FunktionState: 255
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x16081c8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1607e68)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 0019f1f1 adresse 00195dc1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15d0298)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15cf648)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 00195e01 adresse 00195dc1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x156f8e0)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1537be8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c  adresse 00195dc1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15d0d90)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15d0a48)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 001e8c31 adresse 00195dc1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x161a638)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1618c90)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 001b48d1 adresse 00195dc1
2018.02.13 09:06:23 5: REVI  (REV_Gate)  - F?a=00195DC1 is defined for List Terrasse_rechts
2018.02.13 09:06:23 5: REVI  (Terrasse_rechts)  def: (00195dc1 84479) String a: 2 b: 2 A0: Terrasse_rechts A1: ? B0: 00195dc1 b1: 84479
2018.02.13 09:06:23 5: REVI  (Terrasse_rechts)  NEW REVI ?


Einmal ohne Fehler

2018.02.13 09:06:23 5: REVI  (Terrasse_links)  def: (0019F1F1 84479) String a: 2 b: 2 A0: Terrasse_links A1: on B0: 0019F1F1 b1: 84479
2018.02.13 09:06:23 5: REVI  (Terrasse_links)  NEW REVI on
2018.02.13 09:06:23 5: REVI (Terrasse_links) funcset: 3F
2018.02.13 09:06:23 4: REVICOMFORT (REV_Gate) - sending data: S?d=3F&a=0019F1F1
2018.02.13 09:06:23 5: (REV_Gate) REVICOMFORT  - S?d=3F&a=0019F1F1
2018.02.13 09:06:23 5: (REV_Gate) REVICOMFORT  - send: S?d=3F&a=0019F1F1
2018.02.13 09:06:23 5: (REV_Gate) REVICOMFORT  - send Hex: 533F643D334626613D3030313946314631
2018.02.13 09:06:23 5: SW: 533F643D334626613D30303139463146310A
2018.02.13 09:06:23 5: (REV_Gate) REVICOMFORT  - sending Data: 533F643D334626613D30303139463146310A
2018.02.13 09:06:23 5: REVI (Terrasse_links) send to IODEV: S?d=3F&a=0019F1F1
2018.02.13 09:06:23 3: REVI (Terrasse_links) - set Terrasse_links on
2018.02.13 09:06:23 5: REVI  (Terrasse_links)  def: (0019F1F1 84479) String a: 2 b: 2 A0: Terrasse_links A1: ? B0: 0019F1F1 b1: 84479
2018.02.13 09:06:23 5: REVI  (Terrasse_links)  NEW REVI ?
2018.02.13 09:06:23 4: REVICOMFORT (REV_Gate) - received data: G?a=0019F1F1&d=3F

2018.02.13 09:06:23 5: REVICOMFORT (REV_Gate) - current buffer content: G?a=0019F1F1&d=3F

2018.02.13 09:06:23 4: REV_Gate  Parse send Data to REVI: REV_Gate  G?a=0019F1F1&d=3F
2018.02.13 09:06:23 5: REV_Gate: dispatch G?a=0019F1F1&d=3F
2018.02.13 09:06:23 5: REVI  (REV_Gate) Parse Message1: G?a=0019F1F1&d=3F
2018.02.13 09:06:23 5: REVI (REV_Gate) - Rückstate b: G 0019F1F1 &d=3F und splitt:  G 0019F1F1 d 3F
2018.02.13 09:06:23 5: REVI (REV_Gate) - Rückstate E oder G : G 0019f1f1 d 3F
2018.02.13 09:06:23 5: REVI (REV_Gate) - Parse G 0019f1f1 d 3F
2018.02.13 09:06:23 5: REVI  (REV_Gate)  - is defined G?a=0019F1F1&d=3F hash: HASH(0x16081c8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15703f8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15c0dc0)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 00195dc1 adresse 0019f1f1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x16081c8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1607e68)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 0019f1f1 adresse 0019f1f1
2018.02.13 09:06:23 5: REVI(REV_Gate) 1Integer list:  n: Terrasse_links
2018.02.13 09:06:23 5: REVI(REV_Gate) 2Integer list: 1
2018.02.13 09:06:23 5: REVI(REV_Gate) 2Integer n: Terrasse_links
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15d0298)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15cf648)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 00195e01 adresse 0019f1f1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x156f8e0)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1537be8)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c  adresse 0019f1f1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x15d0d90)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x15d0a48)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 001e8c31 adresse 0019f1f1
2018.02.13 09:06:23 5: REVI (REV_Gate) - def HASH(0x161a638)
2018.02.13 09:06:23 5: REVI (REV_Gate) - lh HASH(0x1618c90)
2018.02.13 09:06:23 5: REVI (REV_Gate) - c 001b48d1 adresse 0019f1f1
2018.02.13 09:06:23 5: REVI  (REV_Gate)  - G?a=0019F1F1&d=3F is defined for List Terrasse_links
2018.02.13 09:06:23 5: REVI  (Terrasse_links)  def: (0019F1F1 84479) String a: 2 b: 2 A0: Terrasse_links A1: ? B0: 0019F1F1 b1: 84479
2018.02.13 09:06:23 5: REVI  (Terrasse_links)  NEW REVI ?
2018.02.13 09:06:24 4: REVICOMFORT (REV_Gate) - received data: G?a=0019F1F1&d=3F

2018.02.13 09:06:24 5: REVICOMFORT (REV_Gate) - current buffer content: G?a=0019F1F1&d=3F

2018.02.13 09:06:24 4: REV_Gate  Parse send Data to REVI: REV_Gate  G?a=0019F1F1&d=3F
2018.02.13 09:06:24 5: REV_Gate: dispatch G?a=0019F1F1&d=3F
2018.02.13 09:06:24 5: REVI  (REV_Gate) Parse Message1: G?a=0019F1F1&d=3F
2018.02.13 09:06:24 5: REVI (REV_Gate) - Rückstate b: G 0019F1F1 &d=3F und splitt:  G 0019F1F1 d 3F
2018.02.13 09:06:24 5: REVI (REV_Gate) - Rückstate E oder G : G 0019f1f1 d 3F
2018.02.13 09:06:24 5: REVI (REV_Gate) - Parse G 0019f1f1 d 3F
2018.02.13 09:06:24 5: REVI  (REV_Gate)  - is defined G?a=0019F1F1&d=3F hash: HASH(0x16081c8)
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x15703f8)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x15c0dc0)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c 00195dc1 adresse 0019f1f1
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x16081c8)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x1607e68)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c 0019f1f1 adresse 0019f1f1
2018.02.13 09:06:24 5: REVI(REV_Gate) 1Integer list:  n: Terrasse_links
2018.02.13 09:06:24 5: REVI(REV_Gate) 2Integer list: 1
2018.02.13 09:06:24 5: REVI(REV_Gate) 2Integer n: Terrasse_links
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x15d0298)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x15cf648)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c 00195e01 adresse 0019f1f1
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x156f8e0)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x1537be8)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c  adresse 0019f1f1
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x15d0d90)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x15d0a48)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c 001e8c31 adresse 0019f1f1
2018.02.13 09:06:24 5: REVI (REV_Gate) - def HASH(0x161a638)
2018.02.13 09:06:24 5: REVI (REV_Gate) - lh HASH(0x1618c90)
2018.02.13 09:06:24 5: REVI (REV_Gate) - c 001b48d1 adresse 0019f1f1
2018.02.13 09:06:24 5: REVI  (REV_Gate)  - G?a=0019F1F1&d=3F is defined for List Terrasse_links
2018.02.13 09:06:24 5: REVI  (Terrasse_links)  def: (0019F1F1 84479) String a: 2 b: 2 A0: Terrasse_links A1: ? B0: 0019F1F1 b1: 84479
2018.02.13 09:06:24 5: REVI  (Terrasse_links)  NEW REVI ?


Volker80

Zitat von: elw am 13 Februar 2018, 11:55:48
Ich kann euch aber einen Workaraund anbieten:

- löscht diese Devices wieder und merkt euch die Adresse
- legt die Devices neu an mit "define Steckdose REVI 001ea181 84462"
- nun hatte ich bei jedem Druck eine Funktion.

Hey,
das bringt leider keine Veränderung. Aber trotzdem Danke

elw

Hallo Volker80,
bin gerade dabei das ganze zu recherieren. Dabei ist mir im Workaround ein Fehler passeirt.

Es sollte eher so heißen:

- löscht die Devices wieder und merkt euch die Adressen

- Bitte Fhem neu starten (shutdown restart) oder /etc/init.d/fhem restart

- legt die Devices neu an mit "define Steckdose REVI 001ea181 84462"
- nun hatte ich bei jedem Druck eine Funktion.


Das Problem liegt beim Rename and Delete. Warum weiß ich noch nicht. Viele Module besitzen diese Funktionen nicht und es geht trotzdem. Vielleicht mache ich schon beim Autocreate einen Fehler. Ich schaue noch mal weiter und stelle dann die Version ein, mit der ich gerade teste.

Gruß

elw

Hallo,

Ich habe mal eine frage an die Experten. So wie ich das sehe existiert nach dem umbenennen oder dem Löschen des Devices dieses noch irgendwo.

2018.02.21 14:42:22 5: REVI (REVI_Gate) - Parse G 00037a91 d 3F
2018.02.21 14:42:22 5: REVI  (REVI_Gate)  - is defined G?a=00037A91&d=3F hash: HASH(0x10d8690)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - def HASH(0x10d8c18)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - lh HASH(0x10d87c8)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - c 00217c31 adresse 00037a91
2018.02.21 14:42:22 5: REVI (REVI_Gate) - def HASH(0x10b3fe0)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - lh HASH(0xcebd98)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - c 0021c2c1 adresse 00037a91
2018.02.21 14:42:22 5: REVI (REVI_Gate) - def HASH(0x10d8690)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - lh HASH(0x10b3ff8)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - c 00037a91 adresse 00037a91
2018.02.21 14:42:22 5: REVI(REVI_Gate) 1Integer list:  n: REVI_00037a91
2018.02.21 14:42:22 5: REVI(REVI_Gate) 2Integer list: 1
2018.02.21 14:42:22 5: REVI(REVI_Gate) 2Integer n: REVI_00037a91
2018.02.21 14:42:22 5: REVI (REVI_Gate) - lh HASH(0x10b3ff8)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - c 00037a91 adresse 00037a91
2018.02.21 14:42:22 5: REVI(REVI_Gate) 1Integer list: REVI_00037a91 n: Schreibtisch_Dimmer_91
2018.02.21 14:42:22 5: REVI(REVI_Gate) 2Integer list: 2
2018.02.21 14:42:22 5: REVI(REVI_Gate) 2Integer n: Schreibtisch_Dimmer_91
2018.02.21 14:42:22 5: REVI (REVI_Gate) - def HASH(0x10d89a8)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - lh HASH(0x10ed580)
2018.02.21 14:42:22 5: REVI (REVI_Gate) - c 001ea181 adresse 00037a91
2018.02.21 14:42:22 5:[i] REVI  (REVI_Gate)  - G?a=00037A91&d=3F is defined for List REVI_00037a91 Schreibtisch_Dimmer_91[/i]
2018.02.21 14:42:22 1: ERROR: >REVI_00037a91< returned by the REVI ParseFn is invalid, notify the module maintainer


In der vorletzten Zeile sieht man, das REVI_00037a91 und das Schreibtisch_Dimmer_91 Device noch vorhanden ist.
Diese dürfte dann auch der fehler sein, ds das Device nicht sauber gelöscht wird. Kann mir da bitte jemand weiterhelfen?

DANKE

Gruß

elw

Hallo,
Ich möchte noch mal zusammenfassen:

- ein Löschen des Devices löscht es nicht komplett, sondern nur in der fhem.cfg.
       - ich dachte eigentlich, dass das Löschen global übernommen wird und nur lt Develoment spezielle Dateien und 
          Attribute gelöscht werden müssen.
- ein Umbenennen mit meiner RenameFn benennt das Device und z.b. Filelogs mit um, löscht aber nicht das alte Device

Vielleicht gibt es da ja jemanden, der einen Tip hat.

Gruß

elw


Hallo,

Habe das Modul REVI komplett überarbeitet. Ein Löschen und Umbenennen ist nun auch ohne Fhem Neustart möglich.
Einen großen Dank an Markus Bloch, der mich auf den richtigen Weg gebracht hat.

Wenn der Fehler mit dem Gateway auftaucht könnt Ihr auf den state "255" reagieren und gegebenenfalls das Signal wiederholen.
Last es mich wissen, wenn es irgendwo hakt, oder Ihr noch Wünsche habt.

Gruß
ELW

Volker80

#53
Sehr gut. Ich werde die Funktionen für 84479 intensiv testen und berichten.

Da hab ich gleich ne Kleinigkeit für 84479 Rolloschalter

Der set-Befehl stop kann raus da ohne Funktion.

ZitatWenn der Fehler mit dem Gateway auftaucht könnt Ihr auf den state "255" reagieren und gegebenenfalls das Signal wiederholen.
Last es mich wissen, wenn es irgendwo hakt, oder Ihr noch Wünsche habt.
Wie kann das umgesetzt werden?

Funatic

Hallo ELW,

ich nutze iComfort dank Deines Codes in Kombination mit Rollo und Clunis Rolladensteuerung.

Auch ich habe oft Probleme, dass Steuerbefehle nicht am iComfort Aktor ankommen. Das ist ziemlich ärgerlich, wenn die einzelne Rollläden im Urlaub tagsüber unten oder nachts oben bleiben. Passiert zum Glück nicht ganz so häufig, da das zweite Kommando, das den Motor dann nach z.B. 30s ausschalten sollte dann als start-Befehl interpretiert wird und der Rollladen dann zum Glück doch noch schließt oder öffnet (kommt trotzdem noch zu häufig vor, dass er eben doch unbewegt bleibt).
Richtig doof wird das ganze aber, wenn ein Rollladen nicht zu 100% geschlossen oder geöffnet wereden soll. Z.B. beim Sonnenschutz, beim Lüften oder beim entspannteren Aufwachen, bei dem der Rollladen erstmal nur ein klein wenig geöffnet werden soll. Ein verpasstes Signal macht dann die ganze Programmierung hinfällig...
Mir wäre als auch sehr daran gelegen, wenn Du die Zuverlässigkeit erhöhen könntest.

Was hälst Du von folgender Idee:
- nach dem Senden eines Kommandos (z.B. Jalousieschalter hoch) fragst du unmittelbar den Status des Aktors ab. Der sollte ja nun auf "hoch" (on) stehen.
- Ist der Status nicht wie erwartet, sendest Du das Kommando nocheinmal.
- Das ganze 3x dann gibst du auf und belässt es dabei. Unbedingt eine ungerade Anzahl an Wiederholungen versuchen - sollte das Kommando nämlich wider erwarten doch durchgegangen sein, dann wird bei jeder geraden Wiederholung das Kommando gestoppt, bei der ungeraden wieder getriggert...

Bin gespannt auf dein (oder auch fremdes) Feedback!


Gruß,

Thomas

elw

Hallo Funatic,

Schade, das du solche Probleme damit hast. :-\
Da ich das ganze erst nochmal überprüft habe, jetzt erst die Antwort.

Bei mir sind 2x 24iger Wände zwischen Gateway und Aktor. das ganze geht über 868 MHZ und das sollte eigentlich nicht so kritisch sein und funktionieren.
Hast Du mal versucht die Entfernung zwischen beiden zu verringern? Geh doch mal mit Putty über Telnet auf dein Gateway und gib die Befehle ein.
Damit kannst du Fhem ausschließen.

Die Rückmeldung kommt automatisch vom Gateway ohne Pollen. Somit ist es schwierig ein Timeout hinzubekommen.
Dein Vorschlag würde bedeuten, einen Interrupt nach Befehlseingabe starten, warten auf Antwort, wenn keine kommt noch mal senden.....usw......
Abgesehen davon, das ich nicht weiß wie man so was programmiert, dürfte das sehr aufwendig sein, aber bestimmt machbar.

Kannst Du mir noch sagen, was Clunis Rolladensteuerungen sind???
Hast Du das Gateway  86500-B oder ein anderes??

Gruß

elw

Hallo,

Hier noch die Befehle für Putty   ;) "S?d=3F&a=ADRESSE" oder "S?d=00&a=ADRESSE". In Putty dann CTRL+J danach Enter.

Gruß

Funatic

Hi ELW,

ich habe eben versucht auf das Gateway (ja, 86500-B) zu kommen. Network Timeout. Weder per ssh noch per telnet. Irritiert mich etwas, dass du sagst, das müsste funktionieren. Werde es später nochmal über LAN probieren - erwarte aber keine Änderung, ist das selbe Netzwerksegment...

Prinzipiell funktioniert das Gateway ja auch. Ich schicke den Befehl ab und im FHEM Event Monitor sehe ich den Befehl dann 3x:

2018-05-01 18:50:04 REVI Motor.Rollladen.Kinderzimmer.Nord down
2018-05-01 18:50:05 REVI Motor.Rollladen.Kinderzimmer.Nord down
2018-05-01 18:50:05 REVI Motor.Rollladen.Kinderzimmer.Nord down

Ich vermute das erste ist mein Trigger, das zweite die Response vom Gateway und das dritte die Response vom Aktor.

Nach 3 Minuten sehe ich dann nochmals ein einzelnes Event - vermute das ist das Abschalt-Event vom Aktor, wenn von der Steuerung kein Stop gesendet wurde.

2018-05-01 18:53:08 REVI Motor.Rollladen.Kinderzimmer.Nord down

Ich kann den Fehler im Moment gerade nicht reproduzieren - aber im Log sehe ich z.B. auch folgendes:

2018-05-01_18:35:27 Motor.Rollladen.Kinderzimmer.Nord down
2018-05-01_18:35:27 Motor.Rollladen.Kinderzimmer.Nord down
2018-05-01_18:35:27 Motor.Rollladen.Kinderzimmer.Nord down
2018-05-01_18:35:27 Motor.Rollladen.Kinderzimmer.Nord 255
2018-05-01_18:35:28 Motor.Rollladen.Kinderzimmer.Nord down

Bin mir jetzt aber nicht sicher, ob er sich bewegt hat oder nicht...

Es ist auch (nicht nur) der Entfernung geschuldet. O.g. Rollladen ist im selben Zimmer wie das Gateway, ca. 2m Luftlinie...


Ich habe die Rollladen-Aktoren über das Rollo-Modul eingebunden. Als Zeitsteuerung nutze ich die Rollladensteuerung von Cluni (https://forum.fhem.de/index.php/topic,73964.0.html), die mit dem Rollo-Modul umgehen kann.
Prinzipiell geht auch alles - nur eben nicht 100%ig zuverlässig...

Was brauchst Du denn für Informationen, um das Verhalten zu analysieren und ggfs. eine Verbesserung schaffen zu können? Ich will ja gerne liefern, muss nur wissen was... ;-)


Vielen Danke für Deine Unterstützung!


Gruß,

Thomas

Funatic

Nochmal ein Update.
Habe soeben einen Rollladen nach oben fahren lassen wollen. Er war  - warum auch immer - nicht ganz oben, sondern ca. 1/3 geschlossen. Obwohl das Rollo-Modul offen angezeigt hat.

Ich habe auf "open" geklickt - und er ist NICHT gefahren. Dafür dann ein paar Sekunden später.

Folgendes sehe ich im Event Monitor:

2018-05-01 20:22:51 readingsGroup Rollladen_Timer Rollladen.Bad.Sued.pct: 100
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued command: open
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued desired_position: 0
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued pct: 100
2018-05-01 20:22:51 readingsGroup Rollladen_Timer Rollladen.Bad.Sued.pct: 100
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued last_drive: drive-up
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued drive-up
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued pct: 100
2018-05-01 20:22:51 readingsGroup Rollladen_Timer Rollladen.Bad.Sued.pct: 100
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued drive-type: modul
2018-05-01 20:22:51 ROLLO Rollladen.Bad.Sued pct: 100
2018-05-01 20:22:51 REVI Motor.Rollladen.Bad.Sued up
2018-05-01 20:22:51 REVI Motor.Rollladen.Bad.Sued 255
2018-05-01 20:22:55 REVI Motor.Rollladen.Bad.Sued up
2018-05-01 20:22:55 readingsGroup Rollladen_Timer Rollladen.Bad.Sued.pct: 100
2018-05-01 20:22:55 dummy Rollladensteuerung letzter_Zugriff_Automatik_Komfort: 20:22:55
2018-05-01 20:22:55 ROLLO Rollladen.Bad.Sued open
2018-05-01 20:22:55 ROLLO Rollladen.Bad.Sued pct: 100
2018-05-01 20:22:55 REVI Motor.Rollladen.Bad.Sued up
2018-05-01 20:22:55 REVI Motor.Rollladen.Bad.Sued up
2018-05-01 20:24:26 LaCrosse Sensor.Temperatur.Schlafzimmer temperature: 22.5
2018-05-01 20:25:57 REVI Motor.Rollladen.Bad.Sued up

Um 20:22:51 wird das "Up" Kommando gesendet, das vom Gateway aber mit ReturnCode 255 quittiert wird. Der Rollladen fährt NICHT.
Da das Rollo-Modul davon ausging, dass der Rollladen bereits oben ist, hat es nach 20:22:55 das Stop-Kommando (also ein erneutes Up) geschickt. Dieses wurde richtig gesendet und der Rollladen ging hoch. Zeitverzögert eben.

Das ist jetzt kein Problem - er ist ja oben, da wo er hin sollte.
Wenn ich den Rollladen aber auf 50% fahren lassen will, dann darf kein Signal verloren gehen - denn dann landet er - wie in diesem Beispiel - oben (statt z.B. geplant 4s später wieder gestoppt...)

Im Filelog des REVI Aktors sieht das so aus:

2018-05-01_20:22:51 Motor.Rollladen.Bad.Sued up
2018-05-01_20:22:51 Motor.Rollladen.Bad.Sued 255
2018-05-01_20:22:55 Motor.Rollladen.Bad.Sued up
2018-05-01_20:22:55 Motor.Rollladen.Bad.Sued up
2018-05-01_20:22:55 Motor.Rollladen.Bad.Sued up
2018-05-01_20:25:57 Motor.Rollladen.Bad.Sued up

Die ersten 2, die nicht funktioniert haben, das funktionierende Stop-Kommando (das dann als up fungiert hat) und 3 Minuten später das Auto-Stop (das gar nicht hätte kommen dürfen, da das Rollo-Modul die Fahrt ja eigentlich gestoppt hatte...)

Gruß,

Thomas

Naked Snake

Hallo Zusammen,

ich habe mir auch Funksteckdosen vom Typ 86500-B besorgt und versuche Sie gerade in Fhem einzufügen. Blicke momentan auch noch nicht in Fhem ganz durch, aber der Beitrag von Siddyfly war schon mega, nur weiß ich aktuell nicht wie und auf welchem Weg ich die IP-Adresse meiner Funksteckdosen ermittle. Wie habt ihr das gemacht?

Gruß


"
(Zitat von Siddyfly)
hier das kleine script mit dem man alle geräte auslesen kann.
Ich hoffe das geht bei euch, ich hab einen Raspi am laufen.
Somit bleibt das große krabbeln und das Öffnen der Unterputzdosen aus. Ihr müsst nur die IP Adresse im Script anpassen.


In die fhem.cfg hab ich es so eingebaut.

#REV ICOMFORT definition LampeKueche 00011511
define REVI_00011511 REVI 00011511
attr REVI_00011511 IODev ICOMFORT
attr REVI_00011511 alias LampeKueche
attr REVI_00011511 devStateIcon on:black_FS20.on:off off:black_FS20.off:on
attr REVI_00011511 room Wohnzimmer
define FileLog_REVI_00011511 FileLog ./log/REVI_00011511-%Y.log REVI_00011511
attr FileLog_REVI_00011511 logtype text
attr FileLog_REVI_00011511 room logfiles
"