Dobiss2mqtt

IP hier is het IP van je dobiss installatie neem ik aan ? En kan je de waarde van een dimmer dan uitlezen zo ?

Nee, is voor NIKO aan te sturen, staat los van dobiss… Hier hier eigenlijk niet thuis in dit topic :wink:

Bij mij zijn die niko dimmers geïntegreerd binnen Dobiss. Ik kan alvast via de dobiss app mijn lampen dimmen. Ik check eens bij de installateur hoe dit exact geconfigureerd staat. In de Dobiss config staat hij als relay module (0-10v)

Ahh ok, dat wist ik niet… Wist niet dat Niko materiaal werd gebruikt in een dobiss installatie… Beetje vreemd :wink:

Ok maar dan denk ik gewoon dat die dimt met een 0-10v signaal. Dus als ik weet hoe ik een 0-10v module kan aansturen en uitlezen dan zijn we er.

net als feedback gehad, een 0-10v aansturen is identiek als een dimmer aansturen
mijn dimmer stuur ik ook gewoon aan met dezelfde commandos als een gewone relais module…

Ok in dat geval moet Tim zijn modules welke 0-10v zijn van type: relay naar type: dimmer verplaatsen. En dan zou het gewoon moeten werken.

Ik heb type inderdaad op dimmer staan.
Ik kan de lichten opzetten. Als ik de dimmer naar een bepaalde intensiteit zet, zie ik de lamp stilletjes zachter worden en dan plots valt hij uit. Het lijkt erop alsof je de dimmer helemaal terug draait waardoor hij uiteindelijk uitvalt. Dus ik heb het gevoel dat er nog iets met de sturing van de intensiteit niet klopt? Tevens krijg ik geen status indicatie van de lamp. Het icoontje wordt dan ook niet geel.
Is er een manier waardoor ik de communicatie kan checken?

Ok dan is het niet gewoon exact hetzelfde als een dimmer. Je kan idd debuggen hoe het zit met de communicatie.

Ik zou het volgende doen:

  • in je config pollIntervalInMs op 0 zetten zodat we niet continue pollen. Dat geeft veel te veel overhead aan data.
  • In docker moet je een environment flag toevoegen “DEBUG=dobiss2mqtt.*”. Let op de punt sterretje op het einde.

Daarmee zeg je tegen de debug module om alles van dobiss2mqtt te loggen. Als je dat hebt dan kan je eens proberen het gedrag na te bootsen wat fout loopt. In je docker logs zal je dan de output zien.

Zonet log aangemaakt … csv staat hier:
https://1drv.ms/u/s!ApvXkumCr-GTip50Q8l64jxiLLSt9Q?e=O92PWj

Ik heb het gedrag via 2 verschillende lampen nagebootst.
Het gaat over volgende 2 lampen: “Eetkamer centraal” en “Eetkamer spots”. Die staan als volgt in mijn config.js onder je /data folder:
{
type: ‘dimmer’,
number: 8,
outputs: [
“Zithoek centraal”,
"Eetkamer centraal",
"Eetkamer spots",
“Zithoek spots”,
“Slaapkamer centraal”,
“Uitgang 8.6”,
“Uitgang 8.7”,
“Uitgang 8.8”
]
},

In de dobiss windows config applicatie zelf (Evolution pro) staan deze onder de omschrijving module 8 0-10v dimmer. Trouwens uitgang 8.6, 8.7 & 8.8 worden niet gebruikt, maar ik veronderstel dat dat niet uitmaakt?

Alvast bedankt voor al jullie support (jij en Fabio). Super cool dat Dobiss al voor een heel stuk geïntegreerd is. Kunnen we eindelijk alle andere smart devices combineren met elkaar, wat voor ongekende mogelijkheden zorgt! Dit was echt een pijnpunt van Dobiss op zich. Jullie hebben dat alvast uit de weg gewerkt.

Hierbij nog de settings uit de dobiss applicatie zelf …

@spobo

Weet jij of de dobiss controller meerdere threads toelaat? Er is blijkbaar een update geweest in HA, dat de Google assistant alles in parallel aanstuurt als je meerdere lampen bv tegelijk aan doet… Voorheen was dat in een sequence…
Met als gevolg dat als ik nu een paar lampen tegelijk aan doe, niet meer alle lampen aangaan…
Anders moet ik mijn script aanpassen naar een thread versie ofzo…

Of eventueel een check inbouwen of iets dergelijke dat hij een retry doet

@tvds ik heb kort gekeken maar ik denk dat het niet hetzelfde is voor 0-10v als voor dimmers. Het lijkt dat ik het percentage niet kan uitlezen als ik hetzelfde bericht stuur om gewoon te pollen. That said denk ik dat ik de logging ook nog wat wil tweaken om een beter idee te krijgen.

@pergola.fabio uit mijn testen leek dat de controller slechts 1 socket connection per keer kan hebben. En als je een connectie aanmaakt terwijl hij al een connectie open heeft dan faalt die. En heb ook al gemerkt dat de controller soms vast loopt dan. Daarmee dat ik dobiss2mqtt de connectie ook telkens laat afsluiten. Zodat de native apps ook nog tijd hebben om hun ding te doen. Maar, als er meerdere requests op de socket zijn dan stuurt dobiss2mqtt die 1 voor 1 zonder de connectie telkens te openen en sluiten. Dus ik zorg er eigenlijk voor dat parallel terug in sequentie uitgevoerd wordt omdat de controller dit niet aan kan.

Prima, welke error krijg je wanneer er een connectie is? Waarschijnlijk moet ik mij scriptje baseren op onderstaand voorbeeld…
Full example client.py … Denk wel dat het zo dan moet lukken voor me? Of andere tips?

hey, hoe doe jij die connectie 1 voor 1 ? of die check?
ik heb onderstaand scriptje nu aangepast
maar als ik vanuit google assistant 4 lampen tegelijk aan doe (room ), dan gaan er effectief maar 3 aan
dus blijkbaar werkt mij try/except toch niet… enig idee waarom niet?

#!/usr/bin/python3
import socket
import binascii
import sys

host = '192.168.0.10'
port = 1001
message = binascii.a2b_hex ("ED43310000000000000000000000AFAF" + sys.argv[1].zfill(2) + sys.argv[2].zfill(2) + sys.argv[3].zfill(2))

mySocket = socket.socket()
mySocket.connect((host,port))

try:
    mySocket.send(message)
except:
    # recreate the socket and reconnect
    mySocket = socket.socket()
    mySocket.connect(host,port)
    mySocket.send(message)

mySocket.close()

denk dat je best wat logging zet en kijkt wat er fout loopt. Ik zie dat je maar 1 keer opnieuw probeert. Dus als het 2x na elkaar faalt dan gaat de lamp niet aan of uit.

Het kan ook zijn dat de error ergens anders gesmeten wordt. Het aanmaken van de connectie bv. Ik zou de ganse handeling van de socket in de try catch block zetten. En het x aantal keer laten proberen of stopt als het gelukt is.

Of you know, je geeft dobiss2mqtt nog is een kans haha

:slight_smile:

mja, de vraag is, hoe weet het script of het gelukt is
failed hij op dit stuk : mySocket.connect((host,port))
of failed hij op dit stuk : mySocket.send(message)

want ik denk wel dat je meedere malen connectie kan maken, maar het sturen van een message lukt volgens mij niet als er al een andere socket open is…

ok, werkend scriptje hieronder! voor degene die met google asisstant werken en mijn scriptjes :slight_smile:

EDIT: te vroeg gejuichd , soms gingen wel alle lampen aan, soms ook weer niet
lijkt beter, maar nog niet optimaal :frowning:

#!/usr/bin/python3
import socket
import time
import binascii
import sys

host = '192.168.0.10'
port = 1001
message = binascii.a2b_hex ("ED43310000000000000000000000AFAF" + sys.argv[1].zfill(2) + sys.argv[2].zfill(2) + sys.argv[3].zfill(2))


# First try-except block -- create socket

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
    print ("Error creating socket")
    sys.exit(1)
# Second try-except block -- connect to given host/port

try:
	s.connect((host, port))
except socket.gaierror:
    print ("Address-related error connecting to server")
    sys.exit(1)

except socket.error:
    print ("Connection error")
    sys.exit(1)

# Third try-except block -- sending data
try:
    s.send(message)

except socket.error:

    print("Error sending data")
    sys.exit(1)

s.close()

@spobo

kan je mij nog eens helpen, misschien weet jij raad
ik probeer de fout te reproduceren, zodat ik de error kan zien…

ik heb dus een py scritpje :

mySocket = socket.socket()
mySocket.connect((host,port))
time.sleep(20)
#mySocket.send(message)
#mySocket.close()

bovenstaande zou dus de connectie moeten open houden
maar als ik dan terwijl via een ander script een lamp aan/uit doen, dan werkt het nog steeds…

enig idee , hij failed dus maw niet :slight_smile:

Iedere paar maanden erger ik mij dood aan de dobiss app die niet integreert met… Niets eigenlijk.
Was zojuist nog eens aan het kijken naar een canbus module om zo de commando’s proberen uit te lezen of de drukknoppen te emuleren.

Maar toen kwam ik deze post tegen.
Hoe sjiek is dat ier niet :slight_smile:
Zal het vanavond testen en bedankt allesinds al voor het werk