Hogyan futtassuk a metódust scriptből a majordomo-ban. MajorDoMo

Sok kezdőnek nem sikerül megbarátkoznia a MajorDoMo-val, mert ez a rendszer első ránézésre meglehetősen bonyolultnak tűnik számukra, sőt, a MajorDoMo felépítése nagyon egyszerű. Minden „bonyolultsága” nem más, mint a kódtároló helyek megkettőzése, amelyet kizárólag a kényelem érdekében valósítanak meg.

Próbáljuk meg ezt közelebbről megvizsgálni. Minden, amit csinálunk, a legtöbb esetben PHP kóddal van megvalósítva. Ez viszont alapvető funkciókat és néhány MajorDoMo saját parancsot tartalmaz.

A könnyebb megértés és megvalósítás érdekében a kódot különböző helyekre helyezheti el. A megértés kedvéért hozok egy egyszerű példát erre a megközelítésre. Tegyük fel, hogy egy teljesen azonos kódot kell végrehajtanunk, mind a menüben lévő gomb megnyomásával, mind hangutasítással. Ezt a kódot közvetlenül a menügombra és a hangutasításra is írhatjuk. Nehézkes nem? Vagy beírhatjuk egy szkriptbe, majd egyetlen sorral bárhonnan meghívhatjuk. Valójában ez a látszólagos összetettség titka. 🙂

Ezért az egyszerű képlet. Ha valamilyen kódot egy helyről tervezünk végrehajtani, akkor azt közvetlenül onnan írjuk, és végrehajtjuk. Ha legalább két helyről kell hozzáférni, akkor már el kell gondolkodni a forgatókönyvön.

Hol vannak a kód helyei?

  • Nos, természetesen forgatókönyvek. (Adminisztrációs menü/OBJEKTUMOK/Szkriptek ).
  • Módszerek (Adminisztráció menü/OBJECTS/Objects ), amelyről később részletesebben is kitérek.
  • menü (Adminisztrációs menü/OBJEKTUMOK/Vezérlő menü ).
  • Hangvezérlés (Adminisztráció menü/TÁRGYAK/Viselkedések ).
  • Vizuális ellenőrzés az épület tervén (Adminisztrációs menü/TÁRGYAK/Jeletek ).
  • Adatok kinyerése weboldalakról (elemzés) (Adminisztrációs menü/OBJEKTUMOK/Web változók ).

Valójában ez a legtöbb, és korlátozott. Minden más intuitív és menet közben megragadható.

Forgatókönyvek.

A forgatókönyvekkel minden világos. Ezekben írjuk elő azt a kódot, amelyet különböző helyekről szeretnénk végrehajtani.

Menü, Hangvezérlés és Jelenetek.

Leírjuk bennük a legkedveltebb indikátorokat, gombokat, kapcsolókat, szabályozókat ...

Leírhatók:

  1. Minden kód.
  2. Közvetlen áttérés a szkriptre (előre elkészített szkript kiválasztásával a listából).
  3. Vegyes típus (például amikor egy kódrészletet közvetlenül egy gombban dolgozunk ki, pl. annak jelzését, majd menjünk a szkriptre, és tegyük azt, ami benne van írva).

Elemzés.

Az elemzés itt többnyire azt jelenti, hogy adatokat von le mások hálózaton megjelenő oldalairól a kívánt szövegrész elején és végének megadásával. A PHP itt meglehetősen kisegítő szerepet játszik, és viszonylag ritkán használják.

Íme egy példa. Tegyük fel, hogy a hőmérsékletet a webhelyről kell lekérnie, feltételesen "Forecaster". Speciális karakterekkel jelöljük a szükséges szövegrész elejét és végét (legyen az aktuális hőmérséklet száma). Továbbá az általunk beállított bizonyos gyakorisággal ezt a számot beolvassuk és beírjuk az ingatlanba. Az ingatlanokról később. Egyelőre csak tudd, hogy a beolvasott ábrát egy bizonyos helyen tároljuk nálunk, amíg meg nem változik. Amint ez megtörténik, az ábra ezen a helyen (tulajdonon) megváltozik. Az ingatlanban rögzített paramétert (hőmérséklet ábra) a szükséges módon feldolgozzuk. Tegyük fel, hogy a menüben hozzáadjuk a következő szavakat a megjelenített szám elé: "Az utcán: " és akkor "°C » .

Így néz ki a kódban:Kültéri: %ThisComputer.Sinoptik_temp%°C

Az utcán: és°C ez csak szöveg.

DE:ThisComputer.Sinoptik_temp csak a mi tulajdonunk, holEz a számítógép ez egy osztály ésSinoptik_temp ez ennek az osztálynak a tulajdonsága, és a pontot használjuk határolóként. Mindezt megértheti, ha elolvassa az alábbiakat. Igen, a % a menü határolója, a kódban általában idézőjeleket használnak.

Ennek eredményeként a menüben mindig az aktuális hőmérsékletet látjuk az oldalról.

Objektumok.

És végül, még mindig vannak tárgyaink, az a hely, ahol tulajdonságaink vannak, és nem csak. A tárgyak is első pillantásra bonyolult dolognak tűnnek. De ez csak első pillantásra van így. 🙂

Egy tárgy ez valaminek a reprezentációja, például: számítógép (mint a fenti példában), vagy ébresztőóra, vagy időzítő, vagy akár Skype... Általában bármi.

Sok egyforma objektum lehet. Hát például. Emlékszel, amikor azt írtam, hogyan látom a rendszert, azt mondtam, hogy lesz egy meteorológiai állomásunk beltéri és kültéri egységekkel. Tehát mindkét blokk teljesen azonos ESP-12 modulokra van felszerelve. Mindegyikük egy tárgy, és a teljességük azOsztály . Itt is mindent megtesznek a kényelem és a felesleges írások kizárása érdekében, tovább fogod érteni.

A szerkezet itt a következő:

1. Osztály azonos eszközöket, nevezzük feltételesen ESP-nek (mivel az ESP modulokat vettük példaként).

1.1. Ezosztály beállíthatodtulajdonságait (ha egyszerű módon, úgy, hogy beálltanterem ESP ingatlanhőfok automatikusan megjelenik mindannyiunkbanosztályú objektumok ESP , azaz nem lesz szükség létrehozniingatlan , mindenkinektárgy ).

1.2 Eztosztály , azt is beállíthatjamód (vagyis valamilyen kód végrehajtása, ezekmód hasonlóképpentulajdonságait megjelennek mindannyiunkbantárgyakat ).

1.3. És végül perszetanterem vantárgyakat . Ezek már közvetlenül a fizikai ESP-ink: ESP-12 No. 1, ESP-12 No. 2 stb.

Mindenkiegy tárgy (ESP-12 #1, ESP-12 #2 stb.) viszont megvan a sajátjatulajdonságait ésmód .

A tulajdonságoknak két típusa van. osztály tulajdonságaités Az objektum tulajdonságai különbségük abban rejlik, hogy az osztályba bejegyzett tulajdonságok automatikusan megjelennek minden új objektumban, és az objektumhoz hozzáadott tulajdonságok csak abban vannak. Ez egyrészt azért történik, hogy megszabaduljunk a felesleges írásoktól, másrészt az egyéni tulajdonságait. Mód csak az osztályban jönnek létre, és már csak az objektumban vannak regisztrálva.

Elmagyarázom egy példával:

Tegyük fel, hogy van ESP-12 #1 és ESP-12 #2. Mindkettőn meg kell mérni a hőmérsékletet, de ezen kívül az elsőnél a páratartalmat is, a másodikkal pedig a relét vezéreljük.

CsinálOsztály ESP , írunk benneingatlan Hőfok . Ez automatikusan megjelenik mind az ESP-12 #1, mind az ESP-12 #2 tulajdonságaiban. Közvetlenül az ESP-12 No. 1-hez, már az övébentulajdonságait , előírjukpáratartalom . NÁL NÉLtulajdonságait azonos, ESP-12 No. 2 regisztráljuk a Relét. Ennek eredményeképpen az ESP-12 No. 1 olyan tulajdonságokkal rendelkezik, amelyekben a rendszer rögzíti a hőmérséklet és páratartalom értékeket, valamint az ESP-12 No. 2 olyan tulajdonságokkal, amelyekben a rendszer rögzíti a hőmérséklet értéket és a relé állapotát (0-Ki, 1-Be). És ennek megfelelően mód ami éppen ezeknek az adatoknak a feldolgozását segíti elő, ha van rá igény, akkor az órán elindítjuk ESP, és máris minden objektumhoz személyesen írjuk bele a kódot.

Megjegyzendő, hogy a metódusok bárhonnan hívhatók. callMethod("Object.Method", $params); vagy alternatív cm cm("Object.Method", $params);. Az ingatlanok szintén globálisak, és bárhonnan hívhatók. Az sg(setGlobal) és gg (getGlobal) függvények pontosan ezt teszik. Például a sor:getURL(gg('AlarmOne.UrlAlarmRing'),0); megnyitja az ingatlanban tárolt linketAlarmOne.UrlAlarmRing

Most már biztosan minden megvan ahhoz, hogy megértse a MajorDoMo működését.

Javítsuk ki ezt egy konkrét példával:

A wifi-iot.com webhelyről frissítettük a firmware-t az ESP-12 #1 és #2 modulunkra. Az első a hőmérsékletet és a páratartalmat, a második pedig a hőmérsékletet és a relét vezérli. Mindkét ESP-12 rendszeres időközönként adatokat küld a MajorDoMo-nak, ahol azokat egy szkript fogadja, amely a kapott adatokat tulajdonságokra bontja. Végül pedig ezeket az adatokat kivesszük a tulajdonságokból, és saját belátásunk szerint használjuk fel, vagyis a szükséges tulajdonságot már oda szúrjuk be, ahol azt megjeleníteni vagy alkalmazni kell.

Például az utcai és a szobahőmérsékletet vesszük, feldolgozzuk egy bizonyos forgatókönyv szerint, ezáltal intelligens termosztátot kapunk.

Ugyanazokból a tulajdonságokból ugyanazt a hőmérsékletet vesszük, és megjelenítjük a menüben vagy a színpadon vizuális megjelenítés céljából.

Reggel pedig az Alarm Clock objektumból induló metódus indít nekünk egy szkriptet, ami miután végre felébredtünk és lekapcsoltuk a dallamot, hanggal felolvassa nekünk az aktuális időjárás-jelentést. És szerinted honnan veszi a hőmérsékleti és páratartalmi adatokat? Pontosan az ingatlanokból!

És ezek közül a lehetőségek közül tetszőleges számút elkészíthet, amíg van elegendő fantázia, itt megvan az a rugalmasság, amit ígértem.

Mi a következő lépés?

Nos, most, hogy már megérted a MajorDoMo felépítését, mesélek a HDMI mátrixról, ahol már a MajorDoMo-ban láthatjuk az eszközök interakcióját. És végül áttérek egy komolyabb prezentációra, kóddal, képekkel, diagramokkal és egyéb élvezetekkel... Általában elég a puszta elméletből, most nagyrészt gyakorlat lesz.

Tehát HDMI 4×2 mátrix 4K x 2K 3D .

    Azonnal el kell mondanom, hogy igyekszem minél jobban szűkíteni a képeket, hogy akár okostelefonon is oldaltájolásban nézhetőek legyenek, de ez nem mindig sikerül 🙁 . Ha azt látja, hogy a kommentek szövege túlmutat a határokon, akkor csak fordítsa az okostelefont az oldalára (Fekvő tájolás), okostelefonok, azok különböznek.

    A blogom elemzése közben több keresési lekérdezéssel találkoztam, mint például: - Hol található a menu.html vagy a scenes.html fájl stb.
    Az ilyen kérdésekre adott válaszok nagyon egyszerűek, hogy külön blogot szenteljünk nekik. Ezért a megjegyzésekben válaszolok rájuk.
    Alapértelmezés szerint a terminál megjelenését alkotó összes fájl a /templates mappában található; ha már telepítve van egy harmadik féltől származó skin, akkor ezeket a fájlokat a /templates_alt mappában kell keresni. A /templates_alt mappa prioritása magasabb, mint a /templates, és minden benne lévő feldolgozásra kerül először. Ha valami hiányzik belőle, akkor a motor a /templates mappába kapcsol a hiányzóért. Nos, valószínűleg a fentiek alapján érdemes megjegyezni, hogy ha saját sablont (skint) teszünk fel a MajorDoMo-ra, akkor létre kell hozni a /templates_alt mappát (ha még nem készült el), és minden kísérletet el kell végezni azt. Ez megakadályozza, hogy bármiféle hiba esetén elveszítsen semmit, amit alapértelmezés szerint kapott.

    Volt ez a kérés is: -A MajorDoMo nem fogad el adatokat...
    A MajorDoMo adatokat fogad, általában valamilyen szkript futtatásával, amely vagy fogadja ezeket az adatokat, vagy beolvassa, majd a szkript behelyezi azokat az Ön által ehhez a tulajdonsághoz előkészített tulajdonságokba, ahonnan a szükséges adatok beolvasásra és felhasználásra kerülnek. Ezek a szkriptek általában futnak; Akár kívülről, akár egy külső szerverről (na, mondjuk, mint az ESP8266 esetében, ami az adatok elküldésével elindítja a szkriptet espdata), így vagyunk mi kapunk adatok (egyébként a közeljövőben az időjárás állomásról szóló cikkemben mindezt részletesebben is elmondom). Vagy időzítőn gondol adatok bárhonnan. Vannak kész mechanizmusok, például egy hasonlót beépítenek a webes változókba, amelyek bizonyos gyakorisággal lekérdezik a céloldalt. A leírt esetben a frekvencia a mezőben van megadva Ellenőrizze az intervallumot, egy adott webes változó. Így például megkapjuk a napkelte és napnyugta időpontját. A webváltozó átveszi az időértéket valamilyen időjárási oldalról, beírja a tulajdonságba, majd már a metódusban végrehajtjuk a feldolgozást (vagyis összehasonlítjuk az aktuális időt a napnyugta idejével), aminek eredményeként Alice pontosan a megfelelő időben mondja el nekünk — Lemegy a nap.és ha szükséges, bármilyen műveletet végrehajt, vagy 🙂 elindítja a szükséges szkriptet.
    Ha tehát a MajorDoMo nem fogad el semmilyen adatot, akkor mindenekelőtt érdemes keresni egy scriptet vagy forrást (például, mint egy webes változó esetében), amely felelős ezért, és ellenőrizni a teljesítményét. Ehhez minden mechanizmus biztosított a szkript elemi elindításától, közvetlenül a beállításaiból, a beállítások oldalán található hivatkozásra kattintva, és a naplók elemzéséig, ahogyan például a weben is elérhető. változók.

    És végül a harmadik kérés, amit láttam: -MajorDoMo egyszerű objektumok
    Itt érdemes megjegyezni, hogy a lekérdezés egy kicsit hibásan lett összeállítva. Annak ellenére, hogy tárgy bármi lehet, nemrég egy további koncepciót vezettek be a rendszerbe: Egyszerű eszközök. Ezt azért tették, hogy megkönnyítsék a kezdők életét. Őszintén szólva, még nem használtam, mivel dolgozom, csak ugyanazon tárgyak szintjén. De a kis embert az igaz útra terelni: (Simple Devices) szó szerint, másodpercek alatt. Szóval nyugodtan regisztrálj és kérdezz kommentben. Mindenesetre sokkal gyakrabban foglalkozom velük, mint a keresési lekérdezések elemzésével.

    Ülök, csendben cikket írok a teáskannáról, de elmosom magam, nézd a mérőszámot. Feladtam és úgy döntöttem, megnézem. És látok egy másik keresési lekérdezést: - MajorDoMo adatbázis-struktúra
    Nehéz azonnal válaszolni erre a kérdésre, mivel kezdetben nem tudni, hogy az illető konkrétan mit akar. A felépítés, ahogy a rendszer meg van töltve, mindenkinél más lesz, valaki telepíti ezt vagy azt a modult, ezt vagy azt az alkalmazást, és valakinek nem lesz rá szüksége... A tábláknak szintén messze vannak a tipikustól eltérő mezői. Ezért ebben a szakaszban adom a listámat, és ott, ha valakit valami konkrét érdekel, kérdezzen és megnézzük.

    Kérés: Hogyan írjunk értéket egy ingatlanra?
    Válasz: A legtöbb esetben a tulajdonságban szereplő érték automatikusan beírásra kerül, azonban ez manuálisan is megtehető. Olvassa el a cikket a Broadlink SP3 foglalatról, és soha többé nem lesznek ilyen kérdései.

    Kérés: MajorDoMo, web hőmérsékleti változók?
    Válasz: Valószínűleg egy külön cikket fogunk szentelni a webes változóknak, hogy képet kapjunk az első pillantásra a legnehezebb dologról, nevezetesen a szűrésről. Eddig konkrét válasz egy konkrét kérdésre.
    Az aktuális hőmérsékletet a Forecaster oldaláról vesszük, annak stabilitása és állandósága miatt.
    Hozzon létre egy webes változót a Név: Sinoptik_temp
    NÁL NÉL Link felírjuk: https://sinoptik.com.ru/weather-Volgograd Az Ön esetében Volgograd az Ön városa lesz.
    NÁL NÉL Keresési minta:

    Kapcsolódó objektum: Ez a számítógép
    Ingatlan: Sinoptik_temp ezt a tulajdonságot a This Compuer objektumon kell létrehozni (olvassa el ezt a cikket és az SP3 socket cikket).
    Ellenőrzési időköz: 600
    Ennyi, most 10 percenként az Mzhor kiolvassa a város aktuális hőmérsékletét a Forecasterből, és beírja a Sinoptik_temp tulajdonságba, amellyel bármit megtehet, megjelenítheti szkriptekben stb.

    Kérés: MajorDoMo, lemegy a nap?
    Válasz: A MajorDoMo-ban két mód van, mégpedig az éjszakai mód és a sötét mód. Éjszakai mód, óránként kapcsol be, alapértelmezés szerint 20:00 és 8:00 között. Ez a mód nagyon kényelmes, például a hangos bejelentés kikapcsolásához. Üzemmód, Sötét napszak, napnyugtakor bekapcsol és napkeltekor kikapcsol, ez az üzemmód például kényelmes az utcai világítás szabályozására. A helyspecifikus adatok a webes változók alkalmazásával nyerhetők. Amelyek ezt követően a ThisComputer.SunRiseTime és a ThisComputer.SunSetTime tulajdonságokban tárolódnak, és a Timer osztály onNewMinute metódusában dolgoznak fel.

    Kérés: MajorDoMo globális változók?
    Válasz: A gg (getGlobal) és sg (setGlobal) függvények magukért beszélnek, nos, és tulajdonságaink, tekintettel arra, hogy hajlamosak változni, ugyanazok a globális változók. Tegyük fel, hogy van egy bizonyos forgatókönyvünk, és tennünk kell valamit a tulajdonsággal, mondjuk, módosítani kell a termosztát küszöbhőmérsékletét. A getGlobal függvény segítségével bevisszük a tulajdonság értékét a szkriptünkbe, és egy lokális változóba írjuk, legyen ez: $temp_term. Ezzel a lokális változóval a szkriptünkben már elvégezzük a szükséges átalakításokat, végül a $temp_term megváltozott állapotát a setGlobal függvénnyel visszaírjuk a property-be. Nos, az ingatlannal, mint már tudjuk, azt csinálhatunk, amit akarunk. Például az értékét megjeleníteni a képernyőn, elküldeni egy fizikai termosztáthoz, vagy akár a rendszer hangszóróin keresztül is beszélni... Amúgy a globális változókról beszélve érdemes megjegyezni a rendszer beépített funkcióit. Emlékeztetni kell arra, hogy van egy bizonyos függvény- és változókészlet, amelyet kizárólag a rendszer számára implementálnak. Emlékszel, említettem, hogy legtöbbször PHP-vel dolgozunk, de van benne valami? Megtekintheti a beépített funkciókat. És ha megnézi, figyeljen a „Ciklusok (szolgáltatások) kezelése” elemre, ott csak találkozik egy beépített globális változóval, és megérti, hogy a módszertan mindenhol ugyanaz.

    Kérés: MajorDoMo html blokk használati értéke változóból?
    Válasz: Én például így csinálom: Kültéri: %ESP8266003b5df7.dhtt1%°C(vagyis billentyűzetről írom a ° szimbólumot), és akkor a kiosztás a marhaságig megy. A fokozat szimbóluma ALT + 0176, a számokat a billentyűzet numerikus részén kell begépelni (LINK A WIKEPÉDIÁHOZ).
    Néhányan ehhez hasonló dolgokat csinálnak:
    %KitchenMain.dhtt1%°C és akkor fel kell tenni C kizárólag angol elrendezésben. Én személy szerint nem próbáltam, de ezt mondták: (LINK A FÓRUMHOZ).
    Figyelem! Ha valaki a copy-paste mellett dönt: %KitchenMain.dhtt1%°C ne feledd, hogy itt a blogon nem fokozat szimbólumként jelenik meg, hanem mint ° Kicseréltem az angol betűt a karakterkódban e oroszra, ne felejts el visszaváltani!
    Hát és így tovább... Bla, bla, bla: %OBJECT.PROPERT% bla, bla, bla. Bla, bla, bla bármilyen nyelven, még kínaiul is.
    Ha például a páratartalom megjelenítésére van szüksége, tegye a következőket: %ESP8266003b5df7.dhth1%% a második % csak egy szimbólum lesz.

    Kérés: Hogy óránként fusson a majordomo szkript?
    Válasz: Lépjen a következő módszerre: OBJECTS / Objects / Timer / onNewMinute, és a legvégén add hozzá:

    Ha ($m=="10") (
    runScript("SCRIPT NEVE");
    }

    Ne felejtsen el a "Frissítés" gombra kattintani
    A szkript az óra minden tizedik perce után lefut.

    Kérés: MajorDoMo hogyan állíthatom be az elérési utat más oldalakhoz?
    Válasz:
    1. Ha azt szeretné, hogy oldala lapnak tűnjön, akkor lépjen a következő helyre: Fő Admin menü/BEÁLLÍTÁSOK/Kezdőlapok, kattintson a gombra "Új oldal", Terepen Név(*)írja be a lap nevét a listába típus választ URL, mezőben Link, írja be az oldal címét. Helyi oldalaknál elég megadni a helyi elérési utat, például: /Sablon_alt/oldalnév.html . Ha van egy oldal a saját mappájában, és van benne indexfájl, akkor csak a mappát kell megadnia, például: /Kinoteatr/

    2. Tegyük fel, hogy be szeretne illeszteni egy webhelyet az internetről a MajorDoMo-ba, hogy folyamatosan használja. Ez nagyon egyszerű. Ehhez az "Elküldött linkek" alkalmazást kell használnia ( Olvasd el a kiegészítők piacán).
    Példa. Van egy böngésződ a munkahelyeden. Könyvjelző készítése a böngészőben Cím: Küldje el MJD-nekés a terepen URL előírni:

    javascript:(function()(varhost=" A MajorDoMo címe"; var title=prompt("Cím:", ​​document. title); if (title!="" && title!=null) (location.href="http://"+host+"/popup/app_readit.html ?ajax=1&op=add&url="+encodeURIComponent (location.href)+"&title="(!LANG:+encodeURIComponent(title);))());

    NE FELEJTEK EL VÁLTOZNI: A MajorDoMo címe !!!
    Jó látható helyre tesszük, például a könyvjelzősávba (amit természetesen először meg kell jeleníteni).
    Mindegy, hogy melyik oldalon tartózkodik, egyszerűen kattintson erre a fülre, és az oldal megjelenik a MajorDoMo-ban, a Hivatkozások lapon. Figyelj oda (a megnyílt Linkek fülön) a bal felső sarokban lévő kis ikonra, rákattintva megnyílik egy menü, ahol a következőket teheted: Kiválaszthatod azt az oldalt, amely tartósan megjelenik a keretben (a lapon), Adjon hozzá egy új oldalt manuálisan (ha valamilyen okból nem akarja használni a könyvjelzőt), és végül használja a hivatkozást a könyvjelző létrehozásához (Figyelem! Ha onnan vesz egy hivatkozást, figyeljen a következőre: host="mycomp" !} mycomp ez egy link a MajorDoMo-hoz, általában helyi IP-cím is lehet, ezt vagy külső IP-re vagy domain névre kell módosítani. Általában azt javaslom, hogy domain nevet használj, minden szempontból kényelmesebb. Így például, ha kívül van egy domain név, és regisztrálja a társítását a helyi hálózatban, csak egy linkje lesz, amelyet mindenhol használhat, ez nagyon kényelmes mobilalkalmazásokkal, Taskerrel stb. nem kell abban reménykedned, hogy váltasz valamit, amikor otthon vagy, majd kint).

    3. Végül, ha szeretné, beillesztheti oldalát közvetlenül a jelenetbe. Hát pl ha van valami kész oldalad gombcsoporttal stb. Bővebben itt: (LINK)

    Kérés: MajorDoMo objektum metódus elindítása?
    Válasz: A metódust a következő sor hívja:

    callMethod("Object.Method", $params);

    Korábban a globális változókkal kapcsolatos megjegyzésben írtam a belső függvényekről és idéztem (LINK), ugyanitt az "Objektumokkal végzett munka" részben a metódusokról is találsz.

    Kérés: Hogyan írjunk értéket egy objektum tulajdonságából egy másik objektum tulajdonságába?
    Válasz: Először is érdemes meghatározni, miért van erre szükség. Erre például akkor van szükség, ha létrehoznia kell egyszerű készülék , mondjuk egy hőmérséklet-érzékelő, és fizikailag van egy összetett eszközöd, például egy ESP-modul, amelyhez sok érzékelő csatlakozik, beleértve a hőmérséklet-érzékelőt is. Tekintettel azonban arra, hogy az ESP nem egy egyszerű eszköz, és az összes érzékelőjének írási szkriptje összetett (vagyis az értéket úgy írják be a tulajdonságba, hogy az azonosítót objektumként, sőt tulajdonképpen tulajdonságként állítják össze. Röviden: a kód egy, és az adatok különböző ESP-k tulajdonságaiba vannak írva), egyszerű eszközökben lehetetlen közvetlen felhasználása.
    Hogyan kell eljárni?
    1. Hozzon létre egyszerű készülék , hőmérséklet szenzor. A kimenetben egy Object.Property párost kapunk, például: Sensor_temp01.value emlékezzünk rá.
    2. Keresse meg a minket érdeklő ESP hőmérséklet-érzékelőjének nevét (tegyük fel, hogy a BME-280-ból a hőmérséklet-érzékelőt szeretnénk használni, ami az első ESP modulhoz kapcsolódik, ami a csarnokban van), menjen a csarnok ESP tulajdonságaira, és nézze meg, hogy van egy hőmérséklet-érzékelőnk: ESP8256007b5b6d.bmet, Emlékezz rá.
    3. Készítsünk egy szkriptet, amely percenként kiírja az értéket az ESP hőmérséklet tulajdonságból egy egyszerű eszköz hőmérséklet tulajdonságába. Nevezzük: Érzékelő Egyesület
    És írd be a kódot:

    //Percenként adatokat ír az ESP8256007b5b6d.bmet-ből a Sensor_temp01.value-be
    $templ = getGlobal("ESP8256007b5b6d.bmet");
    setGlobal(("Sensor_temp01.value"),$templ);

    Mentsük el a forgatókönyvünket!

    4. Végül pedig állítsa be a szkriptet percenkénti végrehajtásra az időzítő metódusban: onNewMinute

    Kérés: MajorDoMo mutatók?
    Válasz: Sok kezdő gyakran elakad ezen a kérdésen. Igen, valóban, a szerkezet és különösen a minták alapos ismerete nélkül nem olyan könnyű megtalálni az indikátorokat, de a pontos hely ismeretében egyáltalán nem lesz probléma. Elsőként azt szeretném elmondani, hogy a mutatók a sablon részét képezik, pl. úgynevezett Webes arcok vagy (ha úgy tetszik, front-end), szóval? ott kell keresni őket. Így két helyen is lehet webpofa. 1. Ha a szabványos sablont használja, akkor valószínűleg itt kell keresnie: /www/templates/default.html 2. Ha hozzám hasonlóan alternatív sablont alkalmaz, és közben betartja a nemes webmesterek szabályait, ne szar az alapértelmezettet (amit alapból ad a Szerző), soha nem tudhatod, és hirtelen újra kell csinálnod. szebben. Akkor minden bizonnyal az alternatív sablonban kell keresned: /www/templates_alt/default.html . A sablon mellett döntöttünk, nyissuk meg a fájlt egy szövegszerkesztőben: default.html, és hogy ne bolyongjon a súlyos szöveg között, a megfelelőt keresve megkeressük a sort a fájlban: System.IndicatorColor ez a rendszer állapotának tulajdonsága (amelyben az érték egy kép), első számú jelző! Mindig jelen van, a hasonlatosságához hozzáadva azokat a tulajdonságokat, amelyekben képek vannak, annyi szükséges mutatót kap, amennyit csak akar a főoldalon.

    De ez még nem minden. Itt ezen az oldalamon (LINK) az én sablonom látható fő illusztrációként, és ha alaposan megnézed, észre fogod venni, hogy az indikátoroknak nem csak a fősablonban a jobb oldalon kell lenniük, hanem a menü. Ez nem szeszély és nem hülyeség, mert alapból, amit a MajorDroid-ban használok, nem látod a főoldalt, ott a főoldal a menü (foglalkozom, ez az én esetemben, mert ha akarod, ott alapból megjelenítheted a jelenetet!) ezért a menüben duplikált jelzőket is láthatsz.
    Hol kell őket keresni? Egyszerű, ha igazán szüksége van rá, saját kezűleg kell elkészítenie őket.
    Szóval hogyan kell csinálni?
    Menüpont készítése a Cím: Állapotés tedd a menü legtetejére ( Prioritás: 100000 ), szülő elem: természetesen kell GYÖKÉR.
    NÁL NÉL Típus: választ HTML blokk.
    Az Adatok mezőbe írja be a következő kódot:

    Ez az én verzióm, szerkeszted magadnak, hogy mi, hogyan és hol fekszik, azt már nehézség nélkül megérted. És elnézést a képért, csak az én rendszerem úgy van elrendezve, hogy felveszi ezt a kódot. Tehát kézzel kell átírni. Figyelem: A Liquid_Crystal egy LCD órát imitáló betűtípus, ebben a stílusban készült a sablonom, ha ugyanilyet szeretnél, akkor magadnak kell letöltened, ha nem számít, ha ne találd a Liquid_Crystal-t, a rendszer összeköti az Arial-t, de felül írd.
    És végül a bekezdésben: Automatikus frissítési időszak:írd le 10 mp.
    Mentse el és szerezze meg, amit akar.

mond($ph,$level)-- mond egy kifejezést (a $voicemode [nevezetesen a speak] és a $commandLine globális változókat használja [a választ echo utf2win(-re konvertálja), egyébként csak echo]). A $level a kifejezés fontossági szintjét jelzi (a minimális kiejtési szint jelenlegi beállításaitól függően a kifejezés hangozható vagy egyszerűen beírható az üzenetelőzményekbe).

processCommand($command)-- szöveges parancsot küld a végrehajtásra (például "mondja meg, hány óra van"). Maguk a parancsok a ThisComputer->commandReceived metódusban vannak konfigurálva.

getGlobal($varname);-- a globális ingatlan értékének megszerzése

setGlobal($varnév,$érték);-- globális tulajdonság beállítása

processLine($sor);-- futtassa a szinkronizálási szkriptet

getRandomLine($fájlnév);-- Vegyünk egy véletlenszerű karakterláncot egy szöveges fájlból. A $fájlnév lerövidíthető, például fájl1, ekkor a fájl el lesz véve./texts/file1.txt

playSound($fájlnév);-- fájl lejátszása (mp3, wav stb.). A $fájlnév rövidíthető, például fájl1, és ekkor a fájl el lesz véve./sounds/file1.mp3

playMedia($útvonal);-- zene lejátszása a $path könyvtárból. Példa

runScript($id,$data);-- végrehajtja a parancsfájlt a megadott azonosítóval. A név használható azonosítóként

getLogger($context = null);-- egy naplózó objektumot ad vissza. Logger használati példák

Munka tárgyakkal

$obj=getObject($név);-- megkapja a $name nevű objektumot. A fogadott objektummal a következő módszerekkel dolgozhat:
$obj->callMethod("method_name",$params);
$obj->setProperty("tulajdon_neve",$érték);
$obj->getProperty("tulajdon_neve");

callMethod("Object.Method", $params);-- meghívja az objektum metódusát a megadott paraméterekkel (ez utóbbi nem kötelező)

$command="Hány óra van"; callMethod("ThisComputer.commandReceived",array("parancs"=>$parancs));

cm

$érték=getGlobal("Object.Property");-- objektumtulajdonság értékének lekérése

gg-- az előző függvény alternatív neve

setGlobal("Object.Property",$érték);-- objektumtulajdonság értékének beállítása

vmi-- az előző függvény alternatív neve

$objects=getObjectsByClass("osztálynév");-- a megadott osztály objektumainak tömbjét adja vissza névként Példa az objektumok között való hurkolásra és a tulajdonságértékek beállítására: $objects=getObjectsByClass("class_name"); foreach($objects mint $obj) ( setGlobal($obj["CÍM"]..tulajdonságnév",1); )

Idő/intervallum

idő()-- az aktuális időt időbélyeg formátumban adja vissza.

timeConvert ($tm)-- konvertálja az időt óó:pp-ről time() formátumra a mai dátumhoz

timeNow ($tm)-- visszaadja az időt szöveges formában, például "16 óra 40 perc". Ha a $tm nincs beállítva, akkor a pontos időt adja vissza. $tm időformátumban.

isWeekEnd()-- szabadnap igen/nem = 1/0 a hét napja()-- hétköznap igen/nem = 1/0

timeIs ($tm)-- ellenőrzi, hogy az aktuális idő megegyezik-e az óó:pp formátumban küldött idővel

idő előtt ($tm)-- összehasonlítja a $tm (óó:pp) időt és az aktuális időt. Ha az áram kisebb, mint 1, egyébként 0

idő után ($tm)-- összehasonlítja a $tm (óó:pp) időt és az aktuális időt. Ha az áram nagyobb, akkor 1, egyébként 0

közötti idő ($tm1, $tm2)-- ellenőrzi, hogy az aktuális idő a megadott intervallumon belül van-e (minden óó:pp és $tm1 nagyobb lehet, mint $tm2, például 23:00 05:00)

felismerési idő ($text)-- a függvény egy adott időpontot/dátumot próbál kinyerni a kifejezésből. Például a $text lehet "holnap 9:30-kor" vagy "5 perc múlva"

Bármely metódus (de nem szkript!) meghívásakor elérhetők a változók:

$prevRun-- utolsó hívás ideje (időbélyeg formátumban)

$prevRunPassed-- hány másodperc telt el az utolsó hívás óta

$ezt-- Mutató önmagára. Az osztálymetódusokban használatos. Például:

$this->setProperty("állapot",1); // a status tulajdonságot 1-re állítja, arra az objektumra, amelyre meghívva van

Ütemezett feladatok és események

AddScheduledJob("title","parancsok",$dátumidő, $lejárat=60);-- $lejárat másodpercben

ClearScheduledJob("title");-- olyan maszk, mint a "title%" használható

SetTimeOut("title","parancsok", $időtúllépés);-- $időtúllépés másodpercben (hasonlóan az AddScheduledJob("title","commands",time()+$timeout)-hoz);

ClearTimeOut("title");-- a ClearScheduledJob("title") analógja;

timeOutExists("title");-- visszaadja az ütemezett feladat azonosítóját (vagy 0-t, ha nincs)

registerEvent($eseménynév, $details="",$expire_in=365);-- esemény regisztráció $eventName

registerEventTime($eseménynév);-- a $eventName esemény utolsó regisztrációs idejét adja vissza (-1, ha még nem volt ilyen esemény)

Levél küldése

SendMail($feladó, $címzett, $tárgy, $törzs);-- e-mailt küld a $to-ban megadott címre

SendMail_html($feladó, $címzett, $tárgy, $törzs);-- hasonló az előző függvényhez, de az e-mail törzsét feltételezzük, hogy HTML formátumú

Egy ideje szerkesztőségünk látóterébe került az úgynevezett nem kereskedelmi partnerség „Vologdai Háztulajdonosok Egyesületeinek Szövetsége (ZhSK) és Lakástulajdonosok Szövetsége” tevékenysége.

Amint a HOA Egyesület vezetői elmondják, a "Vologdai HOA Szövetsége (HBC) és Lakástulajdonosok Egyesülete" non-profit partnerség létrehozásának és működésének célja a lakástulajdonosok koordinációs, kölcsönös tájékoztatási és interakciós rendszerének kialakítása. mint érdekeik képviselete és védelme az állami hatóságokban, önkormányzatokban, igazságszolgáltatási szervekben.


A valóságban azonban, mint a legtöbb esetben, nem minden ilyen egyszerű.

Nyílt adatok szerint az NP "A HOA (ZhSK) és a lakástulajdonosok vologdai szövetsége" alapítói 2 személy: Sukhikh Artyom Vladimirovich és Ivanov Nikolai Leonidovich.


A HOA Egyesület pedig politikával is foglalkozik, pénzköltéssel népszerűsíti jelöltjeit a választásokon.

Ezek a személyek már évek óta agitálják az ingatlantulajdonosokat, hogy térjenek át ingatlanuk önálló kezelésére. A HOA Egyesület alapítóinak fő célja a társasházak, amelyekben az ingatlanok (lakások) tulajdonosai saját partnerség létrehozásáról álmodoznak.

Kezdetben a Lakásszövetkezetek Szövetsége nyújt segítséget a tulajdonosoknak a lakásszövetkezet bejegyzéséhez szükséges dokumentumok elkészítésében. Az ilyen HOA-k igazgatótanácsának tagjai főszabály szerint a lakás- és kommunális szolgáltatások, valamint a társasházak gazdálkodásától távol álló személyek, akik anyagi érdekükből adódóan teljes mértékben a HOA Szövetség irányítása alá kerülnek.

Az ilyen együttműködés eredménye mindig ugyanaz: a HOA függetlenségének hiánya a partnerek kiválasztásában, a munka elvégzése felfújt árakon, a lakások javítására és karbantartására elkülönített pénzeszközök visszavonása a HOA Szövetség által ellenőrzött szervezetektől. .

Az NP "HOA Szövetsége" rendszere

Mit lehet tudni ezekről a szervezetekről?

1. LLC UK "Sokol".

A szervezet vezérigazgatója és egyedüli alapítója Bazhenov Alexander Nikolaevich. Jogi cím: Vologda, st. Mira, 17 éves. 211. Nyílt forrásból származó információk szerint ez a cím további hat szervezet bejegyzési helye, amelyek egy része felszámolás alatt áll.

A Sokol LLC képviselője Sukhikh Artem Vladimirovich tíz évre kiadott meghatalmazással, ugyanaz a Sukhikh A.V. aki Ivanovval együtt a HOA Egyesület társalapítója.

2019 áprilisában tájékoztatást kaptunk Vologda város Lavrov utca 9. számú házának lakóitól a Sokol Management Company LLC irányítása alatt álló ház illegális lefoglalásával kapcsolatban.

Korábban ebben a bérházban a kezdeményező polgárok létrehoztak egy HOA-t, amely a bérházat kezelte.

Amint a Sokol Management Company LLC megkezdte az irányítást, a tulajdonosok érezték ezt, ahogy magukról mondják. A hőcserélő mosása következtében hűtőfolyadék került a ház lakóinak szállított vízbe, aminek következtében a víz zöldellt. A házak felében még mindig nincs melegvíz. A pincében folyamatosan szivárognak a csövek. A "Sokol" LLC alapkezelő társaság nem tesz semmilyen intézkedést a meleg víz visszajuttatására a tulajdonosok lakásaiba, és nem tesz intézkedéseket a hőcserélő javítására vagy cseréjére. A ház közös helyiségeinek takarítása rossz minőségű, és néha egyáltalán nem. Az egyetlen dolog, amit a Sokol Management Company LLC időben és kiváló minőségben tesz, az az, hogy a szolgáltatások fizetéséről szóló bizonylatokat szétszórja a postaládákban, és a Sukhikh Artem a tulajdonosokhoz fordul, és fizetést követel. Az emberek felháborodnak, hogy a ténylegesen el nem végzett munkáért fizetni kell.

Ezenkívül a Sokol Management Company LLC megpróbál pénzt kivenni, állítólag a ház egyik liftjének javítására, bár a műszaki vizsgálat eredményei szerint a lift jó állapotban van, és nem igényel javítást. .

Jelenleg az utca 9. szám alatti ház nem megfelelő kezelése. Lavrov, Vologda megerősítette a Sokol Management Company LLC-vel kapcsolatos vizsgálati jelentést. 2019. június 28-án Vologda Városi Közigazgatási Főosztálya utasítást adott ki az irányító szervezetek engedélyezési követelményeinek megsértésének megszüntetésére.

Érthetetlenné válik, hogy a HOA Egyesület „Nem Kereskedelmi” partnersége, amelynek célja, hogy segítse a lakosságot egy HOA létrehozásában, miért működik az ellenkező irányba, és házakat visz el a HOA-tól az ellenőrzött szervezetekhez, amely a Sokol Management Company LLC.

A "Sokol" LLC Management Company vezetője Bazhenov Alexander igazgató, akit Ivanov N. és Sukhikh A. irányít.

Meg kell jegyezni, hogy a gondoskodó lakosoknak köszönhetően a tulajdonosok Sokol Management Company LLC-re vonatkozó döntését a Vologdai Városi Bíróság jogellenesnek ismerte el, és teljesen törölte.

2. LLC "SU-35"

Ulyana Pavlovna Borodiy és Maksim Alekseevich Dobrelya az OOO SU-35 tagjai. Ez utóbbival Sukhikh Artem állandó üzleti kapcsolatban áll.

Jelenleg a Vologdai Régió Választottbírósága határozatával az OOO "SU-35"-t fizetésképtelennek (csődben) nyilvánították, és megindult a csődeljárás.

Kezdetben 2017. április 10-én a Sukhikh A.V. és az LLC "SU-35" munkaszerződést kötöttek, amelynek értelmében Sukhikh átvette a jogi ügyekért felelős igazgatóhelyettes feladatainak ellátását.

Ezután a felügyeleti eljárás bevezetése után az LLC "SU-35" vonatkozásában Sukhikh a "Su-35" LLC vezetőségével együtt PÉNZ KIFIZETÉSÉT KÍSÉRLETETTE AZ ELSZÁMOLÁSI SZÁMLÁBÓL. Ennek a kísérletnek a megvalósítása érdekében, az ideiglenes menedzser beleegyezése nélkül, megállapodás született az OOO SU-35 és a Sukhikh között a szerződés jelenlegi feltételeinek megváltoztatásáról.

Valójában a korábban megállapított 30 000 rubel 00 kopekás havi fizetéshez, a meghatározott kifizetéseken felül, ugyanazokra a feladatokra amelyeket Sukhikh A.V.-hez rendeltek. munkaszerződés, felek a bérek 270 500 rubel emeléséről állapodtak meghavi. (811 500 rubel a 2018. április 28. és 2018. július 17. közötti időszakra)

Annak érdekében, hogy a pénzeszközök visszavonása jogszerűnek tűnjön, 2018. november 20-án Sukhikh A.V. összegű keresetet nyújtott be a SU-35 LLC-től elmaradt bér behajtására 1 082 229 rubel 99 kopecka A Vologdai Városi Bíróság azonban teljesítette a követelményeket Sukhih A.The. csak részben, miután beszedett az LLC "SU-35"-től egy összegű tartozást 70 117 rubel 46 kopejka.

Később a Vologdai Régió Választottbírósága érvénytelenítette a megállapodást a munkaszerződés hatályos feltételeinek megváltoztatásáról. A bíróság ítélete megállapította, tisztességtelen magatartás Sukhih A.The. , amelyet az OOO SU-35 bíróság által megállapított fizetésképtelenségének (csődjének) feltételeiről szóló Megállapodás (figyelési eljárásban) megkötésében, valamint a munkavégzésért járó béremelés feltételeiről szóló megállapodásban fejez ki. korábban a munkaszerződés alapján Szukhikhoz rendelték, jelezve az ügylet semmisségének jeleit, amelyet az Orosz Föderáció Polgári Törvénykönyvének 10. cikke állapít meg (jog megkerülésével, károkozási szándékkal kötött ügylet)

3. LLC "Metprom"

Artem Vladimirovich Sukhikh a Metroprom LLC igazgatója. Jelenleg a Metrprom LLC-t a Szövetségi Adószolgálat határozatával felszámolták. A Metprom LLC-vel kapcsolatos jogi személyek nyilvántartása információkat tartalmaz a jogi személy címére vonatkozó adatok pontatlanságáról.

A jogi cím megbízhatatlansága az „egynapos” szervezet egyik jele.

Mit lehet még tudni Sukhikh Artyom Vladimirovicsról?


Az NP "Association of HOA" alapítója és ügyvédjeként Sukhikh jogi szolgáltatásokat nyújt a lakástulajdonosok egyesületeinek.

Mint ismeretessé vált, a HOA-val a Vologda, Technical Lane, 56 címen a Sukhikh A.V. által képviselt HOA egyesületnél. Megállapodást kötöttek a nem lakáscélú ingatlanok javítási és karbantartási szolgáltatásaival tartozással rendelkező ingatlantulajdonosok követelésbehajtási szolgáltatásának nyújtására. Egy ilyen szolgáltatás költségét húszezer rubelre becsülték. (a 10-szeresre túlbecsült piachoz képest), azonban a HOA elnöke szerint az adósságbehajtási szolgáltatásokat egy távoli Sukhikh A.V. ok miatt nem nyújtották. A pénzvisszafizetési kísérletek sikertelenek voltak, mivel Nyikolaj Ivanov, a HOA Egyesület elnöke minden lehetséges módon tagadta kapcsolatát Sukhikh-val, bár valójában az összefüggés nyilvánvaló, mivel Sukhikh az Egyesület társalapítója. A pénzt soha nem kapta vissza az elnök.

Egy másik esetről is tudunk, amikor rossz minőségű jogi szolgáltatást nyújtottak egy lakástulajdonosok egyesületének.

2016 decemberében Sukhikh A.V. a HOA nevében keresetet nyújtott be az egyik fejlesztővel szemben a ház építése során elkövetett hiányosságok elhárításához szükséges munkák költségének megtérülése iránt. 2018 decemberében a Vologdai Régió Választottbírósága teljes mértékben elutasította a kereseteket. A bíróság határozatában a következőket állapította meg:

„A bíróság figyelembe vette és indokoltnak minősítette valamennyi alperes azon nyilatkozatát is, hogy a felperes jogával visszaélt, aki annak ismeretében, hogy a kereset benyújtásakor a fejlesztő felszámolási eljárást indított, illetve perben ezen alperes képviselője haladéktalanul értesítette a bíróságot arról, hogy az ügyet a cég eljárás alá vonja, hitelezői követelés-nyilvántartásba való felvétel iránti kérelmet nem nyújtott be, hitelezői jogával a csődeljárás keretében nem élt. alperes ügyében nem vett részt a hitelezői gyűlésen, a társaság résztvevőinek másodlagos felelősségre vonását követeli, ha az indokolt, nem nyilatkozott, azaz önként megtagadta a részére biztosított jogainak gyakorlását. törvény.

Egy ilyen követelés eredménye szomorúnak bizonyult a HOA számára. Hitt a HOA Szövetség ígéreteiben, és remélve Sukhikh A.V. magas minősítését. Az építési hibák kiküszöbölésére fordított pénzeszközökért cserébe a HOA csak jogi költségeket kapott állami díj formájában 43 003 rubel összegben, hatalmas költségeket az építési vizsgálat elvégzéséhez, amelynek költsége meghaladta a 100 000 rubelt, valamint a költségeket. egy "magas osztályú specialista" Sukhikh A.V. szolgáltatásainak kifizetése, valamint egy előre meghatározott kimenetelű kétéves jogi harc. Ennek eredményeként csak a "Non-profit partnerség" Lakástulajdonos Egyesületek Szövetsége "gazdagodott"

A Sukhikh A.V. képviselő által képviselt HOA elutasítása. , jogaik gyakorlásától korrupciós összetevőt sugall egy csődbe ment fejlesztővel. Ennek eredményeként csak azok az áldozatok, akik a fejlesztő házában élnek építési hibákkal, amikor Sukhikh A.V. pénzt kap a szolgáltatásaiért, és a fejlesztőt sikeresen felszámolják anélkül, hogy a legkisebb akadályt is kapná.

A HOA Egyesület munkájának eredménye kiszámítható és nagyon szomorú. A tulajdonosok képzeletbeli függetlenséget és képzeletbeli hatalmat kapnak tulajdonuk felett, a HOA Egyesület és az általa irányított szervezetek pedig a lakástulajdonosok rovására gazdagodnak. Ebben az esetben minden intézkedésért a hatályos jogszabályok értelmében magát a HOA-t terheli a felelősség, az egyesület pedig nem vállal felelősséget tetteiért.

Folytatjuk.

Kifejtem a véleményemet a termékről, hátha valakinek hasznos lesz.
Szakembereket, először is, az integrátorokat valószínűleg nem fogja érdekelni a MajorDoMo, amíg nincs se normál dobozos termék, se normális műszaki dokumentáció, se 7\24 támogatás, se kereskedői hálózat, se bónuszok.

Valószínűleg az önépítőket sem érdekelné, nincs globális különbség mondjuk az OpenHabhoz vagy az ioBrokerhez képest.

De azoknak, akik most készülnek okosotthon rendszert építeni, és szeretnék megérteni, mit akarnak még, és mire képes egy okosotthon, valószínűleg érdemes egy ideig bütykölni a rendszert. Én személy szerint már több tucat barátomat lekötöttem a MajorDoMo-n.

Minden durván történik, este vendégek jönnek grillezni - bukhaching. Alkonyatkor a MajorDoMo automatikusan felkapcsolja a villanyt a verandán, a hatás fokozása érdekében hangparancsot adok az UD-nak, hogy kapcsolja be a rádiót vagy a zenét. hangvezérléssel szabályozhatja a hangerőt, vagy válthat másik rádióállomásra vagy műsorszámra.

Aztán vendégeket hozok be a házba, és ismét hangosan megkérem az okosotthont, hogy meséljen magáról. (Nekem ilyen demo mód van beállítva). Az UD elkezdi fel- és lekapcsolni a lámpákat, mondja az időjárás-előrejelzés, bekapcsolja a tévéket, szétválik, és tucatnyi különféle mutatványt mutat.

A kérdés megválaszolása után mennyibe kerül? ingyen. Vegye figyelembe, hogy az ügyfél felnőtt.

Csak néhány órát eltöltött ezeken a leckéken, alapvető programozási ismeretek nélkül, a logika, a struktúra és egyebek megértése nélkül, csak ostobán megismételve a videóban szereplő összes műveletet.

Állítson be ébresztőt a számítógépén a hangjával, hogy lejátssza a zenét vagy a rádiót
Irányítsd a számítógéped médialejátszóját hangoddal
Szervezze meg a videó megfigyelést bármilyen okostelefon vagy táblagép segítségével
Kövesse nyomon a mozgást és megtalálja például a gyerekeket gps segítségével
Hangjával kezelheti az online rádióállomásokat számítógépén
Szerezzen egy okos bevásárlólistát
Hallgassa hangjával az időjárás-előrejelzést számítógépén
Hangos kérdéseket tehet fel, és válaszokat kaphat a wikiből
Feladatok hozzáadása és eltávolítása a naplóból hanggal.
Hangos emlékeztetők.
Kérésre hangon kapja meg az aktuális árfolyamot
Olvassa be a bejövő SMS-eket hanggal
Állítsa le a számítógépet távolról
Figyelje okostelefonja akkumulátorának töltöttségét, és kapjon értesítéseket a töltés kritikus csökkenéséről
Hallgassa hangjával a hírek főcímeit vagy magát a hírt és a filmek összefoglalóit

Rohadt elegem van az írásból, hát még sok minden van...

És mindez nincs egy sor kóddal megírva (az összes kód a videó alatt van közzétéve)

Az elmúlt másfél évben egyre több integrátor és az építőiparban dolgozó ember kopogtatott be hozzánk azzal a kéréssel, hogy tanítsunk meg minket szoftverrel dolgozni és "okos otthont készíteni".
Jelenleg több tucat integrátor (a FÁK-szerte) valósítja meg az intelligens otthonokat Majordomo-n. Nem fizetünk nekik semmit (se bónuszt, se kereskedői engedményeket) – ez így van. DE ügyfeleiknek nem kell fizetniük a szoftverért. És a Majordomo segítségével több költségvetési felszerelést használjon.
Mindez nagymértékben csökkenti az ügyfelek végső költségeit.

A dokumentáció szerint - tudásbázist csináltunk, lassan feltöltjük

Az Openhab/ioBroker vs Majordomo kapcsán - sok olyan esetet ismerek, amikor Openhab/ioBrokerről váltottak hozzánk a srácok - ugyanezen okból: nincs nagy különbség, de sokkal több az oroszul beszélő felhasználó, és van kivel beszélgetni. nak nek