JeeStuff(JeeLinks/Node) und FHEM

Begonnen von Guest, 11 Juli 2011, 12:39:23

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo Zusammen,

ich nehme mal die Diskussion
http://groups.google.com/group/fhem-users/browse_thread/thread/cf85dc426209f24
mit folgendem Zitat:
> Da das S8M aber keine "state changes" (Signalisierung nur
> bei nderung des Eingangssignals, notwendig zur berwachung eines
> Fenster-/T rkontaks) beherrscht, habe ich einen Atmel Atmega8 so
zum Anlass meinen Stand der Entwicklung zu JeeLinks/JeeNodes und FHEM
vorzustellen.
Und auch weil ich das die ganze Zeit schon mal machen wollte ;-)))
Allgemeine Info´s zum Thema gibt es hier: http://jeelabs.org/

Mein Ziel ist es JeeLinks/Nodes in FHEM zu integrieren.
Dabei sollte ein Jeelink als USB-Empfänger an FHEM dienen, wegen Formfaktor.
Als Nodes bzw. Sensor-Nodes (kurz JSN) sollten JeeNodes (entweder Battery
oder USB-Powered) zum Einsatz kommen.
Da jeder Sensor-Node mehrere Sensoren oder Datenquellen habe kann, sollten
die Daten
unabhängig d.h. von unterschiedlichen FHEM-Modulen verarbeitet werden können
,
bzw. gleiche Sensor-Daten/Typen von unterschiedlichen Nodes sollten vom
gleichen FHEM-Modul verarbeitet werden.
Die Nodes sollten Bidirektional mit der "Zentrale" kommunizieren können.
Beispiel:
Sensor-Node Nr. 1: Temperatur,Luftdruck,ReedContact (per Interrupt)
Sensor-Node Nr. 2: Temperatur und Lux

Als "Firmware" nutze ich das installierte RF12Demo.
Auf SensorNode-Seite nutze ich einen angepasste LowPower-Sketch.
Was habe ich heute:
Node 1:
Lux-Plug: http://jeelabs.net/projects/hardware/wiki/Lux_Plug
Node 2:
Luftdruck: http://jeelabs.net/projects/hardware/wiki/Pressure_Plug
Node 3:
Temperatur,Luftfeuchte, Bewegung (Room-Board):
http://jeelabs.net/projects/hardware/wiki/Room_Board

Alle Nodes sind Battery-Powered entweder per AA-Power-Board oder mit einer
Battery-Box.
http://jeelabs.net/projects/hardware/wiki/AA_Power_board

Eher Experimenteller-Art ist die Integration eines Graphic-Boards:
http://jeelabs.net/projects/hardware/wiki/Graphics_Board
Hiermit kann man beliebige Textnachrichten aus FHEM z.B. Temperatur im
Garten auf
das Display schicken...


Das habe ich mit folgenden FHEM-Modulem umgesetzt:
00_JeeLink.pm -> IODev-Modul für RF12Demo bzw. JeeLink
18_JSN.pm ->JeeSensor-Node
99_JPU.pm -> Textnachrichten aufs Display

Wie funktioniert das Ganze nun:
Zuerst muss man mit dem JeeNode irgendwie an die Messdaten kommen.
Wie das genau geht, bitte beim jeweiligen JeePlug nachschauen...
Die Sensor-Daten werden "FHEM-Kompatibel" verpacken (Beispiel LUX-Plug):
[JSN.Sketch]
  // JeeNode-PayLoad Data-Struktur
  struct  {
    // Lux-Plug
    byte lux_type;
    int lux_data;
  } payload;
  [...]
  payload.lux_type = 12;
  payload.lux_data = sensor.calcLux();
[JSN.Sketch]
und gesendet...

Korrespondierend dazu gibt es einen "Eintrag" im JSN:
  [18_JSN]
    [...]
  $hash->{Match}     = "^JSN";
  [...]
  # Brightness-
----------------------------------------------------------------
  $data{JEECONF}{12}{ReadingName} = "brightness";
  $data{JEECONF}{12}{DataBytes} = 2;
  $data{JEECONF}{12}{Prefix} = $match;

Also...
Das LUX-Plug liefert 2-Byte an Daten.
Das READING für den JSN heisst brightness.
In FHEM werden die Daten an das Modul JSN ($hash->{Match}) weitergeleitet.

Beispiel Temperatur:
  [18_JSN]

  # Temperature
----------------------------------------------------------------
  $data{JEECONF}{11}{ReadingName} = "temperature";
  $data{JEECONF}{11}{DataBytes} = 2;
  $data{JEECONF}{11}{Prefix} = $match;
  $data{JEECONF}{11}{CorrFactor} = 0.1;

Temperatur-Daten werden in 2-Byte-Daten geliefert und nachher um den Faktor
0.1 korrigiert.

Generell habe ich mir das so gedacht:
  # JeeConf
  # $data{JEECONF}{}{ReadingName}
  # $data{JEECONF}{}{DataBytes}
  # $data{JEECONF}{}{Prefix}
  # $data{JEECONF}{}{CorrFactor}
  # $data{JEECONF}{}{Function}
  # : 0-9 -> Reserved/not Used
  # : 10-99 -> Default
  # : 100-199 -> Userdifined
  # : 200-255 -> Internal/Test
 
Für jeden Sensor-Typ wird unter $data{JEECONF}{} ein Eintrag
gemacht.
Somit sind aktuell 255 Sensor-Typen möglich.
Die Sensor-Typen können mit Hilfe des Prefix innerhalb von FHEM an
verschieden
Module "gerouted" werden.

Was kann man damit machen:
Prinzipiell steht damit ein Weg zur Verfügung irgendwelche Sensor-Daten
nach FHEM "zu bringen".
Ein JeeNode kann im allgemeinen "jeden" Sensor auslesen, der 3,3V "kann".
Die Jee-"Dinger" sind alle Arduino kompatibel, d.h. ein Sensor, der von
Arduino unterstütz wird
kann in FHEM eingebunden werden...
Und es kann gebastelt werden...
Hier gibt es eine kleine Auswahl: http://www.watterott.com/de/Sensoren/


Wenn Interesse besteht, stelle ich die Module ins CSV.

@Rudi: Danke für die Unterstützung

Axel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi,

danke für die tolle Idee, vorher noch nie von den Teilen gehört.
Soweit ich gelesen habe, sprechen die Dinger über 868 MHz. Könnte es
grundsätzlich möglich sein, ein CUL (der eventuell parallel noch FS20
kann) als Empfänger zu verwenden? Oder ist die Modulation komplett
anders? Wäre halt total cool, wenn man sich den JeeLink sparen könnte.

Ich bin auf jeden Fall dafür, die Module ins CVS einzuhängen.

... und ich könnte schon wieder weiter basteln. Schlimm.

Gruß

marte



Am 11.07.2011 12:39, schrieb Axel:
> Hallo Zusammen,
>
> ich nehme mal die Diskussion
> http://groups.google.com/group/fhem-users/browse_thread/thread/cf85dc426209f24
> mit folgendem Zitat:
>  > Da das S8M aber keine "state changes" (Signalisierung nur
>  > bei nderung des Eingangssignals, notwendig zur berwachung eines
>  > Fenster-/T rkontaks) beherrscht, habe ich einen Atmel Atmega8 so
> zum Anlass meinen Stand der Entwicklung zu JeeLinks/JeeNodes und FHEM
> vorzustellen.
> Und auch weil ich das die ganze Zeit schon mal machen wollte ;-)))
> Allgemeine Info´s zum Thema gibt es hier: http://jeelabs.org/
>
[...]

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

tostmann

                                                 

Am 11.07.2011 um 13:25 schrieb marte:

> Soweit ich gelesen habe, sprechen die Dinger über 868 MHz. Könnte es grundsätzlich möglich sein, ein CUL (der eventuell parallel noch FS20 kann) als Empfänger zu verwenden? Oder ist die Modulation komplett anders

Ein CUL kann durchaus ein JeeNode-USB Adapter sein, allerdings aufgrund der FSK Modulation der dort verwendeten RFM12B Module _NICHT_ gleichzeitig FS20 empfangen.

Man müßte dann, wie auch bei FS20 und HM gleichzeitig, zum Senden kurz den RF Chip neu initialisieren.


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi marte,

freut mich, dass jemand interesse hat ;-))

wie Dirk schon schrieb nutz der JeeLink/Node eine andere Modulation.
Der JeeLink kann allerdings FS20 senden...mit dem kleinen Nachteil,
dass er während dessen nix empfangen kann...
Als CUL Ersatz war er nicht gedacht...

> und ich k nnte schon wieder weiter basteln. Schlimm.
Kann ich verstehen ;-))
Dann direkt noch ein paar Anregungen:
http://jeelabs.net/projects/hardware/wiki/
http://jeelabs.net/projects/hardware/wiki/OOK_433_Plug

oder das ganze Arduino "Sortiment"
http://arduino.cc/playground/Main/InterfacingWithHardware
abder dass nur nebenbei ;-))

Ich stell die Module dann die Tage in CVS und "sag Bescheid"

Schöne Grüße

Axel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Zusammen,

die ensprechenden Module stehen im CVS /fhem/contrib/JeeStuff...danke

FHEM-Module:
00_JeeLink.pm:JeeLink als IODEV
18_JME.pm:
JeeMeter, ein Modul zum Messen von Zählerständen.
Ich habe damit z.B. meinen Gaszähler per ReedContact gemessen.
Der ReedContact war per Interrupt an einen JeeNode angeschlossen.
18_JSN.pm: JeeSensorNode

Jee/Arduino-Sketche:
FHEM_JSN_BMP85.pde:
Luftdruckmessung per Pressure Plug:
http://jeelabs.net/projects/hardware/wiki/Pressure_Plug
FHEM_JSN_LUX.pde
Lux-Messung per Lux-Plug: http://jeelabs.net/projects/hardware/wiki/Lux_Plug
FHEM_JSN_RoomNode.pde
Für das RoomBoard: http://jeelabs.org/2010/11/28/meet-the-new-room-board-v2/

Grundlage für die Sketche ist RoomNode.pde
http://jeelabs.net/projects/cafe/repository/show/RF12/examples/roomNode.
Angepasst habe ich das Datenformat (payload), damit es in FHEM verarbeitet
werden kann,
und je nach Sketch überflüssiges gelöscht...

Flashen der Sketche geht über die Arduino.ide
(http://arduino.cc/en/Main/Software),
zusätzlich braucht man noch die Libraries Ports und Rf12 von JeeLabs
(http://jeelabs.net/projects/cafe/wiki/Libraries).

Axel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com