Ankündigung

Einklappen
Keine Ankündigung bisher.

Helios KWL 200 Pro per USB RS485 Adapter steuern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • manu241
    antwortet
    Hallo Tom Bombadil,

    ist deine Ansicht ein fertiges Widget (Page) oder hast du es dir selber gebastelt ?
    Würdest du es sonst zur Verfügung stellen ?

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Hallo Johannes,

    da kauen wir grad zeitgleich am selben Problem rum - ich habe als einfachstes Beispiel Ein-/Aus der Anlage mit basic_flip genommen. Melde mich, sobald ich irgendwelche Ergebnisse hab ...

    /tom

    [Edit]

    So, Ein//Aus klappt bei mir mit folgender /usr/home/smarthome/items/items.conf (der Fehler war, dass ich komischerweise die gleiche Datei noch im etc-Verzeichnis zu liegen hatte und diese bearbeitet hab, keine Ahnung, wo die herkam):

    Code:
     [ventilation]
      [[power_state]]
        type = num
        helios_var = power_state 
        #visu=yes
        visu=rw
        visu_acl=rw
    Allerdings schaltet sich die Fernbedienung nicht wieder von selbst ein, sondern nur die Anlage selbst. Hatte von diesem Effekt schon in einem anderen Forum gelesen, wahrscheinlich braucht es dafür noch mal ein extra Steuerkommando.

    Lüfterstufen schalten geht auch. Quick&Dirty-Code zum Ausprobieren in meiner index.html:

    Code:
     ({{basic.value('helios_lueftermin', 'ventilation.min_fanspeed')}}...{{basic.value('helios_lueftermax', 'ventilation.max_fanspeed')}})
    <br />
    {{ basic.button('kwl-stufe-1', 'ventilation.fanspeed', '1', '', 1, 'micro') }} 
    {{ basic.button('kwl-stufe-2', 'ventilation.fanspeed', '2', '', 2, 'micro') }} 
    {{ basic.button('kwl-stufe-3', 'ventilation.fanspeed', '3', '', 3, 'micro') }}
    {{ basic.button('kwl-stufe-4', 'ventilation.fanspeed', '4', '', 4, 'micro') }}
    {{ basic.button('kwl-stufe-5', 'ventilation.fanspeed', '5', '', 5, 'micro') }}
    {{ basic.button('kwl-stufe-6', 'ventilation.fanspeed', '6', '', 6, 'micro') }}
    {{ basic.button('kwl-stufe-7', 'ventilation.fanspeed', '7', '', 7, 'micro') }}
    {{ basic.button('kwl-stufe-8', 'ventilation.fanspeed', '8', '', 8, 'micro') }}
    items.conf für fanspeed wie oben bei power_state.

    Viele Grüße,
    /tom

    Einen Kommentar schreiben:


  • jes
    antwortet
    Heute ist der neue Digitus DA-70157 angekommen und siehe da:
    A+B und GND angeschlossen und schon klappt das Lesen der Werte wunderbar

    Nun versuche ich mich am Schreiben der Werte. Wollte zum Testen die Lüfterstufe verstellen und habe mir einen Basic Button definiert:
    Code:
    {{ basic.button('up', 'ventilation.fanspeed', 'arrow-u', 7) }}
    Items Conf:
    Code:
    [ventilation]
        [[fanspeed]]
            type = num
            helios_var = fanspeed 
            visu=yes
    	enforce_updates = yes
    	visu_acl = rw
    Wenn ich den Button drücke, sehe ich an der original Fernbedienung, dass sich die Lüfterstufe nicht verstellt hat.
    Gibt es beim Schreiben der Werte Besonderheiten, die es zu beachten gibt?
    Hat jemand ggf. ein Beispiel für die Definition in der Page und der Items?

    Danke vorab & Grüße,
    Johannes

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Danke für die Info - die Schnittstellenbeschreibung der Vallox hab ich schon in meinem Sammelsurium an Dokumenten abgelegt. Irgendwann stößt man zwangsläufig darauf, dass zumindest Kommunikationsseitig die Helios und die Vallox baugleich sind.

    Der Digitus läuft hier nach anfänglichen Zicken problemlos (siehe Anlage - noch ein bisschen durcheinander, aber bin ja noch am Anfang). Nur A+B sind geklemmt. Habe aber bereits von mehreren gehört, dass das nicht immer so sein muss.

    Vielleicht hängt es auch mit der USB-Schnittstelle zusammen. Habe in einem anderen Forum (https://wiki.openjdk.java.net/display/OpenJFX/OpenJFX+on+the+Raspberry+Pi) das hier gefunden:

    If you run into problems with input events being dropped, you should try reducing the USB bus speed. You need recent firmware to do this, so first you should update firmware:

    sudoapt-get update
    sudoapt-get installraspberrypi-bootloader --reinstall

    Then open /boot/cmdline.txt in an editor and add on the same line as the other options dwc_otg.speed=1. Run sudo sync and reboot. This drops USB speeds from 480Mbits/s to 12Mbits/s, which is known to resolve issues with a variety of USB devices on the Raspberry Pi.
    Aber läuft hier wie gesagt auch ohne diese Einstellungen.

    /tom
    Angehängte Dateien

    Einen Kommentar schreiben:


  • marsellus
    antwortet
    Hallo,

    ja das ist der Adapter, der bei mir funktioniert. Du mußt A/B (Datenleitungen) und Masse/Ground anschließen.
    Der hier erwähnte Digitus DA-70157 hat bei mir z.B. definitiv nicht funktioniert - warum auch immer.

    @Tom Bombadil: Suche mal hier im Forum nach Vallox RS485 Schnittstellenbeschreibung...in dem Thread gibt's ein PDF in dem mMn die meisten Werte drin sein müßten. Die Protokollbeschreibung war auch Basis für die Implementierung des Helios Plugins.

    /Marcel

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Zitat von jes Beitrag anzeigen
    Vom Dachboden geht eine grüne EIB Leitung bis in den Keller (~20m Länge).
    Hierdran hängt die originale Fernbedienung. An die gleiche Leitung habe ich im Keller per Wago EIB Klemme den USB RS485 Adapter gehangen.
    Ich gehe mal davon aus, dass auf der anderen Seite der Leitung nicht zufällig noch irgendein KNX-Aktor auf dem gleichen Bus rumfunkt?

    Evtl. liegt's an Qualität / Länge / Abschirmung der Busleitung und/oder am Abschlußwiderstand im verwendeten Adapter (siehe auch: RS-485 - Wikipedia, the free encyclopedia). Je länger die Leitung, desto wichtiger sind Abschirmung, Abschlusswiderstand und gut verdrillte Leitungen.

    Weiterhin würde ich mal mit dem stty-Befehl die Baudrate des seriellen Anschlusses fest einstellen (9600):

    stty -F /dev/ttyUSB0 9600 bzw. bei Dir stty -F /dev/ttyAMA0 9600.

    Habe seit 2 Wochen smarthome.py / smartVISU auf einen Raspi mit Digitus DA-70157 an einer EC300PRO stabil 24/7 am Laufen. Zur Zeit nur lesend - erste Schreibbefehle will ich dieses Wochenende ausprobieren.

    Dauer der Einrichtung auf einem nackten Raspbian (dass es ein fertiges Image gibt, habe ich erst später rausbekommen): ca. 3 Abende. Lag aber eher an mir, da sowohl meine Elektronikerausbildung als auch meine früher mal mal recht soliden UNIX-Kenntnisse aus dem letzten Jahrtausend stammen. Die Infos in diesem Thread haben mir letztendlich geholfen, die KWL "anzudocken" (nochmal danke dafür!).

    Was mich jetzt noch brennend interessiert - hat jemand eine vollständige Beschreibung der Register der KWL ECxxxPRO?

    Aus der Doku des EIB-Moduls (liegt zur Zeit noch hier rum) entnehme ich, dass dieses deutlich mehr als nur die 6 oder 7 hier dargestellten Werte über den KWL-seitigen RS485 lesen/schreiben kann. Auch die Standard-Fernsteuerung regelt ja alles über den 485. Also muss da ja noch mehr drin sein.

    Bevor ich jetzt also den "Packet sniffer" raushole und mühsam die Kommandos über try-and-error ermittele - gibt es da schon was fertiges?

    Viele Grüße,
    /tom

    Einen Kommentar schreiben:


  • jes
    antwortet
    Welchen Adapter nutzt du denn?
    Ist es der hier:
    http://www.exsys.ch/download/manuals/EX-1303.pdf

    Hattet in einem alten Thread von dir EX-1303 gelesen.
    Hast du den 9-poligen Stecker dann einfach an A und B angeschlossen?

    Einen Kommentar schreiben:


  • marsellus
    antwortet
    Bei mir lag es am Anfang auch an einem nicht sauber funktionierenden USB-Adapter. Hat sich Software-seitig so geäußert, dass kontinuierlich Daten über die serielle Schnittste reinkamen...eigentlich sollten nur sporadisch Daten übertragen werden, da die Helios regelmäßig ihren Status auf den Bus schickt.
    Würde es nochmal mit einem anderen Adapter probieren.

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi,

    habe heute Morgen mal die komplette Fernbedienung abgeklemmt und nur den USB Konverter an A+B angeschlossen direkt am Gerät ( <1m Leitungslänge).
    Dann per Konsole das Script ein paar mal manuell aufgerufen.
    Ich erhalte immer noch in 95% der Fälle ungültige Werte im Debug Log:
    Code:
    2014-10-04 08:58:50,256 - root - DEBUG - Helios: Reading value: inside_temp
    2014-10-04 08:58:50,344 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x34 0x75 '
    2014-10-04 08:58:51,350 - root - ERROR - Helios: No valid value for 'inside_temp' from ventilation system received.
    inside_temp = None
    2014-10-04 08:58:51,355 - root - DEBUG - Helios: Reading value: incoming_temp
    2014-10-04 08:58:51,443 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x35 0x76 '
    2014-10-04 08:58:52,449 - root - ERROR - Helios: No valid value for 'incoming_temp' from ventilation system received.
    incoming_temp = None
    2014-10-04 08:58:52,455 - root - DEBUG - Helios: Reading value: bypass_temp
    2014-10-04 08:58:52,546 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xaf 0xf0 '
    2014-10-04 08:58:52,568 - root - DEBUG - Telegram received '0x1 0x11 0x2f 0xaf 0x92 0x82 '
    2014-10-04 08:58:52,572 - root - DEBUG - Helios: Value received (raw data): bypass_temp = 0x92
    2014-10-04 08:58:52,576 - root - DEBUG - Helios: Value received (converted): bypass_temp = 15
    bypass_temp = 15
    2014-10-04 08:58:52,581 - root - DEBUG - Helios: Reading value: power_state
    2014-10-04 08:58:52,669 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xa3 0xe4 '
    2014-10-04 08:58:52,692 - root - DEBUG - Telegram received '0x1 0x11 0x2f 0xa3 0x81 0x65 '
    2014-10-04 08:58:52,696 - root - DEBUG - Helios: Value received (raw data): power_state = 0x81
    2014-10-04 08:58:52,700 - root - DEBUG - Helios: Value received (converted): power_state = 1
    power_state = 1
    2014-10-04 08:58:52,706 - root - DEBUG - Helios: Reading value: exhaust_temp
    2014-10-04 08:58:52,793 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x33 0x74 '
    2014-10-04 08:58:53,799 - root - ERROR - Helios: No valid value for 'exhaust_temp' from ventilation system received.
    exhaust_temp = None
    Sporadisch kommen aber auch korrekte Werte an (s.o.).
    Welche Werte korrekt gelesen werden können, scheint aber eher Zufall zu sein, da es von Aufruf zu Aufruf andere Werte sind.

    Was könnte ich nun noch ausprobieren:
    • Im Coding die Waiting Time von 7ms habe ich schon "hoch und runter" gesetzt --> keine Besserung
    • Wie könnte ich feststellen, ob der USB Adapter eine Macke hat? --> Die normale Fernbedienung arbeitet bisher einwandfrei
    • --> Woran könnte es noch liegen?

    Viele Grüße,
    Johannes

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi,

    gerade ausprobiert. Anbei die Ausgabe der Bash.
    Sieht so aus, dass einige Telegramme nicht korrekt zurückkommem

    Grüße,
    Johannes

    root@smarthome.local:helios# python3 ./__init__.py -d -t /dev/ttyUSB0
    2014-09-25 19:32:40,236 - root - DEBUG - Helios: Connecting...
    2014-09-25 19:32:40,255 - root - DEBUG - Helios: Reading value: bypass_disabled
    2014-09-25 19:32:40,757 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xa3 0xe4 '
    2014-09-25 19:32:41,953 - root - ERROR - Helios: No valid value for 'bypass_disabled' from ventilation system received.
    bypass_disabled = None
    2014-09-25 19:32:41,971 - root - DEBUG - Helios: Reading value: max_fanspeed
    2014-09-25 19:32:42,057 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xa5 0xe6 '
    2014-09-25 19:32:43,235 - root - ERROR - Helios: No valid value for 'max_fanspeed' from ventilation system received.
    max_fanspeed = None
    2014-09-25 19:32:43,252 - root - DEBUG - Helios: Reading value: inside_temp
    2014-09-25 19:32:43,330 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x34 0x75 '
    2014-09-25 19:32:44,343 - root - ERROR - Helios: No valid value for 'inside_temp' from ventilation system received.
    inside_temp = None
    2014-09-25 19:32:44,362 - root - DEBUG - Helios: Reading value: incoming_temp
    2014-09-25 19:32:44,440 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x35 0x76 '
    2014-09-25 19:32:44,470 - root - DEBUG - Telegram received '0x1 0x11 0x2f 0x35 0x9d 0x13 '
    2014-09-25 19:32:44,482 - root - DEBUG - Helios: Value received (raw data): incoming_temp = 0x9d
    2014-09-25 19:32:44,486 - root - DEBUG - Helios: Value received (converted): incoming_temp = 19
    incoming_temp = 19
    2014-09-25 19:32:44,502 - root - DEBUG - Helios: Reading value: bypass_temp
    2014-09-25 19:32:44,579 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xaf 0xf0 '
    2014-09-25 19:32:45,585 - root - ERROR - Helios: No valid value for 'bypass_temp' from ventilation system received.
    bypass_temp = None
    2014-09-25 19:32:45,602 - root - DEBUG - Helios: Reading value: power_state
    2014-09-25 19:32:45,684 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xa3 0xe4 '
    2014-09-25 19:32:46,867 - root - ERROR - Helios: No valid value for 'power_state' from ventilation system received.
    power_state = None
    2014-09-25 19:32:46,878 - root - DEBUG - Helios: Reading value: exhaust_temp
    2014-09-25 19:32:46,961 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x33 0x74 '
    2014-09-25 19:32:46,990 - root - DEBUG - Telegram received '0x1 0x11 0x2f 0x33 0x9d 0x11 '
    2014-09-25 19:32:47,004 - root - DEBUG - Helios: Value received (raw data): exhaust_temp = 0x9d
    2014-09-25 19:32:47,007 - root - DEBUG - Helios: Value received (converted): exhaust_temp = 19
    exhaust_temp = 19
    2014-09-25 19:32:47,013 - root - DEBUG - Helios: Reading value: fanspeed
    2014-09-25 19:32:47,096 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x29 0x6a '
    2014-09-25 19:32:48,402 - root - ERROR - Helios: No valid value for 'fanspeed' from ventilation system received.
    fanspeed = None
    2014-09-25 19:32:48,411 - root - DEBUG - Helios: Reading value: min_fanspeed
    2014-09-25 19:32:48,493 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0xa9 0xea '
    2014-09-25 19:32:49,733 - root - ERROR - Helios: No valid value for 'min_fanspeed' from ventilation system received.
    min_fanspeed = None
    2014-09-25 19:32:49,751 - root - DEBUG - Helios: Reading value: outside_temp
    2014-09-25 19:32:49,829 - root - DEBUG - Helios: Sending telegram '0x1 0x2f 0x11 0x0 0x32 0x73 '
    2014-09-25 19:32:50,945 - root - ERROR - Helios: No valid value for 'outside_temp' from ventilation system received.
    outside_temp = None
    2014-09-25 19:32:50,961 - root - DEBUG - HeliosBase: Disconnecting...

    Einen Kommentar schreiben:


  • marsellus
    antwortet
    Hi,

    sieht auf den ersten Blick nicht verkehrt aus.
    Hast du mal das Plugin direkt in der Shell aufgerufen?
    Im helios Verzeichnis sollte das so gehen:
    python3 ./__init__.py -d -t /dev/ttyUSB0

    /Marcel

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi,

    dmesg | grep tty bringt Folgendes zurück:

    Code:
    admin@smarthome:/usr/smarthome$ dmesg | grep tty
    [    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=656 b                                      cm2708_fb.fbheight=416 bcm2708.boardrev=0xe bcm2708.serial=0x286a3f18 smsc95xx.m                                      acaddr=B8:27:EB:6A:3F:18 sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base                                      =0x1ec00000 vc_mem.mem_size=0x20000000  dwc_otg.lpm_enable=0 console=tty1 root=/                                      dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    [    0.000000] console [tty1] enabled
    [    0.584011] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
    [    3.957610] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
    admin@smarthome:/usr/smarthome$ ^C
    admin@smarthome:/usr/smarthome$
    Der Adapter scheint korrekt auf ttyUSB0 zu stehen.
    In der plugin.conf habe ich ihn mit tty = /dev/ttyUSB0 adressiert.
    Das sollte korrekt sein, oder?

    Grüße,
    Johannes

    Einen Kommentar schreiben:


  • marsellus
    antwortet
    Hi,

    du kannst das Plugin auch in der Shell aufrufen.
    Parameter -t um das Device anzugeben und -d für Debugausgaben.

    Wenn gar kein Wert richtig ankommt würde ich eher vermuten, dass du das falsche Device verwendest. Wird dein Adapter vom System erkannt?
    Via "dmesg | grep tty" mal prüfen.

    /Marcel

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi Marcel,

    habe dein neues Script nun geladen und eingebaut. Leider erhalte ich immer die Fehler, dass die Daten nicht korrekt gelesen werden konnten:
    Code:
    2014-09-20 13:53:21 ERROR    Helios       Helios: No valid value for 'bypass_disabled' from ventilation system received.
    2014-09-20 13:53:22 ERROR    Helios       Helios: No valid value for 'max_fanspeed' from ventilation system received.
    2014-09-20 13:53:23 ERROR    Helios       Helios: No valid value for 'inside_temp' from ventilation system received.
    2014-09-20 13:53:24 ERROR    Helios       Helios: No valid value for 'min_fanspeed' from ventilation system received.
    2014-09-20 13:53:26 ERROR    Helios       Helios: No valid value for 'outside_temp' from ventilation system received.
    2014-09-20 13:53:27 ERROR    Helios       Helios: No valid value for 'bypass_temp' from ventilation system received.
    2014-09-20 13:53:28 ERROR    Helios       Helios: No valid value for 'power_state' from ventilation system received.
    2014-09-20 13:53:30 ERROR    Helios       Helios: No valid value for 'fanspeed' from ventilation system received.
    Ich habe eine Helios KWL 200 Pro.
    Vom Dachboden geht eine grüne EIB Leitung bis in den Keller (~20m Länge).
    Hierdran hängt die originale Fernbedienung. An die gleiche Leitung habe ich im Keller per Wago EIB Klemme den USB RS485 Adapter gehangen.
    Kann man den Datenaustausch irgendwie tracen?

    Viele Grüße,
    Johannes

    Einen Kommentar schreiben:


  • jes
    antwortet
    Good news
    Evtl. schaffe ich es heute Abend schon, das neue Script zu testen.
    Am Wochenende dann auf jeden Fall.
    Ich werde dann meine Erfahrungen posten.

    Viele Grüße,
    jes

    Einen Kommentar schreiben:

Lädt...
X