Hauptmenü

FHEMduino

Begonnen von mdorenka, 06 Dezember 2013, 15:34:39

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

die ganzen C++ Sachen muss ich mir dann noch mal aneignen. Ich habe bis jetzt einfach nur mal wieder, nach 30 Jahren, angefangen zu programmieren. So zu sagen, als Fitnessprogramm fürs Gehirn.  :)

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

digital.arts

Hallo,

wenn Ihr (Jörg, Sidey) es hinbringen solltet, dass auch noch Home-Easy Komponenten mit dem FHEMduino laufen, dann wäre das SUPER !!
Ich hab zwar noch keine H.-E.-Teile, kann ich aber kurzfristig besorgen (Pollin liegt "um die Ecke"  ;) )
und würde mich gerne als Tester zur Verfügung stellen.
Ein paar 433er Tür-/Fenster-Kontakte und PIR-Melder aus Hongkong sind auch bestellt (über die Bucht, nach Empfehlung von mick6300)
(kann aus leidiger Erfahrung einige Wochen dauern und sind dann vermutlich abzuholen beim Hauptzollamt Regensburg  >:( )

@Jörg hast Du evtl. schon einen produktiven Sketch mit KD-101 Unterstützung ?

Viele Grüße

Karl
FHEM auf RPi; CUL868 für FHT; NanoCUL433 für IT und Revolt; Fhemduino für IT und Temp/Hum; RFXTRX433e für IT/FA20RF/Funkgong/HomeEasy; NanoFirmataEth für 1wire Temp

Spezialtrick

Zitat von: JoWiemann am 21 Juni 2014, 11:38:31
Hallo Karl,

anbei der TestSketch für Flamingo/Elro. Probiert doch mal bei Dir aus, bevor ich das in den Produktiv-Sketch übernehme. Empfangen sollte funktionieren, beim Senden muss ich noch an meinem Verständnis arbeiten.

Grüße Jörg

Hallo Jörg,

bin seit heute wieder daheim und konnte den Sketch für den Erlo KD-101LD bzw. Flamingo FA20RF testen. Mein erster Flamingo FA20RF gibt folgendes im Serialmonitor aus:

------ Start ------
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111
Message: 0011000111101101010000111


Habe noch einen zweiten Flamingo hier liegen. Gib einfach Bescheid, wenn du dessen Ausgabedaten benötigst. :)

Und schon mal ein großes Danke für deine Mühe!
FHEM - Debmatic - Zigbee2MQTT - Homekit

Spezialtrick

Zitat von: Sidey am 22 Juni 2014, 01:40:39
Hallo,

so ich habe den Sketch mal ein paar Stunden laufen lassen und nichts negatives festgestellt.

Eventuell hat sich meine Anpassung nun aber mit der für den Brandmelder überschnitten.

Ich habe folgendes verändert:
- Decoding für OSV2 Protocol integriert
- Einige Compilerschalter für diverse codecs  (Oregon Scientific v2, Oregon Scientific v3,Cresta,Kaku,XRF,Home Easy) implementiert
- Compilierswitch um ohne DCF-77 compilieren zu können. Funktioniert jedoch noch nicht.
- Variable eingespart um die Dauer eines Pulses zu messen, war diese nicht notwendig.

Offen:
- Die Decoder in eine library ausgalgern und mit weiteren Decodern ergänzen. Siehe hier: https://github.com/jcw/jeelib/blob/master/examples/RF12/ookRelay2/decoders.h
- Perl Modul

Vom Code auf dem Arduino entschlüsseln halte ich nicht sonderlich viel. Das kann ja ein Perl Modul in FHEM besser machen.

Der Code der am seriellen Port ausgegeben ist sieht in etwa so aus:
OSV2:AADC539910211044
OSV2:EA4C10E420159053
OSV2:8AFC53998351420624021632A

Die OSV2 Sensonren bekommen wir auseinander genommen. Da kenne ich den Aufbau.
Dann empfange ich noch einen cresta Sensor und einen Home Easy. Beide sind nicht von mir, glaube sogar der cresta den ich empfange ist ein uv sensor.

Grüße Sidey

Hallo Sidey,

wenn ich das richtig sehe, ist der von dir angehängte Sketch der aktuellste Produktivsketch. Leider bekomme ich es nicht hin diesen auf meine FHEMduino aufzuspielen. Ich erhalte immer folgende Fehlermeldungen:

sketch.ino:50:19: error: DCF77.h: No such file or directory
sketch.ino:51:18: error: Time.h: No such file or directory
sketch:54: error: virtual outside class declaration
sketch:55: error: virtual outside class declaration
sketch:56: error: virtual outside class declaration
sketch:57: error: virtual outside class declaration
sketch:58: error: virtual outside class declaration
sketch:59: error: 'time_t' does not name a type
sketch:60: error: 'DCF77' does not name a type
sketch.ino: In function 'void setup()':
sketch:554: error: 'DCF' was not declared in this scope
sketch.ino: In function 'void loop()':
sketch:573: error: 'time_t' was not declared in this scope
sketch:573: error: expected `;' before 'DCFtime'
sketch:574: error: 'DCFtime' was not declared in this scope
sketch:576: error: 'setTime' was not declared in this scope
sketch.ino: In function 'void handleInterrupt()':
sketch:652: error: 'cres' was not declared in this scope
sketch:681: error: 'cres' was not declared in this scope
sketch.ino: In function 'char* sprintTime()':
sketch:1398: error: 'hour' was not declared in this scope
sketch:1398: error: 'minute' was not declared in this scope
sketch:1398: error: 'second' was not declared in this scope
sketch.ino: In function 'char* sprintDate()':
sketch:1409: error: 'day' was not declared in this scope
sketch:1409: error: 'month' was not declared in this scope
sketch:1409: error: 'year' was not declared in this scope


Könntest du mir sagen, was ich hier nicht richtig mache?
FHEM - Debmatic - Zigbee2MQTT - Homekit

JoWiemann

Hallo,

für DCF77 und time sind die entsprechenden Librarys von Arduino einzubinden.

Die DC77 Library bekommt man hier : http://thijs.elenbaas.net/downloads. In der Lib ist wohl auch die time Lib von Arduino enthalten. Ansonsten musst du die Time-Lib von hier holen: http://playground.arduino.cc/Code/DateTime

Bitte berücksichte, dass es für die OOK-Decoder noch keine FHEM-Anbindung gibt und der Sketch sicherlich noch nicht vollständig fertig ist.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Spezialtrick

#485
Danke Jörg! Habe die entsprechenden Librarys eingebunden und ein Großteil der Fehler verschwindet. Leider bleiben diese weiterhin erhalten:

fhemduino:54: error: virtual outside class declaration
fhemduino:55: error: virtual outside class declaration
fhemduino:56: error: virtual outside class declaration
fhemduino:57: error: virtual outside class declaration
fhemduino:58: error: virtual outside class declaration
fhemduino.ino: In function 'void handleInterrupt()':
fhemduino:652: error: 'cres' was not declared in this scope
fhemduino:681: error: 'cres' was not declared in this scope


:-\

EDIT: Habe nun den Sketch von Mick6300 aus der Antwort #469 genommen. Der funktioniert anstandslos. :)
FHEM - Debmatic - Zigbee2MQTT - Homekit

Sidey

Hallo Spezialtrick,

Zitat von: Spezialtrick am 23 Juni 2014, 12:14:02
... ein Großteil der Fehler verschwindet. Leider bleiben diese weiterhin erhalten:

fhemduino:54: error: virtual outside class declaration
fhemduino:55: error: virtual outside class declaration
fhemduino:56: error: virtual outside class declaration
fhemduino:57: error: virtual outside class declaration
fhemduino:58: error: virtual outside class declaration
fhemduino.ino: In function 'void handleInterrupt()':
fhemduino:652: error: 'cres' was not declared in this scope
fhemduino:681: error: 'cres' was not declared in this scope


Ich werde mir das heute abend genauer ansehen. Da hat sich wohl ein Fehler eingeschlichen.

Kriegen wir unsere Änderungen vielleicht ins gut rein? Langsam wird es ja etwas unübersichtlich.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

JoWiemann

Hallo Sidey,

ich habe jetzt mal angefangen die bisherigen Decoder (PEARL, LogiLink usw) zu vereinheitlichen und in Module auszulagern, die dann per #define geladen werden können. Ich folge da auch Deinem Vorschlag keine Bit-Dekodierung vorzunehmen, sondern diese in die FHEM-Module zu verlagern.

Was wir bräuchten ist eine Basis, in die auch neue Decoder "einfach" eingehangen werden können. Können wir uns da nicht an der CULFW orientieren?! Und wer macht einen Vorschlag...

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Sidey

Hallo Jörg,

Zitat von: JoWiemann am 23 Juni 2014, 12:52:02
Hallo Sidey,

ich habe jetzt mal angefangen die bisherigen Decoder (PEARL, LogiLink usw) zu vereinheitlichen und in Module auszulagern, die dann per #define geladen werden können. Ich folge da auch Deinem Vorschlag keine Bit-Dekodierung vorzunehmen, sondern diese in die FHEM-Module zu verlagern.

Okay, freut mich. Der schalter für dcf77 funktioniert leider noch nicht. Den Fehler hast Du nicht zufällig gefunden oder?
Für Debug könnte man das ja ähnlich lösen. Ist es deaktiviert brauchen wir es ja eh nie im code ausser wir wollen es per Kommando aktivieren können

Zitat
Was wir bräuchten ist eine Basis, in die auch neue Decoder "einfach" eingehangen werden können. Können wir uns da nicht an der CULFW orientieren?! Und wer macht einen Vorschlag...

Meinst Du mit Basis den Teil in FHEM (Perl) oder den auf dem Arduino? Den Aufbau der Perl Module habe ich mir nur mal geschwind angesehen. Das ist mit dem Basismodul und den Submodulen ja schon recht gut vorgegeben.

Den Source von der CULFW kenne ich nicht, gibt es den irgendwo?
Ansonsten könnten wir ja einfach die class DecodeOOK nehmen und vielleicht die Funktionen etwas sprechender wählen und dokumentieren.
Im Prinzip könnte man so eine Klasse vermutlich auch mit Parametern füttern.

  • Wie ist der Sync teil aufgebaut
  • Welche Pulslängen sind 0 bzw 1.
  • Wie lange ist ein Puls
  • Wie lange ist eine Nachricht (min/max)


In Zeile 336 habe ich noch einen einen Fehler eingebaut, deshalb ging auch das compilieren nicht:

#ifdef COMP_class CrestaDecoder : public DecodeOOK {


muss in


#ifdef COMP_Cresta
class CrestaDecoder : public DecodeOOK {

geändert werden.

und in Zeile #56


#define DCF_PIN 3            // Connection pin to DCF 77 device




zu



#if defined(__AVR_ATmega32U4__)          //on the leonardo and other ATmega32U4 devices interrupt 1 is on dpin 2
#define DCF_PIN 2            // Connection pin to DCF 77 device
#else
define DCF_PIN 3            // Connection pin to DCF 77 device
#endif



Damit DCF77 auch auf einem Leonardo oder ähnlichem funktioniert.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

mdorenka

Hallo leute,

es freut mich zu sehen dass es hier voran geht! :)

wäre es evtl möglich dass wir alle zusammen in einem repository arbeiten, um somit nicht zig Versionen hier im Forum rumliegen zu haben?

viele grüße,
marcel
FHEMduino an RaspberryPi, IT Zwischenstecker, KW9010 T/H-Fühler

Sidey

Zitat von: mdorenka am 23 Juni 2014, 17:46:36
wäre es evtl möglich dass wir alle zusammen in einem repository arbeiten, um somit nicht zig Versionen hier im Forum rumliegen zu haben?

Ich bin dafür.  :)

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

JoWiemann

Zitat von: mdorenka am 23 Juni 2014, 17:46:36
wäre es evtl möglich dass wir alle zusammen in einem repository arbeiten, um somit nicht zig Versionen hier im Forum rumliegen zu haben?

Hallo Marcel,

bin dabei  :)

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

StefanL

Hallo,
bin ziemlich am Anfang was FHEM betrifft. Fenster öffnen, Markiese fährt, Licht usw. funktioniert. Wollte mich auch mal am Projekt FHEMduino versuchen. Sketch ist auch auf Arduino Mega drauf. In der Arduino IDE bekomme ich auch im Serial Monitor alle Meldungen von meiner IT Fernbedienung Angezeigt. Wenn ich den Arduino an den RPI anstecke und mit
def FHEMduino fhemduino /dev/ttyACM0@9600 definiere bekomme ich auch ein STATE open. Im log steht aber

Opening FHEMduino_USB device /dev/ttyACM0
2014.06.23 23:32:49 3: Setting FHEMduino_USB baudrate to 9600
2014.06.23 23:32:49 3: FHEMduino_USB device opened
2014.06.23 23:32:59 1: Cannot init /dev/ttyACM0, ignoring it (FHEMduino_USB)
2014.06.23 23:32:59 3: Opening fhemduino device /dev/ttyACM0
2014.06.23 23:32:59 3: Setting fhemduino baudrate to 9600
2014.06.23 23:32:59 3: fhemduino device opened
2014.06.23 23:33:08 1: Cannot init /dev/ttyACM0, ignoring it (fhemduino)

rechte mit chmod auf fhem gesetzt. Nun bin ich mit meinen Anfängerlatein am Ende. Hat jemand einen TIP für mich ?

Bei der Eingabe in der Shell von ls -ltr /dev/tty* bekomme ich den Arduino auch als TTYACM0 angezeigt


Gruß Stefan

NUC als Prduktivsystem,  Rasperry Pi mit FHEM zum Testen, diverse HM Komponenten, Arduino mit EthernetShield (China), AVR NetIO, NanoCUL, FHEMduino

drdownload

Was ist jetzt eigentlich der Scope des FHEMduino Projekts? Wenn ich richtig "mitlese", dann kann effektiv über Dazuhängen unterschiedlicher Funkmodule (zB nach Frequenz und Encoding) beinahe beliebig der Umfang erweitert werden und durch die Auslagerung des Decodierens in Software sollte auch die Sketchgröße nicht das Hauptproblem sein.

Täusche ich mich oder hat das Projekt das Potential "die" FHEM I/O Device zu werden, die das bisherige Sammelsurium (wie bei mir ;) ) von CUL, Jeelink und RFXTRX (nur als Beispiele) durch ein ein einziges Device ersetzt?
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,