
Ich muss gleich sagen, die Überschrift ist vielleicht etwas laut. Ich musste wirklich nur einen Befehl aus dem Protokoll ziehen, um den Dimmer zu steuern. Wie das gemacht wurde und was am Ende passiert ist, lesen Sie weiter im Artikel.
Es gibt also eine solche deutsche Firma
EOS Premium SPA Technology . Es produziert eine breite Palette von Geräten für Saunen. Sie haben sehr interessante Bedienfelder mit Touchscreens und einem hochwertigen Netzteil. Sie sind zwar ziemlich teuer, aber sie scheinen sich zu rechtfertigen.
Es gibt jedoch ein großes Minus in ihrer Ausrüstung. Aggregate können Mehrkilowatt-Elektroöfen steuern, haben aber gleichzeitig einen sehr schwachen Lichtsteuerungskanal. Nur bis zu 150 Watt! Die Beleuchtung kann bequem direkt von der Fernbedienung aus gesteuert, ein- und ausgeschaltet und die Helligkeit angepasst werden. Aber 150 W ist sehr klein! Es gibt zusätzliche Einheiten für die Lichtsteuerung im Verkauf, aber der Preis dort ist sehr unmenschlich.
In dieser Hinsicht schien die Aufgabe darin zu bestehen, einen Dimmer herzustellen, der die Last mit mehr Leistung und zusätzlich mit Niederspannungslast (LED-Streifen bei 12 / 24V oder Halogenlampen bei 24V) regelt.
Halogene verbrauchen zwar mehr und sind anfällig für Burnout, aber meiner Meinung nach ist die Beleuchtung von ihnen angenehmer. Obwohl dies Geschmackssache ist. Im Allgemeinen ist eine solche Aufgabe gereift. Warum eine solche Beleuchtung benötigt wird, ist in diesem Bild gut dargestellt:

EOS veröffentlicht viele Bedienfelder, am häufigsten sind jedoch Emotec und Emotouch III. Wir werden uns um sie kümmern.


Ich muss sagen, dass das Bedienfeld in der EOS-Ausrüstung über ein herkömmliches 4-poliges Telefonkabel mit dem Netzteil verbunden ist:

Eine schnelle Überprüfung der Platine ergab, dass zwei Drähte für 24-V-Stromversorgung und die anderen beiden für die RS-485-Schnittstellenleitung vorgesehen waren. Im Allgemeinen eine Standardimplementierung. Die Zeilen A und B befinden sich in der Mitte:

Nachdem wir uns mit dem USB-RS-485-Konverter an die Leitung angeschlossen und die Geschwindigkeit von der Glatze auf 9600 Bit / s eingestellt hatten, sahen wir laufende Bytes, aber ihr Zweck war natürlich unbekannt. Das Austauschprotokoll wurde nicht gemeinfrei gefunden, und der Hersteller selbst weigerte sich, es bereitzustellen, obwohl er eine entsprechende Anfrage gesendet hatte.
Ich musste mich selbst dekodieren :-)
Ja, ich werde sofort eine Nuance bemerken. Die Dimmersteuerung funktioniert erst nach Inbetriebnahme des Netzteils. Dies ist deutlich sichtbar, wenn die Lampe an den Ausgang des eingebauten Dimmers angeschlossen ist. Es beginnt erst zu leuchten, nachdem sich die Sauna erwärmt hat.
Zunächst begannen sie, die Geschwindigkeiten von 9600 bis 115200 Bit / s aus der Standardserie zu sortieren.
Und bei einer Geschwindigkeit von 38400 fiel mir auf, dass die Befehle durch zwei Standardbytes 0x0A, 0x0D getrennt sind.
Nun, das ist schon etwas. Lass uns den nächsten Trick machen. Suchen wir nach dem Befehl, den wir benötigen, anhand des Helligkeitswerts. Plötzlich wird es im klaren übertragen.
Wir stellen den Wert 73 (0x49) auf der Fernbedienung ein:

Als nächstes entfernen wir das Protokoll und suchen dort dumm nach diesem Byte:

Voila! Wir finden es, schauen nach links und rechts zu den Bytes 0x0A, 0x0D und versuchen, das benötigte Paket auszuwählen. Und als Ergebnis erhalten wir diese Struktur:
0x0E 0x04 0x04 0x49 0x49 0x00 0x00 0xD1 0x0A 0x0D
Während der Experimente wurde festgestellt, dass 2 und 3 Bytes immer gleich 0x04 sind, 4 und 5 die Helligkeit in Prozent einstellen, 6 und 7 gleich 0, 8 sind - es ändert sich, was bedeutet, dass es nicht klar ist, 9 und 10 - 0x0A, 0xD.
Wie Experimente gezeigt haben, ist das erste Byte die Adresse. Es legt die sogenannte Zimmernummer fest. Tatsache ist, dass EOS-Fernbedienungen mehrere Aggregate gleichzeitig steuern können. Jeder hat seine eigene Adresse, die in diesem Byte übertragen wird.
Die Adressen lauten wie folgt:
Für Ofenbedienfelder:
01 - erstes Zimmer
21 - zweiter Raum
41 - dritter Raum
61 - vierter Raum
81 - fünfter Raum
A1 - sechster Raum
C1 - siebter Raum
E1 - achter Raum
Für Dampferzeuger-Bedienfelder:
0E - erster Raum
2E - zweiter Raum
4E - dritter Raum
6E - vierter Raum
8E - fünfter Raum
AE - sechster Raum
CE - siebter Raum
EE - achter Raum
Eigentlich ist das alles Dekodierung.
Um dies sozusagen in der "Dynamik" zu überprüfen, haben wir das Programm schnell auf Delphi geworfen, um den Helligkeitswert anzuzeigen, und den Schieberegler gedreht. Alles erfüllt klar.
Danach haben wir in C ein einfaches Programm zum Decodieren dieser Pakete entwickelt und alles in Hardware gestartet. Das Gerät selbst ist recht einfach. Dort ist gewöhnliches PWM auf einem Netzschlüssel implementiert, aber wenn ich interessiert bin, kann ich einen separaten Artikel darüber schreiben.