Arduino Asksin library

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

Vorheriges Thema - Nächstes Thema

trilu

anfänger :-))))

du hast recht, ich muss mal den link in das erste post packen.
du musst den inhalt von AskSin-master.zip in den library ordner von arduino entpacken. entweder in den library ordner
der applikation, also hier: C:\Program Files\arduino-1.0.5\libraries
oder im user bereich: C:\Users\xxxx\Documents\Arduino\libraries

dann lädst du die arduino shell neu, gehst auf examples unter asksin lädst den entsprechenden sketch
und versuchst noch einmal zu kompilieren...

mmatt

Danke Dir trilu,

Nun hats funktioniert :-)

Ein Stolperstein war noch, dass die Arduino-Ide mit dem Bindestrich bei "AskSin-master" nicht
zurechtgekommen ist.
Ich musste nach "AskSinmaster" umbenennen.

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

Jetzt wo du es sagst.  Kann mich noch erinnern das ich wegen so einem mist auch schon kurz vor dem verzweifeln war...

jab

Habe mich mich damit auch eine Stunde rumgeärgert und danach einen Pullrequest gestellt. Wurde angenommen. Im nächsten Release von der Arduino IDE ist es gefixt und Bindestriche in Ordnernamen funktionieren :-).


Gruß,
Jan

molnitza

Mein Pairing sieht so aus:


<- 1A 03 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)
<- 1A 03 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)
<- 1A 03 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)
-> NA (192458)
b> 0F 3A 86 10 23 4E 0F 00 00 00 0A 88 C7 0F 00 18 (l:16)
pair/peer did not fit, exit


Ich habe bisher nur den Beispielsketch mit meinen frisch eingetroffenen Panstamps getestet. Ist das Problem bekannt?

trilu

soweit ich das sehe ist es kein bug - es werden in der register.h default werte für die master id gesetzt.
das hatte ich für mich zum testen drin, hatte keine lust immer wieder neu zu pairen.

lösung deines problems, in der register.h, ziemlich weit unten
HM::s_dtRegs dtRegs = {
// amount of lines in defaultRegsTbl[], pointer to defaultRegsTbl[]
3, defaultRegsTbl
};


Aus der 3 eine 0 machen, damit wird nichts mehr default geladen.
Danch kompilieren, auf den panstamp laden und in der seriellen konsole ein r return eingeben.
Mit dem r wird dann ein reset ausgelöst, der eeprom geleert, usw.
danach kannst du neu pairen...

trilu

#546
Ich habe mal versucht einenWDS10-TH-O nachzubilden, incl. dem Timing für einen Thermostat.
Der zugehörige Sketch ist im Example Ordner unter HM_WDS10_TH_O.
Derzeit liefert der Sketch keine realen Werte da ich noch keinen Temperatur/Luftfeuchtigkeitssensor habe, deshalb kommen Random Werte
auf Basis des Message Zählers.

Was mir aber helfen würde, da ich keinen Thermostat oder ähnliches habe, wenn jemand das Ding mal versuchen würde zu peeren
und prüft ob die Kommunikation so stimmt.

Viele Grüße
Horst

Dirk

Cool. Schaue ich am Wochenende mal rein.

ZitatDerzeit liefert der Sketch keine realen Werte da ich noch keinen Temperatur/Luftfeuchtigkeitssensor habe ...
Ich schicke deinen Umschlag mit dem Sensor heute los. Sollte morgen bei dir sein.

Gruß
Dirk

trilu

hi dirk,

so war das nicht gemeint :-)
ist aber sehr nett von dir!!!!!!

viele grüße

mmatt

Hallo trilu,

Ich bin gerade dabei den HM-LC-SW1-BA-PCB Sketch zu testen.
Das Pairing hat schon mal geklappt, fhem hat brav das Gerät angelegt. :-)
Schalten funktioniert auch schon mal. :-)

In der .ino Datei habe ich gesehen, dass da noch eine noch eine Status LED drinn ist.
hm.statusLed.config(4, 6);
Sind das zwei LED´s auf PIN4 und PIN6 ?
Falls ja, für was sind die gedacht ?

Und was ist mit:
hm.battery.config(1,0,1000);
Das prüfen der Batterie-Spannung ?
Falls ja, wie funktioniert das ?

Und was ist mit:
#include <Buttons.h>
Wozu ?
Ist das für einen Configurations-Taster, oder hat das was mit Peering zu tun ?

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

hm.statusLed.config(4, 6); // configure the status led pin
hm.statusLed.set(STATUSLED_BOTH, STATUSLED_MODE_BLINKFAST, 3);

ja, das ist eine statusled. ursprünglich hatte ich sie mir gebastelt um das powermanagement besser testen zu können,
dirk hat sie dann erweitert so dass es jetzt wirklich eine statusled geworden ist.
das modul ist fest in der asksin verdrahtet, zum normalen nutzen reicht es aus, sich zu entscheiden ob man
einfarbig, also eine led - oder zweifarbig den status signalisiert haben möchte.

über .config(pin1, pin2) legt man die pins vom arduino fest. im beispiel oben liegt eine led an pin 4, die andere an pin 6.
über .set legt man das verhalten fest. hier gibt es folgende modes:
   #define STATUSLED_1                1
   #define STATUSLED_2                2
   #define STATUSLED_BOTH             3
ich denke die modi sind selbsterklärend.

das sind die möglichen muster, auch hier denke ich selbsterklärend:
   #define STATUSLED_MODE_OFF         0
   #define STATUSLED_MODE_ON          1
   #define STATUSLED_MODE_BLINKSLOW   2
   #define STATUSLED_MODE_BLINKFAST   3
   #define STATUSLED_MODE_BLINKSFAST  4
   #define STATUSLED_MODE_HEARTBEAT   5

der letzte wert in .set gibt die anzahl der blinker an. also STATUSLED_MODE_BLINKSLOW und eine 3 lässt die led 3 mal langsam blinken.

hm.battery.config(1,0,1000); // set battery measurement
hm.battery.setVoltage(31); // voltage to 3.1 volt

ist in der tat um die batterie spannung zu messen und den status an die zentrale über den ACK status zu schicken.
void config(uint8_t mode, uint8_t pin, uint16_t time);
derzeit ist nur ein modus implementiert, das ist der interne adc modus des atmel. es kann nur gegen betriebsspannung gemessen werden, in unserem fall die 3 volt.
deshalb erster parameter auf 1 für den internen modus. 0 würde heissen, wir wollen nichts messen.
der zweite wert gibt den pin an, ist beim internen modus aber nicht notwendig. der dritte wert gibt das timing in millisekunden an. in dem beispiel wird folglich jede sekunde gemessen.
mit .setVoltage wird der grenzwert in zehntel volt eingestellt. in dem beispiel sind das 3.1 volt, fällt die batteriespannung unter 3.1 volt signalisieren wir fhem das die batterie alle ist.

#include <Buttons.h> jap, das ist die klasse die für den config taster zuständig ist. in dem HM6Tasten beispiel nutze ich die klasse auch für die schalttaster. um deine frage zu beantworten, in dem von dir genutzeten sketch ist es nur der config taster, also nichts zu tun mit peer.
in dem anderen beispielsketch, als kanal taster hat es sehr wohl was mit den peers zu tun...

viele grüsse
horst

mmatt

Vielen Dank für die ausführliche Beschreibung.

Noch ne letze Frage zum Config-Taster:
button[0].config(8, NULL);

Denke, die 8 ist der Pin. geschaltet wird gegen GND ?
Hat der Config-Taster denn schon eine Funktion ? oder was passiert beim Betätigen ?

Gruss 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

jap, die 8 ist der pin und der taster schaltet gegen masse.
beim betätigen wird dann der pairing string gesendet. also ähnliches verhalten wie bei
den original hm geräten. taster drücken und gerät wird angelernt ...

mmatt

Ich suche gerade die Funktion "HM_Set_Cmd" in der .ino Datei ?
Da müsste doch obige Funktion sin der .ino sein, wenn von fhem on,off.. gesendet wird.
Oder funtioniert das nun anders ?

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

das "HM_Set_Cmd" gibts in der form nicht mehr. das war eine der grösseren änderungen an der lib. in der lib gibt es jetzt einen registrar in dem sich die channel module registrieren müssen. sämtliche kommunikation läuft jetzt zwischen dem channel modul und der lib direkt.
ich wollte den anwender ein wenig entlasten  8)