Hallo Tinu
Ich schaue aktuell auch gerade wie ich mein Innoxel in HomeAssistant einbinden kann. Hast du mir allenfalls ein paar Tipps für den Start? Funktioniert der Controller (Industrial ESP32 IoT Programmable Controller | RS485, CAN, Ethernet - DFRobot) wie gewünscht und spielt es eine Rolle welchen Innoxel Master im Einsatz ist? Ich habe noch den Master 2. Danke für deine Rückmeldung.
Hi mmeister-119,
Did you read this article ? Use case: Freeing a fully locked home-automation system | Domedia
There are few useful informations to begin inoxel control.
We can help if need.
The DFRobot is a very robust gateway, it have been tested.
Hallo mmeister-119. Ja der DFRobot Edge 101 funktioniert wie gewünscht und liess sich gut mit ESPHome in HA integrieren. Es hat etwas gedauert bis ich rausgefunden habe wie die LAN-Schnittstelle aktiviert wird, da dies nirgends richtig dokumentiert war. WLAN ging von Anfang an.
ethernet:
type: IP101
mdc_pin: GPIO4
mdio_pin: GPIO13
clk:
pin: GPIO0
mode: CLK_EXT_IN
phy_addr: 1
power_pin: GPIO2
Ich habe den Noxmaster-1024 (ist das der Noxmaster 2 oder noch eine Generation früher, bin nicht sicher). Aber theoretisch sollte das keine Rolle spielen, weil man ja die Module direkt anspricht, d.h. so wie ich verstanden habe, könnte man den Controller dann sogar entfernen, wenn man alles über HA umsetzen will inkl. der Reaktion auf Tastendrücke von physischen Elektronik-Tastern usw.)
Was bei mir gemäss der Beschreibung von domedia.net nicht funktioniert hat, war eben diese Ansteuerung eines NoxSwitch “Control of ON/OFF circuits” über ASCII-Kommandos (zB. S6 / C6). Das konnte ich wie oben bereits beschrieben mit einem solchen Kommando lösen, was einem Tastendruck entspricht:
Beispiel:
- id: o12_k7_toggle # Lampe klein vorne
then:
- canbus.send: { can_id: 0x53C, data: [0x00, 0x0B] }
- delay: 5ms
- canbus.send: { can_id: 0x53C, data: [0x00, 0x0F] }
Ich habe eine Wetterstation in meinem Innoxel-System und auch einen RTI-Controller XP6s über einen Seriell-CAN-Gateway von Innoxel. Das verursacht sehr viel Traffic auf dem Bus, ein Sniffen aller Ereignisse war daher so nicht möglich, damit ist der Edge101 offenbar überlastet. Ich hatte auch keine Lust alles zu entfernen. Darum habe ich mir zuerst damit ausgeholfen direkt mit der ArduinoIDE ein paar spezifische Sketchs auf den Edge101 zu laden um damit zuerst alle Busadressen zu ermitteln und dann mit einem Sketch zB. auf einer Bus-Adresse eines NoxSwitch zu sniffen und alles was drumherum zb. +/- 100ms nach einer Auslösung eines Ausgangs passiert aufzuzeichnen. Damit konnte ich dann eine Tabelle erstellen, welche Kommandos ich wohin schicken muss.
Das hier wäre zb. dieser NoxSwitch 0x21D, welcher bei mir als 014 bezeichnet ist:
| Relais-Modul Innoxel | Kanal | CAN Status | 1 | CAN Schalten | 1 | Delay | 2 |
|---|---|---|---|---|---|---|---|
| O14 | 0 | 0x21D | b0 = 0x03, b1 & 0x01 | 0x550 | 00 0E | 5ms | 00 0F |
| O14 | 1 | 0x21D | b0 = 0x03, b1 & 0x02 | 0x552 | 00 0E | 5ms | 00 0F |
| O14 | 2 | 0x21D | b0 = 0x03, b1 & 0x04 | 0x552 | 00 0D | 5ms | 00 0F |
| O14 | 3 | 0x21D | b0 = 0x03, b1 & 0x08 | 0x552 | 00 0B | 5ms | 00 0F |
| O14 | 4 | 0x21D | b0 = 0x03, b1 & 0x10 | 0x552 | 00 07 | 5ms | 00 0F |
| O14 | 5 | 0x21D | b0 = 0x03, b1 & 0x20 | 0x554 | 00 07 | 5ms | 00 0F |
| O14 | 6 | 0x21D | b0 = 0x03, b1 & 0x40 | 0x554 | 00 0E | 5ms | 00 0F |
| O14 | 7 | 0x21D | b0 = 0x03, b1 & 0x80 | 0x53E | 00 0E | 5ms | 00 0F |
Den Status erhalte ich dann so:
# Status-Frames O14 (0x21D)
- can_id: 0x21D
can_id_mask: 0x7FF
then:
- lambda: |-
if (x.size() < 2) return;
const uint8_t b0 = x[0];
const uint8_t b1 = x[1];
if (b0 != 0x03) return;
id(o14_k0).publish_state(b1 & 0x01);
id(o14_k1).publish_state(b1 & 0x02);
id(o14_k2).publish_state(b1 & 0x04);
id(o14_k3).publish_state(b1 & 0x08);
id(o14_k4).publish_state(b1 & 0x10);
id(o14_k5).publish_state(b1 & 0x20);
id(o14_k6).publish_state(b1 & 0x40);
id(o14_k7).publish_state(b1 & 0x80);
Die Dimmer wiederum konnte ich mit ASCII-Kommandos ansteuern wie im Artikel beschrieben.
Bei den Storen (NoxMotor) sende ich ebenfalls die HEX-Commands wie bei den NoxSwitchs, da wiederum brauchte ich noch eine lambda Funktion um den Stop richtig verwenden zu können.
Das alles funktioniert. Die Rückmeldung soweit auch, nur bei den Dimmern habe ich das noch nicht.
Also ich bin bestimmt auch noch nicht fertig, ich verwende es auch noch nicht “produktiv”. Ich möchte zB. auch die Schaltuhr setzen können. Von Wetterstation-Daten gar nicht zu reden. (Die habe ich aktuell über den RTI XP6s-Controller - MQTTDriver in HA. Vermutlich ist das alles von mir auch zu kompliziert gelöst, leider habe ich wirklich noch nicht herausgefunden wie es so wie im Artikel beschrieben funktionieren soll.
Es wäre interessant zu wissen ob und wie es bei dir funktioniert, wenn du auch ein reines Innoxel-System hast. Ich kann dir gerne mein YAML für den Edge zur Verfügung stellen wenn es dir etwas hilft.
Ich wäre auch sehr interessiert daran von dir zu erfahren, wie du es gelöst hast und ob du bei dir so wie im Artikel beschrieben einen Ausgang schalten kannst.
Die Experten sind hier sicher Clément und Vincèn, wenn man es professionell machen will ist man bei Ihnen am besten bedient denke ich. Für mich reicht es im Moment so.
Hi Clément, yes I have read the article, but I must admit that I haven’t quite understood everything yet, as I am just getting started and have no experience with ESPHome so far. I am also still very new to HA. However, I set up the Innoxel myself without any problems and have expanded it several times since then.
I am currently struggling to find the Edge101 via the Ethernet interface in my network. I use HA on my NAS as a Docker container.
Furthermore, I don’t quite understand how the mapping of the CAN bus addressing works or how it can be derived. For example, I have 5 switch actuators with the addresses 0 (0.0 - 0.7), 1 (1.0-1.7), etc. Shouldn’t it be possible to derive a general mapping, or am I wrong?
Best regards Marcel
Hallo Tinu, Danke für die Ausführliche Rückmeldung. Wie im anderen Post erwähnt, ich stehe noch ganz am Anfang werde aber gerne meine Ergebinsse teilen sobald ich welche habe
Deine YAML wäre natürlich sicher hilfreich und ich bin dankbarer Empfänger.
Marcel
@mmeister-119,
Here is the base config for Edge 101. You could start with it easily.
esphome:
name: can-gateway-1
friendly_name: "CAN Gateway 1"
area: "Technical Room"
esp32:
board: esp32dev
framework:
type: esp-idf
logger:
api:
reboot_timeout: 120min
ota:
- platform: esphome
ethernet:
type: IP101
mdc_pin: GPIO4
mdio_pin: GPIO13
clk:
pin: GPIO0
mode: CLK_EXT_IN
power_pin: GPIO2
phy_addr: 1
web_server:
uart:
tx_pin: GPIO17
rx_pin: GPIO36
baud_rate: 9600
sensor:
- platform: uptime
name: Uptime
filters:
- lambda: return x / 60.0 /60.0 /24;
unit_of_measurement: d
canbus:
- platform: esp32_can
tx_pin: GPIO32
rx_pin: GPIO33
can_id: 4
bit_rate: 100kbps
use_extended_id: false
The best way to find your can bus adress is to decode it adding this in canbus section :
on_frame:
- can_id: 0x000
can_id_mask: 0x000
then:
- lambda: |-
std::string b(x.begin(), x.end());
ESP_LOGD("can id 0x000 ", "%s", &b[0] );
You will see the canbus message in the logs. You will be able to see your can bus adress when you trigger something.
In other way, you can try the list i will send you with the maching inoxel number-> can adresses. I’m not sure, it will works in your system.
Do you have the config file of your inoxel system ?
Sometime it can help finding the adresses.
I have now tried another NoxSwitch-0806 module, which was retrofitted. This accepts the S and C commands and switches the output. However, there is no status feedback or update, e.g., on my RTI app or the touch panel. For me, this means that I will stick with my version, as it also provides me with the corresponding feedback. Of course, this means that my version only works with an RTI master.
Bei mir sind es diese Adressen:
| O0 | 0x201 |
|---|---|
| O1 | 0x203 |
| O2 | 0x205 |
| O3 | 0x207 |
| O4 | 0x209 |
| O5 | 0x20B |
| O6 | 0x20D |
| O7 | 0x20F |
| O8 | 0x211 |
| O9 | 0x213 |
| O10 | 0x215 |
| O11 | 0x217 |
| O12 | 0x219 |
| O13 | 0x21B |
| O14 | 0x21D |
| O15 | 0x21F |
| D0 | 0x60C |
| D1 | 0x60E |
Hallo zusammen danke für die Rückmeldungen und Tipps. Ich werde das sobald ich Zeit finde testen. @Tinu1 wie können wir die YAML austauschen? Sehe hier gerade keine Möglichkeit um DM auszutauschen.
Hello everyone,
Very exciting,
finally a way to get away from the RTI restrictions.
But we (I hardware, my wife also likes software) start with Hue and Reolink to get to know HA. Tomorrow the Green with Zigbee antenna will be installed and then we can start.
Thank you for your great preparatory work!
I’m happy to get involved when we’ve built up some know-how.
Greetings
Patrick
Hallo Beisammen
Sehr spannend,
endlich eine Möglichkeit weg von den RTI Restriktionen zu kommen.
Wir (Ich Hardware, meine Frau gerne auch Software) starten aber erstmal mit Hue und Reolink um HA kennen zu lernen. Morgen wird die Green mit Zigbee Antenne installiert und dann kann’s losgehen.
Danke für eure tolle Vorarbeit!![]()
Ich klinke mich gerne ein wenn wir etwas Know-how aufgebaut haben. ![]()
Gruss
Patrick
First, a fundamental question:
In your YAML file, you have “all at can: 4”. Is this the physical connection to the bus master, which has buses 0 and 4? My actuators are all connected to bus 0. Do I then need to enter “can: 0”, or is this entry unrelated to the bus master CAN connection?
HA, das ESP32 Zeug, Blue, da ist Shelly und Reolink pure Erholung ![]()
It has no relation with physical bus or wiring as it’s the same bus for the whole system. It’s the ESPHome node id on the can bus (messages sent includes a sender id and a receiver id and if the device answers/acknowledges it should send message at the ID of the ESPHome node as destination of message)
Side note: we have completed with success full migration of a Spline/AMX system to HA using ESPHome for communication with CAN bus (lights (dim and switch), cover, shades, heating).
Hallo zusammen, nach langem habe ich mich wieder an das Projekt gewagt.
Bisher konnte ich allerdings “nur” erfolgreich die Rückmeldungen der Schaltaktoren integrieren. Die Adressierung entspricht die von @Tinu1
Trotz der Filterung auf diese Adressen kann ich leider keine can id für die Schaltung ausmachen. Die Version aus dem Pilotprojekt von @vincen und @OBM funktioniert bei mir leider auch nicht.
- platform: template
#id: O_0_1
name: “0.1 Licht Küche Unterschrank”
optimistic: True
turn_on_action:- canbus.send:
data: “S7”
can_id: 0x201
turn_off_action: - canbus.send:
data: “C7”
can_id: 0x201
- canbus.send:
Die Betätigung dieses Schalters bleibt ohne Reaktion.
Schalte ich jedoch via Innoxel Taster erhalte ich im HA den korrekten Status des Ausgangs.
@Tinu1 mit welchen Sketches (Filter oder ähnlich) konntest du die Can Adressen zum Schalten ermitteln? Hast du mir allenfalls die komplette Tabelle damit ich sehe welche welche Kommandos zu den Innoxell Relais O 0 - 3 ( bei mir ON/Off) & O 10 - 14 (Storen) sowie D 0 - 3 gehören?
Vielen Dank für die Rückmeldung.
Hi Clément,
I have seen that the addresses of the outputs correspond to those of tinu. Unfortunately, there is so much traffic on the bus that I am having great difficulty determining the addresses of the switches. After pressing 1-2 buttons, my Edge 101 freezes and I always have to reload the configuration. I have the Innoxel configuration because I programmed it myself and have made several adjustments to it recently.
Can the Can ID be derived from the innoxel button addressing?
For example, my single-button switch “Light Ground Floor” (INNOXEL 11LP61) has the address 14 in the Innoxel configuration.
Hi @mmeister-119
Did you try to disconnect weather station of your system ? it’s the main “pollution” of the bus in Spline systems.
What are saying logs of ESPHome when the DFRobot freezes ? as it should not freeze so easily.
yep it is, an input module at address C14 in Spline system maps to x41C in CAN address for direct commands and x41D for feedback if you want to use them
Here it is mapping for inputs:
| C1 | x402 |
|---|---|
| C2 | x404 |
| C3 | x406 |
| C4 | x408 |
| C5 | x40A |
| C6 | x40C |
| C7 | x40E |
For dimmers:
| B1 | x60C |
|---|---|
| B2 | x614 |
| B3 | x61C |
| B4 | x624 |
| B5 | x62C |
| B6 | x634 |
| B7 | x63C |
For relays and switches:
| A1 | x203 |
|---|---|
| A2 | x205 |
| A3 | x207 |
| A4 | x209 |
| A5 | x20B |
| A6 | x20D |
| A7 | x20F |
| A8 | x211 |
Hope it helps ![]()
I have now tested various filters and am now able to interpret the switching commands from the buttons. I can’t disconnect the weather station so easily because I can’t reach it very well in the riser zone.
But if I get stuck, I’ll check it again. In the log, I only have a message saying that the API unexpectedly lost the connection or something similar. But that’s no longer a problem. The switching of the outputs now works according to the principle described by @tinu1.
Thanks for the tip about the addresses for the switches, etc. I was able to derive a list and filter the switch commands specifically.
I will now try to get the output relays to switch directly.
With my Busmaster 2, a bus coupler is still necessary for the galvanic separation.
It’s normal in drying, so in UV at the Busmaster. Maybe with you too?
I can’t even get the ESP32. Been trying for days…
Someone in Aargau (near Wohlen) at home who can bring the things to life?
Bei meinem Busmaster 2 ist noch ein Busskoppler für die galvanische Trennung notwendig.
Die ist normal im Trocknen , also im UV beim Busmaster. Vielleicht auch bei dir?
Ich bekomme nichtmal das ESP32 hin. Seit Tagen am versuchen…
Jemand im Aargau (Nähe Wohlen) zuhause welcher die Dinger zum Leben erwecken kann?
@pahuerma May you please have a little of respect for other members of the forum ? and post in english as this forum is english based language !! If you don’t speak english use an automated translation tool Thanks
Hi Patrick, first it would be useful to know what kind of hardware you are using. ESP? Busmaster (Innoxel?)? For me, it was very helpful to start programming step by step. So, first establish a connection and observe the log as described above. To avoid too much data chaos in the log, I specifically observed one of my switches and an output module. I am curious to know what hardware you are working with.
Yes, we have a Innoxel busmaster 2.
First step ESP32 with the DFRobot. A lot of yaml. Wlan works fine, but never a log from Innoxel Can. We have changed all, different yaml Code, Cable,Laptop or dirrectly with the HA Green…
Last step was a change to an other ESP32 (buyed also by bastelgarage). It’s the Waveshare ESP32-S3 RS485 CAN Board. Bild the yaml with chatgpt. It work, but with this Modul I have trouble with the Wlan connection. First install, we can see the modul with correct name on my ufiniti AP. But bit later without USB Cable, this shitti ESP thing forget the Wlan and give us a nogo when we will install the full yaml code…
At time, I dislike ESP32…
Other Things with HA works perfectly, my wive will be nearly to make the master .
![]()