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

Sok kezdő nem barátkozik meg 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 behelyezheti a kódot különböző helyeken. 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 ezek a helyek a kódnak?

  • Nos, természetesen forgatókönyvek. (Adminisztrációs menü/OBJECTS/Scripts ).
  • Módszerek (Adminisztráció menü/OBJECTS/Objects ), amelyről később részletesebben is kitérek.
  • menü (Adminisztrációs menü/OBJECTS/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 mutatókat, 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 szükséges szövegrész elején és végén. 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 ez az aktuális hőmérséklet száma). Továbbá az általunk beállított bizonyos gyakorisággal ezt a számot beolvassa és beírja az ingatlanba. Az ingatlanokról később. Addig is csak tudd, hogy a beolvasott szám a miénkben van tárolva bizonyos hely amíg meg nem változik. Amint ez megtörténik, az ábra ezen a helyen (tulajdonban) 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.

V: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. 🙂

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 azonos objektum lehet. Hát például. Emlékezz, 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.

Mindenegy 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 hőmérsékletet kell mérnünk, de ezen kívül az elsőn 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 . BAN BENtulajdonságait azonos, ESP-12 No. 2 regisztráljuk a Relét. Ennek eredményeként 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 módszerek 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 firmware-jét frissítettük 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 utcai és szobahőmérsékletet veszünk, és egy bizonyos forgatókönyv szerint feldolgozzuk, 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 scriptet, 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 bemutató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 leszűkíteni a képeket, hogy akár okostelefonon is oldaltájolásban lehessen nézni, de ez nem mindig sikerül 🙁 . Ha azt látja, hogy a kommentek szövege túlmutat a határokon, 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 az összes fájl, amely létrejön kinézet A terminálok a /templates mappában találhatók, 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 először minden benne lévő feldolgozásra kerül. 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 megkapott.

    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 elhelyezi azokat a tulajdonságokba, amelyeket ehhez a tulajdonsághoz készített, 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 kü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 számol 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 idejét. A webes vá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. Habár 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 írok egy cikket 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. ez a kérdés, kezdetben nem tudta, 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ák, ill. 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
    BAN BEN Link felírjuk: https://sinoptik.com.ru/weather-Volgograd Az Ön esetében Volgograd a te városodra változik.
    BAN BEN 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
    Ez minden, 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, szkriptekben megjelenítheti 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 az üzemmó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, a tulajdonságaink pedig, tekintettel arra, hogy hajlamosak változni, ezek nagyon globális változók. Tegyük fel, hogy van egy bizonyos forgatókönyvünk, és valamit tennünk kell a tulajdonsággal, mondjuk meg kell változtatni 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, és végül a $temp_term megváltozott állapotát a setGlobal függvénnyel visszaírjuk a tulajdonságba. 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... Egyébként 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 beírni (LINK A WIKEPÉDIÁHOZ).
    Vannak, akik ehhez hasonlókat 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 a szimbólumot a kódban angol levél 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 lapként nézzen ki, 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 oldalak esetén 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 Név: Küldje el az 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="+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).
    Mostantól függetlenül attól, 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 található 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), Kézzel adjunk hozzá új oldalt (Ha valamilyen okból nem akarunk könyvjelzőt használni), végül a linkre kattintva hozzunk létre egy könyvjelzőt (Figyelem! Ha onnan veszünk hivatkozást, figyeljünk 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, ha mobil alkalmazások, Tasker stb. nem kell abban reménykedni, 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, 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ására szolgáló szkript összetett (azaz 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 hőmérséklet érzékelőjét szeretnénk használni, ami az első ESP modulhoz van csatlakoztatva, ami a csarnokban van), menjen a csarnok ESP tulajdonságaira, és nézze meg, hogy van egy hőmérséklet-érzékelőnk, az úgynevezett: 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 mély 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, akkor ne az alapértelmezettet (amit a Szerző ad alapból), soha nem tudhatod, de 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 a jelzőknek 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 is alapértelmezés szerint megjelenítheted a jelenetet!) ezért a menüben duplikált jelzőket is láthatsz.
    Hol kell őket keresni? Egyszerű, saját kezűleg kell elkészítenie, ha valóban szüksége van rá.
    Szóval hogyan kell csinálni?
    Menüpont készítése a Név: Állapotés tedd a menü legtetejére ( Prioritás: 100000 ), szülő elem: természetesen kell GYÖKÉR.
    BAN BEN 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ó font, ebben a stílusban készült a sablonom, ha ugyanilyet szeretnél, akkor magadnak kell letöltened, ha nem számít, akkor ha nem találod 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 beszéd] és a $commandLine globális változókat használja [a választ echo utf2win()-re alakítja át, 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, és 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 lerövidíthető, például fájl1, és ekkor a fájl felvételre kerül./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("metódus_neve",$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 megszerzé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 egy tömbjét adja vissza névként Példa az objektumok közötti hurkolásra és a tulajdonságértékek beállítására: $objects=getObjectsByClass("class_name"); foreach($objects mint $obj) ( setGlobal($obj["TITLE"]..property_name",1); )

Idő/intervallumok

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 az aktuális 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 lehet nagyobb, 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 $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, azt az objektumot, amelyre meghívva van

Ütemezett feladatok és események

AddScheduledJob("cím","parancsok",$dátumidő, $lejárat=60);-- $lejár 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, a "Vologdai Lakástulajdonosok 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ég (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) Vologdai Szövetsége és a Lakástulajdonosok Szövetsége" alapítói 2 magánszemélyek: Szuhik Artyom Vladimirovics és Ivanov Nyikolaj Leonidovics.


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 olyan személyek, akik távol állnak a lakás- és kommunális szolgáltatások, valamint a társasházak gazdálkodásától, akik anyagi érdekükből adódóan teljes mértékben a HOA-k Szövetsége ellenőrzése 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 szervezetek számára. .

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. életkora. 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 bérház kezdeményezésű polgárok létrehoztak egy HOA-t, amely egy bérházat kezelt.

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 a ház lakóinak szállított vízbe hűtőfolyadék került, 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. LLC UK "Sokol" nem tesz semmit a visszatérés érdekében forró víz 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 a szolgáltatások kifizetéséről szóló bizonylatok szétszórása a postaládákban, és a Sukhikh Artem a tulajdonosokhoz fordul, és fizetést követel. Az emberek fel vannak háborodva, 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ázban lévő egyik lift javítására, bár a műszaki vizsgálat eredményei szerint a lift jó állapotban van, és nem javítást igényelnek.

Tovább Ebben a pillanatban utcai 9. számú ház helytelen kezelése. Lavrov, Vologda megerősítette a Sokol LLC Management Company kapcsán végzett vizsgálati jelentés. 2019. június 28-án Vologda Város Önkormányzatának Önkormányzati Gazdasági 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 a HOA-k létrehozásában, miért éppen ellenkező irányban működik, 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 törvénytelennek nyilvánította, é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 Vologda 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 KIVITELÉ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ást kötöttek az OOO SU-35 és a Sukhikh a szerződés meglévő feltételeinek megváltoztatásáról.

Valójában a korábban megállapodott 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 emelésben állapodtak meg bérek 270 500 rubelérthavi. (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. iktatott igénybejelentésösszegű illetményhátralék behajtásáról az OOO SU-35 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 döntése tisztességtelen magatartást állapított meg Sukhih A.The. , amelyet az LLC "SU-35" bírósága által megállapított fizetésképtelenség (csőd) tényállási feltételeiben kötött Megállapodásban (a nyomon követési eljárásban), valamint a fizetések teljesítésére vonatkozó béremelés feltételeiről szóló megállapodásban fejeztek ki. által korábban Sukhikh-ra ruházott munkafeladatok munkaszerződés, jelezve az ügylet 10. cikkben megállapított semmisségére utaló jeleket Polgári törvénykönyv RF (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 javítási és karbantartási kötelezettséggel rendelkező ingatlantulajdonosok behajtási szolgáltatásának nyújtására nem lakás céljára szolgáló helyiségek. 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 a követelésbehajtási szolgáltatásokat távoli Sukhikh A.V. ok miatt nem nyújtották. A pénz visszafizetésére tett 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 rosszul megjelenített esetről is tudunk jogi szolgáltatások lakástulajdonosok egyesülete.

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álatok 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 tárgyaláson ezen alperes képviselője haladéktalanul értesítette a bíróságot az ügy elfogadásáról A Társaság nem nyújtott be kérelmet a hitelezői követelések nyilvántartásba vétele iránt, nem élt hitelezői jogával a csődeljárás keretében. alperes a hitelezői gyűlésen nem vett részt, indokolt esetben a társaság résztvevőinek másodlagos felelősségre vonását követeli, nem nyilatkozott, azaz önként megtagadta a törvényben biztosított jogainak gyakorlását. .

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élte, hogy Sukhikh A.V. Az építési hibák kiküszöbölésére szolgáló 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ú szakember" 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 legcsekélyebb akadályba ütközne.

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 ingatlanaik 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 érdekli ez, 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 meg akarják érteni, mit akarnak még, és mire képesek 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 nyűgösen 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 egy tucat különböző mutatvány.

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

Csak miután néhány órát töltött ezeken a leckéken, anélkül Alap tudás a programozásban logika, struktúra és egyéb dolgok megértése nélkül, csak hülyén ismételgeti a videóban szereplő összes műveletet, megteheti.

Állítson be ébresztést a számítógépén a hangjával, hogy lejátssza a zenét vagy a rádiót
Hangjával vezérelheti számítógépe médialejátszóját
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 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
A számítógép távolról leállítása
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 szoftverekkel dolgozni és "okosotthont 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 kedvezményt) – 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 a srácok Openhab/ioBroker-ről váltottak hozzánk - ugyanebből az 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