Arduino Asksin library

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

Vorheriges Thema - Nächstes Thema

trilu

Aktuell sind wir bei 6k. Das sagt aber noch gar nichts. Es fehlt noch jede menge. Pairen, register handling, peeren....
Ich habe mir jetzt die panstamps bestellt. Ist ohne basteln die wirtschaftlichste alternative. Avr 328 + cc1100 mit beschaltung für 16 euro. Das billigste modul kommt aus einem max! fensterkontakt bausatz und kostet 14 euro.
Billiger wird es nur, wenn jemand eine platine entwirft auf die der cc1100 kommt. Allerdings wird es nur in grossen stückzahlen billiger.

trilu

Ach ja, ich finde die arduino mini pro schöner als den uno ::)

betateilchen

Zitat von: martinp876 schrieb am Mi, 07 August 2013 22:34Fertige Anlernmessage:
nn A200 FF0001 000000 10 8001 50533030303030303031 010101

Hallo Martin,

das habe ich gerade getestet

$19 $00 $A2 $00 $FF $00 $01 $00 $00 $00 $10 $80 $01 $50 $53 $30 $30 $30 $30 $30 $30 $30 $31 $01 $01 $01 s

 und hier sind die Ergebnisse.

1. auf fhem Seite::


2013.08.09 22:04:08.063 1: HMLAN_Parse: HMUSB R:EFF0001   stat:0000 t:0992485E d:FF r:FFBF     m:00 A200 FF0001 000000 10800150533030303030303031010101
2013.08.09 22:04:08.138 1: HMLAN_Send:  HMUSB I:+FF0001,00,00,
2013.08.09 22:04:08.145 1: HMLAN_Send:  HMUSB S:S64ADD490 stat:  00 t:00000000 d:01 r:64ADD490 m:06 A001 127000 FF0001 00050000000000
2013.08.09 22:04:08.415 1: HMLAN_Parse: HMUSB R:EFF0001   stat:0000 t:09924994 d:FF r:FFBF     m:00 A200 FF0001 000000 10800150533030303030303031010101
2013.08.09 22:04:08.767 1: HMLAN_Parse: HMUSB R:R64ADD490 stat:0008 t:00000000 d:FF r:7FFF     m:06 A001 127000 FF0001 00050000000000
2013.08.09 22:04:08.769 1: HMLAN_Parse: HMUSB no ACK from Device


2. auf Arduino Seite


s: 19 00 A2 00 FF 00 01 00 00 00 10 80 01 50 53 30 30 30 30 30 30 30 31 01 01 01 (l:26)
<- 00 A2 00 FF 00 01 00 00 00 10 80 01 50 53 30 30 30 30 30 30 30 31 01 01 01 (l:25)(174994)
<- 00 A2 00 FF 00 01 00 00 00 10 80 01 50 53 30 30 30 30 30 30 30 31 01 01 01 (l:25)(175150)
<- 00 A2 00 FF 00 01 00 00 00 10 80 01 50 53 30 30 30 30 30 30 30 31 01 01 01 (l:25)(175304)
no answer
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 A0 (l:16)(175370)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 00 (l:16)(175569)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 A0 (l:16)(179287)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 00 (l:16)(179487)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 A0 (l:16)(179687)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 00 (l:16)(182914)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 A0 (l:16)(183113)
-> 06 A0 01 12 70 00 FF 00 01 00 05 00 00 00 00 00 (l:16)(183313)
-> 07 A0 01 12 70 00 FF 00 01 00 08 02 01 0A 12 0B 70 0C A0 (l:19)(186438)
-> 07 A0 01 12 70 00 FF 00 01 00 08 02 01 0A 12 0B 70 0C 00 (l:19)(186638)
-> 07 A0 01 12 70 00 FF 00 01 00 08 02 01 0A 12 0B 70 0C A0 (l:19)(186838)


In fhem ist danach das neue device angelegt:


Internals:
   CFGFN      
   DEF        FF0001
   EVENTS     1
   HMUSB_MSGCNT 1
   HMUSB_RAWMSG EFF0001,0000,09924994,FF,FFBF,00A200FF000100000010800150533030303030303031010101
   HMUSB_RSSI -65
   HMUSB_TIME 2013-08-09 22:04:08
   IODev      HMUSB
   LASTInputDev HMUSB
   MSGCNT     1
   NAME       CUL_HM_ID_8001_FF0001
   NR         2369
   STATE      MISSING ACK
   TYPE       CUL_HM
   lastMsg    No:00 - t:00 s:FF0001 d:000000 10800150533030303030303031010101
   protLastRcv 2013-08-09 22:04:08
   protResnd  6 last_at:2013-08-09 22:04:31
   protResndFail 3 last_at:2013-08-09 22:04:36
   protSnd    3 last_at:2013-08-09 22:04:29
   protState  CMDs_done_events:9
   rssi_at_HMUSB avg:-65 min:-65 max:-65 lst:-65 cnt:1
   Readings:
     2013-08-09 22:04:36   state           MISSING ACK
   Helper:
     burstEvtCnt 9
     rxType     1
     Respwait:
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmusb:
         avg        -65
         cnt        1
         lst        -65
         max        -65
         min        -65
     Shadowreg:
Attributes:
   expert     2_full
   firmware   1.0
   model      unknown
   peerIDs    
   room       CUL_HM
   serialNr   PS00000001
   subType    


Sieht doch alles ganz prima aus. Fehlt eigentlich nur noch die Bestätigung vom Arduino.



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

Dirk

ZitatAktuell sind wir bei 6k. Das sagt aber noch gar nichts.
Das ist klar.
Schaut aber so aus, als sollte das in nen Atmega32 passen. Auf den aktuellen Panstamps ist ja auch nix grösseres drauf.

ZitatIch habe mir jetzt die panstamps bestellt.
Werde ich zum Experiementieren wohl auch mal machen. Die Dinger haben schon was. Ich habe schon einige eigene Anwendungen die aktuell noch per FS20-Protokoll gesteuert werden welche ich dann wohl umstellen werde.

ZitatBilliger wird es nur, wenn jemand eine Platine entwirft auf die der cc1100 kommt. Allerdings wird es nur in grossen stückzahlen billiger.
Oder wenn man selber lötet. Aber das währ nur ein kleiner Teil von uns :)
Oder wir bringen ELV dazu die Dinger auch einzeln zu verkaufen. Bei den FS20 Sender/Empfänger machen die es ja auch.

betateilchen

Zitat von: trilu schrieb am Fr, 09 August 2013 21:58Ach ja, ich finde die arduino mini pro schöner als den uno ::)

Mag sein, aber zum Basteln und Entwickeln finde ich die größeren Platinen praktischer, zumal ich schon jede Menge Bastel-Shields im Einsatz habe.

Das Schlachten eine Fensterkontaktbausatzes finde ich nicht so schlimm. Die 13,66 Euro ist mir der Spaß wert. Zumal man ja keine dutzende davon braucht.
-----------------------
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 Fr, 09 August 2013 22:16Oder wir bringen ELV dazu die Dinger auch einzeln zu verkaufen.

Ich hab gestern schon dort angefragt, ob es die Funkmodule auch einzeln gibt. Mal sehen, was als Antwort kommt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

2013.08.09 23:01:06.617 1: HMLAN_Parse: HMUSB R:E1CCA12   stat:0000 t:09C671E5 d:FF r:FFBA     m:92 8670 1CCA12 000000 00D03E

-> 92 86 70 1C CA 12 00 00 00 00 D0 87 (l:12)(226908)

Kann es sein, dass da noch irgendwas beim Dekodieren schiefgeht? Das letzte Byte ist unterschiedlich.

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

betateilchen

ok - der Fehler ist sytematisch: das letzte Byte einer empfangenen Message wird falsch (oder gar nicht) dekodiert


HMUSB R:E1D919A   stat:0000 t:09D12AD2 d:FF r:FFBF     m:62 A258 1D919A 1DA1A9 0000

-> 62 A2 58 1D 91 9A 1D A1 A9 00 47 (l:11)(208652)


HMUSB R:E1DA1A9   stat:0000 t:09D12B55 d:FF r:FFBD     m:62 8202 1DA1A9 1D919A 010100003C

-> 62 82 02 1D A1 A9 1D 91 9A 01 01 00 00 00 (l:14)(208783)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

Hi,

ihr seid schon ziemlich weit mit message senden, prima.

Wie Trilu schon gesagt hat, da ist noch jede Menge fleissarbeit für die "platform" zu tun.
commandstack handling, multiple channels, retry/ACK, registerdatenbank und Programmierung. All die lästigen Dinge, bei denen man kaum Fortschritt sehen wird.

Das Anlegen des Model hat funktioniert. Ich werden für diesen Code ein spielmodel anlegen, mit Registern und channels.

Ab Version 3657 (HMConfig) wird durch die Anlernmessage angelegt
Einen Switch (4 channels) bekommt man mit
$19 $00 $A2 $00 $FF $00 $01 $00 $00 $00 $10 $80 $01 $50 $53 $30 $30 $30 $30 $30 $30 $30 $31 $04 $01 $01 s

einen 4 channel TH sensor bekommt man mit:
$19 $00 $A2 $00 $FF $00 $01 $00 $00 $00 $10 $80 $02 $50 $53 $30 $30 $30 $30 $30 $30 $31 $32 $04 $01 $01 s

Gruss Martin


betateilchen

Zitat von: martinp876 schrieb am Sa, 10 August 2013 07:28einen 4 channel TH sensor bekommt man mit:
$19 $00 $A2 $00 $FF $00 $01 $00 $00 $00 $10 $80 $02 $50 $53 $30 $30 $30 $30 $30 $30 $31 $32 $04 $01 $01 s

Funktioniert:


Internals:
   CFGFN      
   CHANGED    
   DEF        FF0001
   EVENTS     1
   HMUSB_MSGCNT 2
   HMUSB_RAWMSG EFF0001,0000,0C269772,FF,FFC1,00A200FF000100000010800250533030303030303132040101
   HMUSB_RSSI -63
   HMUSB_TIME 2013-08-10 10:05:24
   IODev      HMUSB
   LASTInputDev HMUSB
   MSGCNT     2
   NAME       CUL_HM_PS_Th_Sens_FF0001
   NR         375
   STATE      ???
   TYPE       CUL_HM
   channel_01 CUL_HM_PS_Th_Sens_FF0001_Sen_01
   channel_02 CUL_HM_PS_Th_Sens_FF0001_Sen_02
   channel_03 CUL_HM_PS_Th_Sens_FF0001_Sen_03
   channel_04 CUL_HM_PS_Th_Sens_FF0001_Sen_04
   lastMsg    No:00 - t:00 s:FF0001 d:000000 10800250533030303030303132040101
   protLastRcv 2013-08-10 10:05:24
   rssi_at_HMUSB avg:-63 min:-63 max:-63 lst:-63 cnt:2
   Readings:
   Helper:
     mId        8002
     rxType     1
     Respwait:
     Role:
       dev        1
     Rssi:
       At_hmusb:
         avg        -63
         cnt        2
         lst        -63
         max        -63
         min        -63
Attributes:
   expert     2_full
   firmware   1.0
   model      PS-Th-Sens
   peerIDs    
   room       CUL_HM
   serialNr   PS00000012
   subType    THSensor
   webCmd     getConfig


Internals:
   CFGFN      
   DEF        FF000101
   NAME       CUL_HM_PS_Th_Sens_FF0001_Sen_01
   NR         377
   STATE      ???
   TYPE       CUL_HM
   chanNo     01
   device     CUL_HM_PS_Th_Sens_FF0001
   Readings:
   Helper:
     Role:
       chn        1
Attributes:
   expert    
   model      PS-Th-Sens
   peerIDs    
   room       CUL_HM
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

$0C $00 $86 $70 $FF $00 $01 $00 $00 $00 $00 $E0 $3B

ergibt:


2013-08-10 12:25:16 CUL_HM CUL_HM_PS_Th_Sens_FF0001 temperature: 22.4
2013-08-10 12:25:16 CUL_HM CUL_HM_PS_Th_Sens_FF0001 humidity: 59
2013-08-10 12:25:16 CUL_HM CUL_HM_PS_Th_Sens_FF0001 T: 22.4 H: 59


Man könnte also schon Werte schicken, mit denen fhem was anfangen kann :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

@martinp876:

1. wie werden eigentlich Temperaturen über 25,5° übertragen?
2. wie werden Daten aus einem Channel übertragen anstatt aus dem Device?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

Hi,

die temperatur ist 2Byte und Faktor 10. Also 20,7C ist 207.
Ist 2er komplement, also negative sind 32768 -temp.

Format ist
<nn><flag>70<src><dst><tttt><hh>
<tttt> ist die Temperatur
<hh> die Luftfeuchten (noch nicht für panstamp)

Problem beim THsensor und dieser Message ist (sehe ich gerade) dass kein Channel mitkommt. Waren sicher eine der ersten Devices und HM hatte noch keine Channels berücksichtigt. Geht also nur für 1-Kanal Devices.
=> für unser Konzept ist diese message also nicht geeignet.
dann gibt es noch messagetype 0x53, das sieht schon besser aus. Da muss ich beim WDS30_ot2 nachbessern. Aber diese message ist nutzbar und evtl auch geeignet. Aber hier muss ich nachbessern.

Ich bin aber die ~2Wochen nicht verfügbar sein.

Also vorläufig die "70" nehmen und daten aus dem Device holen. Alles andere kommt später.
Die messages zu bauen wird eine Kleinigkeit. Wichtig ist das Protokol.

Gruss Martin

Dirk

Hi Martin,

ist das ganze eigentlich irgendwo dokumentiert, oder nur aus dem Code heraus zu lesen.
Gäbe es ein "Messagetype" den man z.B. den Luftdruck benutzen kann bzw. für andere eigene Werte?

Gruß
Dirk

trilu

Hi Martin,

ich bin gerade dabei die Sende und Empfangsroutine zu durchdenken.
Kannst du mir bitte die möglichen Messagetypes spezifizieren?

Message analysis

01 Message sequence counter
02 Bitfeld flags
03 Message type
04-06 SourceID
07-09 Destination ID, broadcast: 00 00 00


Genauer gesagt, Byte 3
00 - Pairing
40 - Event?

Vielen Dank!