Hmmm, da macht sich ja wieder die Ernüchterung breit. Nur das Sensorboard bringt mit nicht viel, da ich die Anlage ja dann im Bedarfsfall nicht ausschalten kann.
Bisher steuer ich über die potentialfreien Eingänge Stufe 1 und 3 mit zwei Homematic Funkschalter über FHEM an, wenn die Luftfeuchte im Bad zu hoch ist oder halt nach Zeitplan. Wenn das mit dem Teensy nicht funktioniert, ist es für mich einfacher, wenn ich die zwei CO20-Luftqualtiätssensoren in der Anlage lasse und Luftfeuchte sowie Temperatur über 1-Wire-Sensoren erfasse.
Die Funktion, die Anlage bei schlechter Außenluft abzuschalten müsste ich dann über eine Funk-Schaltersteckdose realisieren. Die Anlage stromlos zu schalten finde ich zwar nit so doll, aber anders gehts dann wohl nicht.
Habe auch mal geschaut, ob man ein Softwareupgrade machen kann, aber das geht wohl nur bei den neuen Geräten mit USB-Schnittstelle wie der P310.
Naja, wäre zwar schön gewesen, aber das bei mir verwendete Protokoll zu analysieren und die Software darauf hin anzupassen ist denke ich zu viel Aufwand und auch zu viel verlangt. Werde mal schauen, ob mir noch was einfällt, wie ich die Abschaltung auch ohne Netztrennung realisiert bekomme.
Gruß,
Dennis
Ankündigung
Einklappen
Keine Ankündigung bisher.
Pluggit Lüftungsanlage anbinden
Einklappen
X
-
Ein Gast antwortete
-
Zitat von spunky78 Beitrag anzeigenYeaaaahhh! Man, war das ein Erfolgserlebnis gerade! :-) Ich sehe Licht am Ende des Tunnels. Ich denke, die Ursache ist gefunden. Das Signal ist invertiert und hat 4800 Baud! Hier das Log:
...
Kann man das in der P300.ino irgendwo anpassen mit der invertierten Schnittstelle, oder müsstest Du dafür zunächst was umprogrammieren?
Ich kann zwar das Signal invertieren aber das ist ein ganz anderes Protokoll. Ich könnte die Software maximal so anpassen, dass das Sensorboard funktioniert.
Einen Kommentar schreiben:
-
Ein Gast antworteteYeaaaahhh! Man, war das ein Erfolgserlebnis gerade! :-) Ich sehe Licht am Ende des Tunnels. Ich denke, die Ursache ist gefunden. Das Signal ist invertiert und hat 4800 Baud! Hier das Log:
Kann man das in der P300.ino irgendwo anpassen mit der invertierten Schnittstelle, oder müsstest Du dafür zunächst was umprogrammieren?Code:SER3 192075 AA DE 22 56 SER3 192577 AA DE 22 56 SER3 193076 AA DE 22 56 SER3 193576 AA DE 22 56 SER3 194075 AA DE 22 56 SER3 194574 AA DE 22 56 SER3 195074 AA DE 22 56 SER3 195573 AA DE 22 56 SER3 196072 AA DE 22 56 SER3 196572 AA DE 22 56 SER1 252840 88 DE 22 41 00 00 00 35 SER3 252868 88 DE 22 41 02 0F 14 2C SER1 253451 88 DE 22 41 00 00 00 35 SER3 253477 88 DE 22 41 02 0F 14 2C SER1 254463 88 DE 22 42 00 00 00 36 SER3 254486 88 DE 22 42 0F 12 0F 24 SER1 254965 88 DE 22 43 00 00 00 37 SER3 254986 88 DE 22 43 20 0C 27 3C SER1 255467 88 DE 22 46 00 00 00 32 SER3 255495 88 DE 22 46 06 00 02 36
Gruß,
Dennis
Einen Kommentar schreiben:
-
Der ist geändert: https://github.com/d00616/Teensy3Ser...ialMonitor.inoZitat von spunky78 Beitrag anzeigenAlso 5055 Baud habe ich gerade getestet. Funktioniert auch nicht. Kann mir aber kaum vorstellen, dass die so nen krummen Wert nehmen. Schätze, dass 4800 schon richtig ist.
Das mit der invertierten Schnittstelle klingt recht plausibel. Kann man mal ausprobieren. Code im GitHub hast Du noch nicht geändert, oder?
5055 baud und invertiert ist auch noch eine Option.
Einen Kommentar schreiben:
-
Ein Gast antworteteAlso 5055 Baud habe ich gerade getestet. Funktioniert auch nicht. Kann mir aber kaum vorstellen, dass die so nen krummen Wert nehmen. Schätze, dass 4800 schon richtig ist.
Das mit der invertierten Schnittstelle klingt recht plausibel. Kann man mal ausprobieren. Code im GitHub hast Du noch nicht geändert, oder?
Einen Kommentar schreiben:
-
Die elektrische Verbindung funktioniert ja. Das hat der letzte Test ja bewiesen. Wenn ich mich nicht verrechnet habe werden die Daten auch mit 4800 Baud übertragen. Wenn die Konfiguration gleich wäre müsste mein Programm funktionieren welches die serielle Schnittstelle des Teensy benutzt. Da das bei dir nicht geht aber bei mir, sieht es nach einer anderen Schnittstellenkonfiguration aus. Hier kann die Zahl der Datenbits, die Parität oder die Zahl der Stopbits variieren. Eventuell ist das Signal auch invertiert, wobei dann die serielle Schnittstelle in der P300 per Software umgesetzt sein müsste. Das halte ich für unwahrscheinlich.Zitat von spunky78 Beitrag anzeigenHmmm, werde das mit der seriellen Konfiguration noch probieren. Denke aber nicht das es daran liegt.
Ich habe mir mal den Code des Teensy angesehen. Etwas anderes als 8N1 ist nicht implementiert. Damit ist das durchprobieren nicht so einfach.
EDIT:
Ich habe mal nachgerechnet. Bei 4800 Baud werden vier Zeichen pro Paket übertragen. Ein Paket ist 7846uS lang. Ein Bit ist etwa 198uS lang. Damit besteht ein Zeichen aus 10 Bit. Bei 4800-8N1 haben wir 10 Bit. Vielleicht habe wir es doch mit invertierter Logik zu tun. Der Teensy unterstützt das Invertieren: http://forum.pjrc.com/threads/23714-...=serial+invert
Ich passe mal den Sketch auf github auf invertieren an. //#define INVERT -> #define INVERT ersetzen.
EDIT:
Beim nachrechnen komme ich auf 5055 Baud. Das wäre auch noch einen Versuch wert den Wert 4800 mal auf 5055 hochzusetzen.
Bis jetzt ist noch nichts umsonst. Vielleicht gibt es ja genug Informationen um das V2-Protokoll zu entschlüsseln.Zitat von spunky78 Beitrag anzeigenEcht ärgerlich. Dann scheint die ganze Mühe umsonst gewesen zu sein.
Ich hatte einen 3.3V Arduino Uno zum Analysieren verwendet. Die serielle Kommunikation konnte ich gut entschlüsseln da der Arduino über eine echte serielle Schnittstelle zum PC sendet. So konnte ich von 115200 Baud auf die 4800 Baud umrechnen. Das funktioniert mit der USB-Schnittstelle des Teensy nicht so einfach.Zitat von spunky78 Beitrag anzeigenHast du das Protokoll bei dir damals mit nem Sketch ausgelesen? Falls du das Sketch noch hast, vielleicht könnte ich dann versuchen meines auszulesen und mit deinem zu vergleichen.
Ich kann mir zumindest auf Hardwareebene auch kein anderes Protokoll vorstellen. Die Daten werden per 3.3V Pegel seriell übertragen. Alles andere kann durch die Software beeinflusst werden und sieht bis jetzt anders aus.Zitat von spunky78 Beitrag anzeigenAuf der anderen Seite kann ich mir ein anderes Protokoll kaum vorstellen. Zum Beispiel bekommt man die Fernbedienung und die Hauptplatine jeweils nur in einer Ausführung. Aber vielleicht liegt es an unterschiedlichen Softwareversionen.
Einen Kommentar schreiben:
-
Ein Gast antworteteHmmm, werde das mit der seriellen Konfiguration noch probieren. Denke aber nicht das es daran liegt.
Echt ärgerlich. Dann scheint die ganze Mühe umsonst gewesen zu sein.
Hast du das Protokoll bei dir damals mit nem Sketch ausgelesen? Falls du das Sketch noch hast, vielleicht könnte ich dann versuchen meines auszulesen und mit deinem zu vergleichen.
Auf der anderen Seite kann ich mir ein anderes Protokoll kaum vorstellen. Zum Beispiel bekommt man die Fernbedienung und die Hauptplatine jeweils nur in einer Ausführung. Aber vielleicht liegt es an unterschiedlichen Softwareversionen.
Gesendet von meinem GT-I9300 mit Tapatalk
Einen Kommentar schreiben:
-
Das habe ich gerne gemacht. Viel mehr werde ich auch nicht mehr beisteuern können. Es sieht nach einem komplett anderen Protokoll aus. Das müsste eventuell von Anfang an Analysiert werden.Zitat von spunky78 Beitrag anzeigenOk, dann werde ich das mal probieren (heute oder morgen) und berichten.
Vorerst schon mal vielen vielen Dank, dass Du dich so sehr einbringst.
Die Seriennummer der Fernbedienung spielt bei der entschlüsselten Kommunikation keine Rolle. Ich vermute die Seriennummer wird im Empfänger gespeichert.Zitat von spunky78 Beitrag anzeigenHabe noch was gefunden. Kann es sein, dass jede Fernbedienung separate kodiert und Dein Programm an die jeweilige FB angepasst werden muss?
Einen Kommentar schreiben:
-
Ein Gast antworteteHabe noch was gefunden. Kann es sein, dass jede Fernbedienung separate kodiert und Dein Programm an die jeweilige FB angepasst werden muss?Angehängte Dateien
Einen Kommentar schreiben:
-
Ein Gast antworteteOk, dann werde ich das mal probieren (heute oder morgen) und berichten.
Vorerst schon mal vielen vielen Dank, dass Du dich so sehr einbringst.
Einen Kommentar schreiben:
-
Ein Bit sind ca. 200 Mikrosekunden = 5000 Baud -> 4800 BaudZitat von spunky78 Beitrag anzeigenMit dem Script funktioniert die Fernbedienung und die Kommunikation in beide Richtungen. Habe das Log mal angehängt.
Jetzt gibt es mehrere Möglichkeiten:
1. Die Signale sind invertiert -> Eher unwarscheinlich da gleiche Hardware
2. Ich habe mich verrechnet -> Selber nachrechnen
3. Es gibt eine andere Konfiguration anstelle von 8N1
Für 3. Probiere mal SerialX.begin(BAUD, SERIAL_8E1|SERIAL_8O1|SERIAL_8O2|SERIAL_8E2|...) in meinem vorherigen Script in verschiedenen Konfigurationen aus. Mogliche Werte gibt es da: Arduino - Begin
Ich bin den Rest des Abends nicht mehr zu erreichen. Viel Erfolg beim Probieren.
Einen Kommentar schreiben:
-
Ein Gast antworteteMit dem Script funktioniert die Fernbedienung und die Kommunikation in beide Richtungen. Habe das Log mal angehängt.Angehängte Dateien
Einen Kommentar schreiben:
-
Ein Gast antworteteDann bin ich mal gespannt. Werde das heut Nachmittag gleich ausprobieren.
Einen Kommentar schreiben:
-
Ich habe nun eine Weile gerätselt. Ich komme nicht dahinter was das für eine Baudrate ist.Zitat von spunky78 Beitrag anzeigenBin alle durchgegangen. Leider keinen Erfolg :-[
Das ist eine Software die genau das macht. Diese funktioniert mit meiner Anlage. Über die Schnittstelle wird die Impulszeit in Microsekunden ausgegeben. Der kleinste Wert ist die Dauer eines Bits. Damit lässt sich die Baudrate errechnen.Zitat von spunky78 Beitrag anzeigenEDIT: Vielleicht könnte man ja versuchen im Teensy die Schnittstellen direkt durchzuleiten. Also Tx1 an Rx3 und Rx1 an Tx3. Einfach um festzustellen, ob man dann eine Verbindung zur Fernbedienung mit eingebautem Teensy hinbekommt. Vielleicht noch die Baudrate einstellen, damit man rausfindet welche nun die richtige ist. Je nach Ergebnis könnte man daran ansetzen.
Code:unsigned long pulsetime; bool state; void setup() { pinMode(0, INPUT_PULLUP); pinMode(1, OUTPUT); pinMode(7, INPUT_PULLUP); pinMode(8, OUTPUT); Serial.begin(115200); state=digitalRead(7); pulsetime=micros(); } void loop() { bool data=digitalRead(7); digitalWrite(1, data); digitalWrite(8, digitalRead(0)); if (data!=state) { state=data; Serial.println(micros()-pulsetime); pulsetime=micros(); } }
Einen Kommentar schreiben:
-
Ein Gast antworteteBin alle durchgegangen. Leider keinen Erfolg :-(
1200:
SER3 24402 3D
SER3 24904 3D
2400:
SER3 22107 E8 E8
SER3 22608 E8 E8
9600:
SER3 34056 98 E6 F8 7E 60 78 E6
SER3 34557 98 E6 F8 7E 60 78 E6
14400:
SER3 17608 E0 1C E0 FC E0 E0 1C FC
SER3 18109 E0 1C E0 FC E0 E0 1C FC
37600:
SER3 20908 00 80 80 80 00 80 00 00 00 00 80 80 80
SER3 21410 00 80 80 80 00 80 00 00 00 00 80 80 80
57600:
SER3 31571 00 00 00 00 00 00 00 00 00 00 00 00 00
SER3 32072 00 00 00 00 00 00 00 00 00 00 00 00 00
115200:
SER3 17532 00 00 00 00 00 00 00 00 00 00 00 00 00
SER3 18034 00 00 00 00 00 00 00 00 00 00 00 00 00
EDIT: Vielleicht könnte man ja versuchen im Teensy die Schnittstellen direkt durchzuleiten. Also Tx1 an Rx3 und Rx1 an Tx3. Einfach um festzustellen, ob man dann eine Verbindung zur Fernbedienung mit eingebautem Teensy hinbekommt. Vielleicht noch die Baudrate einstellen, damit man rausfindet welche nun die richtige ist. Je nach Ergebnis könnte man daran ansetzen.
Einen Kommentar schreiben:


Einen Kommentar schreiben: