Dobiss2mqtt

welke code gebruik je om te pollen? want ik poll om 4 sec, doe het al zo sinds 3 jaar , geen problemen mee gehad tot nu toe, ik gebruik evolution sx

#!/usr/bin/python3
import socket
import codecs
import binascii
import smtplib, ssl
import time

host = ‘192.168.2.102’
port = 1001

message = binascii.a2b_hex (“af01ff060000000100ffffffffffffaf06000601060206030604060506060607FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”)

mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mySocket.connect((host,port))
mySocket.send(message)

data = mySocket.recv(1024)
data = binascii.hexlify(data).decode()

message2 = binascii.a2b_hex (“af01ff080000000100ffffffffffffafFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF080008010802080308040805080608070808FFFFFFFFFFFFFFFFFFFFFFFFFFFF”)
mySocket.send(message2)

data2 = mySocket.recv(1024)
data2 = binascii.hexlify(data2).decode()
#print (data + ‘–’ + data2)
mySocket.close()

time.sleep(1)

message3 = binascii.a2b_hex (“af01ff060000000100ffffffffffffaf06000601060206030604060506060607FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF”)

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

mySocket.send(message3)

data3 = mySocket.recv(1024)
data3 = binascii.hexlify(data3).decode()

message4 = binascii.a2b_hex (“af01ff080000000100ffffffffffffafFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF080008010802080308040805080608070808FFFFFFFFFFFFFFFFFFFFFFFFFFFF”)
mySocket.send(message4)

data4 = mySocket.recv(1024)
data4 = binascii.hexlify(data4).decode()

#print (data3 + ‘–’ + data4)

mySocket.close()

Nadien ga vergelijken en de mail versturen

if (data[65:66] == ‘0’ ):
if (data3[65:66] == data[65:66]):
text = (time.strftime("%c") + ‘: Raam bureau open!’)
sender = '[email protected]
receivers = ['[email protected]’]
subject = ‘ALARM’
message= “”"
From:%s
To:%s
Subject:%s
%s
“”" % (sender, ", ".join(receivers), subject, text)
try:
smtpObj = smtplib.SMTP(‘uit.telenet.be’)
smtpObj.sendmail(sender, receivers, message)
print (“Successfully sent email”)
except Exception:
print (“Error: unable to send email”)
else:
text = (‘alles toe’)

Niet gemakkelijk alles te kopiëren en te plakken via een smart toestel…

Dat is idd mijn oude code nog, maar waarom vul je die op met zoveel FFFFF? Kan je die niet verkorten zodat je geen 4 messages moet sturen?

Mss duurt het opvragen van 4 berichten in 1 TCP commando te lang, ondertussen stuur je dan tegelijk een lamp aan waardoor je 2 commando’s tegelijk stuurt…

Ik gebruik die code niet meer, omdat ik ook gebruik maak van Google assistant, probleem is met Google dat die als je meerdere lampen aanstuurt tegelijk, dat hij die niet meer sequentieel naar HA komen, maar in parallel… En dan kwamen die ook parallel aan in dobiss, daar was de max200 niet zo gelukkig mee…

Ik heb dat opgelost door eerst een ander server socket scriptje te starten samen met een HA boot via automation…
En mij TCP commando’s sturen dan eerst naar die socket server en die handelt dat sequentieel af… Dus zowel mijn polling als het aansturen loopt sequentieel en ze lopen ook niet meer tegelijk

Ahh, maar jij doet ook eigenlijk in 1 TCP commando’s 2 pollings achter elkaar message 1 en 2 en dan nog eens een nieuwe socket van message 3 en 4…
Waarom maakt ge daar niet 1 lange sensor van , van 4 berichten? Dan heb je maar 1 socket nodig

Uw message 1 is ook identiek aan message 3 ? Alsook message 2 is hetzelfde als message 4? Waarom 2 keer dezelfde message sturen?

Het leek wel dat ik last had van ‘zwevende’ bits daarom dat ik msg 1 en 3 nogmaals met elkaar vergelijk of dat de raam of deur wel degelijk openstonden. Wanneer de zon er al dan niet opstond krijg ik mails dat het niet gewoon was, misschien heb ik wel last van denderende contacten…
Ik heb twee analoge modules, module 1 is msg 1 en 3 en module twee 2 en 4.
Dus de status van die bits moest na 1 seconde wel hetzelfde blijven.

Daarom twee sockets lijkt mij nodig. Hoe doe je dat juist via automation?

Zal morgen eens posten

1 Like

hierbij was mijn post met de update van mijn scripts :

1 Like

Als die socket open is kan er toch niets anders door? Of zie ik dat verkeerd? Misschien toch beter om die can uit te lezen.

wat zou er anders door moeten? alles loopt toch sequentieel vanauit HA? :slight_smile:

Niet alleen mijn HA stuurt mijn Dobiss aan, alsook de touch software (evolution pro) van Dobiss mogelijk is dit de oorzaak van het vastlopen… zou ik via python kunnen weten of deze bezig is met de temperatuur te regelen of iets dergelijk? Volgens mij is dit een buffer probleem

Ah, just, jij had idd dat touchscreen… Ontkoppel het eens voor een tijdje? Dan weet je of deze de oorzaak is :slight_smile:

Of eventueel idd naar canbus oplossing kijken

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…

Ik heb deze week contact gehad met Dobiss hierover. De drukknoppen zitten inderdaad niet op de canus. Die zitten op een 1-wire van Maxim Integrated.

Heeft iemand toevallig al een poging gedaan om die rechtstreeks uit te lezen (parallel aan Dobiss)?

nee, drukknoppen zitten er niet op, is toch ook niet nodig? als je drukknoppen wilt gebruiken voor services binnen HA te gebruiken, dan maak ik gebruik van dummy programmas, deze dummy’s lees ik uit op de canbus , om zo dat iets te togglen ofzo binnen HA, echt super instant

ik heb ook een addon gemaakt, en volop mee bezig, mijn TCP code + scripts heb ik nu volledig omgezet naar CANBUS, veel beter , geen polling sensor meer nodig, de states van de lampen schakelen instant, dus die 2de service call om icoontje al direct goed te zetten is ook niet meer nodig

als je HassOS gebruikt, binnenkort in versie 6 , dan is de kernel aangepast zodat je direct een canable stick kan mounten, dus geen esp meer nodig
ben er nu volop mee aan het testen via een dev

1 Like

de oplossing via de canbus is echt wel stabieler
je krijgt ook instact feedback van de status van je modules

nog even wachten tot hass 6.0 er is
of indien je ha direct op een linux systeem draait zou je het in theorie al kunnen doen

Ik ben bezig om Dobiss er helemaal tussenuit te halen en te vervangen door een PLC van Wago met relais. Want het hardware gedeelte van Dobiss is bij mij oud en achterhaald en de software gebruik ik niet, die logica zit nu al in HA. Vandaar mijn vraag.

ook al eens zitten denken of eventueel een esp ook signalen zou kunnen sturen die een druk knop kunnen emuleren

vooral voor de kids handig dat die niet naar ha moeten gaan om iets te doen.

waarom zou je dat doen? ik ben echt tevreden van de dobiss hardware, heeft me nog nooit in de steek gelaten eigenlijk

  1. het is oud en neemt heel veel plaats in in mijn kast. Het is een erfenis van de vorige eigenaar en is daarbovenop ook nog eens slordig aangesloten
  2. ik heb uitbreidingen nodig (actuatoren en sensors), en daarvoor ben ik nu afhankelijk van Dobiss. Met een PLC heb ik eindeloos veel mogelijkheden
  3. ik wil het aantal subsystemen zo minimaal mogelijk houden.

Mijn kast:

wat zijn actuatoren ?? :slight_smile:
ik gebruik van die xiaomi aqara’s als sensoren, super klein, goed richtbaar, batterij gaat superlang mee, denk al 3 jaar ofzo op 1 cmos

mss is dat een alternatief? daar schakel ik nu ook de lampen mee aan , heb ze gehangen in de toiletten en de dressing… en super cheap … ook ziet er lichtsensor in

Actuatoren: https://nl.wikipedia.org/wiki/Actuator

Ik wil geen of toch zo weinig mogelijk sensors in mijn huis die op eigen houtje IoT connecties naar internet opzetten omwille van security redenen.

Wat ik bv nog allemaal wil aansluiten:

  • Kleppen van mijn beregeningssysteem
  • Lichtsensoren
  • Temperatuur sensoren
  • Watersensoren (regen, overstroming)
  • Relais om elektrische kringen (geen lampen) te schakelen
  • Elektrische poorten

Ik wil ook zo weinig mogelijk draadloos. Als ik draadloos doe, dan is het Zwave.