Signalduino Entwicklung

Begonnen von thoffma3, 05 Juli 2015, 23:01:00

Vorheriges Thema - Nächstes Thema

pataya

Herzlichen Dank. Hatte ich auch schon mal gelesen, mich aber nicht mehr daran erinnert.  >:(
Die LED leuchtet jetzt auf, reagieren tut trotzdem kein Rollo. Hab ich noch was übersehen? Sonst muss ich mal einen anderen Sender probieren.

Gruß

Ellert

Du musst das IODev in den Devices auf den SDnamen setzen.

Hast Du ein nur reload des Moduls durchgeführt, dann versuche shutdown restart?

Das Modul gibt es auch von viegeners Github: https://github.com/viegener/Telegram-fhem/tree/master/Somfy

pataya

Problem gelöst.
Die Beschriftungen für VCC und DATA sind auf dem Sender vertauscht... umgesteckt und funktioniert. Klasse.

Danke für die Hilfe.

Gruß

yamfhem

... gibt es ein fertiges *.hex - File für einen promicro?
Kann ich das selbst kompilieren? Ich hatte hier mal gelesen, das es mit der Arduino-IDE nicht geht, sondern nur mit Visual Micro (oder so), oder geht das auch direkt auf einem raspi?

yamfhem

JayP

Ich hätte da mal eine Grundsätzliche Frage zum vorgehen.

Wenn ich den Signalduino auf verbose 4 oder 5 schalte, erscheint bei mir massig im log.
Wie finde ich dann das Gerät welches mich interessiert?

Ich habe z.B. eine Jarolift Remote deren Signale ich gerne empfangen und weiterverarbeiten möchte.

Gruß
Jay
FHEM 5.7 auf ODROID C2, CUL868, MaxCube mit culfw auf 433Mhz, Jeelink 868Mhz, 4x HM-CC-RT-DN, 1x HM-LC-Bl1-FM, 7x IT-Steckdosen, 5x LaCrosse Sensoren, 3x Revolt NC-5462, 1x SD_WS07, 2x G-Tag, Logitech Media Server auf Zyxel, ASUS TF300t mit Android 6 und TabletUI, u.v.m.

JayP

Keiner?  :'(

Ein Link auf ein How-To?
FHEM 5.7 auf ODROID C2, CUL868, MaxCube mit culfw auf 433Mhz, Jeelink 868Mhz, 4x HM-CC-RT-DN, 1x HM-LC-Bl1-FM, 7x IT-Steckdosen, 5x LaCrosse Sensoren, 3x Revolt NC-5462, 1x SD_WS07, 2x G-Tag, Logitech Media Server auf Zyxel, ASUS TF300t mit Android 6 und TabletUI, u.v.m.

Sidey

Falscher Thread würde ich eher sagen.

Eine Anleitung kann ich dir nur grob geben. Jeder hat ein anderes Umfeld etc.

1. Sicherstellen, dass Jarolift und SIGNALduino das gleiche Frequenzband nutzen. z.B. 433 Mhz
2. SIGNALduino auf Verbose 5 stellen.
3. Einen Jarolift Befehlt im 5 Sekundentakt senden. (10 Sekunden geht natürlich auch).

Anschließend sollte sich im Internal "unknownmessages" die Nachricht befinden. Diese mal wegspeichern (notepad).
4. Verbose 3 (oder auch kleiner) wieder einstellen.
5. Die Daten aus unknownmessages im Notepad anschauen und prüfen, ob man im verwendeten Takt (5 Sekunden) ähnliche Einträge findet.

6. Findet man dort nichts, kann man im FHEM Log nachsehen und die Suche fortsetzen.


Was ich mit Hilfe von google schon mal finden konnte ist, dass Jarolift einen rollingcode verwendet.

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

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

Sidey

Zitat von: yamfhem am 12 Oktober 2016, 08:18:38
... gibt es ein fertiges *.hex - File für einen promicro?
Kann ich das selbst kompilieren? Ich hatte hier mal gelesen, das es mit der Arduino-IDE nicht geht, sondern nur mit Visual Micro (oder so), oder geht das auch direkt auf einem raspi?

Ein fertiges HEX File gibt es leider nicht.
Ich hatte mal einen promicro... leider ist die USB Buchse irgendwann abgerissen.... daher kann ich es nicht testen.

Von Seiten des Interrupts müsste es funktionieren mit PIN#2, wobei ich mich auch erinnere, dass ich schon mal Register für den proMicro gesetzt habe.

Für die Serielle Verbindung muss noch ein Wait eingebaut werden. Ich hab das mal committed.


Compilieren geht auch mit der Arduino IDE, ich habe es jetzt nicht ausprobiert, jedoch sollte es funktionieren, wenn Du alle ino, cpp und h Dateien in einen Ordner kopierst.

ich könnte dir das hex für den leonardo mal compilieren, aber ich glaube das läuft auf dem promicro dann doch nicht so wie erwartet.

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

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

yamfhem

@Sidey: ah, hab grad eben mal selbst kompiliert (musste einige <include.h> nach "include.h" ändern) dann ging's durch. Da ich's jetzt selber kann, brauchst Du mir nix extra kompilieren. Mich interessieren da eher die, von Dir angesprochenen, notwendigen Änderungen für den promicro.
Welche Register meinst Du?
Was hast Du bzgl. Wait bei serieller Verbindung committed?

Gruß
yamfhem

Sidey

Ich hab im devr33 committed, dass im Setup gewartet wird, bis die Serielle Schnittstelle initialisiert ist.

Register war eine dunkle Erinnerung für den Interrupt.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

sasquuatch

hallo,
wir haben jetzt unsere ersten SIGNAlduino mit 433 und 868 mhz gebaut und auch schon einiges empfangen und geschaltet. Ich hätte da noch einige Fragen.

1. In der Wiki steht unter:
Daten aus dem Logfile erklärt
MC - Nachricht vom Typ Manchester: Manchester Kodierte Signale, können bereits sehr einfach im Arduino in eine Binärform umgewandelt werden. Es wird hier nach IEEE 802.3 umgewandelt. In Manchester Signalen gibt es lange und kurze Pulse. Deren Durchschnittswert wird mit LL (long low), LH (long high), SL (short low) und SH (short high) übermittelt. Zusätzlich, um das Protokoll schneller erkennen zu können, wird die Taktfrequenz mit übermittelt (C=429 Mikrosekunden). Die Daten befinden sich hinter D= und werden in HEX Form übergeben.



Gibt es eine Anleitung wie man eine MC Nachricht in Binärform bekommt?

1.1 Bzw. gibt es eine Alneitung wie man generell mit den empfangen Daten umgehen kann und z.B. ein Modul schreibt oder soll man ein DOIF mit Dummy anlegen, oder was ganz anderes?
Wir könnten uns z.B. vorstellen ein Modul zu schreiben, damit jeder mit einem CUL oder SIGNAlduino der Roto Rollläden mit Centronic Fernbedienung hat, diese dann einfacher steuern kann. Diese kommen meines erachten als MC Nachricht.

2.
Wie kann ich etwas Senden
Alternativ kann ab Version 3.2 auch eine vereinfachte Form eingegeben werden. set sduino sendMsg P3#00111010#R4

Moduliert die Bitfolge 00111010 mittels Protokoll #3 und wiederholt die Nachricht 4x.

Wie kann ich die Bitfolge mit dem Portokoll 3 den modulieren?


Sidey

Zitat von: sasquuatch am 17 Oktober 2016, 12:08:19
Gibt es eine Anleitung wie man eine MC Nachricht in Binärform bekommt?
Hmm, was genau meinst Du damit? Es wird im Ardunino ausgewertet, binär gespeichert und dann in HEX umgewandelt um es an FHEM übergeben zu können.
Du kannst es mit Perl Befehlen auch wieder in einzelne bits zerlegen. Das musst Du dann aber selbst programmieren.

Zitat von: sasquuatch am 17 Oktober 2016, 12:08:19
1.1 Bzw. gibt es eine Alneitung wie man generell mit den empfangen Daten umgehen kann und z.B. ein Modul schreibt oder soll man ein DOIF mit Dummy anlegen, oder was ganz anderes?
Eine Anleitung existiert leider nicht. Zum Modulschreiben hilft das Wiki:

http://www.fhemwiki.de/wiki/DevelopmentModuleAPI
http://www.fhemwiki.de/wiki/DevelopmentModuleIntro

Bezüglich DOIF, das geht meines Erachtens nur gut für einfache dinge wie An / Aus... Ein Anwender hat damit eine Motorleinwand gesteuert und Gragentor war auch schon mal Thema.
Für Positionssteuerung und wiederverwendbares ist ein eigenes Modul die bessere Wahl.
Da hilft dann leider nur, andere Rolladen Module ansehen und als Vorlage verwenden.

2.
Wie kann ich etwas Senden
Wie kann ich die Bitfolge mit dem Portokoll 3 den modulieren?
[/quote]

Die Bitfolge wird vom SIGNALduino moduliert, es müssen nur die Bits übergeben werden.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

sasquuatch

da habe ich wohl nicht nur was falsch verstanden, ich habe mich auch noch sehr schlecht ausgedrückt  :-[
danke für deine hilfe, trotz meiner schlechten erklärung, ich hoffe ich mache es jetzt besser.

ich habe jetzt versucht zwei Geräte zu empfangen, zum einen Signale von einem 433mhz Hoftor die als MU Nachrichten kommen. Hier weiß ich, dass ich diese wie in der Wiki als RAW message senden kann.
set sduino raw SR;;R=3;;P0=4742;;P1=-1554;;P2=286;;P3=-786;;P4=649;;P5=-420;;D=0123234545234545452323232323454523234523454523232345454523232323452345234523452345;;
Das hat bisher auch über den signalduino direkt funktioniert, manchmal auch über die Kommandozeile von FHEM.
Bei meinem DOIF mit Dummy habe ich wohl was falsch gemacht, ich schaue mal ob ich das von dir angesprochene hier im thread finde.

Jetzt habe ich vom Roto Dachrollladen 868mhz MC Nachrichten empfangen. Ich dachte halt, ich muss die empfangenen Daten erst in Binärform umwandeln. Ich wusste nicht, dass ich diese schon als Binärform erhalten habe.
Aber wie kann ich diese nun senden, so?
set sduino raw SR;;R=3;;LL=-1066;LH=904;SL=-562;SH=385;D=332B4B4D54D5554B552CD2D554B2B5354A;;


Bei dem Code hier ist meine Frage:
Alternativ kann ab Version 3.2 auch eine vereinfachte Form eingegeben werden. set sduino sendMsg P3#00111010#R4
wo bekomme ich das jetzt her "P3#00111010#R4"?


Ich habe aber noch eine Frage zu den MU Nachrichten. Alle Daten die ich von der FB empfange, sind jedes mal andere. Jetzt könnte man denken, dass es Rolling Codes sind, aber meine billig nachgekauften Fernbedinungen verstehen definitiv keine Rolling Codes.
Ist das normal das es jedes mal andere Codes sind?

Bei den MC Nachrichten der Roto Fernbedinung sind die empfangen Codes auch jedes mal neu, allerdinge könnte es da sein, dass es Rolling Codes sind.

habeIchVergessen

mit SR musst du immer die Länge vom Pegel angeben

z.B. P0=1000;P1=-1000;P2=500;P3=-500

Vorzeichen entspricht + = HIGH und - = LOW

hinter D= stehen dann nur noch die jeweiligen Indexe hinter P

z.B. D=21032103

-__--_-__--_

Bei Manchester ist immer der Flankenwechsel (bei den gewählten Frequenzen 500) zur Mitte eines Pulse entscheidend.

2 halber Pulse
1 halber Pulse Wechsel von HIGH nach LOW = 0
1 halber Pulse
0 halber Pulse Wechsel von LOW nach HIGH = 1
0 halber Pulse
3 halber Pulse Wechsel von HIGH nach LOW = 0

...

schon recht komplex!

die neue Syntax (P3#00111010#R4) ist deutlich einfacher, da hier "nur" angegeben wird, was gesendet werden soll (in Hex).

Das Beispiel oben kann nicht dargestellt werden, da nur 6 Bits kodiert waren.

Sidey

Zitat von: sasquuatch am 18 Oktober 2016, 11:40:42
Aber wie kann ich diese nun senden, so?
set sduino raw SR;;R=3;;LL=-1066;LH=904;SL=-562;SH=385;D=332B4B4D54D5554B552CD2D554B2B5354A;;

Mit diesem Kommando (Send Manchester):
SM;R=3;C=400;D=332B4B4D54D5554B552CD2D554B2B5354A;

Fehlt leider in der commandref :(


Zitat von: sasquuatch am 18 Oktober 2016, 11:40:42
Bei dem Code hier ist meine Frage:
Alternativ kann ab Version 3.2 auch eine vereinfachte Form eingegeben werden. set sduino sendMsg P3#00111010#R4
wo bekomme ich das jetzt her "P3#00111010#R4"?

Dazu müsste zunächst ein Protokoll für dein Signal definiert werden, welches für die Demodulation und auch für die Modulation verwendet wird.

Zitat von: sasquuatch am 18 Oktober 2016, 11:40:42
Ist das normal das es jedes mal andere Codes sind?
Woran machst Du das fest, dass es andere codes sind?
In der MU Nachricht, bekommst Du das Muster übergeben. Die Zahlen P0-P7 sind Muster. Deren Wert gibt an, wie lange der Pegel den entsprechenden Zustand hatte.
In D= wird nur noch auf die P0-7 referenziert.
Die Werte P0-7 müssen nicht an der gleichen Stelle stehen und auch nicht den exakt gleichen wert haben, es gibt da immer Abweichungen.
[/quote]

Zitat von: sasquuatch am 18 Oktober 2016, 11:40:42
Bei den MC Nachrichten der Roto Fernbedinung sind die empfangen Codes auch jedes mal neu, allerdinge könnte es da sein, dass es Rolling Codes sind.

Das könnte sein, dass ein teil sich verändert:
332B4B4D54D
5554B552CD2
D554B2B5354A

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

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