Dobiss lights integration

aub

maar denk dat je er niks aan hebt, want dat was voor via TCP
je moet gewoon eens die cansend met command 0 doen , met deze als arbitration id : 0x800101

als je dan een candump terwijl doet in een andere sessie, dan krijg je een mooi lijstje van al je relays en lampen enzo en ook de status ervan, dan weet je direct ook de info om iets te sturen

belangrijk dat je deze altijd wel gebruikt : 0x800101 , want deze is zogezegd de oude “webserver” en wordt alleen maar als allowed aanzien door je max controller

Hmm ik krijg geen antwoord op hetvolgende:

can0 = can.interface.Bus(interface="socketcan", channel="can0")
msg = can.Message(arbitration_id=0x800101, data=[0], is_extended_id=True)
can0.send(msg)

probeer je bisrate eens in te stellen?

bus = can.interface.Bus(bustype='socketcan', channel='can0', bitrate=125000)

maar zie je ook niets verschijnen op de bus als een lamp ofzo aandoet?

kjik, hier heb ik net een lamp aangedaan met een schakelaar :

image

Nope, niks.

Ondertussen heb ik het volgende bij elkaar gepuzzeld:

01FC0202#020100FFFF64FFFF	off
01FC0202#020101FFFF64FFFF	on
01FC0202#020102FFFF64FFFF	toggle

Deze codes sturen de 1e relay uit de 2e module aan.
De CAN kabel steekt in de 2e module, de 1e is gekoppeld aan de onewire bus, dus ik denk dat die de nodige commands niet op de bus zet, maar wel een status update uitstuurt.

Log:

  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 00
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 01
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 00
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 01
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 00
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 01
  can0  RX - -  01FC0202   [8]  02 01 02 FF FF 64 FF FF
  can0  RX - -  0002FF01   [3]  02 01 00

ah, die zien er heel anders uit dan, dan werkt het?
maar krijg je totaal geen state te zien? want dan is het veel leuker, ik heb veel dummy programmas die ik uitlees om andere HA acties te doen via de klassieke schakelaars

ok, je hebt dus wel states precies, misschien is die arbitration id bij jouw systeem idd anders
ik stuur die 0 message telkens bij een reboot van HA, via een automation on startup
zo zet ik alle states van mijn lampen direct goed

Oh ik ga de hele setup eens resetten en zien wat er binnekomt

ja, die dummys maakt het leuk, anders zie ik geen voordeel om met een can adapter te werken, want de rest kan perfect via TCP gewoon

EDIT: nm, jij had geen TCP , ok dan moet je idd canbus gebruiken, nuja, werkt wel beter als TCP, sneller ook… let op dat je de GDN aansuit, want ik heb de dobiss controller al eens stuk gehad, door de GND nit aan te sluiten, en iemand anders ook al

Met wat brut geweld (python for loop) heb ik het juiste formaat gevonden :wink:.
Ik can nu via CAN set/get doen van al mijn lichtpunten.

Hier een gist die ik zal updaten als ik meer ontdek.

1 Like

Mooi :slight_smile: en snel :slight_smile:

zou mooi zijn als we een custom component hadden voor canbus :slight_smile: , maar mss wat veel werk als er maar een aantal mensen dit gebruiken

PS: ik zou toch eens testen nog met dat 0 commando, dan moet je niet x aantal commandos sturen om je states te weten?

Ik ga er eentje maken, das een leuke intro voor mij in het ecosysteem want ik heb nog enkele andere dingen waar ik iets custom voor ga moeten maken denk ik. Maar no promises over wanneer etc :wink:

De commans gaan echt wel snel hoor, dus ik denk niet dat het een probleem is om die allemaal te versturen.

ja, idd gaat zeer rap, ben er ook tevreden over, maar ik heb ± 45 inputs die ik allemaal uitlees , dan zou ik ook 45 commandos moeten sturen , telkens als ik HA herstart :slight_smile:

daarom stuur ik gewoon dat “0” commando, om alle states goed te zetten

@pergola.fabio @dries007 Ik wil gerust meehelpen met een custom component. Krijg juist zelf die canbus maar niet aangesloten. Zelf een rj11 kabel open gesneden en geconnecteerd maar krijg geen enkel bericht. Moet dit weekend of na mijn verlof nog eens zoeken.

@jejskov Je moet opletten voor de termination resistors, die moeten uit staan op de module.
Normaal staat er 2.5v op de 2 CAN lijnen, zo weet je al zeker dat het de juiste pinnen zijn. Dan enkel nog de H en L eens wisselen als je niet zeker bent.
Ook zeker een goeie grond aansluiten.

waarom is de GND zo belangrijk? destijds toen ik begonnen ben , had ik zo’n mcp2515 bordje op een ESP… met alleen maar de H en L aangesloten… werkte goed voor ±3 maanden…
daarna plots geen canbus data meer, toen heb ik het mainboard van de dobiss max controller moeten vervangen
zou het kunnen dat deze defect is geraakt door geen GND aan te sluiten ?

Ga ik straks eens checken. Rare is dat er bij mij 3 modules de weerstand aan staan hebben. Dacht dat dit maar 2 modules mochten zijn. Mijn 2 relais modules en de can programmer hebben die aanstaan.

@pergola.fabio Hoe zie ik of het mainboard kapot is? Ik heb een GND aangesloten op mijn wemos. Wemos wordt gevoed met usb uploader uit dezelfde kast. Zal straks eens beide kanten van het bordje uitmeten. Zit er bij jou ook een 4k7 resistor tussen?

heb je toevallig geen webserver of can2usb module? Bij mij kwam er totaal geen candata meer over de bus… ik kon niet checken of het kapot, na het vervangen van het bordje , werkte het weer

@pergola.fabio Dit legt het beter uit dan ik: https://electronics.stackexchange.com/a/198866

@jejskov Hmm ja, dat lijkt vreemd, maar al je lampen werken nog wel zal het nog wel werken.

Je moet er ook aan denken dat de kabel tussen de verschillende modules nogal kort is, en die naar je adapter voor de PC meestal een pak langer. Dat helpt niet echt tegen storing en met terminator resistor problemen.
Dat gezegt zijnde, ik heb mijn CAN module aangesloten met 2 zelf getwiste kabeltjes en een apparte grond en dat werkt. Voor de “definitieve” opstelling ga ik een aux kabel gebruiken denk ik, die hebben shielding.