Homematic Wired - Homebrew Devices

Begonnen von Thorsten Pferdekaemper, 27 April 2014, 00:13:17

Vorheriges Thema - Nächstes Thema

StefanGa

Zitat von: Thorsten Pferdekaemper am 10 Februar 2016, 21:54:31
Wozu? Für FHEM braucht man das nicht...
Ansonsten versuch's mal mit dem XML vom Standard-Rollladenaktor und mach aus dem einen Kanal einfach 4.
Gruß,
   Thorsten
Hallo,
noch nutze ich die CCU und dazu brauche ich die xml- Datei.
In diesem Thread hatte ich etwas von der Datei gelesen, sie aber nirgends gefunden.
Wenn es die irgendwo gibt, wäre es super wenn ich die kriegen kann.
Beste Grüße
Stefan

Gesendet von meinem GT-I9300 mit Tapatalk


Maxl

Hallo Stefan,

Zitatich habe gerade den 1 Wire Sensor aufgebaut und zum Laufen gebracht.

mit welcher Version von Arduino und Eclipse hast du das zum Laufen gebracht,
bei mir kommen immer noch eine Menge Fehler und weiß nicht wie ich die weg bekomme.

Gruß
Mario
FHEM auf Raspberry mit HM, HMC und AVR Netios.

StefanGa

Ich habe es mit der Arduino IDE hinbekommen. Dazu muss man die Dateien HMWDebug, HMWModule und HMWRS485 (cpp und h) in einen Ordner kopieren und diesen als Library dem Sketch hinzufügen.
Dann sollten alle Fehler weg sein.
Grüße
Stefan

Gesendet von meinem GT-I9300 mit Tapatalk


Maxl

Noch was,

welche Dateien verwendest du, die aus
https://github.com/kc-GitHub/HM485-Lib/tree/thorsten
oder andere?
Könntest du mir deine HMW-Lib gepackt  einmal zusenden?

Danke
FHEM auf Raspberry mit HM, HMC und AVR Netios.

StefanGa

#349
Hallo,

das hat bei mir auch nicht auf Anhieb geklappt.
War ein bisschen Frickelei.
UND: die Pinbelegung, die im Header der Datei steht, stimmt zum Teil nicht.
Da muss man im Code nachschauen (z.B. für den Taster).

Viel Spaß damit und Dank an die Autoren!

Stefan

Edit:
ACHTUNG in die library muss noch die Softserial.cpp und Softserial.h aus Thorstens library damit es auch am Bus funktioniert.
So, wie es hier ist, lässt es sich zwar kompilieren. In dem Monitor bekommt man aber Fehlermeldungen wie packet size to big.
Dann die Softserial-Dateiuen reinkopiert und dann hat es bei mir funktioniert.

Regmus

Hallo zusammen,

ich habe mich in den letzten Wochen auch mit den Homebrew-Devices beschäftigt.
Nach ein paar Anfangsschwierigkeiten mit der Arduino-IDE Version (mit der neusten Version 1.6.8 schlug die Kompilierung schon fehl) habe ich nun den HBW-Sen-SC8 zum laufen gebracht.
Den "HBW-LC-Bl4" oder den "HBW-LC-Sw8" jedoch leider nicht. Kann zwar den Arduino mit dem Programm bespielen - FHEM erkennt jedoch das Gerät nicht richtig. Es wird zwar etwas am Bus erkannt, aber nicht wie beim HBW-Sen-SC als Gerät mit dem richtigen Namen. Ein autocreate der Kanäle wird dann auch nicht ausgeführt.
Die .pm-Datei habe ich, wie beim HBW-Sen-SC8 auch, in das entsprechende Verzeichnis gelegt. Daran sollte es also eigentlich nicht liegen dürfen...

Hat jemand eine Idee woran das Ganze bei mir scheitern könnte? Gibt es evtl. bekannte Probleme bei der aktuellsten FHEM Version oder ähnliches?
Laufen diese Versionen überhaupt bei jemandem?

Viele Grüße
Michael

Ralf9

Zitat von: Regmus am 06 Mai 2016, 12:49:40
Den "HBW-LC-Bl4" oder den "HBW-LC-Sw8" jedoch leider nicht. Kann zwar den Arduino mit dem Programm bespielen - FHEM erkennt jedoch das Gerät nicht richtig. Es wird zwar etwas am Bus erkannt, aber nicht wie beim HBW-Sen-SC als Gerät mit dem richtigen Namen. Ein autocreate der Kanäle wird dann auch nicht ausgeführt.
Die .pm-Datei habe ich, wie beim HBW-Sen-SC8 auch, in das entsprechende Verzeichnis gelegt. Daran sollte es also eigentlich nicht liegen dürfen...

Hat jemand eine Idee woran das Ganze bei mir scheitern könnte? Gibt es evtl. bekannte Probleme bei der aktuellsten FHEM Version oder ähnliches?
Laufen diese Versionen überhaupt bei jemandem?

Ja, das ist mir auch schon aufgefallen, daß nicht mehr alle Homebrew-Devices  funktionieren.
Dies dürfte damit zusammenhängen:
<device>.pm geändert: Options sind jetzt Arrays. ...und einiges mehr
committed on 2 Aug 2015

https://github.com/kc-GitHub/FHEM-HM485/commit/7251e5a97888e2026db9ec94a9d1c983d8d7af82

Es wird wahrscheinlich die Homebrew-Devices betreffen, deren <device>.pm option-Felder enthalten. Diese <device>.pm files müssten angepasst werden, damit es wieder funktioniert.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Thorsten Pferdekaemper

Hi,
im Prinzip ist es so gedacht, dass man sich die XML-Dateien zusammenbastelt und dann per Programm in die pm-Dateien umwandelt.
Ich schau mir das mal für die zwei Devices genauer an und melde mich wieder.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,
hier angehängt ist die XML- und pm-Datei für den HBW-LC-Bl4. Das sieht zumindest in FHEM ganz vernünftig aus, ich habe allerdings nicht ausprobiert, ob das Device auch tatsächlich korrekt funktioniert.
Die XML-Datei müsste eigentlich stabil bleiben. Die pm-Datei kann man nachgenerieren. In einer typischen RasPi-FHEM-Installation geht das so:

cd /opt/fhem/FHEM/lib/HM485/helper
./xmlHelper.pl -inputFile ../Devices/xml/hbw_lc_bl4.xml -outputPath ../Devices

Gruß,
   Thorsten
FUIP

MarkusO

Hallo zusammen,

dass die pm-Files nicht mehr mit der neusten FHEM-Version laufen, hatte ich vor einiger Zeit auch schon festgestellt. Für die meisten HBW-Module habe ich mittlerweile neue pm-Files erstellt und auch noch ein paar Kleinigkeiten geändert. Wegen dem Stress beim Hausbau bin ich bisher allerdings noch nicht dazu gekommen, alles zu dokumentieren und bei Github online zu stellen. Dafür sind die Module jetzt einigermaßen getestet.

Die Bezeichnung für das Modul mit den Tastereingängen habe ich übrigens geändert, hier nochmal die Übersicht, welches Modul was macht:
HBW-LC-Bl4 (Bl=Blind) - Rollo-Steuerung
HBW-LC-Sw8 (Sw=Switch) - Schaltausgang, z.B. zur Relais-Ansteuerung
HBW-PB-12 (PB=Pushbutton) - Tastereingänge (vorher HBW-Sen-SC8)
HBW-Sen-SC12 (SC=Shutter Contact) - Fensterkontakte (neu)
HBW-Sen-EP (EP=Electric Pulse) - Impulse, z.B. vom Windmesser


Bei der Inbetriebnahme der Raffstores bin ich jetzt noch auf ein Problem gestoßen. Die Module verstehen den Toggle-Befehl 0xFF. Mit einer älteren Version von FHEM war es möglich, den Toggle-Befehl in FHEM zu konfigurieren:
attr R_Wohnzimmer eventMap /level 0:auf/level 100:ab/level 127.5:toggle/
Mit der Version 5.7 funktioniert das nicht mehr (vielleicht weil der Bereich "Level" nur 0 bis 100 annehmen kann?).

Kennt jemand eine Möglichkeit, solche Befehle in FHEM zu konfigurieren? Notlösung wäre ein RAW-Command über das Bus-Interface - ist aber keine besonders schöne Lösung...

Viele Grüße
Markus


Thorsten Pferdekaemper

Zitat von: MarkusO am 07 Mai 2016, 22:06:01
Bei der Inbetriebnahme der Raffstores bin ich jetzt noch auf ein Problem gestoßen. Die Module verstehen den Toggle-Befehl 0xFF. Mit einer älteren Version von FHEM war es möglich, den Toggle-Befehl in FHEM zu konfigurieren:
attr R_Wohnzimmer eventMap /level 0:auf/level 100:ab/level 127.5:toggle/
Mit der Version 5.7 funktioniert das nicht mehr (vielleicht weil der Bereich "Level" nur 0 bis 100 annehmen kann?).

Kennt jemand eine Möglichkeit, solche Befehle in FHEM zu konfigurieren? Notlösung wäre ein RAW-Command über das Bus-Interface - ist aber keine besonders schöne Lösung...
Hi,
"toggle" sollte man im XML-File definieren. (Bzw. im zugehoerigen .pm.) Schau Dir das mal z.B. im XML-File (oder .pm-File) zum HMW-LC-Sw2-DR an. Ich wollte das hier mit reinhaengen, habe aber meinen Laptop nicht dabei und habe keinen Zugriff auf den Kram. Wenn das Toggle entsprechend definiert ist (halt mit 255 statt 201), dann sollte es in FHEM direkt die Moeglichkeit geben, ein "set <channel> toggle" zu machen.
Gruss,
   Thorsten
FUIP

MarkusO

Hi,
danke für den Hinweis. Das mit der Anpassung im pm-File hatte ich auch schon probiert - hat aber zunächst nicht funktioniert. Jetzt habe ich rausgefunden warum nicht:
- die Funktion darf nicht "toggle" heißen. In der Datei 10_HM485.pm wird darauf abgefragt.
} elsif ($cmd eq 'toggle') {
# toggle is a bit special
$msg = HM485_SetToggle($hash);


- die Funktion muss in der Datei Device.pm als mögliches Argument auftauchen:
my %cmdArgs = (
'none' => "noArg",
    'blind.level' => "slider,0,1,100 on:noArg off:noArg up:noArg down:noArg",
    'blind.stop' => "noArg",
                #neue Funktion:
'blind.updown' => "noArg",
    #
                'dimmer.level' => "slider,0,1,100 on:noArg off:noArg",
    'valve.level' => "slider,0,1,100 on:noArg off:noArg",
    'button.long' => "noArg",
    'button.short' => "noArg",
    'digital_analog_output.frequency' => "slider,0,1,50000",
);


Damit funktioniert die Toggle-Funktion und die Raffstores können mit nur einem Tastendruck rauf und runter bewegt werden. Dass man dafür auf die Device.pm anpassen muss, finde ich zwar nicht besonders elegant, aber immerhin läuft es damit.

Viele Grüße
Markus

Thorsten Pferdekaemper

Hi,

das muss ich mir mal genauer anschauen, was leider diese Woche nicht moeglich ist. Es sollte eigentlich so sein, dass was auch immer im XML/pm-File definiert ist auch in FHEM funktionieren sollte. "Historisch bedingt" gibt es leider noch ein paar hart-codierte Sachen, die ich aber loswerden will. Ich habe mir fest vorgenommen, mich bald darum zu kuemmern, kann aber gerade nichts versprechen.

Ich habe zum "toggle" bei Rolloaktoren allerdings noch eine Frage: Was genau tut das eigentlich? Bei einem Schaltaktor ist es klar, da es nur zwei Zustaende gibt. Bei einem Rolloaktor (oder Dimmer) gibt es aber auch etwas wie z.B. "50%". Was macht das "toggle" in dem Fall?

Gruss,
   Thorsten
FUIP

MarkusO

Hi,

die "Toggle"-Funktion ermöglicht es, den Rollo-Aktor mit nur einer Taste zu steuern. Jedes mal wenn als Level 0xFF empfangen wird, ändert sich der Zustand: hoch - stop - runter - stop - hoch - stop - runter ...
Oder anders gesagt, falls das Rollo gerade in Bewegung ist, bewirkt ein Tastendruck einen Stopp. Und falls das Rollo gerade steht, fährt es bei einem Tastendruck in die entgegengesetzte Richtung als beim letzten mal. Vielleicht ist die Bezeichnung "Toggle" nicht ganz glücklich gewählt...

Ich finde das ganz praktisch, weil man zuhause ein paar Tasten sparen kann und auf dem Smartphone nur ein Button pro Rollo notwendig ist und man nicht so schnell daneben drücken kann.

Ich habe übrigens noch einen Bug in der Rollo-Steuerung festgestellt: aktuell werden nur Fahrzeiten bis 65 Sekunden korrekt umgesetzt (wegen dem Datentyp int für die Zeiten = 65535ms). Werde ich demnächst beheben und zusätzlich noch die Funktion "auf Schlitz fahren" (für Raffstores) umsetzen.


Viele Grüße
Markus

StefanGa

Hallo,
da ich noch die CCU nutze, habe ich mal probiert den BL4 Aktor dort anzulernen.
UND es funktioniert. (mit Hilfe der XML-Datei)

Es gibt aber Fehler bei der Übertragung der Position.
Die CCU zeigt mir ein Bug-Symbol an oder die angezeigte Position springt nach einer Weile auf einen anderen Wert.
Habt Ihr mal das Protokoll von einem Originalaktor abgelauscht?
Irgendetwas scheint mit der Positionsübertragung nicht richtig zu funktionieren.

UND Wie funktioniert die Referenzfahrt nach Reset des Aktors?
Was muss ich dafür machen?

Danke
Stefan