Arduino Asksin library

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

Vorheriges Thema - Nächstes Thema

sebixvi

Moin,

@trilu: das Problem mit der Baudrate ist, dass ich den internen RC-Oszillator verwende und keinen Baudraten-Quarz, sodass nicht alle Geschwindigkeiten funktionieren. Ein Test mit 38400 geht aber (jedenfalls bei den aktuellen Temperaturen/Sternen-Konstellationen ;-)), sodass ich trotz Debug-Ausgaben mit dem Timing hinkomme.

@martin:
Ich habe inzwischen das Peering und Registerauslesen soweit implementiert, dass ich mein Device ohne Fehler mit fhem pairen kann. Allerdings ist mir aufgefallen, dass fhem das Setzen der Register und die Abfrage  wiederholt. Ist das Absicht oder liegt es ggfls. daran, dass ich mir aus der Config nur die Rosinen herausgepickt habe (Adr. 2/Reg. 0 habe ich ignoirert und beim Auslesen dementsprechend nicht angegeben). Gleicht fhem die gesetzten Register exakt mit den Angaben ab? Da es keinen Fehler gibt (das Device ist danach angelegt und funktioniert einwandfrei) ist es eher ein kosmetisches Problem.

sending done
received message:10 20 b0 1 42 42 42 f3 92 de 0 5 0 0 0 0 0                               config start
sent message:a 20 80 2 f3 92 de 42 42 42 0
0
sending done
received message:13 21 a0 1 42 42 42 f3 92 de 0 8 2 1 a 42 b 42 c 42                Adresse setzen (was ist Bank 0, Adr. 2?)
sent message:a 21 80 2 f3 92 de 42 42 42 0
0
sending done
received message:b 22 a0 1 42 42 42 f3 92 de 0 6                                               config end
sent message:a 22 80 2 f3 92 de 42 42 42 0
0
sending done
received message:10 23 b0 1 42 42 42 f3 92 de 0 4 0 0 0 0 0                              hat's geklappt?
sent message:12 23 a0 10 f3 92 de 42 42 42 2 a 42 b 42 c 42 0 0
0
received message:a 23 0 2 42 42 42 f3 92 de 0
0
sending done
received message:b 24 b0 1 42 42 42 f3 92 de 1 3                                               peer list
sent message:e 24 a0 10 f3 92 de 42 42 42 1 0 0 0 0
0
received message:a 24 0 2 42 42 42 f3 92 de 0
0
sending done
received message:10 25 b0 1 42 42 42 f3 92 de 0 4 0 0 0 0 0                              und nochmal?!
sent message:12 25 a0 10 f3 92 de 42 42 42 2 a 42 b 42 c 42 0 0
0
received message:a 25 0 2 42 42 42 f3 92 de 0
0
sending done
received message:b 26 b0 1 42 42 42 f3 92 de 1 3
sent message:e 26 a0 10 f3 92 de 42 42 42 1 0 0 0 0
0
received message:a 26 0 2 42 42 42 f3 92 de 0
0
sending done
received message:b 27 b0 1 42 42 42 f3 92 de 1 e
sent message:e 27 a4 10 f3 92 de 42 42 42 6 1 0 0 0
0
received message:a 27 0 2 42 42 42 f3 92 de 0

mmatt

Ich habe die Libary neu installiert  ;)

Nun bekomme ich den HM_LC_SW1_BA_PCB Beispiel-Sketch nicht zum compelieren  :(
Der Compiler hat rekamiert, dass die Funktion:
relay[0].config(0,3,0,5,5);
nicht geht (falsche Parameter...)
Also habe in der Relay.h und der Relay.cpp:
//void     config(void Init(), void Switch(uint8_t), uint8_t minDelay, uint8_t randomDelay);
auf:void     config(uint8_t type, uint8_t pinOn, uint8_t pinOff, uint8_t minDelay, uint8_t randomDelay);geändert.

In der Relay.cpp habe ich dann://tInit = Init;
   //tSwitch = Switch;

auskomentiert.

Nun motzt der Compiler, das in der Sensor_SHT10_BMP0805.h und .cpp etliches nicht stimmt.
Sehe aber nicht, wo im HM_LC_SW1_BA_PCB Sketch der Sensor eingebunden wird.
Braucht es die Sensor Files den überhaubt für den Relais Sketch ?

Grüsse Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

trilu

so, probier jetzt mal. hatte ein paar änderungen und das beispiel nicht nachgezogen.

ZitatBraucht es die Sensor Files den überhaubt für den Relais Sketch ?
ne, eigentlich nicht. aber irgendwo sind sie noch in der lib verknüpft. entpacke einfach das
paket: additional-sensor-libraries.zip
in dein arduino library ordner.

mmatt

Danke Dir trilu

Compilieren leuft nun durch  :D
Dafür bekomme ich kein Pairing mit fhem hin :(

freeMem: 1020 byte
pair: 00 00 00
reset device, clear eeprom...
prep eeprom
reset done
<- 1A 00 A2 00 4F B7 4C 63 19 63 15 00 6C 50 53 30 30 30 30 30 30 30 32 10 41 01 00 (l:27) (64696)
<- 1A 00 A2 00 4F B7 4C 63 19 63 15 00 6C 50 53 30 30 30 30 30 30 30 32 10 41 01 00 (l:27) (65398)
<- 1A 00 A2 00 4F B7 4C 63 19 63 15 00 6C 50 53 30 30 30 30 30 30 30 32 10 41 01 00 (l:27) (66099)
-> NA (66793)


Sieht so aus, als ob fhem nichts zurückschickt, oder mein Gerät es nicht lesen kann.
fhem hat nur das Filelog erstellt, aber kein Gerät angelegt.

Vielleicht liegts aber auch an meinem Hardware Aufbau ?
Muss nun leider weg.

Grüsse Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

trilu

Ich denke es liegt an fhem.  Du bekommst ja kein ACK zurück. Hast du in fem pairforseconds gesetzt?

Robbi24



Hallo mmatt,

    check mal in Register.h   ( weit unten )

   HM::s_dtRegs dtRegs = {
// amount of lines in defaultRegsTbl[], pointer to defaultRegsTbl[]
   0, defaultRegsTbl    // von 3 auf 0 setzen!!
};


LG Robbi


trilu

Hi Robbi24,
ich bin begeistert, es scheint als hättest du dich mit der Lib beschäftigt!
Hatte ich übersehen, die Strings werden ja an meine default Master ID gesendet.

Der defaultRegsTbl darf natürlich nicht gesetzt sein, sonst werden Register Änderungen bei jedem
Neustart wieder platt gemacht...

Viele Grüße
Horst

mmatt

Hallo zusammen
Ja, nun hat das Pairing geklappt  :D

- Die defaultRegsTbl auf 0 gesetzt.
- fhem neu gestartet.
- hmPairForSec abgesetzt.
- und das "r" und danach das "p" abgesetzt.

Danke Euch, nun kann ich weiter "basteln" :-)
Grüsse Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

mmatt

#578
So... weiter geht´s mit den blöden Fragen  ;)

Du hast ja eine neue Funktion gemacht  :orelay[0].config(&initRelay,&switchRelay,2,2);

"initRelay()" und "switchRelay()" in der .ino habe ich gesehen.
Kann irgendwo noch bistabil (jetzt ist ja monostabil) definieren, oder muss ich das in den obigen zwei Funktionen selber programieren ?

Grüsse Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

setstate

erst einmal: vielen Dank für die tolle Lib. Ich habe erfolgreich alle Examples zum Spielen gebracht.

Als erstes reales Anwendungsprojekt denke ich an einen Mini-IR-Sender auf Arduino pro mini Basis.
Mit wenigen IR-Signalen sehe ich da kein Problem, ich habe schon erfolgreich mit dem LedLampeRelay Sketch + IRremote Lib meinen Sat-Receiver ein/ausgeschaltet. Auf 6-8 Channels mit festen IR-Code Zuweisungen zu erweitern ist ja auch kein Problem.

Nur wenn man flexibel sein will, stößt man an Grenzen. Ich stelle mir vor, von FHEM aus den IR-Code als String zu senden. Nur komme ich nicht richtig weiter. In diesem Thread  kam ja mal der Vorschlag, den Dimmer-Value zu missbrauchen, um multiple zu werden. Nur finde ich im aktuellen git keine Reste mehr von dieser Dimmer-Funktion.

Vielleicht hat jemand einen Denkanstoß für mich, wie man FHEM überreden kann, nicht nur on / off zuzulassen, dann könnte man mehr als C8 und 00 im Byte3 senden, das würde mir schon reichen zum Auswerten. Oder kann man auch Byte 2 und 1 benutzen, ich muss irgendwie eigene Werte an den Actor bekommen?

ein schönes WE
Mario

trilu

Eigene Werte an den Aktor bekommen ist eigentlich kein Problem der Library als vielmehr ein Problem von FHEM.
Letztendlich beruhen alle meine Beispiele auf realen HM Geräten, d.h. die model ID ist die selbe wie von original HM Geräten.
Deshalb erkennt FHEM das Gerät und stellt natürlich auch nur die geräteabhängigen Flags zur Verfügung.

Um die größte Flexibilität zu haben müsstest du ein eigenes Device definieren, also eine eigene Model ID nutzen.
Im Wettersensor Thread gibts dann auch Beispiele zum erweitern von FHEM.
Vermutlich ist es am einfachsten du hinterlegst die IR Commands im Device und steuerst sie mit Werten von 0 - 255 an.
Also über das set command
"11;p01=02"   => { txt => "SET"         , params => {

Wenn du Flexibilität bzgl. der IR Befehle möchtest, dann musst du auch entsprechende Register einrichten um die Befehlsfolgen aufzunehmen.

Viele Grüße
Horst

setstate

Ich habe mich heute zwar intensiv in diesen Thread mit deinen Erklärungen beschäftigt, aber was du mit "11;p01=02"   => { txt => "SET"         , params => {
meinst, raffe ich noch nicht ganz.
Aber so ähnlich bin ich heute schon weitergekommen. Ich werde die Codes im Device hinterlegen und nur den Key dazu senden. 
Ich habe dafür in der Register.h auf ein HM_LC_DIM1L_CV (dimmer) umgestellt, ein Dummy.cpp leicht angepasst und kann jetzt von FHEM per "set <name> pct <int>" den Int-Value an den Sketch schicken.
So kann ich weitermachen ... Danke

PeterS

Hallo Zusammen

Unterstützt die Library max. 1 Homematic-Gerät oder konnten auch schon mehrere Geräte emuliert/nachgebildet werden ?
Der 1-fach Aktor HM_LC_SW1_BA_PCB ist als Beispiel enthalten, hat schon jemand den 4fach Aktor HM_LC_SW2_BA_PCB probiert ?

Gruss Peter

Prof. Dr. Peter Henning

#583
Hallo Liste,

ich bin jetzt auch etwas weiter gekommen mit dem HB-1W-KEY (Siehe dazu diese Wiki-Seite: http://www.fhemwiki.de/wiki/Kategorie:HomeBrew)

Auf einem Panstamp läuft der 1-Wire Busmaster, der meldet einen erkannten iButton als Tastendruck via HomeMatic an FHEM.

Am meisten hatte ich mit der eher, sagen wir es vorsichtig, minimalistischen Dokumentation zu kämpfen.
Es wird auch noch eine ganze Weile dauern, bis mein Gerät für Andere (oder für mich selbst...) produktiv verwendbar ist.

Die Frage stellt sich, ob man nicht sinnvollerweise sowohl in FHEM, als auch in die mitgelieferten Beispiele der AskSin library etwas aufnimmt, das "generische" Geräte erlaubt. Also z.B. mit bis zu 3 Sensorkanälen und bis zu 3 Aktorkanälen). Das würde die weitere Eigenentwicklung deutlich vereinfachen.

LG

pah




trilu

Hallo Zusammen,

ich gebe zu, die Dokumentation ist viel zu kurz gekommen - aber im Moment fehlt mir einfach die Zeit um hier weiter zu machen.
Falls Fragen sind packt sie einfach hier rein, das Meiste habe ich noch im Kopf.

ZitatDer 1-fach Aktor HM_LC_SW1_BA_PCB ist als Beispiel enthalten, hat schon jemand den 4fach Aktor HM_LC_SW2_BA_PCB probiert ?

Das funktioniert, hatte ich schon getestet. Zum 1fach Aktor sketch bedarf es nur ein paar kleiner Änderungen. Die Model ID muss angepasst werden
und die Relay Class muss es vier mal geben und damit auch die Zuordnung zu den Kanälen. Also in der destillReg vier gleiche Kanäle definieren
und im main sketch zurodnen.

Falls es eigene Geräte sein sollen, also wo es keine Definition in der HM Config Soft oder in FHEM gibt, muss das natürlich angepasst werden.
Ansonsten kann man sich so viele Kanäle pro Device (und damit verschiedene Funktionen) definieren, wie eben in den Arduino rein passen.

Viele Grüße
Horst