Kako pokrenuti metodu iz skripte u majordomu. MajorDoMo

Mnogi početnici ne uspevaju da se sprijatelje sa MajorDoMo, jer im se ovaj sistem na prvi pogled čini prilično komplikovanim, a struktura MajorDoMo-a je veoma jednostavna. Sva njegova "složenost" nije ništa drugo do dupliciranje lokacija za pohranu koda, implementirano isključivo radi praktičnosti.

Pokušajmo to izbliza pogledati. Sve što radimo implementirano je, uglavnom, koristeći PHP kod. On se pak sastoji od osnovnih funkcija i malog broja vlastitih naredbi MajorDoMo.

Radi lakšeg razumijevanja i implementacije, možete postaviti kod različitim mjestima. Radi razumijevanja, navest ću jednostavan primjer ovog pristupa. Recimo da treba da izvršimo neki apsolutno identičan kod, i pritiskom na dugme u meniju i glasovnom komandom. Ovaj kod možemo upisati direktno u dugme menija i glasovnu komandu. Nezgrapno zar ne? Ili ga možemo staviti u skriptu, a zatim pozvati ovu skriptu s apsolutno bilo kojeg mjesta u jednom jedinom redu. To je, zapravo, sva tajna ove prividne složenosti. 🙂

Otuda i jednostavna formula. Ako je neki kod planiran za izvršavanje sa jednog mjesta, onda ga napišemo direktno odatle i izvršit ćemo ga. Ako vam je potreban pristup sa najmanje dva mjesta, trebali biste već razmisliti o skripti.

Gdje su ova mjesta za kod?

  • Pa, naravno, ovo su scenariji. (Administrativni meni/OBJEKTI/Skripte ).
  • Metode (Administrativni meni/OBJEKTI/Objekti ), kasnije ću se detaljnije dotaknuti.
  • Meni (Administrativni meni/OBJEKTI/Kontrolni meni ).
  • upravljanje glasom (Administrativni meni/OBJEKTI/obrasci ponašanja ).
  • Vizuelna kontrola na planu zgrade (Administrativni meni/OBJEKTI/Scene ).
  • Ekstrahiranje podataka sa web stranica (parsing) (Administrativni meni/OBJEKTI/Web varijable ).

Zapravo, uglavnom, ovo je sve. Sve ostalo je intuitivno i shvaćeno u hodu.

Skripte.

Sa skriptama je sve jasno. U njima pišemo kod koji želimo da izvršimo sa različitih mesta.

Meni, upravljanje glasom i scene.

U njih zapisujemo one dragocene indikatore, dugmad, prekidače, regulatore...

Mogu sadržavati:

  1. Sav kod.
  2. Direktan prijelaz na scenarij (odabirom unaprijed pripremljenog scenarija sa liste).
  3. Mješoviti tip (na primjer, kada razradimo dio koda direktno u gumbu, na primjer njegovu indikaciju, tada idemo na skriptu i izvršavamo ono što je napisano u njemu).

Parsing.

Uglavnom, raščlanjivanje ovdje je izvlačenje podataka sa tuđih stranica predstavljenih na Internetu, navođenjem početka i kraja traženog dijela teksta. PHP ovde igra više pomoćnu ulogu i koristi se relativno retko.

Evo primjera. Recimo da trebate dobiti temperaturu s web stranice, recimo "Prognostičar". Posebnim znakovima označavamo početak i kraj dijela teksta koji nam je potreban (neka to bude cifra trenutne temperature). Zatim, sa određenom frekvencijom koju smo postavili, ovaj broj se čita i upisuje u svojstvo. Više o nekretninama malo kasnije. Za sada samo znajte da je očitani broj pohranjen u našem određenom mestu dok se ne promeni. Čim se to dogodi, broj će se promijeniti na ovom mjestu (imovini). Parametar (temperaturni broj) zapisan u svojstvu obrađujemo na način koji nam je potreban. Recimo, za meni dodamo riječi ispred prikazanog broja: “Na ulici: " i onda "°C » .

Evo kako to izgleda u kodu:Na otvorenom: %ThisComputer.Sinoptik_temp%°C

Na ulici: I°C to je samo tekst.

O:ThisComputer.Sinoptik_temp to je upravo naše vlasništvo, gdjeThisComputer ovo je klasa iSinoptik_temp ovo je svojstvo ove klase, a tačka se koristi kao separator. Čitajući u nastavku shvatit ćete sve ovo. Oh da, % su graničnici za meni; navodniki se obično koriste u kodu.

Kao rezultat toga, u našem meniju uvijek vidimo trenutnu temperaturu s web stranice.

Objekti.

I na kraju, ostaju nam objekti, samo mjesto gdje leže naša svojstva i drugo. Objekti također, na prvi pogled, izgledaju kao složena stvar. Ali ovo je samo na prvi pogled. 🙂

Objekt ovo je reprezentacija bilo čega, na primjer: kompjutera (kao u primjeru iznad), ili budilnika, ili tajmera, ili čak Skypea... Generalno, bilo čega.

Može postojati mnogo identičnih objekata. Pa, na primjer. Sjećate se, kada sam pisao kako ja vidim sistem, rekao sam da ćemo imati meteorološku stanicu sa kućnim i uličnim blokovima. Dakle, oba bloka su sastavljena na apsolutno identičnim ESP-12 modulima. Svaki od njih je objekt, a njihova ukupnost jesteKlasa . Ovdje je sve također urađeno radi praktičnosti i da se eliminira nepotrebno pisanje, razumjet ćete dalje.

Struktura je sljedeća:

1. Klasa identični uređaji, nazovimo to ESP (pošto smo za primjer uzeli ESP module).

1.1. Ovoklasa može se podesitisvojstva (ako na jednostavan način, pitam za ulazakklasa ESP imovinetemperatura automatski će se pojaviti u svima namaobjekti klase ESP , tj. neće biti potrebe za kreiranjemimovine , svakomobjekt ).

1.2 Ovoklasa , također možete podesitimetode (tj. izvršavanje nekog koda, ovemetode sličnosvojstva pojavit će se u svim našimobjekata ).

1.3. I na kraju, naravno, unutraklasa Tu jeobjekata . To su, direktno, naši fizički ESP-ovi: ESP-12 br. 1, ESP-12 br. 2, itd.

Svakiobjekat (ESP-12 br. 1, ESP-12 br. 2, itd.), zauzvrat, ima svojesvojstva Imetode .

Postoje dvije vrste nekretnina Svojstva klase I Svojstva objekta njihova razlika je u tome što se svojstva registrovana u klasi automatski pojavljuju u svim novim objektima, a svojstva dodana objektu pojavljuju se samo u njoj. To se radi kako bi se, s jedne strane, riješili nepotrebnih pisanja, as druge, kako bi se osiguralo individualno svojstva. Metode kreirani su samo u klasi, a registrovani su samo u objektu.

Objasnit ću na primjeru:

Recimo da imamo ESP-12 br. 1 i ESP-12 br. 2. Na oba moramo izmjeriti temperaturu, ali pored ovoga moramo izmjeriti i vlažnost na prvom, a drugim koristiti za upravljanje relejem.

HajdemoKlasa ESP , pišemo u njemuimovine Temperatura . Automatski će se pojaviti u svojstvima ESP-12 br. 1 i ESP-12 br. 2. Dalje direktno, za ESP-12 br. 1, već u svomsvojstva , registrujemo seVlažnost . INsvojstva isto, ESP-12 br. 2 registrujemo relej. Kao rezultat, imamo ESP-12 br. 1 sa svojstvima u koje će sistem za nas zapisivati ​​vrijednosti temperature i vlažnosti i ESP-12 br. 2 sa svojstvima u koje će sistem zapisivati ​​vrijednost temperature i status releja za nas (0-Isključeno, 1-Uključeno). Pa, shodno tome, metode koji će nam pomoći da obradimo upravo ove podatke, ako za tim bude bilo potrebe, kreiraćemo ih u učionici ESP, a mi ćemo u njih lično napisati kod za svaki objekat.

Treba napomenuti da se metode mogu pozvati s bilo kojeg mjesta callMethod("Object.Method", $params); ili alternativno cm cm("Object.Method", $params);. Svojstva su također globalna i mogu se pozvati s bilo kojeg mjesta. Funkcije sg(setGlobal) i gg (getGlobal) rade upravo to. Na primjer linija:getURL(gg('AlarmOne.UrlAlarmRing'),0); će otvoriti link koji je pohranjen u svojstvuAlarmOne.UrlAlarmRing

Sada sigurno imate sve da razumete kako MajorDoMo funkcioniše.

Učvrstimo to konkretnim primjerom:

Prebacili smo firmver sa wifi-iot.com na naše ESP-12 module br. 1 i br. 2. Prvi od njih očitava temperaturu i vlažnost, a drugi očitava temperaturu i upravlja relejem. Oba ESP-12 šalju podatke MajorDoMo-u u određenim intervalima, gdje ih prima skripta koja sortira primljene podatke u svojstva. I na kraju, uzimamo ove podatke iz svojstava i koristimo ih po sopstvenom nahođenju, odnosno ubacujemo potrebnu osobinu tamo gde treba da se prikaže ili primeni.

Na primjer, uzimamo ulične i sobne temperature, obrađujemo ih u određenom scenariju, čime se dobiva pametni termostat.

Takođe, iz istih svojstava uzimamo istu temperaturu i prikazujemo je u meniju ili na bini za vizuelni prikaz.

A ujutro, metoda koja se pokreće iz objekta Budilnik će nam pokrenuti skriptu, koja će nam, nakon što se konačno probudimo i isključimo melodiju, glasom pročitati trenutni vremenski izvještaj. A šta mislite odakle će dobiti brojeve temperature i vlažnosti? Upravo tako, od nekretnina!

A ovih opcija možete napraviti koliko god želite, sve dok imate dovoljno mašte, a evo fleksibilnosti koju sam vam obećao.

Šta je sledeće?

Pa, sada kada već razumete strukturu MajorDoMo-a, reći ću vam o HDMI matrici, gde ćemo već videti interakciju uređaja u MajorDoMo-u. Pa, konačno, preći ću na ozbiljniju prezentaciju, sa kodom, slikama, dijagramima i ostalim užicima... Uglavnom, dovoljna je gola teorija, sada će biti uglavnom praksa.

Dakle, HDMI 4x2 matrica 4K x 2K 3D.

    Odmah ću reći da pokušavam da suzim slike koliko god mogu tako da se mogu gledati čak i na pametnom telefonu u orijentaciji stranice, ali to ne ide uvijek :) Ako vidite da tekst komentara prelazi granice, jednostavno okrenite pametni telefon na bok (pejzažna orijentacija), pametni telefoni su drugačiji.

    Analizirajući svoj blog, naišao sam na nekoliko upita za pretragu, kao što su: — Gdje se nalazi datoteka menu.html ili scenes.html? i tako dalje.
    Odgovori na takva pitanja su previše jednostavni da bi im posvetili poseban blog. Stoga ću im odgovoriti u komentarima.
    Po defaultu se formiraju svi fajlovi izgled terminal se nalaze u folderu: /templates, ali ako već imate instaliran skin treće strane, onda ove datoteke treba potražiti u folderu /templates_alt. /templates_alt folder ima veći prioritet od /templates i sve u njemu se prvo obrađuje. Ako nešto nedostaje u njemu, motor ide u /templates folder za ono što nedostaje. Pa, verovatno na osnovu gore navedenog, vredi napomenuti da ako ćete staviti svoj šablon (skin) na MajorDoMo, trebalo bi da kreirate fasciklu /templates_alt (ako već nije kreiran) i izvršite sve eksperimente u to. Ovo će vas spriječiti da izgubite sve što ste primili po defaultu u slučaju bilo kakvog neuspjeha.

    Postojao je i ovaj zahtjev: -MajorDoMo ne prihvata podatke...
    MajorDoMo prima podatke, po pravilu, izvršavanjem neke skripte koja ili prima te podatke ili ih čita, a zatim ih skripta smješta u svojstva koja ste za to pripremili, odakle se naknadno čitaju i koriste podaci koji su vam potrebni. Ove skripte se obično pokreću; Ili izvana, sa servera treće strane (pa, recimo, kao u slučaju ESP8266, koji šalje podatke i pokreće skriptu espdata), tako mi dobijamo podaci (usput, u bliskoj budućnosti, sve ću vam to detaljnije reći u svom članku o meteorološkoj stanici). Ili na tajmeru da count podaci odnekud. Već postoje gotovi mehanizmi, na primjer, sličan je ugrađen u web varijable koje ispituju ciljnu stranicu na određenoj frekvenciji. U opisanom slučaju frekvencija je navedena u polju Interval provjere, specifična web varijabla. Na primjer, ovako dobijamo vrijeme izlaska i zalaska sunca. Web varijabla uzima vrijednost vremena sa neke vremenske stranice, upisuje je u svojstvo, a zatim, u metodi, vršimo obradu (drugim riječima, provjeravamo trenutno vrijeme sa vremenom zalaska sunca), kao rezultat toga Alice , u pravo vrijeme, kaže nam — Sunce zalazi. i, ako je potrebno, izvodi bilo koju radnju, ili 🙂 pokreće skriptu koja nam je potrebna.
    Dakle, ako MajorDoMo ne prihvata neke podatke, prije svega treba pronaći skriptu ili izvor (na primjer, kao u slučaju web varijable) koji je odgovoran za to i provjeriti njegovu funkcionalnost. Za to su obezbeđeni svi mehanizmi, od elementarnog pokretanja skripte, direktno iz njenih postavki, praćenjem linka koji se nalazi na stranici podešavanja, pa do analize logova, kao što su, na primer, u veb varijablama.

    I na kraju, treći zahtjev koji sam vidio: -MajorDoMo jednostavni objekti
    Ovdje je vrijedno napomenuti da je zahtjev konstruiran malo pogrešno. Iako objekt Može biti bilo šta, nedavno je u sistem uveden dodatni koncept: Jednostavni uređaji. Ovo je urađeno kako bi se olakšao život početnicima. Da budem iskren, ovo još nisam koristio, jer radim upravo na nivou tih objekata. Ali uputiti malog čovjeka na pravi put: (Jednostavni uređaji) moglo bi, bukvalno, za sekunde. Stoga se ne ustručavajte registrirati i pitati u komentarima. U svakom slučaju, mnogo češće ih gledam nego što analiziram upite za pretraživanje.

    Sjedim i tiho pišem članak o čajniku, ali sam u iskušenju da pogledam metriku. Odustala sam i odlučila da pogledam. I vidim još jedan upit za pretragu: — MajorDoMo struktura baze podataka
    Teško je odmah odgovoriti ovo pitanje, a da u početku ne znaju šta ta osoba konkretno želi. Struktura će, kako se sistem puni, za svakoga biti drugačija, neko će instalirati ovaj ili onaj modul, ovu ili onu aplikaciju, a nekome neće trebati... Tabele, shodno tome, takođe imaju daleko od standardnih polja. Stoga ću u ovoj fazi dati svoju listu, a onda ako nekoga nešto konkretno zanima neka pita pa ćemo pogledati.

    Zahtjev: Kako napisati vrijednost u svojstvo?
    Odgovor: U većini slučajeva, vrijednost za svojstvo se upisuje automatski, ali se može napisati i ručno. Pročitajte članak o Broadlink SP3 Socketu i nikada više nećete imati ovakva pitanja.

    Zahtjev: MajorDoMo, web varijabilna temperatura?
    Odgovor: Zaseban članak će vjerovatno biti posvećen Web varijablama kako bi se dala ideja o najsloženijoj stvari koja postoji na prvi pogled, odnosno filtriranju. Za sada konkretan odgovor na konkretno pitanje.
    Trenutnu temperaturu ćemo preuzeti sa web stranice Forecastera zbog njene stabilnosti i postojanosti.
    Kreirajte web varijablu sa ime: Sinoptik_temp
    IN Veza zapiši: https://sinoptik.com.ru/weather-Volgograd U vašem slučaju mijenjamo Volgograd u vaš grad.
    IN Obrazac pretraživanja:

    Povezani objekt: Ovaj kompjuter
    Nekretnina: Sinoptik_temp ovo svojstvo mora biti kreirano u objektu This Compuer (pročitajte ovaj članak i članak o SP3 utičnici).
    Interval provjere: 600
    To je sve, sada će svakih 10 minuta Mzhor čitati, iz Prognostičara, trenutnu temperaturu u vašem gradu i upisivati ​​je u svojstvo Sinoptik_temp, sa kojim možete raditi šta god želite, prikazati, koristiti u skriptama itd. .

    Zahtjev: MajorDoMo, zalazi li sunce?
    Odgovor: U MajorDoMo-u postoje dva načina rada, i to noćni i tamni način rada. Noćni režim se aktivira na satu, podrazumevano od 20:00 do 8:00. Ovaj način rada je vrlo zgodan, na primjer, za isključivanje glasovnih obavijesti. Mode, Dark, uključuje se pri zalasku sunca i isključuje se pri izlasku; ovaj način je zgodan, na primjer, za kontrolu ulične rasvjete. Podaci za određenu lokaciju dobivaju se korištenjem web varijabli. Koje se naknadno pohranjuju u svojstva ThisComputer.SunRiseTime i ThisComputer.SunSetTime i obrađuju u metodi onNewMinute klase Timer.

    Zahtjev: MajorDoMo globalne varijable?
    Odgovor: Funkcije gg (getGlobal) i sg(setGlobal) govore same za sebe, ali naša svojstva, zbog činjenice da imaju tendenciju da se mijenjaju, su te iste globalne varijable. Recimo da imamo određeni scenario i treba da uradimo nešto sa svojstvom, recimo, da promenimo graničnu temperaturu termostata. Koristeći getGlobal funkciju, uzimamo vrijednost svojstva u našu skriptu i zapisujemo je u lokalnu varijablu, neka bude: $temp_term. Sa ovom lokalnom varijablom u našoj skripti, već radimo transformacije koje su nam potrebne i konačno upisujemo promijenjeno stanje $temp_term, koristeći setGlobal funkciju, natrag u svojstvo. Pa sa imovinom, kao što već znamo, možemo kako hoćemo. Na primjer, prikažite njegovu vrijednost na ekranu, pošaljite je na fizički termostat, ili čak izgovorite kroz sistemske zvučnike... Inače, kada smo već kod globalnih varijabli, vrijedno je napomenuti ugrađene funkcije sistema. Moramo zapamtiti da postoji određeni skup funkcija i varijabli koje se implementiraju isključivo za sistem. Sjećate li se kada sam spomenuo da uglavnom radimo sa PHP-om, ali postoje i neke ugrađene stvari? Možete pogledati ugrađene funkcije. A kada pogledate, obratite pažnju na stavku „Upravljanje ciklusima (uslugama)“, tamo ćete naići na ugrađenu globalnu varijablu i shvatiti da je metodologija svuda ista.

    Zahtjev: MajorDoMo html blok koristi vrijednost iz varijable?
    Odgovor: Na primjer, ja to radim ovako: Na otvorenom: %ESP8266003b5df7.dhtt1%°C(tj. pišem simbol ° sa tastature) i onda je raspored lud. Simbol stepena je postavljen na ALT+0176, brojevi se kucaju na numeričkom delu tastature (LINK NA WIKEPEDIJU).
    Neki ljudi to rade ovako:
    %KitchenMain.dhtt1%°C a onda treba staviti C isključivo na engleskom jeziku. Lično nisam probao, ali je pomenuto: (LINK NA FORUM).
    Pažnja! Ako neko odluči kopirati i zalijepiti: %KitchenMain.dhtt1%°C imajte na umu da se ovdje na blogu ne prikazuje kao simbol diplome, već kao &de g; Zamijenio sam simbol u kodu Englesko pismo e na ruski, ne zaboravite da ga vratite!
    I tako dalje... Bla, bla, bla: %OBJECT.PROPERTY% bla, bla, bla. Bla, bla, bla na bilo kom jeziku, čak i na kineskom.
    Ako trebate, na primjer, prikazati vlažnost, učinite ovo: %ESP8266003b5df7.dhth1%% drugi znak % će biti samo simbol.

    Zahtjev: Znači da majordomo skripta radi svakih sat vremena?
    Odgovor: Idite na metodu: OBJECTS/Objects/Timer/onNewMinute i na samom kraju dodajte:

    Ako ($m=="10") (
    runScript("IME SCRIPT");
    }

    Ne zaboravite da kliknete na dugme "Ažuriraj".
    Skripta će se izvršavati nakon svake desete minute u satu.

    Zahtjev: MajorDoMo kako postaviti putanju do drugih stranica?
    odgovor:
    1. Ako želite da vaša stranica izgleda kao kartica, trebate otići na: Glavni administrativni meni/POSTAVKE/Početne stranice, kliknite na dugme "nova stranica", U polju Ime(*) unesite naziv kartice u listu Tip izabrati URL, na terenu Veza, unesite adresu stranice. Za lokalne stranice, dovoljno je navesti lokalnu putanju, na primjer: /Template_alt/page name.html. Ako imate stranicu u svom folderu i u njoj se nalazi indeksna datoteka, dovoljno je navesti samo folder, na primjer: /Kinoteatr/

    2. Recimo da ste htjeli ubaciti neku vrstu internet stranice u MajorDoMo kako biste je mogli stalno koristiti. Vrlo je jednostavno. Da biste to učinili, trebate koristiti aplikaciju “Poslane veze” ( Čitati na tržištu dodataka).
    Primjer. Imate pretraživač na poslu. Pravljenje markera u pretraživaču sa Naslov: Pošaljite MJD-u i na terenu URL mi pišemo:

    javascript:(function())(var host=" Vaša MajorDoMo adresa"; var title=prompt("Title:", 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 ZABORAVITE DA PROMJENITE: Vaša MajorDoMo adresa !!!
    Stavljamo ga na vidljivo mjesto, na primjer u traku sa oznakama (koja se, naravno, prvo mora prikazati).
    Sada, bez obzira na kojoj se stranici nalazite, samo kliknite na ovu oznaku i stranica će se pojaviti u vašem MajorDoMo-u, na kartici Linkovi. Tamo (u otvorenoj kartici Linkovi) obratite pažnju na malu ikonicu u gornjem levom uglu, klikom na nju otvorićete meni gde možete: Odabrati stranicu koja će se trajno prikazati u okviru (u kartici), Dodajte novu stranicu ručno (ako iz nekog razloga ne želite da koristite oznaku), i na kraju, uzmite taj link da kreirate bookmark (Pažnja! Ako uzmete link odatle, obratite pažnju na: host="mycomp" !} mycomp ovo je veza do vašeg MajorDoMo-a, u pravilu tamo može postojati lokalna IP adresa, morat ćete je promijeniti ili u vanjski IP ili u ime domene. Općenito, preporučio bih vam da koristite naziv domene, to je praktičnije u svakom pogledu. Tako, na primjer, ako imate ime domene izvan i registrirate njegovu asocijaciju na lokalnoj mreži, imat ćete samo jednu vezu koju možete koristiti svugdje, što je vrlo zgodno kada radite sa mobilne aplikacije, Tasker itd. nema potrebe da se oslanjate na promjenu nečega kada ste kod kuće, a zatim napolju).

    3. I na kraju, ako želite, možete umetnuti svoju stranicu direktno u scenu. Pa, na primjer, ako imate određenu gotovu stranicu sa grupom dugmadi itd. Mogućnosti možete pogledati ovdje: (LINK)

    Zahtjev: MajorDoMo pokreće objektnu metodu?
    Odgovor: Metoda se poziva sa linijom:

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

    Ranije sam u komentaru o globalnim varijablama pisao o internim funkcijama i naveo (LINK), tamo u odjeljku “Rad sa objektima” naći ćete i metode.

    Zahtjev: Kako napisati vrijednost iz svojstva jednog objekta u svojstvo drugog?
    Odgovor: Prvo, vrijedno je utvrditi zašto je to potrebno. Ovo je potrebno, na primjer, kada trebate kreirati Jednostavan uređaj , recimo temperaturni senzor, ali fizički imate složen uređaj, na primjer ESP modul, na koji su povezani mnogi senzori, uključujući i temperaturni senzor. Ali, zbog činjenice da ESP nije jednostavan uređaj i da je skripta za snimanje svih njegovih senzora kompozitna (tj. vrijednost se upisuje u svojstvo kombinacijom identifikatora kao objekta i, zapravo, svojstva. ukratko, kod je isti, a podaci se upisuju u svojstva različitih ESP-ova), njegova direktna upotreba u jednostavnim uređajima je nemoguća.
    Kako dalje?
    1. Kreirajmo Jednostavan uređaj , senzor temperature. Na izlazu ćemo dobiti par Object.Property, na primjer: Sensor_temp01.value hajde da ga se setimo.
    2. Saznaj naziv temperaturnog senzora ESP-a koji nas zanima (recimo da želimo koristiti temperaturni senzor od BME-280 koji je spojen na prvi ESP modul koji imamo u hali), idi na svojstva hale ESP i vidimo da imamo senzor temperature koji se zove: ESP8256007b5b6d.bmet, zapamtimo to.
    3. Kreirajmo skriptu koja će svake minute pisati vrijednost iz svojstva temperature ESP u temperaturno svojstvo jednostavnog uređaja. nazovimo to: SensorAssociation
    I dajmo mu kod:

    //Upisuje podatke iz ESP8256007b5b6d.bmet u Sensor_temp01.value svake minute
    $templ = getGlobal("ESP8256007b5b6d.bmet");
    setGlobal(("Sensor_temp01.value"),$templ);

    Sačuvajmo našu skriptu!

    4. I na kraju, stavimo skriptu koja će se izvršavati svake minute u metodu tajmera: onNewMinute

    Zahtjev: MajorDoMo indikatori?
    Odgovor: Mnogi početnici često zapnu oko ovog pitanja. Da, zaista, bez dubokog poznavanja strukture, a posebno obrazaca, indikatore nije tako lako pronaći, ali znajući tačno mjesto gdje se nalaze, to neće biti nikakav problem. Prvo što bih želeo da kažem je da su indikatori deo šablona, ​​tj. takozvani Web brnjice ili (front-end, ako hoćete), je li zato? tu ih treba tražiti. Tako se naša web njuška može nalaziti na dva mjesta. 1. Ako koristite standardni predložak, vjerovatno biste ga trebali potražiti ovdje: /www/templates/default.html 2. Ako ste kao i ja koristili alternativni šablon i pritom se pridržavali pravila, plemeniti web majstori, nemojte zajebavati default (ono što Autor daje po defaultu), nikad se ne zna šta ako morate više da ga prepravljate prekrasno. Zatim, svakako, trebali biste pogledati alternativni šablon: /www/templates_alt/default.html. Odlučili smo se za predložak, otvorite datoteku u uređivaču teksta: default.html i da ne morate lutati kroz težak tekst, tražeći ono što vam treba, potražite red u datoteci: System.IndicatorColor Ovo je svojstvo (u kojem je vrijednost slika) statusa sistema, indikator broj jedan! Uvijek je prisutan, dodajući u svoju sličnost svojstva u kojima se slike odvijaju, dobit ćete onoliko potrebnih indikatora koliko želite na glavnoj stranici.

    Ali to nije sve. Ovdje na ovoj mojoj stranici (LINK) je moj predložak prikazan kao glavna ilustracija, a ako bolje pogledate, primijetit ćete da se indikatori mogu naći ne samo na desnoj strani glavnog šablona, ​​već iu meniju . Ovo nije hir ili glupost, jer po defaultu, sto ja koristim u MajorDroidu, ne vidite glavnu stranicu, tamo je glavna stranica meni (rezerviracu, ovo je u mom slucaju , jer ako želite, tamo možete prikazati scenu po defaultu!) Stoga također možete vidjeti duple indikatore u meniju.
    Gdje ih tražiti? Jednostavno je, morat ćete ih sami napraviti ako su vam zaista potrebni.
    Pa kako to učiniti?
    Izrada stavke menija sa Naslov: Država i postavite ga na sam vrh svog menija ( Prioritet: 100000 ), Roditeljska stavka: prirodno bi trebalo da postoji ROOT.
    IN Vrsta: hajde da izaberemo HTML blok.
    U polje Podaci: upišite sljedeći kod:

    Ovo je moja opcija, možete je urediti kako vam odgovara, lako možete razumjeti šta, kako i gdje je. I izvinite na slici, samo moj sistem je dizajniran tako da preuzima ovaj kod. Tako da ćete morati da ga prepišete ručno. Napomena: Liquid_Crystal je font koji imitira LCD sat, u ovom stilu je napravljen moj šablon, ako želite isti moraćete da ga skinete, ako vam nije bitno, onda ako ne Ne nađete Liquid_Crystal, sistem će povezati Arial i napisati ga na vrhu.
    I na kraju, u tački: Period automatskog ažuriranja: mi ćemo to zapisati 10 sec.
    Štedimo i dobijamo ono što smo želeli.

reci ($ph,$level)-- kaže frazu (koristi globalne varijable $voicemode [naime govor] i $commandLine [konvertuje odgovor u echo utf2win(), inače samo echo]). $level označava nivo važnosti fraze (u zavisnosti od trenutnih postavki minimalnog nivoa izgovora, fraza može biti izgovorena glasom ili jednostavno zabeležena u istoriji poruka).

processCommand($command)-- šalje tekstualnu naredbu za izvršenje (na primjer, “kaži mi koliko je sati”). Same komande se konfigurišu pomoću metode ThisComputer->commandReceived.

getGlobal($varname);-- dobiti vrijednost globalnog svojstva

setGlobal($varnaime,$vrijednost);-- postavljanje globalnog svojstva

processLine($line);-- pokretanje skripte za sinhronizaciju

getRandomLine($filename);-- uzimajući nasumični niz iz tekstualne datoteke. $filename se može skratiti, na primjer file1 i tada će fajl biti preuzet./texts/file1.txt

playSound($filename);-- reprodukcija datoteka (mp3, wav, itd.). $filename se može skratiti, na primjer file1 i tada će fajl biti preuzet./sounds/file1.mp3

playMedia($path);-- pusti muziku iz direktorija $path. Primjer

runScript($id,$data);-- izvršava skriptu sa datim ID-om. Ime se može koristiti kao id

getLogger($context = null);-- vraća objekt zapisivača. Primjeri korištenja logera

Rad sa objektima

$obj=getObject($name);-- dobija objekat pod nazivom $name. možete raditi s rezultirajućim objektom koristeći sljedeće metode:
$obj->callMethod("method_name",$params);
$obj->setProperty("property_name",$value);
$obj->getProperty("property_name");

callMethod("Object.Method", $params);-- poziva metodu objekta sa datim parametrima (potonji je opciono)

$command="Koliko je sati"; callMethod("ThisComputer.commandReceived",array("command"=>$command));

cm

$value=getGlobal("Object.Property");-- dobivanje vrijednosti svojstva objekta

gg-- alternativni naziv za prethodnu funkciju

setGlobal("Object.Property",$value);-- postavljanje vrijednosti svojstva objekta

sg-- alternativni naziv za prethodnu funkciju

$objects=getObjectsByClass("class_name");-- vraća niz objekata navedene klase u imenu obrasca Primjer ponavljanja kroz objekte u petlji i postavljanja vrijednosti svojstva: $objects=getObjectsByClass("class_name"); foreach($objects kao $obj) (setGlobal($obj["TITLE"]..property_name",1); )

Vrijeme/intervali

vrijeme()-- vraća trenutno vrijeme u formatu vremenske oznake.

pretvaranje vremena ($tm)-- pretvara vrijeme iz hh:mm u format time() za današnji datum

vrijeme sada ($tm)-- vraća vrijeme u tekstualnom obliku poput "16 sati 40 minuta". Ako $tm nije naveden, onda vraća trenutno vrijeme. $tm u vremenskom formatu.

isWeekEnd()-- slobodan dan da/ne = 1/0 isWeekDay()-- radnim danom da/ne = 1/0

vrijemeIs($tm)-- provjerava da li se trenutno vrijeme poklapa s onim prenijetim u formatu hh:mm

vrijeme prije ($tm)-- upoređuje vrijeme $tm (hh:mm) i trenutno. Ako je struja manja, onda 1 inače 0

vrijeme nakon ($tm)-- upoređuje vrijeme $tm (hh:mm) i trenutno. Ako je struja veća, onda 1 inače 0

vrijeme između ($tm1, $tm2)-- provjerava da li je trenutno vrijeme unutar navedenog intervala (svako hh:mm, a $tm1 može biti veći od $tm2, na primjer 23:00 05:00)

prepoznati vrijeme($text)-- funkcija pokušava izdvojiti određeno vrijeme/datum iz fraze. Na primjer $text može biti "sutra u 9:30" ili "za 5 minuta"

Prilikom pozivanja bilo koje metode (ali ne skripte!) dostupne su sljedeće varijable:

$prevRun-- vrijeme posljednjeg poziva (u formatu vremenske oznake)

$prevRunPassed-- koliko je sekundi prošlo od posljednjeg poziva

$ovo-- Pokazivač na sebe. Koristi se u metodama klase. Na primjer:

$this->setProperty("status",1); // postavlja svojstvo statusa na 1, objekt za koji se poziva

Planirani zadaci i događaji

AddScheduledJob("title","commands",$datetime, $expire=60);-- $istekne u sekundi

ClearScheduledJob("title");-- može se koristiti maska ​​poput "title%".

SetTimeOut("title","commands", $timeout);-- $timeout u sekundama (slično AddScheduledJob("title","commands",time()+$timeout));

ClearTimeOut("title");-- analog ClearScheduledJob("title");

timeOutExists("naslov");-- vraća identifikator zakazanog zadatka (ili 0 ako je odsutan)

registerEvent($eventName, $details="",$expire_in=365);-- registrirajte događaj $eventName

registeredEventTime($eventName);-- vraća vrijeme posljednje registracije događaja $eventName (-1 ako takav događaj još nije bio)

Slanje pošte

SendMail($from, $to, $subject, $body);-- šalje e-poštu na adresu navedenu u $to

SendMail_html($from, $to, $subject, $body);-- slično prethodnoj funkciji, ali se pretpostavlja da je tijelo slova u HTML formatu

Prije izvjesnog vremena, aktivnosti tzv. neprofitnog partnerstva „Vologda Savez društava vlasnika kuća (HKB) i stambenih vlasnika“ došle su u centar pažnje naših urednika.

Kako kažu čelnici Zajednice vlasnika kuća, ciljevi osnivanja i djelovanja Neprofitnog partnerstva „Vologdsko udruženje udruga vlasnika kuća (HSB) i stambenih vlasnika“ su formiranje sistema koordinacije, međusobnog informisanja i interakcije između vlasnici stanova, kao i zastupanje i zaštita njihovih interesa u državnim organima, lokalnoj samoupravi, sudskim organima


U stvarnosti, međutim, kao iu većini slučajeva, nije sve tako jednostavno.

Prema otvorenim podacima, osnivači NP "Vologda Savez udruženja vlasnika kuća (ZHSK) i stambenih vlasnika" su 2 pojedinci: Sukhi Artyom Vladimirovich and Ivanov Nikolay Leonidovich.


Udruženje vlasnika kuća također se bavi politikom, promovišući svoje kandidate na izborima trošenjem novca.

Ovi pojedinci već nekoliko godina agitiraju vlasnike nekretnina da pređu na samoupravljanje svojom imovinom. Osnovni cilj osnivača Udruženja HOA su stambene zgrade, u kojima vlasnici nekretnina (stanova) sanjaju o stvaranju vlastitog partnerstva.

U početku, Udruženje HOA nudi vlasnicima punu pomoć u pripremi dokumenata potrebnih za registraciju HOA. Članovi odbora ovakvih HOA, po pravilu, su osobe udaljene od sfere stambeno-komunalnih usluga i upravljanja stambenim zgradama, koje zbog svog materijalnog interesa postaju potpuno pod kontrolom Udruženja HOA.

Rezultat takve saradnje je uvijek isti: nesamostalnost HOA u izboru izvođača radova, izvođenje radova po naduvanim cijenama, povlačenje sredstava namijenjenih za popravke i održavanje stambenih objekata organizacijama pod kontrolom Udruženja HOA.

Šema NP "HOA Association"

Šta se zna o ovim organizacijama?

1. DOO Društvo za upravljanje "Sokol".

Generalni direktor i jedini osnivač organizacije je Bazhenov Aleksandar Nikolajevič. Pravna adresa: Vologda ul. Mira, 17 godina. 211. Prema informacijama iz otvorenih izvora, ova adresa je mjesto registracije još šest organizacija, od kojih su neke u procesu likvidacije.

Predstavnik doo Sokol je Artem Vladimirovič Sukhikh, sa punomoćjem izdatim na deset godina, isti A.V. Sukhikh. koji je zajedno sa Ivanovim suosnivač Udruženja vlasnika kuća.

U aprilu 2019. godine dobili smo informaciju o žalbama stanara kuće broj 9 u ulici Lavrov u gradu Vologdi na nezakonito oduzimanje kuće pod upravom Sokol Management Company LLC.

Ranije u ovome stambene zgrade inicijativa građana osnovala je udruženje vlasnika kuća koje je upravljalo stambenim zgradama.

Čim je doo Društvo za upravljanje "Sokol" počelo sa upravljanjem, vlasnici su se osjetili, kako kažu, sami. Kao rezultat pranja izmjenjivača topline, rashladna tekućina je dospjela u vodu koja je opskrbljena stanarima kuće, zbog čega je voda postala zelena. Pola kuće još uvijek nema toplu vodu. Cijevi u podrumu stalno cure. DOO Društvo za upravljanje "Sokol" ne preduzima nikakve radnje za vraćanje vruća voda u stanove vlasnika, a također ne poduzima mjere za popravku ili zamjenu izmjenjivača topline. Čišćenje zajedničkih prostorija kuće je nekvalitetno, a ponekad se i ne radi. Jedina stvar koju kompanija za upravljanje Sokol doo radi na vrijeme i kvalitetno je da u poštanske sandučiće distribuira priznanice o plaćanju usluga, a Artem Sukhikh odlazi vlasnicima i traži plaćanje. Ljudi su ogorčeni što se od njih traži da plate za posao koji zapravo nije završen.

Pored toga, DOO „Sokol“ pokušava da povuče sredstva, navodno za popravku jednog od liftova zgrade, iako se na osnovu rezultata tehničkog pregleda zaključuje da je lift u dobrom stanju i da ne radi. zahtevaju popravke.

On ovog trenutka nepravilnog upravljanja zgradom br.9 u ul. Lavrov, Vologda, potvrđeno je inspekcijskim izvještajem sprovedenim protiv društva za upravljanje Sokol doo. Dana 28. juna 2019. Odjeljenje za komunalne usluge Gradske uprave Vologda izdalo je nalog Kompaniji za upravljanje Sokol doo da otkloni kršenje uslova za licenciranje upravljanja organizacije.

Postaje nejasno zašto „Neprofitno“ partnerstvo Zajednice vlasnika kuća, čija je svrha da pomogne stanovnicima da stvore Udruženje vlasnika kuća, djeluje u suprotnom smjeru, premještajući kuće iz Udruženja u kontrolirane organizacije, tj. Društvo za upravljanje Sokol doo.

Rukovodilac LLC preduzeća za upravljanje Sokol je direktor Bazhenov Alexander, koji kontrolišu Ivanov N. i Sukhikh A.

Treba napomenuti da je, zahvaljujući brižnim stanovnicima, odluku vlasnika da odaberu društvo za upravljanje Sokol doo Gradski sud u Vologdi proglasio nezakonitom i u potpunosti poništio.

2. DOO "SU-35"

Učesnici SU-35 LLC su Ulyana Pavlovna Borodii i Maxim Alekseevich Dobrelya. Artem je u stalnim poslovnim odnosima sa potonjim Sukhikhom.

U ovom trenutku, odlukom Arbitražnog suda Vologdske oblasti, SU-35 LLC je proglašena nesolventnim (stečajnim), a otvoren je stečajni postupak.

Prvobitno, 10. aprila 2017. između Sukhikh A.V. i SU-35 LLC sklopili su ugovor o radu, prema kojem je Sukhikh preuzeo dužnost zamjenika direktora za pravne poslove.

Zatim, nakon uvođenja procedure nadzora u odnosu na SU-35 DOO, Suhoj je zajedno sa rukovodstvom Su-35 DOO POKUŠAO POVLAČENJE NOVCA SA TEKUĆIH RAČUNA. Za realizaciju ovog pokušaja, bez saglasnosti privremenog upravnika, sklopljen je sporazum između SU-35 LLC i Sukhoja o promjeni postojećih uslova ugovora.

U stvari, pored prethodno dogovorene mesečne plate od 30.000 rubalja 00 kopejki, pored navedenih plaćanja, za iste dužnosti koji su dodijeljeni Sukhikh A.V. ugovor o radu, stranke dogovoreno je povećanje plate za 270.500 rubaljamjesečno. (811.500 rubalja za period od 28. aprila 2018. do 17. jula 2018.)

Kako bi povlačenje sredstava izgledalo legalno, 20. novembra 2018. godine, A.V. podneseno tužbena izjava o naplati zaostalih plata od SU-35 doo u iznosu od 1.082.229 rubalja 99 kopejki. Međutim, Gradski sud u Vologdi je zadovoljio zahtjeve A.V. Sukhikha. samo djelimično, nakon što je od SU-35 DOO naplatio dug u iznosu 70.117 rubalja 46 kopejki.

Kasnije je Arbitražni sud regije Vologda proglasio nevažećim sporazum o promeni postojećih uslova ugovora o radu. Sudskom presudom je utvrđeno nepošteno ponašanje A.V. Sukhikha. , izraženo u zaključivanju Ugovora u uslovima činjenice nesolventnosti (stečaja) SU-35 doo utvrđene od strane suda (u postupku praćenja), i sporazuma o uslovima povećanja zarada za obavljanje radnih obaveza. prethodno dodijeljen Suhoj od Ugovor o radu, koji ukazuje na prisustvo znakova ništavosti transakcije utvrđene članom 10 Civil Code RF (transakcija izvršena uz zaobilaženje zakona s ciljem nanošenja štete)

3. DOO "Metprom"

Direktor Metroprom LLC preduzeća je Artem Vladimirovič Sukhikh. Trenutno je Metprom doo likvidiran odlukom Federalne poreske službe. Registar pravnih lica u vezi sa Metprom doo sadrži podatke o nepouzdanosti podataka o adresi pravnog lica.

Nepouzdana pravna adresa je jedan od znakova organizacije fly-by-night.

Šta se još zna o Artjomu Vladimiroviču Sukhiku?


Kao osnivač i advokat NP "HOA Association", Sukhikh pruža pravne usluge udruženjima vlasnika kuća.

Kako smo saznali, iz HOA na adresi Vologda, Tehničeskij ulicu, 56, udruženje HOA koje predstavlja A.V. Sukhoikh. zaključen je ugovor o pružanju usluga naplate potraživanja od vlasnika nekretnina koji su dugovali za usluge popravke i održavanja sa nestambenih prostorija. Cijena takve usluge procijenjena je na dvadeset hiljada rubalja. (u poređenju sa tržišnom cijenom, 10 puta je precijenjena), međutim, prema riječima predsjednika Udruženja vlasnika kuća, usluge naplate dugova nisu pružene iz namišljenog razloga od strane A.V. Sukhikh. Pokušaji vraćanja novca bili su neuspješni, jer je predsjednik Udruženja HOA Nikolaj Ivanov na svaki mogući način negirao svoju vezu sa Sukhikhom, iako je zapravo veza očigledna, budući da je Sukhikh suosnivač Udruženja. Novac nikada nije vraćen predsjedavajućem.

Poznat nam je i još jedan slučaj nekvalitetnih usluga. pravne usluge udruženje vlasnika kuća.

U decembru 2016. godine, Sukhikh A.V. u ime HOA, podnio je zahtjev protiv jednog od investitora za nadoknadu troškova radova neophodnih za otklanjanje nedostataka učinjenih tokom izgradnje kuće. U decembru 2018. godine, Arbitražni sud regije Vologda je u potpunosti odbacio tužbe. Sud je u svojoj odluci naveo sljedeće:

“Sud je takođe uzeo u obzir i priznao kao opravdan iskaz svih okrivljenih o zloupotrebi prava tužioca, koji znajući da je u trenutku podnošenja tužbe investitor započeo postupak likvidacije, a tokom suđenja, zastupnik ovog tuženog je odmah obavestio sud o prihvatanju predmeta o stečaju preduzeća, nije podnosio prijave za upis u registar potraživanja poverilaca, nije koristio svoja prava poverioca u okviru tuženog. stečajnom postupku, nije učestvovao u skupštini povjerilaca, nije tražio da se učesnici društva privedu supsidijarnoj odgovornosti, ako se o njima nije izjasnilo o osnovama, odnosno dobrovoljno je odbio da ostvari svoja prava koja su mu data zakonom.”

Rezultat takve tužbe bio je tužan za HOA. Vjerujući u obećanja Udruženja HOA i nadajući se visokim kvalifikacijama A.V. Suhoja. U zamjenu za sredstva za otklanjanje građevinskih nedostataka, HOA je primila samo pravne troškove u vidu državne pristojbe u iznosu od 43.003 rublje, ogromne troškove za provođenje građevinskog pregleda, čiji je trošak premašio 100.000 rubalja, troškove plaćanja za usluge „visokog specijaliste“ A. V. Sukhikha, kao i dvogodišnja pravna bitka sa unaprijed određenim rezultatom. Kao rezultat, obogaćeno je samo Neprofitno partnerstvo Udruženja vlasnika kuća

Odbijanje HOA-e, koju je zastupao predstavnik A.V. Sukhikh. , iz ostvarivanja svojih prava sugerira korupcijsku komponentu kod stečajnog investitora. Kao rezultat toga, jedine žrtve su oni koji žive u kući investitora sa građevinskim nedostacima, kada je Sukhikh A.V. prima novac za svoje usluge, a programer je uspješno likvidiran bez ikakve prepreke.

Rezultat rada Udruženja HOA je predvidljiv i veoma tužan. Vlasnici dobijaju imaginarnu nezavisnost i imaginarnu vlast nad svojom imovinom, a Udruženje vlasnika kuća i organizacije koje ono kontroliše obogaćuju se na račun vlasnika kuća. Odgovornost za sve radnje u ovom slučaju, na osnovu važećeg zakonodavstva, snosi sama HOA, a udruženje ne snosi odgovornost za svoje postupke ni u kom obimu.

Nastavlja se.

Iznijet ću svoje mišljenje o proizvodu, možda nekome bude od koristi.
Stručnjaci, prvenstveno integratori, vjerovatno neće biti zainteresovani za MajorDoMo, sve dok nema normalnog proizvoda u kutiji, nema normalne tehničke dokumentacije, nema 7/24 podrške, nema dilerske mreže, nema bonusa.

Malo je vjerovatno da će i sami graditelji biti zainteresirani za to; nema globalnih razlika od, recimo, OpenHab-a ili ioBrokera.

Ali za one koji se tek spremaju da izgrade sistem pametne kuće i žele da shvate šta zaista žele i šta pametna kuća može da uradi, verovatno ima smisla da se pozabave sistemom neko vreme. Lično, već sam nekoliko desetina mojih prijatelja navukao na MajorDoMo.

Sve se dešava na banalan način, uveče gosti dolaze na roštilj - booking. Kad padne sumrak, MajorDoMo automatski pali svjetlo na verandi, da pojača efekat, dajem glasovnu komandu UD-u da uključi radio ili muziku. Koristim svoj glas za kontrolu nivoa zvuka ili prebacivanje na drugu radio stanicu ili numeru.

Onda dovodim goste u kuću i opet svojim glasom zamolim pametnu kuću da priča o sebi. (Imam konfiguriran ovaj demo mod). UD počinje da pali i gasi svetla, kaže vremenska prognoza, uključuje televizore, split i još desetak drugih šou-offa.

Nakon odgovora na pitanje, koliko to košta? besplatno. Smatrajte da je klijent zreo.

Samo tako što ćete provesti nekoliko sati na ovim lekcijama, bez osnovno znanje u programiranju, bez razumijevanja logike, strukture i drugih stvari, samo glupo ponavljajući sve radnje na videu, možete.

Podesite budilnik na računaru koristeći svoj glas i puštajte ga kada se aktivira muzika ili radio
Koristite svoj glas da kontrolišete media plejer na računaru
Organizirajte video nadzor koristeći bilo koji pametni telefon ili tablet
Pratite kretanje i lokaciju djece, na primjer, pomoću GPS-a
Kontrolišite onlajn radio stanice na svom računaru svojim glasom
Nabavite pametnu listu za kupovinu
Glasom slušajte vremensku prognozu na računaru
Postavljajte pitanja glasom i primajte odgovore sa wikija
Dodajte i izbrišite zadatke iz svog dnevnika glasom.
Glasovni podsjetnici.
Primite aktuelne kurseve putem glasa na zahtev
Čitanje dolaznih SMS-ova glasom
Daljinski isključite računar
Pratite napunjenost baterije na svom pametnom telefonu i primajte poruke kada je napunjenost kritično niska
Glasom slušajte naslove vijesti ili same vijesti i sažetke filmova

Prokletstvo, umoran sam od pisanja, pa ima još mnogo toga...

I sve ovo nije napisano ni u jednoj liniji koda (cijeli kod je objavljen ispod videa)

U proteklih godinu i po dana, sve više integratora i ljudi iz građevinske industrije kuca nam na vrata tražeći od nas da naučimo kako raditi sa softverom i „napraviti pametni dom“.
Trenutno nekoliko desetina integratora (širom CIS-a) implementira Smart Homes na Majordomo. Ne plaćamo im ništa (bez bonusa, bez popusta dilera) - tako je. ALI njihovi klijenti ne moraju da plaćaju ni softver. I uz pomoć Majordoma, koristite više jeftine opreme.
Sve to uvelike smanjuje krajnji trošak za kupce

Prema dokumentaciji, napravili smo bazu znanja i tiho je ažuriramo

Što se tiče Openhab/ioBroker vs Majordomo - znam dosta slučajeva kada su momci prešli sa Openhab/ioBrokera na nas - iz istog razloga: nema velike razlike, a ima mnogo više korisnika koji govore ruski, a ima se s kim pričati to