https://github.com/openhab/openhab/wiki/GPIO-Binding
Nagyjából azt követtem el, amit a doksi írt, de némi módosítés szükséges volt.
1. Telepítsük fel a natív JNA library-t:
apt-get install libjna-java
2. Módosítsuk a /opt/openhab/start.sh-t
Adjuk hozzá a java parancssori paraméterek listájához:
-Djna.boot.library.path=/usr/lib/jni
3. Módosítsuk a /etc/init.d/openhab fájlt.
Adjuk hozzá a DAEMON_ARGS paraméterek listájához:
-Djna.boot.library.path=/usr/lib/jni
és adjuk hozzá a GPIO unexport parancsokat a daemon leállási feladatokhoz:
4. A korábban letöltött distribution-1.8.1-addons.zip-ből (része az OpenHAB letöltéseknek) csomagoljuk ki a következő fájlokat:
org.openhab.io.gpio
org.openhab.binding.gpio
A /opt/openhab/addons könyvtárba
5. Indítsuk újra az OpenHAB-ot:
/etc/init.d/openhab restart
Mostmár az OpenHAB kész a GPIO kezelésére. Kell némi konfiguráció módosítás, hogy használni tudjuk.
6. Addjuk hozzá a szükséges elemeket.
A GPIO bemenetek Contact-okkal reprezentálhatóak az OpenHAB-ban. Tehát adjuk hozzá a /opt/openhab/configurations/items könyvtár valamelyik fájljához (Én itt már kidobtam a demo konfigurációt, tehát nálam ez a saját házam item listája) a következőket:
Contact KeeLoq_Remote_A "Remote A [MAP(en.map:%s]" (<ID of your Group>, Windows) { gpio="pin:66"}
Contact KeeLoq_Remote_B "Remote B [MAP(en.map:%s]" (<ID of your Group>, Windows) { gpio="pin:67"}
Contact KeeLoq_Remote_C "Remote C [MAP(en.map:%s]" (<ID of your Group>, Windows) { gpio="pin:69"}
Contact KeeLoq_Remote_D "Remote D [MAP(en.map:%s]" (<ID of your Group>, Windows) { gpio="pin:68"}
Ha minden rendben van a következőt fogjuk látni:
És, ha megnyomjuk a távirányító valamelyik gombját a, a closed felirat open-re vált, majd vissza, ha elengedjük a gombot.
7. A világításhoz, ez nem lesz elég
Arra van szükségünk, hogy megtartsuk a státuszt, ahogy az be és kikapcsol.
Tehát, hozzádunk még egy Switch-et az items fájlhoz:
Switch Garage_Light "Garage Light" (<ID of your Group>, Lights)
Ez csak egy egyszerű kapcsoló, tehát, ha távirányítóról akarjuk vezérelni, még egy szabályt is létre kell hozni. Ezt a /opt/openhab/configurations/rules mappában lévő rules fájl szerkesztésével oldhatjuk meg:
rule "GarageLightToggle"
when
Item KeeLoq_Remote_B changed from CLOSED to OPEN
then
if(Garage_Light.state == ON)
{
sendCommand(Garage_Light, OFF)
}
else
{
sendCommand(Garage_Light, ON)
}
end
Ezek után, ha megnyomjuk a B gombot a távirányítón, be és ki fogja kapcsolni a fenti switch elemet.
Ez még nincs hatással a fizikai lámpára. Ahhoz még gyártanom/vennem kell valami beavatkozó szervet.
7. A világításhoz, ez nem lesz elég
Arra van szükségünk, hogy megtartsuk a státuszt, ahogy az be és kikapcsol.
Tehát, hozzádunk még egy Switch-et az items fájlhoz:
Switch Garage_Light "Garage Light" (<ID of your Group>, Lights)
Ez csak egy egyszerű kapcsoló, tehát, ha távirányítóról akarjuk vezérelni, még egy szabályt is létre kell hozni. Ezt a /opt/openhab/configurations/rules mappában lévő rules fájl szerkesztésével oldhatjuk meg:
rule "GarageLightToggle"
when
Item KeeLoq_Remote_B changed from CLOSED to OPEN
then
if(Garage_Light.state == ON)
{
sendCommand(Garage_Light, OFF)
}
else
{
sendCommand(Garage_Light, ON)
}
end
Ezek után, ha megnyomjuk a B gombot a távirányítón, be és ki fogja kapcsolni a fenti switch elemet.
Ez még nincs hatással a fizikai lámpára. Ahhoz még gyártanom/vennem kell valami beavatkozó szervet.
Háát :) Ez csak tényleg csak annak való, aki hobbyként tekint rá és szeret vele szívni... Nem leszólni akarom félre ne érts, de még macerásabb, mint amit gondoltam amikor először szóbakerült.
VálaszTörlés:-D
TörlésÉs még folytatom. Készülnek a 3D nyomtatott dobozok, a moduláris rendszer paneljei, a WiFi-s szenzorok és beavatkozó szervek. Most épp a logging-on (itt persistence) agyalok, valamint egy NRF24L01+ alapú mesh network-öt kéne összeraknom és kipróbálnom.
Ezért is írtam eredetileg, hogy tudom mibe kezdtem. :-)
Huhú, ahogy bonyolódik a rendszer, lesznek itt csörték az aszonnyal :)
VálaszTörlésRemélem nem. A motorosított, rejtett fürdőszobai tükörvilágítást amit csináltam imádta. :-)
Törlés