Arduino Asksin library

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

Vorheriges Thema - Nächstes Thema

Maiks

Danke für die Antwort, hatte es genau in dieser Stelle rein gebaut, allerdings wird das nur aufgerufen, wenn das Relay aus ist, ein wiederholtes drücken der Ein Taste funktioniert dort halt leider nicht mehr.
Werde mal schauen wie das mit timern funktioniert um ohne delay auszukommen..

Mir ist beim Ausprobieren übrigens augefallen, dass ich keinen Taster manuell an den Aktor Anlernen konnte, über die Zentrale ging es schon.

Kann man den Aktor irgendwie auf Werkseinstellungen zurücksetzen, denn 2 mal lange drücken hat bei mir nichts gemacht.

trilu

Das delay verhindert ein Empfangen von weiteren Befehlen, das ist das Problem.
Reset geht über die Zentrale, sobald das Device angelernt wird, löscht es selbst den Eeprom. Aber hast recht, muss ich noch einbauen. Ich leere immer über die HM config soft, das funktioniert prima bei mir. Auch der Relay sketch kann das.

Wenn ich die Tage dazu komme, Bau ich dir was entsprechendes in den Sketch  :)

Was meinst du mit manuell an lernen?

Maiks

Manuell Anlernen, den Batterie Aktor direkt an einen Taster Anlernen ohne Zentrale.

Auch ohne Delay wird die Funktion nur aufgerufen, wenn eine Statusänderung stattfindet.

das 13-->xxxxx habe ich gar nicht verstanden, habe nämlich versucht dort bei den Statusänderungen den Aufruf rein zu machen, allerdings nicht mit den gewünschten erfolg.

Henno

Hallo zusammen,


ich versuche grade meinen Arduino UNO zu Flashen.

Leider bekomme ich beim kompilieren Fehler ohne ende.

Ich habe es mit AskSin und mit NewAskSin versucht.
Mit Arduino IDE 1.06 und mit 1.5.8 das selbe.


Ich habe beide Ordner in den entsprechenden Library Ordner Entpackt.


Werden noch weitere Librarys gebraucht?






In file included from hardware.cpp:1:
/hardware.h:40:3: error: #error "Error: LEDS not defined for your hardware in hardware.h!"
/hardware.h:66:3: error: #error "Error: Configuration key not defined for your hardware in hardware.h!"
/hardware.h:114:3: error: #error "Error: CC1101 interface not defined for your hardware in hardware.h!"
/hardware.h:172:3: error: #error "Error: External battery measurement not defined for your hardware in hardware.h!"
hardware.cpp: In function 'void initLeds()':
hardware.cpp:26: error: 'ledRedDDR' was not declared in this scope
hardware.cpp:26: error: 'ledRedPin' was not declared in this scope
hardware.cpp:27: error: 'ledGrnDDR' was not declared in this scope
hardware.cpp:27: error: 'ledGrnPin' was not declared in this scope
hardware.cpp:28: error: 'ledActiveLow' was not declared in this scope
hardware.cpp:29: error: 'ledRedPort' was not declared in this scope
hardware.cpp:30: error: 'ledGrnPort' was not declared in this scope
hardware.cpp: In function 'void ledRed(uint8_t)':
hardware.cpp:34: error: 'ledActiveLow' was not declared in this scope
hardware.cpp:35: error: 'ledRedPort' was not declared in this scope
hardware.cpp:35: error: 'ledRedPin' was not declared in this scope
hardware.cpp:36: error: 'ledRedPort' was not declared in this scope
hardware.cpp:36: error: 'ledRedPin' was not declared in this scope
hardware.cpp:37: error: 'ledRedPort' was not declared in this scope
hardware.cpp:37: error: 'ledRedPin' was not declared in this scope
hardware.cpp: In function 'void ledGrn(uint8_t)':
hardware.cpp:40: error: 'ledActiveLow' was not declared in this scope
hardware.cpp:41: error: 'ledGrnPort' was not declared in this scope
hardware.cpp:41: error: 'ledGrnPin' was not declared in this scope
hardware.cpp:42: error: 'ledGrnPort' was not declared in this scope
hardware.cpp:42: error: 'ledGrnPin' was not declared in this scope
hardware.cpp:43: error: 'ledGrnPort' was not declared in this scope
hardware.cpp:43: error: 'ledGrnPin' was not declared in this scope
hardware.cpp: In function 'void initConfKey()':
hardware.cpp:48: error: 'confKeyDDR' was not declared in this scope
hardware.cpp:48: error: 'confKeyPin' was not declared in this scope
hardware.cpp:49: error: 'confKeyPort' was not declared in this scope
hardware.cpp:52: error: 'confKeyPCIE' was not declared in this scope
hardware.cpp:53: error: 'confKeyPCMSK' was not declared in this scope
hardware.cpp:53: error: 'confKeyINT' was not declared in this scope
hardware.cpp: In function 'void ccInitHw()':
hardware.cpp:105: error: 'CC_GDO0_DDR' was not declared in this scope
hardware.cpp:105: error: 'CC_GDO0_PIN' was not declared in this scope
hardware.cpp:106: error: 'CC_CS_DDR' was not declared in this scope
hardware.cpp:106: error: 'CC_CS_PIN' was not declared in this scope
hardware.cpp:108: error: 'SPI_DDR' was not declared in this scope
hardware.cpp:108: error: 'SPI_MOSI' was not declared in this scope
hardware.cpp:109: error: 'SPI_SCLK' was not declared in this scope
hardware.cpp:110: error: 'SPI_MISO' was not declared in this scope
hardware.cpp:115: error: 'CC_GDO0_PCICR' was not declared in this scope
hardware.cpp:115: error: 'CC_GDO0_PCIE' was not declared in this scope
hardware.cpp: In function 'uint8_t ccGetGDO0()':
hardware.cpp:123: error: 'CC_GDO0_PCIE' was not declared in this scope
hardware.cpp:123: error: 'CC_GDO0_INT' was not declared in this scope
hardware.cpp: In function 'void enableGDO0Int()':
hardware.cpp:128: error: 'CC_GDO0_PCMSK' was not declared in this scope
hardware.cpp:128: error: 'CC_GDO0_INT' was not declared in this scope
hardware.cpp: In function 'void disableGDO0Int()':
hardware.cpp:131: error: 'CC_GDO0_PCMSK' was not declared in this scope
hardware.cpp:131: error: 'CC_GDO0_INT' was not declared in this scope
hardware.cpp: In function 'void waitMiso()':
hardware.cpp:135: error: 'SPI_PORT' was not declared in this scope
hardware.cpp:135: error: 'SPI_MISO' was not declared in this scope
hardware.cpp: In function 'void ccSelect()':
hardware.cpp:138: error: 'CC_CS_PORT' was not declared in this scope
hardware.cpp:138: error: 'CC_CS_PIN' was not declared in this scope
hardware.cpp: In function 'void ccDeselect()':
hardware.cpp:141: error: 'CC_CS_PORT' was not declared in this scope
hardware.cpp:141: error: 'CC_CS_PIN' was not declared in this scope
hardware.cpp: In function 'void setSleep()':
hardware.cpp:224: error: 'PRR' was not declared in this scope
hardware.cpp:231: error: 'BODS' was not declared in this scope
hardware.cpp:231: error: 'BODSE' was not declared in this scope
hardware.cpp: In function 'uint16_t getAdcValue(uint8_t)':
hardware.cpp:275: error: 'PRR' was not declared in this scope
hardware.cpp: In function 'void initExtBattMeasurement()':
hardware.cpp:333: error: 'battMeasDDR' was not declared in this scope
hardware.cpp:333: error: 'battMeasPin' was not declared in this scope
hardware.cpp:334: error: 'battMeasPort' was not declared in this scope
hardware.cpp:335: error: 'battEnblDDR' was not declared in this scope
hardware.cpp:335: error: 'battEnblPin' was not declared in this scope
hardware.cpp: In function 'void switchExtBattMeasurement(uint8_t)':
hardware.cpp:339: error: 'battEnblDDR' was not declared in this scope
hardware.cpp:339: error: 'battEnblPin' was not declared in this scope
hardware.cpp:340: error: 'battEnblPort' was not declared in this scope
hardware.cpp:341: error: 'battEnblDDR' was not declared in this scope
hardware.cpp:341: error: 'battEnblPin' was not declared in this scope

trilu

melde mich zurück  8)

Habe den Dimmer Sketch überarbeitet, hatte einen blöden Fehler in der Registerdefinition, dadurch hat sich alles was Long ist um ein Byte verschoben.
Sollte jetzt gehen.

@Maiks - Du meinst das Anlernen ohne Zentrale, oder? Das muss ich mir mal anschauen wie das geht, wäre auch Zufall wenn es gehen würde ...

@Henno - AskSin und NewAskSin im Library Ordner funktioniert nicht. Lösch beide mal raus. Dann lädst du die NewAskSin neu vom Git, entpackst sie in den Library Ordner und benennst sie um - das -master muss weg, der Ordner muss dann NewAskSin heissen. Damit sollte es dann gehen....


Henno

@ trilu

Danke für deine Antwort.

Natürlich hatte ich das "-master" aus dem Ordnernamen gelöscht.

Jetzt habe ich nurnoch einen AskSin Ordner

C:\Users\xxxxx\Documents\Arduino\libraries\NewAskSin

Wenn ich aus dem Unternordner /examples/HM_LC_Dim1PWM_CV die Datei HM_LC_Dim1PWM_CV.ino in Arduino öffne bekomme ich den selben Fehlercode wie vorher.


Dazu muss ich sagen das ich unter Windows 8.1 x64 kompiliere.
Ich werde es aber nachher auch mal auf meinen Linux Server versuchen.

trilu

@henno
liegt denn in dem Unterordner die Datei hardware.h und hardware.cpp?
Deine Fehlermeldung sagt aus, dass die nicht da sind?


Henno

@ trilu
Ja sind sie

hardware.cpp
hardware.h
register.h
und der jeweilige Sketch

Arduino IDE öffnet auch alle drei Dateien mit.



trilu

wer lesen kann ist klar im vorteil  ;D

LEDS not defined for your hardware in hardware.h!

welche hardware nutzt du denn?

Henno

Ich wollte einen Arduino Uno nutzen.
Habs aber auch mit einem Mega und mit einem Pro Mini versucht.

Als Sendemodul ein original Homematic Modul

trilu

ich habe in der hardware.h verschiedene sektionen für die hardware eingebaut - derzeit gibt es den avr 328 und den 32u4
mit dem mini pro müsste es eigentlich funktionieren, ist halt wichtig das ein avr328 drauf ist...

zumindest weiss ich jetzt woher dein problem kommt. teste mal mit dem 328 und poste die fehlermeldung

Henno

Die fehlermeldung bleibt bei allen boards gleich.

Unter Linux klappt es ohne Probleme.

Ich habe grade mal unter Windows Arduino IDE deinstalliert und neu installiert und siehe da es klappt mit dem Uno und auch mit dem Mini Pro.

Was auch immer das Problem war, es ist gelöst.

Danke für deine Hilfe

Maiks

Zitat von: trilu am 04 Januar 2015, 11:51:33
melde mich zurück  8)

Habe den Dimmer Sketch überarbeitet, hatte einen blöden Fehler in der Registerdefinition, dadurch hat sich alles was Long ist um ein Byte verschoben.
Sollte jetzt gehen.

@Maiks - Du meinst das Anlernen ohne Zentrale, oder? Das muss ich mir mal anschauen wie das geht, wäre auch Zufall wenn es gehen würde ...

Ja genau, wie bei den richtigen Aktoren.  Mit den Dimmer probiere ich gerne mal aus :D

Mit deiner Lib könnte man doch auch den Bewegungsmelder nachbilden oder ?

Mfg
Maik

trilu

@all
Ich habe ein wenig an der Config Button Class gearbeitet.

Um einen Device Reset zu machen, muss der Config Taster für 3 Sekunden gedrückt werden, daraufhin beginnt die rote Led zu blinken.
Taster loslassen und Taster innerhalb von 2 Sekunden erneut lange (3 Sekunden) drücken. Geräte Eeprom wird geleert...

Ich frage auch das Register 0x18 (local Reset disable) im Channel 0, List 0 ab. Falls 0x18 vorhanden ist und auf 1 gesetzt ist,
wird das Gerät nicht gelöscht :-)

lech

Hallo Trilu,

Zitatmelde mich zurück  8)

Habe den Dimmer Sketch überarbeitet, hatte einen blöden Fehler in der Registerdefinition, dadurch hat sich alles was Long ist um ein Byte verschoben.
Sollte jetzt gehen.

Falls es dich interessiert, habe gerade den neuseten Sketch auf pro Mini geladen. Der Dimmer geht beim Einschalten nach Erreichen von 100% wieder aus, also keine Änderung.
Hier sind nochmal die Strings von der CCU2:

EIN:
m> 0E 1B A0 11 2D 7D 34 01 02 04 02 01 C9 00 A0 (237968)
<- 0E 1B 80 02 01 02 04 2D 7D 34 01 01 C9 60 4E (238071)
<- 0E 13 A0 10 01 02 04 2D 7D 34 06 01 C9 00 4E (238476)
m> 0A 13 80 02 2D 7D 34 01 02 04 00 (238621)

AUS:
m> 0E 1D A0 11 2D 7D 34 01 02 04 02 01 00 00 A0 (353960)
<- 0E 1D 80 02 01 02 04 2D 7D 34 01 01 00 40 4E (354063)
<- 0E 15 A0 10 01 02 04 2D 7D 34 06 01 00 00 4E (354468)
m> 0A 15 80 02 2D 7D 34 01 02 04 00 (354613)

Gruß