Homematic Wired Homebrew Rollladenaktor

Begonnen von aperoap, 08 Dezember 2017, 12:30:09

Vorheriges Thema - Nächstes Thema

aperoap

Hallo zusammen,

ich bin neu In Bereich Wired und bin gerade dabei die Möglichkeiten mit Arduino zu testen. Das ganze funktioniert eigentlich ganz gut und stabil mit Sensoren und Schalter.
Jetzt bin ich bei Rollladenaktoren angekommen und habe meine ersten probleme.
Ausprobiert habe ich folgendes:

- HMW-LC-Bl1-DR
- HBW-LC-Bl4 (XML von https://forum.fhem.de/index.php/topic,22952.msg448161.html#msg448161)

Beides von Markus
https://github.com/kc-GitHub/HM485-Lib/tree/markus

Beide Geräte werden von fhem anerkannt und lassen sie Relais schalten. 
Das Problem ist folgendes:
HMW-LC-Bl1-DR:
- Lvl-status bleibt immer auf 0 aber Relais werden geschaltet, dir Leiste lässt sich jedoch verschieben und auch steuern, zeigt jedoch permanent 0 an. Arduino Schalter aber.
- Probleme mit 100%

HBW-LC-Bl4 (interessanter als bl1)
Funktioniert sehr gut und stabil von 0 bis 100%, der Status lvl wird richtig angezeigt beim Einstellen der Leiste springt jedoch wieder auf 0 wenn der Status erreicht ist und Arduino die Relais abschaltet. Lasse ich jedoch die Position unverändert und starte fhem neu, wird die Abfrage von Arduino gemacht und die Status Leiste korrekt angezeigt.

Kennt jemand das problem bzw die Lösung? :-)
Hätte gerne ein funktionierendes Rollladenaktor auf Arduinobasis.

FHEM auf neuster Stand.

Danke und Gruß
Arthur

Thorsten Pferdekaemper

Hi,
nur um sicher zu gehen, dass es nicht doch an der FHEM-Seite liegt:
Könntest Du mal ein list von beiden Devices liefern sowie die Ausgabe von "version"?
Gruß,
    Thorsten
FUIP

aperoap

Hallo Thorsten

hier die liste der beiden Devices
HM485:
  HBW_LC_Bl4_HBW7296259 (ACK)
  HBW_LC_Bl4_HBW7296259_01 (level_0)
  HBW_LC_Bl4_HBW7296259_02 (level_0)
  HBW_LC_Bl4_HBW7296259_03 (level_0)
  HBW_LC_Bl4_HBW7296259_04 (level_0)
  HMW_LC_Bl1_DR_HBW4073471 (ACK)
  HMW_LC_Bl1_DR_HBW4073471_01 (???)
  HMW_LC_Bl1_DR_HBW4073471_02 (???)
  HMW_LC_Bl1_DR_HBW4073471_03 (level_0)

meinst du mit Version Folgendes?

Latest Revision: 13439

File                     Rev   Last Change

fhem.pl                  13447 2017-02-19 13:24:25Z rudolfkoenig
98_autocreate.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
91_eventTypes.pm         11984 2016-08-19 12:47:50Z rudolfkoenig
01_FHEMWEB.pm            13443 2017-02-19 12:51:22Z rudolfkoenig
92_FileLog.pm            13393 2017-02-11 21:28:23Z rudolfkoenig
10_HM485.pm                811 2017-11-15 14:00:00Z ThorstenPferdekaemper
No Id found for 00_HM485_LAN.pm
No Id found for hmw_io12_sw14_dr.pm
No Id found for hmw_io12_sw7_dr.pm
No Id found for hmw_io12_sw7_dr_V3_02.pm
No Id found for hmw_io_12_fm.pm
No Id found for hmw_sen_sc_12_dr.pm
91_notify.pm             13207 2017-01-23 13:55:25Z rudolfkoenig
99_SUNRISE_EL.pm         12485 2016-11-01 15:18:51Z rudolfkoenig
98_telnet.pm             13443 2017-02-19 12:51:22Z rudolfkoenig
99_Utils.pm              13259 2017-01-28 17:39:39Z rudolfkoenig
98_version.pm            11987 2016-08-19 17:13:41Z markusbloch

No Id found for ConfigurationManager.pm
No Id found for Constants.pm
No Id found for Device.pm
DevIo.pm                 12716 2016-12-05 09:11:31Z rudolfkoenig
No Id found for hbw_lc_bl4.pm
No Id found for hbw_lc_sw8.pm
No Id found for hmw_central.pm
No Id found for hmw_generic.pm
No Id found for hmw_io_4_fm.pm
No Id found for hmw_io_4_fm_V3_02.pm
No Id found for hmw_io_sr_fm.pm
No Id found for hmw_lc_bl1_dr.pm
No Id found for hmw_lc_bl1_dr_V3_02.pm
No Id found for hmw_lc_dim1l_dr.pm
No Id found for hmw_lc_sw2_dr.pm
No Id found for hmw_lc_sw2_dr_V3_02.pm
HttpUtils.pm             13084 2017-01-15 12:59:16Z rudolfkoenig
No Id found for PeeringManager.pm
RTypes.pm                10476 2016-01-12 21:03:33Z borisneubert
SetExtensions.pm         12935 2017-01-02 19:51:46Z rudolfkoenig
TcpServerUtils.pm        11908 2016-08-06 15:09:55Z rudolfkoenig
No Id found for Util.pm


oder

D-deviceKey  HBW_LC_BL4
D-fwVersion 3.06
D-serialNr HBW7296259
R-central_address  00000001
R-logging_time  2.00
configStatus OK
state ACK

Und

D-deviceKey  HMW_LC_BL1_DR
D-fwVersion  3.06
D-serialNr  HBW4073471
R-central_address  00000001
R-logging_time  2.00
configStatus  OK
state ACK

Danke und Gruß
Arthur

Thorsten Pferdekaemper

Hi,
ok, Deine HM485-Version ist die neuste die es gibt.
Mit "list" habe ich den FHEM-Befehl "list" gemeint. Also z.B. "list HBW_LC_Bl4_HBW7296259" in das Kommando-Feld eingeben und das Ergebnis in Deine Antwort kopieren. Bitte in Code-Tags, sonst wird das etwas grausam zu lesen. Code-Tags macht man mit der "#"-Taste über dem Text-Eingabefeld im Forum.
Gruß,
   Thorsten

FUIP

aperoap

Hi,

danke für die Infos, also noch mal die Liste, dieses mal Richtig :)

Internals:
   CFGFN
   DEF        42000003
   FailedConfigReads 0
   IODev      hm485
   NAME       HBW_LC_Bl4_HBW7296259
   NR         29
   RawDeviceType 130
   RawFwVersion 774
   STATE      ACK
   TYPE       HM485
   channel_01 HBW_LC_Bl4_HBW7296259_01
   channel_02 HBW_LC_Bl4_HBW7296259_02
   channel_03 HBW_LC_Bl4_HBW7296259_03
   channel_04 HBW_LC_Bl4_HBW7296259_04
   Readings:
     2017-12-08 15   D-deviceKey     HBW_LC_BL4
     2017-12-08 15   D-fwVersion     3.06
     2017-12-08 15   D-serialNr      HBW7296259
     2017-12-08 15   R-central_address 00000001
     2017-12-08 15   R-logging_time  2.00
     2017-12-08 15   configStatus    OK
     2017-12-08 15   state           ACK
   Cache:
     sets       Unknown argument ?, choose one of  config getConfig raw reset
     01:
       allowedSets level on off up down stop inhibit install_test
       sets       Unknown argument ?, choose one of  config down inhibit install_test level off on peer stop up  on-till-overnight blink off-for-timer on-till on-for-timer off-till intervals off-till-overnight
       peeredChannels:
     02:
       allowedSets level on off up down stop inhibit install_test
       sets       Unknown argument ?, choose one of  config down inhibit install_test level off on peer stop up  off-till on-for-timer off-till-overnight intervals blink on-till-overnight on-till off-for-timer
       peeredChannels:
     03:
       allowedSets level on off up down stop inhibit install_test
       sets       Unknown argument ?, choose one of  config down inhibit install_test level off on peer stop up  blink on-till-overnight on-till off-for-timer off-till on-for-timer off-till-overnight intervals
       peeredChannels:
     04:
       allowedSets level on off up down stop inhibit install_test
       sets       Unknown argument ?, choose one of  config down inhibit install_test level off on peer stop up  on-till off-for-timer blink on-till-overnight off-till-overnight intervals off-till on-for-timer
       peeredChannels:
     Linkparams:
       Actuator:
       Sensor:
         channels   01 02 03 04
         peer_param sensor
     Peers:
       Actuators:
       Sensors:
Attributes:
   IODev      hm485
   room       HM485

und
Internals:
   CFGFN
   DEF        42FFFFFF
   FailedConfigReads 0
   IODev      hm485
   NAME       HMW_LC_Bl1_DR_HBW4073471
   NR         43
   RawDeviceType 21
   RawFwVersion 774
   STATE      ACK
   TYPE       HM485
   channel_01 HMW_LC_Bl1_DR_HBW4073471_01
   channel_02 HMW_LC_Bl1_DR_HBW4073471_02
   channel_03 HMW_LC_Bl1_DR_HBW4073471_03
   Readings:
     2017-12-08 15   D-deviceKey     HMW_LC_BL1_DR
     2017-12-08 15   D-fwVersion     3.06
     2017-12-08 15   D-serialNr      HBW4073471
     2017-12-08 15   R-central_address 00000001
     2017-12-08 15   R-logging_time  2.00
     2017-12-08 15   configStatus    OK
     2017-12-08 15   state           ACK
   Cache:
     sets       Unknown argument ?, choose one of  config getConfig raw reset
     01:
       allowedSets press_short press_long
       sets       Unknown argument ?, choose one of  config peer press_long press_short
       peeredChannels:
     02:
       allowedSets press_short press_long
       sets       Unknown argument ?, choose one of  config peer press_long press_short
       peeredChannels:
     03:
       allowedSets level on off up down stop inhibit install_test
       sets       Unknown argument ?, choose one of  config down inhibit install_test level off on peer stop up  intervals off-till-overnight on-for-timer off-till off-for-timer on-till on-till-overnight blink
       peeredChannels:
     Linkparams:
       Actuator:
         address_start 854
         address_step 6
         channel_param channel
         channels   01 02
         count      28
         peer_param actuator
         type       link
         parameter:
           HASH(0x26577f8)
           HASH(0x2657b18)
       Sensor:
         address_start 18
         address_step 38
         channel_param channel
         channels   03
         count      22
         peer_param sensor
         type       link
         parameter:
           HASH(0x26404d0)
           HASH(0x26407a0)
           HASH(0x26409b0)
           HASH(0x2640c98)
           HASH(0x2640f50)
           HASH(0x26412e8)
           HASH(0x26415a0)
           HASH(0x2641858)
           HASH(0x2641ab0)
           HASH(0x2641d20)
           HASH(0x26420f8)
           HASH(0x2646b10)
           HASH(0x2646f60)
           HASH(0x26473b0)
           HASH(0x26476c8)
           HASH(0x2648c80)
           HASH(0x2649208)
           HASH(0x2649790)
           HASH(0x2649d38)
           HASH(0x264a2c0)
           HASH(0x264a848)
           HASH(0x264bde8)
           HASH(0x264c370)
           HASH(0x264c628)
           HASH(0x264c900)
           HASH(0x264cc78)
           HASH(0x264cf30)
           HASH(0x264d0e0)
           HASH(0x264d398)
           HASH(0x264d5f0)
           HASH(0x264d860)
           HASH(0x264dc58)
           HASH(0x264e030)
           HASH(0x264e480)
           HASH(0x264f8e8)
           HASH(0x264fc00)
           HASH(0x26501a0)
           HASH(0x2650728)
           HASH(0x2650cd0)
           HASH(0x2651258)
           HASH(0x26517e0)
           HASH(0x2651d88)
           HASH(0x2652310)
           HASH(0x26528b8)
     Peers:
       Actuators:
       Sensors:
Attributes:
   IODev      hm485
   room       HM485


ich hoffe ist richtig jetzt.

Gruß
Arthur

Thorsten Pferdekaemper

Hi,
das sieht soweit alles ok aus. Momentan vermute ich eher, dass es an der Arduino-Seite liegt. In dem Beitrag hier sagt Markus selbst, dass die Anzeige der Position nicht unbedingt stimmt:
https://forum.fhem.de/index.php/topic,22952.msg449429.html#msg449429
...und darauf folgende Beiträge.
Ich habe mal kurz die Sourcen (von Markus) überflogen und zumindest beim HMW-LC-Bl1-DR festgestellt, dass nicht die tatsächliche Position (bzw. das, was das Gerät dafür hält), sondern die letzte Soll-Position geliefert wird.
Um das alles auseinanderzudröseln fehlt mir die Zeit und auch irgendwie die Motivation, da man die Dinger ja einfach kaufen kann.
Gruß,
    Thorsten
FUIP

aperoap

Hallo Thorsten,

den Beitrag von Markus habe ich auch gelesen. Hab mich daher auf auf HBW_LC_BL4 konzentriert. Es funktioniert bei HBW_LC_BL4 wirklich gut. Nur halt dass die Position, nachdem die erreicht ist auf 0 springt und erst bei Neustart wieder angezeigt richtig wird. Vielleicht kann das jemand, der sich mit dem XML oder Arduino Sketch aussehender gesetzt hat, den kleinen Bug erkennen.


Kaufe ist natürlich auch eine Option, werde ich auch machen müssen wenn es nicht funktioniert. Benötige halt 18 Stück (Rolläden und Leinwand) da kommt man auf eine stolze Summe, wäre schön wenn es so gelöst werden könnte.

Gruß
Arthur

aperoap

#7
Hi,
hab jetzt mit HBW_LC_BL4 bisschen ausprobiert. Wenn ich z.B. den Wert auf 10% einstelle, schaltet der Arduino die Relais an und wartet die Sek. ab. in der Wartezeit wird von FHEM 10% angezeigt. Ist die Zeit erreicht, fällt der Wert wieder auf 0.
wenn ich mit Raw die Sensorzustand abbfrage "5300" also bekommen ich das die 10% wieder abgelesen und wieder korrekt angezeigt. Logfile seht wie folgt aus.
2017-12-09_09:39:09 HBW_LC_Bl4_HBW7296259_01 direction: none
2017-12-09_09:39:09 HBW_LC_Bl4_HBW7296259_01 level: 0
2017-12-09_09:39:09 HBW_LC_Bl4_HBW7296259_01 working: off
2017-12-09_09:39:09 HBW_LC_Bl4_HBW7296259_01 level_0
2017-12-09_09:42:33 HBW_LC_Bl4_HBW7296259_01 working: off
2017-12-09_09:42:33 HBW_LC_Bl4_HBW7296259_01 level: 10
2017-12-09_09:42:33 HBW_LC_Bl4_HBW7296259_01 direction: none
2017-12-09_09:42:33 HBW_LC_Bl4_HBW7296259_01 level_10


gibt es eine Möglichkeit das Ablesen nach jeder Aktion automatisiert abzufragen, z.B. in xml einbauen oder in pm Datei?
Gruß
Arthur

aperoap

Hi,

ich habe in Arduino Sketch noch weiter gesucht. hab das Problem gefunden. Die Übermittlung von Arduino auf FHEM funktioniert nicht.
wenn ich im Sketch folgendes rausnehme
hmwmodule->sendInfoMessage(channel, blindPositionActual[channel], 0xFFFFFFFF);

werden die Positionen nicht mehr von Arduino aktualisiert bleiben die letzten aktuellen Positionen. Das funktioniert ist aber keine elegante Lösung.
kennt sich jemand damit aus?

Gruß
Arthur

Thorsten Pferdekaemper

Hi,
versuch mal die Zeile hiermit zu ersetzen:

hmwmodule->sendInfoMessage(channel, 256 * blindPositionActual[channel], 0xFFFFFFFF);

Gruß,
   Thorsten
FUIP

aperoap

Hi Thorsten,

hmwmodule->sendInfoMessage(channel, 256 * blindPositionActual[channel], 0xFFFFFFFF); hat immer die helfe angezeigt als ich eingestellt habe, habe einfach das doppelte genommen also
hmwmodule->sendInfoMessage(channel, 512 * blindPositionActual[channel], 0xFFFFFFFF);
und siehe mal da, es FUNKTIONIERT perfekt  :D

Thorsten vielllllleeeeeennnnnnnn Dank,
:)

soll das irgendwo vermerkt werden für die anderen?

Gruß
Arthur

aperoap

Hi Thorsten,
könntest du bitte vielleicht noch Mal kurz erklären warum das funktioniert?
Gruß
Arthur

Thorsten Pferdekaemper

Ja, kann ich. Jetzt bin ich aber erstmal im Krankenhaus. Vorhofflimmern... Ganz schön blöd sowas.
FUIP

aperoap

Oh je, hoffe es geht dir bald besser. Hab gerade gelesen, dass es durch Therapien gut unter Kontrolle bekommt.
Gute Besserung und bis bald.

Thorsten Pferdekaemper

Zitat von: aperoap am 09 Dezember 2017, 21:38:57
könntest du bitte vielleicht noch Mal kurz erklären warum das funktioniert?
Aaaaalso: Die Methode sendInfoMessage kann (in dieser Version) nur "unsigned int", also einen 2-Byte Wert. (Ich weiß, dass in C++ "unsigned int" nicht immer 2 Byte sind, hier aber schon.) Dieser 2-byte-Wert wird als so genannte Info-Message auf den Bus geschickt. Dabei wird das High-Byte zuerst geschickt. Dummerweise ist laut Gerätebeschreibungsdatei (XML-Datei) das erste Byte dasjenige welche... Wenn man einfach nur ein Byte schickt, dann ist das High-Byte sozusagen immer 0. Also muss man es erstmal nach oben schieben, also mit 256 multiplizieren. (Vielleicht wäre ein verschieben um 8 Bit besser...)
Man braucht dann nochmal "mal 2", weil Prozentwerte von 0 bis 200 gehen und dann in FHEM sozusagen durch 200 geteilt werden. Dadurch kann man auch halbe Prozent darstellen.

Zitat von: aperoap am 10 Dezember 2017, 13:06:09
Oh je, hoffe es geht dir bald besser. Hab gerade gelesen, dass es durch Therapien gut unter Kontrolle bekommt.
Gute Besserung und bis bald.
Geht momentan schon viel besser. Flimmern ist weg, jetzt kommt eine ganze Reihe Tests und dann wird sich zeigen wo das Problem liegt oder auch nicht. Wahrscheinlich wird's dann auf Betablocker hinauslaufen.

Gruß,
   Thorsten

 
FUIP