Domoticz alapok
2017. július 31. írta: eNeS

Domoticz alapok

A Domoticz 2012 óta folyamatos fejlesztés alatt álló épületautomatizálási program. Nyílt forráskódú, többféle operációs rendszeren is működik. Már korábban tesztelgettem többféle lehetőséget, de ezt találtam a számomra legmegfelelőbbnek.

domoticz.jpg

A telepítése elképesztően egyszerű Raspberry-re, parancssorba ennyit kell beütni:

sudo curl -L install.domoticz.com | sudo bash

UPDATE: A fentit Raspbian Jessie operációs rendszerrel teszteltem, gond nélkül működött. Raspbian Stretch alatt előfordulhat, hogy egy szükséges library hiányzik: libssl.so [2]

És tényleg ennyi.. persze előtte be kell állítani, hogy legyen internetelérés a raspberryn. :) Egy kérdést tett fel a telepítő, hogy milyen porton szeretnénk elérni majdan a Domoticz-ot, alapértelmezetten a 8080-ra kerül, ezt kell majd a routerünkön átengednünk, hogy elérjük a webes felületét interneten keresztül is. Célszerű a Raspberry-nek statikus IP címet adni, vagy a routerünkön beállítani, hogy mindig ezt kapja, hiszen szerver lesz.

Ha másféle szerverben gondolkozunk, vagy forrásból szeretnénk fordítani, nagyon részletes, képekkel tarkított leírásaik vannak a telepítésről:
https://www.domoticz.com/wiki/Domoticz_Wiki_Manual

Megj: szinte mindenhez van lefordított futtatható változata, pl Windows, Linux x64, ARM 32/64 bit... kivétel ez az alól a Linux 32bites változat, amit forrásból kell fordítanunk, pedig ha valakinél akad elfekvőben régi gép, amit szervernek áldozna be (mert pl nem akar Raspberryt venni), akkor jó eséllyel erre lesz szüksége.
Az ő kedvükért mellékelem az Ubuntu 16.04-en fordított x86 Linux binárist:
domoticz_linux_i686.tgz

A Domoticz bizonyos eszközöket meg tud közvetlenül is szólítani, de a legtöbbhöz úgynevezett átjárók, "Gateway" eszközök telepítése szükségeltetik.

A támogatott eszközök listája itt megtalálható, de bevallom engem első körben csak az MQTT érdekel.

Célszerű rögtön a legutolsó Setup->Settings menüpontnál átállítani a nyelvet Hungarian-ra.

domoticz_01_beall.jpg

Az MQTT-t már sokat emlegettem, itt az ideje hát, hogy feltelepítsük, méghozzá szerintem célszerű arra a gépre, amelyiken a Domoticz is fut, konzolban így:

sudo apt-get install mosquitto mosquitto-clients

Ezzel a Mosquitto MQTT bróker feltelepül és elvileg máris fogadja a 1883-as porton az üzeneteket. Ha jelszóval akarjuk védeni, az /etc/mosquitto/mosquitto.conf -ot kell majd elővennünk.

Ha valamiért nem indult el az MQTT szerver:
- Nézzük meg fut-e a mosquitto szerver? ( sudo /etc/init.d/mosquitto status )
- Engedélyezzük! ( sudo systemctl enable mosquitto )
- Indítsuk el! ( sudo systemctl start mosquitto.service )
- Ha így sem megy, nézzük meg miért! ( sudo cat /var/log/mosquitto/mosquitto.log )

Ez után immár a Domoticz-ban a Beállítás -> Hardvernél fel tudunk venni egy MQTT Client Gateway-t, localhost címre 1883-as porttal. (localhost akkor a címe, ha ugyanazon a gépen van, mint amire a Domoticz-et telepítettük természetesen) A publish topic alapvetően "out" hacsak nem akarunk bonyolultabb, irodaház méretű projektbe fogni, de hobbiprojektnél ez nem valószínű. (A "Hozzáadás" gomb legalul van, kicsit görgetni kell érte)

domoticz_02_hard.jpg

Ha ez is megvan, egy Dummy típusú Hardvert is vegyünk fel, én ezt Virtuális néven vettem fel, ekkor megjelenik a nagyon fontos "Virtuális érzékelők létrehozása" nevű gomb, aminek a helyét jól jegyezzük meg. Itt tudunk tetszőleges típusú érzékelőket létrehozni, amik a Beállítás->Eszközök fül alatt fognak megjelenni, ahol az "Idx" oszlopban található szám jelenti az MQTT-n keresztüli azonosítóját az eszköznek.

domoticz_03_eszk.jpg

Ezen az oldalon mellesleg az Adat oszlopban máris látható az érzékelő által forgalmazott adat, ha a megadott IDX-el forgalmaz bármi is, esetleg a "mosquitto_pub" parancs segítségével mi magunk is küldhetünk adatokat tesztképpen, valahogy így:

mosquitto_pub -h localhost -t "domoticz/in" -m '{ "idx": 23, "nvalue": 0.00, "svalue": "2.0" }'

Ettől a 23-as IDX-ű fényérzékelő rögtön 2 lux értéket vesz fel. :)

A Domoticz egy SqliteDB adatbázisba dolgozik, itt tárolja a kapott értékeket, ez nem nagyon terheli a CPU-t, viszont nem árt néha menteni, tekintetbe véve az SD kártyák elhasználódását. Vagy a fenti Hőmérséklet/Időjárás/Vegyes kategóriákban, vagy a Kezelőfelületre kiemelt (kedvencek) érzékelőknél lehet megtekinteni az aktuális értékeket, vagy hozzám hasonlóan vizuálisak kedvéért van Alaprajz is.
Persze azt előbb meg kell rajzolni és létre kell hozni területeket, ahhoz hozzá kell adni az érzékelőket, az Eszközterveknél. (Több lehetőség -> Tervek)

domoticz_04_terv1.jpg

Majd a Tervek/Alaprajz menüben be lehet állítani a háttérbe a megfelelő alaprajzot (sajnos ezt nem lehet simán gombnyomásra felölteni, egy SFTP klienssel kell a $HOME könyvtárba feltölteni a ~/domoticz/www/images/floorplans mappába) és a korábban az Eszközterveknél a területekhez/szobákhoz társított érzékelőket a megfelelő helyre húzzuk.

Ha mindez sikerült, valami ilyesmi felületet kaphatunk:

domoticz_05_floorplan.jpg

És akkor még a különböző kapcsolókról és akár automatizált vezérlésekről/szkriptekről még nem esett szó, csak az alapokról.

Többféle Android és iOS alkalmazás is elérhető hozzá.
A nyílt forrású ingyenes Android klienset akár forrásból is lefordíthatjuk, így megszabadulva a felesleges reklámoktól: domoticz.apk.rar.part01 domoticz.apk.rar.part02,
domoticz.apk

Kapcsolódó cikkek:

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr4012705331

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Otom 2018.11.09. 11:00:27

Szia,
Most ismerkedem a Domoticz szoftverrel, de nem jutok vele dűlőre.
Egyedi drivert hogyan tudok írni vagy idegen eszközt felvenni?
Adott ip-s kapcsolók és hőmérők amik tcp-n kommunikálnak.
Találtam hasonló drivert azt hogy tudnám módosítani?
Nem vagyok nagy programozó.
Köszi

eNeS 2018.11.09. 21:11:24

@Otom: A Domoticz forrásból történő fordítása nélkül csak úgynevezett Python pluginokkal lehet bővíteni a funkcionalitást. Én is kerestem egy hasonlót, a zigbee2mqtt plugint alakítottam át a Shellyt támogató mqtt pluginná. Programozási alap ismeretek nélkül nagyon nehéz lesz...

Otom 2018.11.10. 09:09:58

Köszi. Van ötleted hogy melyiket kellene átalakítanom? Cél hogy becsatlakozzon az eszközbe és különböző parancsokat adjon illetve fogadjon? Jelenleg windows alatt működik a Domoticz, itt nem tudod véletlenűl melyik könyvtárban vannak a pluginok?

Otom 2018.11.10. 10:33:44

u.i.: KMTronic Gateway with LAN interface keresem de nem találom.

eNeS 2018.11.10. 18:23:44

@Otom: A pluginok a domoticz programkönyvtára alatti "plugins" mappában vannak, de alapvetően üres a könyvtár, neked kell letölteni, az elérhető pluginokról itt látható egy részleges lista: www.domoticz.com/wiki/Plugins
A KMTronic Gateway nem plugin, hanem hardver és C nyelvű forrása a hardware könyvtár alatt van, de nem hiszem, hogy ez jó lesz neked.

karolyia 2018.11.12. 10:42:31

Ismét megakadtam. Okosítom az egyik elektromos fűtést. kapott nodemcut, hőmérőt és egy 4-es relét. Termosztátként nagyon jól teszi dolgát, DE manuálisban már vannak gondjaim.

Így néz ki a dolog: ch1- kerámiafűtő 1, ch2 -kerámiafűtő 2, ch3 -ventilátor.
Azt szeretném, hogy a kerámiafűtőket ne engedje a rendszer bekapcsolni, ha a ventilátor nem megy. Megfordítva a dologot: ha bekapcsolom bármelyik fűtésfokozatot, akkor kapcsoljon be a ventilátor. Ezt sciptben meg is oldottam. A gond, hogy fizikailag nem dolgoztatja a mókát. Ergo: bekapcsolom a fűtést, a domo mutatja, hogy bekapcsol a ventilátor, DE a valósában nem történik meg. Beraktam slave/sub device alá egymásnak oda-vissza mindent, de nem akarja az igazságot.

Ez most egy kövér bug lenne, vagy ennyire nem látom a dolgot át???

karolyia 2018.11.13. 09:19:18

@karolyia: Megoldódott! Nem tud kezelni 3 vagy több eszközt egy IF ciklus ha AND kaput használunk. Csoportokat kell létrehozni az események fülön azokból, amiket együtt akarunk kezelni, aztán így lehet használni. Együtt kezelendő pinout perifériákat fizikailag csak úgy tud kezelni, ha csoportokat csinálunk belőle, hiába korrekt a szintaktika.

eNeS 2018.11.13. 18:33:20

@karolyia: Ha jól sejtem a Blockly-ról van szó? LUA-ban nincs ilyen probléma, annyi szintet alakít ki az ember, amennyit át tud látni.

karolyia 2018.11.15. 13:12:21

@eNeS: Igen. Blocky. LUA valóban tud mindent, de python manuált még forgatom :)