Arduino Asksin library

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

Vorheriges Thema - Nächstes Thema

kaihs

Hallo,

nach Evaluierung von verschiedenen Optionen (MySensors, Panstamp) plane ich jetzt auch einen Selbstbau Aktor mit der Asksin Library.
Auch bei mir geht es um Infrarot, aber erstmal ist nur ein Infrarot Sender geplant, also ein Funk-IR-Umsetzer mit Batteriebetrieb.

Vielleicht kann mir jemand noch diese Fragen beantworten:
- Unterstützt die Library die Wake-On-Radio Funktion des CC1101? Habe beim ersten Überfliegen des Codes nichts entsprechendes finden können.
Falls nein, wie wird ein möglichst geringer Energieverbrauch bei einem Aktor realisiert der eigentlich nicht zyklisch aufwachen muss?

- Empfiehlt sich für ein neues Projekt schon die Verwendung der NewAsksinLibrary oder ist die noch zu sehr im Fluss/instabil?

Danke,

Kai
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

trilu

#766
Hi Kai,
Gute Entscheidung. Ich kann dir nur zur NewAskSin raten. An der Asksin werde ich nicht weiter arbeiten und bis auf Sensor und Schalter Class ist bereits der selbe Stand erreicht. Power management ist implementiert. Im Relaysketch ist ein Beispiel drin. Die verschiedenen Modi habe ich 4 oder 5 Löste weiter vorne aufgelistet.
Viele Größe
Horst

hsteinbo

@setstate Danke für Deinen Vorschlag, aber die SensorClass klingt genau wie dass, was ich brauche

@trilu Danke für Dein schnelles Feedback! Meine Vorhaben ist, in Kombination mit der Arduino IR Remote Lib einen IR Empfänger zu bauen, der bei bestimmten IR Signalen (meiner Fernbedienung) in FHEM bestimmte Aktionen auslöst (z.B. Licht/Rolladen steuern)
Dabei brauche ich kein direktes Peering mit anderen Aktoren sondern lediglich die Möglichkeit, Zahlenwerte an FHEM zu schicken und dort darauf zu reagieren.

Mein erster  Ansatz war die Stuerung via LIRC und das funktioniert auch im Prinzip, aber es ist (bei meinem Setup) eher unzuverlässig (schlechter WAF)


trilu

Bekommst du deine IR Befehle in ein Byte rein?
Irgendwie so
Bit 1 - 3 Kodierung, oder IR Typ
4 - 8 Befehl

Das wäre dann ziemlich einfach zu realisieren...

Dirk

Ich hätte hier eine Experimentalversion für einen IR-Sender und IR-Empfänger.
Dazu gibt es auch ein experimentelles FHEM-Modul bzw. ein PM-File für HM.

Das Ganze ist aber nicht vollständig Arduino-Kompatibel weil ich als IR-Lib IRMP einsetze. Das ist auch noch mit der "alten" Asksin-Lib gebaut.
In IRMP sind jede Menge IR-Codes integriert und müssen ggf. nur einkommentiert werden.
Bei FHEM kommt bei einem Tastendruck dann der entsprechende IR-Code an. Zum Senden muss man "nur" den zu sendenden IR-Code in FHEM angeben.

Dafür gibt es auch schon ein Prototyp für ein Addon-Board für die Universalsensorplatine.
Aus Zeitgründen steht das Projekt aktuell. Aber vielleicht kann man da ja was gemeinsam entwickeln.

Bei Interesse lade ich das mal auf Github hoch.

Viele Grüße
Dirk

kaihs

Zitat von: Dirk am 01 Dezember 2014, 21:12:02
Ich hätte hier eine Experimentalversion für einen IR-Sender und IR-Empfänger.
Dazu gibt es auch ein experimentelles FHEM-Modul bzw. ein PM-File für HM.

Das Ganze ist aber nicht vollständig Arduino-Kompatibel weil ich als IR-Lib IRMP einsetze. Das ist auch noch mit der "alten" Asksin-Lib gebaut.
In IRMP sind jede Menge IR-Codes integriert und müssen ggf. nur einkommentiert werden.
Bei FHEM kommt bei einem Tastendruck dann der entsprechende IR-Code an. Zum Senden muss man "nur" den zu sendenden IR-Code in FHEM angeben.

Sehr interessant! Ich wollte auch die IRMP verwenden, u.a. weil die auch in der culfw verwendet wird und so die IR-Codes 1:1 ausgetauscht werden könnten.

Zitat
Bei Interesse lade ich das mal auf Github hoch.

Ja, bitte. An dem Schaltplan bin auch auch interessiert, auch wenn IR-Sender kein Hexenwerk ist.

Gruß,

Kai
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

kaihs

Zitat von: trilu am 01 Dezember 2014, 20:28:06
Hi Kai,
Gute Entscheidung. Ich kann dir nur zur NewAskSin raten. An der Asksin werde ich nicht weiter arbeiten und bis auf Sensor und Schalter Class ist bereits der selbe Stand erreicht. Power management ist implementiert. Im Relaysketch ist ein Beispiel drin. Die verschiedenen Modi habe ich 4 oder 5 Löste weiter vorne aufgelistet.
Viele Größe
Horst

Hallo Horst,

ich nehme an für einen Aktor empfiehlst du den Mode 1, oder?
Zitat
Mode 1 ist speziell für batteriebetriebene Schaltaktoren, hier wird auf ein Burstsignal gewartet. Dazu muss das Funkmodul alle 250ms eingeschaltet werden, was der eigentliche Batteriefresser ist.

Wenn ich das recht verstehe verwendet der dann aber nicht den Wake-On-Radio Modus des CC1101, oder? Oder ist mit "muss das Funkmodul alle 250ms eingeschaltet werden" nicht gemeint, dass der ATmega regelmäßig aufwacht, um das Funkmodul zu aktivieren?
Denn laut Datenblatt des CC1101 sollte es ja auch möglich sein, den Controller erst dann aufzuwecken, wenn tatsächlich etwas empfangen wurde:
Zitat
The optional Wake on Radio (WOR)
functionality enables CC1101 to periodically
wake up from SLEEP and listen for incoming
packets without MCU interaction.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

hsteinbo

@trilu:
Zitat von: trilu am 01 Dezember 2014, 20:44:34
Bekommst du deine IR Befehle in ein Byte rein?
Irgendwie so
Bit 1 - 3 Kodierung, oder IR Typ
4 - 8 Befehl

Das wäre dann ziemlich einfach zu realisieren...

Ein Byte reicht für meine Zwecke fett aus

setstate

Mein IR-Sender ist jetzt auch produktiv gegangen (NewAskSin). Ich habe Mode 1 genommen und messe 120µA, werde also ca. 400 Tage mit 2x AAA hinkommen. Ich steuere damit meinen Beamer, an und aus mit dem gleichen IR Signal. Mein addon für die NewAskSin, die IRrelay Klasse sendet dafür das Power Signal (maximal 10 Versuche) und testet aller 1 Sekunde, ob das Teil an ist (per Usb Kabel zum Pin5) und meldet den Zustand an FHEM. Das ist wichtig, wenn der Beamer nach 4 Stunden von selbst in den Stromsparmodus geht und ich von FHEM Off schalten würde, würde er mit dem Power-Signal wieder angehen. So kontrolliert aber die IRrelay Klasse vorher Ist und Soll Zustand und sendet nur, wenn nötig.
Den Code könnte ich auch allgemein zur Verfügung stellen, wenn Interesse besteht.

trilu

@ kaihs

Für einen Batterie betriebenen Aktor würde ich Powermode 1 nehmen. Wenn das Ding am Stromnetz hängt, dann würde ich Mode 0 nutzen.
Für mode 1 muss ein Burst von 300ms vor jeder Message gesendet werden, das belastet das Funknetz.

Wake on radio funktioniert für HM leider nicht. Wake up wird auch bei den original Geräten von HM wie folgt gelöst:
CPU wacht alle 250ms auf und schaltet das Funkmodul auf Empfang, dann wird kurz gelauscht ob ein Burst in der Luft ist, wenn nein wird das Funkmodul ausgeschaltet und die CPU geht schlafen. Falls ein Burst in der Luft ist, wird ein neuer watchdog von 50ms aktiviert, Funk aus, CPU schlafen gelegt.
Nach 50ms wacht die CPU auf, Funk an, prüft erneut und wenn immer noch das Burst Signal in der Luft ist, bleibt die CPU und Funk an, bis eine Message empfangen wurde oder erneut ein Timeout alles schlafen legt.

Viele Grüße
Horst

hsteinbo

Zitat von: setstate am 02 Dezember 2014, 07:52:53
Mein IR-Sender ist jetzt auch produktiv gegangen (NewAskSin). Ich habe Mode 1 genommen und messe 120µA, werde also ca. 400 Tage mit 2x AAA hinkommen. Ich steuere damit meinen Beamer, an und aus mit dem gleichen IR Signal. Mein addon für die NewAskSin, die IRrelay Klasse sendet dafür das Power Signal (maximal 10 Versuche) und testet aller 1 Sekunde, ob das Teil an ist (per Usb Kabel zum Pin5) und meldet den Zustand an FHEM. Das ist wichtig, wenn der Beamer nach 4 Stunden von selbst in den Stromsparmodus geht und ich von FHEM Off schalten würde, würde er mit dem Power-Signal wieder angehen. So kontrolliert aber die IRrelay Klasse vorher Ist und Soll Zustand und sendet nur, wenn nötig.
Den Code könnte ich auch allgemein zur Verfügung stellen, wenn Interesse besteht.

@setstate
Hallo setstate, ich hätte Interesse an Deinem Code

trilu

kurzes update zur NewAskSin

Ich habe die gesamte Hardware Definition aus dem Library Ordner entfernt und in den Sketch Ordner verlagert. Relay, Dimmer und CUSTOM_LUX sind angepasst. Damit sollte die Library an sich jetzt Hardware unabhängig sein.

Die Funktionen zur externen Batteriemessung funktionieren noch nicht, muss ich noch anpassen.
Ansonsten geht es jetzt weiter mit der Arbeit an der Sensor Class.

Viele Grüße
Horst

lech

Hallo Trilu,

die Lib geht wieder, auch in der Arduino IDE  :D
Auch danke für die Datasheets. Die Radino's sind ziemlich interessant, nur aus Kostengründen werden wahrscheinlich kaum in Frage kommen.
Eine Bitte hätte ich noch, könntest du vielleicht später einen Normalen Taster (HM-PB-2-WM55-2) anlegen für die weniger erfahrenen Programmierer unter uns ;)
Da es noch keine ausführliche Dokumentation zur AskSin gibt, ist es nicht einfach die Zusammenhänge zu verstehen.
Ansonsten vielen Dank für die tolle Arbeit, verfolge mit großem Interesse deine Fortschritte.
Gruß
lech 

ks13

Hallo,
ich bin seit ein paar Tagen stolzer Besitzer eines panstamps und auf die NewAskSin Bibliothek aufmerksam geworden. Ich arbeite mit der Arduino IDE 1.5.8 und den entsprechenden panstamp libs. Beim Übersetzen ist mir aufgefallen, dass ich in der hal.h noch die "HardwareSerial.h" einbinden muss. Die ist standrdmäßig bei der panstamp lib nicht mehr dabei. Aber so lies sich dann alles übersetzen und in die panstamp laden.

Allerdings hat sie dann erst mal jeden Dienst verweigert und ist in CC::init bei strobe(CC1101_SRES); ausgestiegen. Wenn ich die Zeile auskommentiere, scheint alles zu laufen, aber jeder Versuch eines pairen mit einen Funk LAN Adapter bleibt erfolglos.

Momentan bin ich ratlos. Welche Umgebung ist denn für die NewAskSin Lib und die Panstamp zu empfehlen?

Viele Grüße,
Karsten

trilu

Arduino IDE 1.5.8 passt schon ganz gut - die Panstamp libs sind nicht notwendig, sollten aber auch nicht stören.
Du musst die NewAskSin in den library Ordner packen und umbenennen von NewAskSin-master nach NewAskSin.
Dann sollte es eigentlich funktionieren. Fehler beim cc::init darf auch keiner kommen. Weil wenn das Kommunikationsmodul
nicht läuft, wird es auch nichts mit HM Kommunikation.

Viele Grüße
Horst