Dobiss2mqtt

Niko home control werkt ook met een lus voor de schakelaars. Van horen zeggen wel. Wie weet zijn het zelfs dezelfde schakelaars.

Wel knap dat het al draaiende is met de ESP. Zeer cool.

ja, niko gebruikt ook een lus, heb het even gevraagd aan iemand die het heeft
wel meerdere lussen per ruimes, maar ik neem aan dat dit ook wel het geval is bij dobiss
langs ene kant toch een opluchting , stel dat ooit de hardware van doboss de geest geeft

en , canbus is echt instant!! ik kan nu via drukknoppen andere dingen schakelen in huis, ik heb een paar wifi led strips, deze kon ik alleen eerst bedienen via conbee en/of google assistant
nu dus ook met drukknoppen … dan kan ik op een paar plaatsen die draadloze ikea schakelaartjes wegdoen :slight_smile: , en wat tweede fucnties inzetten

Hey allemaal, ik ben nog wat nieuw in HA. Ik heb een vraagje. Voor het installeren van dobiss2mqtt moet je deze toevoegen via " add-on repositories"? Alvast bedankt voor het antwoord.

Mvg Giel

Voor de canbus geinterresseerden:

Je moet mijn github versie niet meer nemen, de code is fixed in de canbus branch van : danielschramm:canbus , dus je kan deze terug nemen , de fout die ik had gevonden met onze dobiss extended can_id’s is er nu uit :slight_smile:

Wiring en geupdate docs met ext_id :

can id code is dus aangepast, nu zijn het juiste waarden, we moeten dus ook can ext op true zetten, hieronder mijn volledige voorbeeld code van esphome

Maar ik stuit nog op een probleem, zoals je al weet, de drukknoppen staan NIET op de canbus, dus we moeten een dummy programmatie aanmaken via de dobiss software, deze programmatie pas je toe aan een drukknop, bv toggle functie ofzo, we lezen de programmatie uit op de canbus, en we kunnen dus een service in HA sturen… werkt allemaal goed…
Maar ik heb gemerkt, dat 1 x snachts op een bepaald tijdstip, mijn wifi led aangaat, ik heb een vermoeden dat dan alles statussen terug op de canbus worden gezet, waardoor weer een toggle actie plaatsvind :slight_smile:

Hoe kunnnen we dit fixen? iemand een idee?

eventueel een idee :

  1. stel dat het altijd op een bepaald tijdstip snachts is, dan kunnen we de canbus messages bv negeren op een bepaald tijdstip … ik heb vandaag de logging eens aangezet, dus morgen weet ik wat er gaande was op dat specifiek uur …

  2. een extra binary sensor maken in esp, en deze schakelen als effectief een programma aan/uit gezet gaat worden via een drukknnop (state change), op basis van deze binary sensor state kunnen we een service starten…

maar is weeral extra code/entities …

Geen van bovenstaande 2 ideen staan me aan eigenlijk, het moet toch makkelijker kunnen? anyway, hierbij mijn draft code, die op zich werkt, net op dat 1 specifiek tijdstip na :slight_smile:

 esphome:
  name: esp
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: !secret esphome_ip
    gateway: 192.168.0.1
    subnet: 255.255.255.0  

# Enable Home Assistant API
api:
  password: !secret esphome_password

ota:
  password: !secret esphome_password
  
# Enable logging
logger:
  level: VERBOSE
  # logs:
    # esphome.components.canbus: VERY_VERBOSE
    # esphome.components.mcp2515: VERY_VERBOSE  
  
  
spi:
  id: McpSpi
  clk_pin: GPIO16
  mosi_pin: GPIO5
  miso_pin: GPIO4


### example canbus data:

# [13:55:13][D][canbus:062]: received can message ext can_id=0x100ff00 size=4
# [13:55:13][V][canbus:071]:   can_message.data[0]=0e
# [13:55:13][V][canbus:071]:   can_message.data[1]=57
# [13:55:13][V][canbus:071]:   can_message.data[2]=03
# [13:55:13][V][canbus:071]:   can_message.data[3]=01  
canbus:
  - platform: mcp2515
    id: my_mcp2515
    spi_id: McpSpi
    cs_pin: GPIO14
    can_id: 4
    on_frame:
    - can_id: 0x100ff00
      can_ext_id: true
      then:
        - if:
            condition:
              lambda: 'return x[1] == 0x57 and x[2] == 0x03 and x[3] == 0x00;'
            then:
            - homeassistant.service:
                service: light.toggle
                data:
                  entity_id: light.led_badkamer
        - if:
            condition:
              lambda: 'return x[1] == 0x57 and x[2] == 0x03 and x[3] == 0x01;'
            then:
            - homeassistant.service:
                service: light.toggle
                data:
                  entity_id: light.led_badkamer

## example with binary sensors    
        # - if:
            # condition:
              # lambda: 'return x[1] == 0x41 and x[2] == 0x00;'
          
            # then:
              # - lambda: |-
                  # switch(x[3]) {
                    # case 0x0: id(can_bus_button_1).publish_state(false); break; // button release
                    # case 0x1: id(can_bus_button_1).publish_state(true); break;  // button down
                  # }           
        # - if:
            # condition:
              # lambda: 'return x[1] == 0x41 and x[2] == 0x01;'
          
            # then:
              # - lambda: |-
                  # switch(x[3]) {
                    # case 0x0: id(can_bus_button_2).publish_state(false); break; // button release
                    # case 0x1: id(can_bus_button_2).publish_state(true); break;  // button down
                  # }           

binary_sensor:

  # - platform: template
    # name: "CAN Bus Button Bureau"
    # id: "can_bus_button_1"
    
  # - platform: template
    # name: "CAN Bus Button Eetkamer"
    # id: "can_bus_button_2"   
 

# Sensors with general information.
sensor:
  # Uptime sensor.
  - platform: uptime
    name: ESP Uptime
    id: uptime_sec

  # WiFi Signal sensor.
  - platform: wifi_signal
    name: ESP WiFi Signal
    update_interval: 60s
    
  - platform: template
    name: "ESP Uptime Days"
    lambda: |-
      return (id(uptime_sec).state/60)/60/24;
    icon: mdi:clock-start
    unit_of_measurement: days
1 Like

Zou hiervoor geen request eerst passeren om alle statussen nog eens te populeren? Anders zal het eerder time bound zijn lijkt mij. We gaan dan x aantal seconden/minuten (ruime buffer) niet luisteren naar die events. Niet een ideale oplossing, maar we gaan die events op de canbus niet kunnen tegenhouden.

ja, daarom heb ik de logging eens aangezet, zal het morgen weten
mss ziet de data er toch een beetje anders uit, ik weet de inhoud van de eerste array ook niet … geen idee waar die van komt …, die 0E dus

**# [13:55:13][V][canbus:071]:   can_message.data[0]=0e**
# [13:55:13][V][canbus:071]:   can_message.data[1]=57
# [13:55:13][V][canbus:071]:   can_message.data[2]=03
# [13:55:13][V][canbus:071]:   can_message.data[3]=01

Ik weet nu al iets meer, dezenacht weer de wifi led aan, weer om 01.30 ±
In de max software heb ik 8 programmas gemaakt voor mijn huis, 2 waren er inactief … (toevallig ook die van de wifiled)

Er zijn dus 2 berichten op de canbus gekomen , niet meer, alleen van de 2 programmas die inactief waren… Ik heb dus een vermoeden dat er iets hardcoded is in de max200 , dat er bv elke nacht om 01.30 een soort van controle is , welke programmas actief zijn …
Degene die op OFF staan, die sturen dan een acknowledge ofzo

Ik ga komende nacht eens een ander programma op OFF zetten, en dan eens kijken of ik die morgen ook in de logging zie verschijnen…

EDIT: ok, als het klopt, wat ik hierboven zeg, dan is de oplossing eigenlijk zeer simpel…!! :slight_smile:
Ipv een toggle actie achter de drukknop te zetten, dan zet ik gewoon programma op AAN, er gaat dan evenzeer een canbus message over de lijn … het is dan wel altijd een 01 message … dat spaart dan dan zelfs ook weer een stukje yaml code :slight_smile:

EDIT: !!! OMG wat een dwaze fout van mij!! , ik heb een programma actief dat om 01.30 altijd alle lampen uitzet, en deze 2 programmas stonden daar om 1 of ander reden ook in, daarom dus 2 canbus messages!! :slight_smile:
dus er is geen probleem om 01.30 snachts :slight_smile:

:+1: dat is weer een zorg minder! :slight_smile:

MCP2515 hier ook aangesloten op een ESP8266 … ik krijg volgende logging binnen :grinning:
Ik zit met een evolution pro systeem. Fabio met een evolution sx dacht ik.

Hier doe ik relais 4.1 (module 04, id 00) uit:
[14:58:14][D][canbus:062]: received can message ext can_id=0x1fc0402 size=8
[14:58:14][V][canbus:071]: can_message.data[0]=04
[14:58:14][V][canbus:071]: can_message.data[1]=00
[14:58:14][V][canbus:071]: can_message.data[2]=00
[14:58:14][V][canbus:071]: can_message.data[3]=ff
[14:58:14][V][canbus:071]: can_message.data[4]=ff
[14:58:14][V][canbus:071]: can_message.data[5]=64
[14:58:14][V][canbus:071]: can_message.data[6]=ff
[14:58:14][V][canbus:071]: can_message.data[7]=ff

Hier doe ik relais 4.1 (module 04, id 00) aan:
[15:01:27][D][canbus:062]: received can message ext can_id=0x1fc0402 size=8
[15:01:27][V][canbus:071]: can_message.data[0]=04
[15:01:27][V][canbus:071]: can_message.data[1]=00
[15:01:27][V][canbus:071]: can_message.data[2]=01
[15:01:27][V][canbus:071]: can_message.data[3]=ff
[15:01:27][V][canbus:071]: can_message.data[4]=ff
[15:01:27][V][canbus:071]: can_message.data[5]=64
[15:01:27][V][canbus:071]: can_message.data[6]=ff
[15:01:27][V][canbus:071]: can_message.data[7]=ff

Ik krijg dus 8 datavelden binnen.

Als ik een relais op een andere module aan zet:
Relais 6.4 aan: module 6, id 03
[15:11:21][D][canbus:062]: received can message ext can_id=0x1fc0602 size=8
[15:11:21][V][canbus:071]: can_message.data[0]=06
[15:11:21][V][canbus:071]: can_message.data[1]=03
[15:11:21][V][canbus:071]: can_message.data[2]=01
[15:11:21][V][canbus:071]: can_message.data[3]=ff
[15:11:21][V][canbus:071]: can_message.data[4]=ff
[15:11:21][V][canbus:071]: can_message.data[5]=64
[15:11:21][V][canbus:071]: can_message.data[6]=ff
[15:11:21][V][canbus:071]: can_message.data[7]=ff

Volgens mij krijg ik dus voor elke module een andere ext can_id binnen. Het 3de laatste cijfer is de module_nr bij mij.

Dimmer 100%: module 8, id 01
[15:05:10][D][canbus:062]: received can message ext can_id=0x1fc0802 size=8
[15:05:10][V][canbus:071]: can_message.data[0]=08
[15:05:10][V][canbus:071]: can_message.data[1]=01
[15:05:10][V][canbus:071]: can_message.data[2]=01
[15:05:10][V][canbus:071]: can_message.data[3]=ff
[15:05:10][V][canbus:071]: can_message.data[4]=ff
[15:05:10][V][canbus:071]: can_message.data[5]=64
[15:05:10][V][canbus:071]: can_message.data[6]=ff
[15:05:10][V][canbus:071]: can_message.data[7]=ff

Dimmer 50%: module 8, id 01
[15:06:50][D][canbus:062]: received can message ext can_id=0x1fc0802 size=8
[15:06:50][V][canbus:071]: can_message.data[0]=08
[15:06:50][V][canbus:071]: can_message.data[1]=01
[15:06:50][V][canbus:071]: can_message.data[2]=01
[15:06:50][V][canbus:071]: can_message.data[3]=ff
[15:06:50][V][canbus:071]: can_message.data[4]=ff
[15:06:50][V][canbus:071]: can_message.data[5]=32
[15:06:50][V][canbus:071]: can_message.data[6]=ff
[15:06:50][V][canbus:071]: can_message.data[7]=ff

En dat komt perfect overeen met hetgeen ik verwacht:
image

Gebruikt iemand hier eigenlijk dali modules? Ik zit met enkele lichten die op maat gemaakt zijn en via een dali interface gestuurd moeten worden. Natuurlijk is dat niet voorzien in mijn initiele dobiss systeem en vroeg mij af of het zin heeft een dobiss dali module te steken of het via een casambi interface op te lossen (mits ik dat kan integreren in HA ofc).

Lichten op maat? Nee, heb ik hier niet :slight_smile:

Niets speciaal hoor. Zijn enkele aluminium profielen met leds in. Ik had enkele nodig die elk een paar meter lang waren en een met een nogal rare hoek in met moeilijke bevestiging. Ook de aansluitingen moesten lichtjes anders zitten dan standaard (midden van rail/hoek van de rail). Is een belgische firma die ze maakt: https://www.multiline.be/en

Ik vermeld het gewoon dat ik niet de tip krijg om een ander soort lamp te kopen :wink:

zou het niet handig zijn moesten we een GitHub repo maken met een beetje alle info erin?
soort van een faq of wiki.
met voorbeelden van config enzo. Daarmee kunnen we anderen snel op weg helpen

goed idee! ik zal eens kijken of ik de komende dagen een onepager kan maken met info van wat ik tot nu toe heb…

eventueel ook met mijn laatste versie van dobiss voor mijn lichten, want ik gebruik de mqtt oplossing niet, kan mss handig zijn voor andere die bv zelf contole willen hebben, dan kan je makkelijk iets aanpassen zonder spobo lastig te vallen :slight_smile:

Guys, iemand een oplossing voor mij? ik heb thuis rolluiken, 1 enkele rolluik gebruikt 2 uitgangen van een relays , uitgang 1 => aan => rolluik omhoog , uitgang 2 => aan , rolluik omlaag
ze zijn wel beveiligd in de dobiss relays, ze kunnen niet tegelijk aan, alsook gaan ze via een timer na 2 min ook terug op uit …

nu mijn vraag :
via drukknoppen werk ik via korte en lange functie … , korte functie : relays 1 aan, lange functie = relay 2 aan

hoe kan ik dit beter maken? zonder gebruiik van canbus/HA :slight_smile: … kan ik dit via 1 drukknop doen? een toggle actie? probleem is dat dobiss de state niet weet van rolluik , wanneer omhoog, wanneer omlaag? maar moet toch doenbaar zijn ??
Als dat kan, dan kan ik mijn 2de functie van de knoppen voor iets anders gaan gebruiken :slight_smile:

@pergola.fabio niet om je jaloers te maken of zo, maar dit is 1 van de recentste toevoegingen in de nieuwe dobiss NXT server. Nu kan je een drukknop configuereren als up/down, en dus precies zoals je vraag is, 1 knop gebruiken om ‘op - stop - neer - stop’ te implementeren. De relais module zelf zal de status bijhouden…

Jammer , maar er moet een manier zijn met de oudere systemen :-). Ik zoek nog even verder uit, desnoods gebruik ik de canbus module wel :slight_smile:

Heb jij trouwens een upgrade gedaan naar NXT of heb je een nieuw systeem pas geïmplementeerd?

ik heb net gebouwd, en dus de nieuwe dobiss NXT ineens geimplementeerd :slight_smile:

ik had trouwens gedacht om zulks ook in mijn systeem zelf te implementeren. Ik zou vlaggen gebruikt hebben om de laatste richting op te slaan. Is dat iets wat in het oudere systeem ook kan, vlaggen als viruele outputs en condities?