Arduino Asksin library

Begonnen von trilu, 06 August 2013, 10:02:17

Vorheriges Thema - Nächstes Thema

trilu

Hallo Zusammen,

In diesem Thread geht es um die Entwicklung einer Arduino Library um mit Homematic Geräten kommunizieren zu können.

Ziel der Library soll es sein, eigene Homematic kompatible Geräte entwickeln zu können, oder bestehende Geräte um Funktionen zu erweitern.
Die Library soll möglichst viele Funktionen des Protokolls abdecken so das man sich auf die eigentliche Funktionalität des Devices konzentrieren kann.
Die Library soll möglichst universell sein, so das man Schalter, Sensoren und Aktuatoren erstellen kann.

Aufbau der Library:
Derzeit besteht die Library aus 3 Teilen:

1. Der Userbereich in "sketch_aug05a.ino" (am 5. August habe ich damit begonnen)
   Hier wird die eigentliche Funktionalität programmiert. Dazu werden alle relevanten Protokollfunktionen zur Verfügung gestellt.

2. Der Registerbereich in "register.h"
   Hier wird das Gerät konfiguriert. Im oberen Bereich werden Dinge wie Seriennummer, HM ID, etc. festgelegt.
   Danach folgt die Registerkonfiguration, also über welche Register das Gerät verfügt und wo diese im EEprom abgelegt sind.
   Recht weit unten gibt es eine Funktion um default Werte ins EEprom zu schreiben (ist nicht schön und ich werde mir da
   auch noch etwas Anderes einfallen lassen)
   Zur Definition der Register arbeitet Martin an einem Perl Script das die Definition sehr einfach macht.

3. Der Library Bereich mit "AskSin.cpp" und "AskSin.h".
   Das ist die eigentliche Library, hier wird alles Protokoll spezifische gesteuert. Im wesentlichen beruht hier alles auf
   einer Poll-Funktion die in der Main Loop im Userbereich aufgerufen wird.
   Register und Konfigurationsanfragen der Zentrale werden von der Library eigenständig beantwortet.
   Commands von der Zentrale und Events von angelernten Peers werden dem Userbereich über einen Jumptable zur
   Verfügung gestellt. Events und Commands können aus dem Userbereich per Funktionsaufruf genutzt werden.

Es gibt auch Dank Rohan bereits ein Wiki: http://www.fhemwiki.de/wiki/HomeMatic_Asksin_Library
Im Wiki findet ihr weitere Infos, verwendete Hardware, etc.

Ich würde mich freuen wenn ich hier möglichst viele Mitstreiter finden könnte. Zum Programmieren, Testen,
Ideen austauschen, Hardware entwickeln, etc...

Die Library kann jeder nutzen und weiter entwickeln solange er seine Ergebnisse der Allgemeinheit wieder zur
Verfügung stellt und keine wirtschaftlichen Nutzen daraus zieht!

Die Library liegt ab sofort hier: https://github.com/trilu2000/AskSin

Viele Grüße und viel Spass beim Testen
Horst


martinp876

Hi,

Anfangen muss man sicher mit der kommunikation und daten-organisation. HM-devices ist weitgehend "identisch"und folgen einem (ziemlich) strikten Muster. Dies sollte (muss) man nachbauen.

Als Ziel stelle ich mir vor eine Platform zu haben in die man einfach eigene Sensoren erstellen kann, mit beliebiger Anzahl Kanäle oder Parameter. Der User kann am "Sensor" die Messwerte in einen Format pressen und diese am User-ende in den Readings wiederfinden und bearbeiten. damit lassen sich evtl einfach und billige temperatur-sensoren verdrahten (onwire kosten nur 1-2€...). Wenn man einen Raum mit Heizung ausmessen will braucht man min 3 Sensoren. Heizung vorlauf/rücklauf und min einen Raumfühler. das addiert sich...

also erst einmal die Grundlagen, dann die Spass-Elemente

Gruß Martin

trilu

Ok, dann fangen wir mal an :-)
Pairen, wie geht das?

Ich vermute mal, das setzen des pairen parameters in FHEM schaltet den CUL in irgendeinen "lausch Modus".
Das drücken des Tasters am HM Device sendet einen String mit DeviceID ins Blaue und lauscht dann auf eine korrekte Antwort.
FHEM empfängt den gesendeten String und schickt die fhemID zurück.

Stimmt das so?
Ach ja, wie lang ist max die DeviceID?
Vielleicht kann Martin hier ein wenig anhand von Beispielen erklären?

Dirk

Hallo trilu,

interesant. Ein ähnliches Projekt hatten wir hier auch vor. Das liegt hier aber schon eine Weile rum. Ggf. könnte man da was zusammen.

Als Funkmodul benutze ich die hier:
http://www.aliexpress.com/item/CC1101-Wireless-Module/452721042.html

Gruß
Dirk

betateilchen

Zitat von: martinp876 schrieb am Di, 06 August 2013 11:12Als Ziel stelle ich mir vor eine Platform zu haben in die man einfach eigene Sensoren erstellen kann, mit beliebiger Anzahl Kanäle oder Parameter.

auja... :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Dirk schrieb am Di, 06 August 2013 13:02Als Funkmodul benutze ich die hier:

433MHz dürfte aber bei Homematic schwierig werden...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Hi betateilchen,

der CC1101 wird per Register auf die passende Frequenz eingestellt.
Zugegeben die Antennenanpassung ist dann nicht optimal, aber hier in der Wohnung funkt das Teil auf 868Mhz ohne Probleme.
Und bei dem Preis kann man fast nix falsch machen.

Gruß
Dirk

trilu

Man kann die Frequenz beim cc1100 ja einstellen - ist wie beim CUL.
Geht aber auf Kosten der Reichweite, da Spulensetup und Kondensatoren falsch dimensioniert.
Zum testen reicht es aber allemal.

Vom Preis Leistungsverhältnis ist die panStamp nicht zu toppen.
Billigstes TRX868 Modul dürfte aus einem MAX Fensterkontakt sein - Kostet als Bausatz 14 Euro.
Dazu ein Arduino Mini Pro Modul aus Fernost kostet etwa 6 Euro.

Für 18 Dollar + MwSt. bekommt man eine panStamp....

betateilchen

könnte man eigentlich auch ein Sendemodul aus  einem FS20 Gerät verwenden?

Bei ELV gibts grade einen Bausatz in dem ein Sender steckt für 9,95 Euro.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitatkönnte man eigentlich auch ein Sendemodul aus einem FS20 Gerät verwenden?
Leider nicht, da diese ausschliesslich "AM" senden. Homematic sendet mit FSK (wenn ich mich recht erinnere). Und den CC1101 kann man entsprechend Konfigurieren. Daher kann der CUL auch FS20 oder Homematic.

Gruß
Dirk

betateilchen

schade,

aber das hier müsste passen :) Sowas habe ich noch hier rumliegen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

trilu


betateilchen

aber nicht, wenn der erstgenannte Bausatz sowieso ungenutzt rumliegt :o)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitataber das hier müsste passen :) Sowas habe ich noch hier rumliegen.
Ja, der funktioniert.

Eigentlich sollte man bei ELV mal anfragen ob die die TRX868-Module auch einzeln verkaufen.
Die Sender und Empfänger für FS20 gibts ja auch einzeln.

Gruß
Dirk

betateilchen

noch billiger und mit Stiftleiste ideal zum Experimentieren.

Gibts natürlich auch zum Löten
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!