Kako pokrenuti metodu iz skripte u majordomu. MajorDoMo

Mnogi početnici se ne uspiju sprijateljiti s MajorDoMo-om jer im se ovaj sustav na prvi pogled čini prilično kompliciranim, a zapravo je struktura MajorDoMo-a vrlo jednostavna. Sva njegova "složenost" nije ništa više od dupliciranja mjesta za pohranu koda, implementiranih isključivo radi praktičnosti.

Pokušajmo to pobliže pogledati. Sve što radimo implementirano je, uglavnom, pomoću PHP koda. On se pak sastoji od osnovnih funkcija i malog broja vlastitih MajorDoMo naredbi.

Za lakše razumijevanje i implementaciju, možete postaviti kod razna mjesta. Radi razumijevanja, dat ću jednostavan primjer ovog pristupa. Recimo da trebamo izvršiti neki apsolutno identičan kod, kako pritiskom na gumb u izborniku tako i glasovnom naredbom. Ovaj kod možemo napisati izravno u gumb izbornika i glasovnu naredbu. Glomazno zar ne? Ili ga možemo staviti u skriptu i zatim pozvati ovu skriptu s bilo kojeg mjesta jednim jedinim retkom. To je, zapravo, sva tajna ove prividne složenosti. 🙂

Otuda jednostavna formula. Ako se neki kod planira izvršavati s jednog mjesta, onda ga pišemo izravno odatle i izvršit ćemo ga. Ako vam je potreban pristup s barem dva mjesta, trebali biste već razmisliti o skripti.

Gdje su ta mjesta za kod?

  • Pa, naravno, ovo su Scenariji. (Izbornik administracije/OBJEKTI/Skripte ).
  • Metode (Izbornik administracije/OBJEKTI/Objekti ), kasnije ću se toga detaljnije dotaknuti.
  • Jelovnik (Administracijski izbornik/OBJEKTI/Kontrolni izbornik ).
  • Kontrola glasa (Izbornik administracije/OBJEKTI/Obrasci ponašanja ).
  • Vizualna kontrola na planu zgrade (Izbornik administracije/OBJEKTI/Scene ).
  • Izdvajanje podataka s web stranica (parsiranje) (Izbornik administracije/OBJEKTI/Web varijable ).

Zapravo, uglavnom je to sve. Sve ostalo je intuitivno i shvaća se u hodu.

Skripte.

Sa Skriptama je sve jasno. U njih s različitih mjesta upisujemo kod koji želimo izvršiti.

Izbornik, glasovno upravljanje i scene.

U njih upisujemo one drage indikatore, tipke, prekidače, regulatore...

Mogu sadržavati:

  1. Sav kod.
  2. Izravan prijelaz na scenarij (odabirom unaprijed pripremljenog scenarija s popisa).
  3. Mješoviti tip (na primjer, kada razradimo dio koda izravno u gumbu, na primjer njegovu indikaciju, tada idemo na skriptu i izvršavamo ono što je u njoj napisano).

Raščlanjivanje.

Ovdje se analiziranje većinom sastoji od izvlačenja podataka s tuđih stranica prikazanih na Internetu, navođenjem početka i kraja traženog dijela teksta. PHP ovdje igra više pomoćnu ulogu i koristi se relativno rijetko.

Evo primjera. Recimo da trebate dobiti temperaturu s web stranice, recimo "Prognozer". Posebnim znakovima označavamo početak i kraj teksta koji nam treba (neka to bude brojka trenutne temperature). Zatim, određenom učestalošću koju smo postavili, ovaj se broj čita i upisuje u svojstvo. Više o nekretninama malo kasnije. Za sada samo znajte da je očitana brojka pohranjena u našem određeno mjesto dok se ne promijeni. Čim se to dogodi, promijenit će se broj na ovom mjestu (imanju). Parametar (temperaturni broj) zabilježen u svojstvu obrađujemo na način koji nam je potreban. Recimo, za jelovnik, 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.

A:OvoRačunalo.Sinoptik_temp to je upravo naše imanje, gdjeovo računalo ovo je klasa iSinoptik_temp ovo je svojstvo ove klase, a točka se koristi kao razdjelnik. Čitajući u nastavku shvatit ćete sve ovo. O da, % su graničnici za izbornik; navodnici se obično koriste u kodu.

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

Predmeti.

I na kraju, ostaju nam objekti, samo mjesto gdje se nalaze naše nekretnine i više od toga. Predmeti se također na prvi pogled čine složenom stvari. Ali to je samo na prvi pogled. 🙂

Objekt ovo je prikaz bilo čega, na primjer: računala (kao u gornjem primjeru), ili budilice, ili mjerača vremena, ili čak Skypea... Općenito, bilo čega.

Može postojati mnogo identičnih objekata. Pa, na primjer. Sjećam se kad sam pisao kako ja vidim sustav, rekao sam da ćemo imati meteorološku stanicu s kućnim i uličnim blokovima. Dakle, oba bloka su sastavljena na potpuno identičnim modulima ESP-12. Svaki od njih je objekt, a njihova ukupnost jestKlasa . Ovdje je sve također učinjeno radi praktičnosti i uklanjanja nepotrebnog pisanja, razumjet ćete dalje.

Struktura je ovdje sljedeća:

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

1.1. Ovajrazreda može se postavitiSvojstva (ako na jednostavan način, tražećirazreda ESP vlasništvotemperatura automatski će se pojaviti u svima namaobjekti klase ESP , tj. neće biti potrebe za stvaranjemvlasništvo , svakomeobjekt ).

1.2 Ovorazreda , također možete postavitimetode (tj. izvršavanje nekog koda, ovihmetode na sličan načinSvojstva pojavit će se u svim našimobjekti ).

1.3. I na kraju, naravno, inrazreda Tamo jeobjekti . To su izravno naši fizički ESP-ovi: ESP-12 br. 1, ESP-12 br. 2 itd.

Svakiobjekt (ESP-12 br. 1, ESP-12 br. 2, itd.), zauzvrat, ima vlastituSvojstva Imetode .

Postoje dvije vrste nekretnina Svojstva klase I Svojstva objekta njihova je razlika u tome što se svojstva registrirana u klasi automatski pojavljuju u svim novim objektima, a svojstva dodana objektu pojavljuju se samo u njemu. To je učinjeno kako bi se, s jedne strane, riješili nepotrebnih napisa, as druge, kako bi se individualnim Svojstva. Metode kreiraju se samo u klasi, a registriraju se 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 osim ovoga na prvom treba izmjeriti i vlagu, a na drugom kontrolirati relej.

UčinimoKlasa ESP , pišemo u njemuvlasništvo Temperatura . Automatski će se pojaviti u svojstvima ESP-12 br. 1 i ESP-12 br. 2. Dalje izravno, za ESP-12 br. 1, već u svomSvojstva , prijavljujemo seVlažnost . USvojstva ili, ESP-12 br. 2 registriramo relej. Kao rezultat imamo ESP-12 br. 1 sa svojstvima u kojima će nam sustav zapisati vrijednosti temperature i vlažnosti i ESP-12 br. 2 sa svojstvima u kojima će sustav zapisati vrijednost temperature i status releja za nas (0-Isključeno, 1-Uključeno). Pa, prema tome, metode koji će nam pomoći u obradi upravo ovih podataka, ako bude potrebe za tim, mi ćemo ih kreirati u učionici ESP, a mi ćemo u njih upisati šifru osobno za svaki objekt.

Treba napomenuti da se metode mogu pozivati ​​s bilo kojeg mjesta callMethod("Object.Method", $params); ili alternativni cm cm("Object.Metoda", $params);. Svojstva su također globalna i mogu se pozvati s bilo kojeg mjesta. Funkcije sg(setGlobal) i gg (getGlobal) čine upravo to. Na primjer redak:getURL(gg('AlarmOne.UrlAlarmRing'),0); otvorit će poveznicu koja je pohranjena u svojstvuAlarmOne.UrlAlarmRing

Sada sigurno imate sve da shvatite kako MajorDoMo funkcionira.

Učvrstimo to konkretnim primjerom:

Fleširali smo firmware s wifi-iot.com na naše ESP-12 module br. 1 i br. 2. Prvi očitava temperaturu i vlažnost, a drugi očitava temperaturu i upravlja relejem. Oba ESP-12 šalju podatke u MajorDoMo u određenim intervalima, gdje ih prima skripta koja razvrstava primljene podatke u svojstva. I na kraju, te podatke preuzimamo iz svojstava i koristimo ih po vlastitom nahođenju, tj. unosimo potrebno svojstvo tamo gdje ga treba prikazati ili primijeniti.

Na primjer, uzimamo uličnu i sobnu temperaturu, obrađujemo ih u određenom scenariju, čime dobivamo pametni termostat.

Također, iz istih svojstava uzimamo istu temperaturu i prikazujemo je u izborniku ili na pozornici za vizualni prikaz.

A ujutro će nam metoda koja se pokreće iz objekta Alarm Clock pokrenuti skriptu koja će nam, nakon što se konačno probudimo i isključimo melodiju, glasom pročitati trenutnu vremensku prognozu. A što misliš odakle će dobiti brojke temperature i vlage? Točno, od svojstava!

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

Što je sljedeće?

Pa, sada kada već razumijete strukturu MajorDoMo-a, reći ću vam o HDMI matrici, gdje ćemo već vidjeti interakciju uređaja u MajorDoMo-u. Pa, konačno, prijeći ću na ozbiljniju prezentaciju, s kodom, slikama, dijagramima i ostalim delicijama ... 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 suziti slike koliko god mogu kako bi se mogle vidjeti čak i na pametnom telefonu u orijentaciji stranice, ali to ne uspijeva uvijek :) Ako vidite da tekst komentara prelazi granice, jednostavno okrenite svoj pametni telefon na bok (pejzažna orijentacija), pametni telefoni su drugačiji.

    Dok sam analizirao svoj blog, naišao sam na nekoliko upita za pretraživanje, 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 na njih odgovoriti u komentarima.
    Prema zadanim postavkama, formiraju se sve datoteke izgled terminala nalaze se u mapi: /templates, ali ako već imate instaliranu masku treće strane, te datoteke trebate potražiti u mapi /templates_alt. Mapa /templates_alt ima veći prioritet od mape /templates i sve u njoj se prvo obrađuje. Ako u njemu nešto nedostaje, motor ide u mapu /templates za ono što nedostaje. Pa, vjerojatno na temelju gore navedenog, vrijedi napomenuti da ako namjeravate staviti vlastiti predložak (skin) na MajorDoMo, trebali biste stvoriti mapu /templates_alt (ako već nije stvorena) i provesti sve eksperimente u to. To će vas spriječiti da izgubite sve što ste primili prema zadanim postavkama u slučaju bilo kakvog kvara.

    Bio je i ovaj zahtjev: -MajorDoMo ne prihvaća podatke...
    Podatke MajorDoMo prima u pravilu izvršavanjem neke skripte koja ili prima te podatke ili ih čita, a zatim ih skripta postavlja u svojstva koja ste za to pripremili, odakle se naknadno čitaju i koriste podaci koji su vam potrebni. Ove se skripte obično izvode; Ili izvana, s poslužitelja treće strane (dobro, recimo, kao u slučaju ESP8266, koji šalje podatke i pokreće skriptu espdata), tako smo mi dobivamo podataka (usput, u bliskoj budućnosti, sve ću vam to detaljnije reći u svom članku o meteorološkoj stanici). Ili na tajmer za računati podaci odnekud. Već postoje gotovi mehanizmi, na primjer, sličan je ugrađen u web varijable koje ispituju ciljanu stranicu određenom učestalošću. U opisanom slučaju frekvencija je navedena u polju Interval provjere, specifična web varijabla. Na primjer, ovako dobivamo vrijeme izlaska i zalaska sunca. Web varijabla uzima vrijednost vremena s nekog meteorološkog sajta, zapisuje je u svojstvo, a zatim u metodi vršimo obradu (drugim riječima, provjeravamo trenutno vrijeme sa vremenom zalaska sunca), uslijed čega Alice , u točno pravo vrijeme, govori nam — Sunce zalazi. i, ako je potrebno, izvodi sve radnje ili 🙂 pokreće skriptu koja nam je potrebna.
    Dakle, ako MajorDoMo ne prihvaća neke podatke, prije svega trebate 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 osigurani svi mehanizmi, od elementarnog pokretanja skripte, izravno iz njezinih postavki, praćenjem poveznice koja se nalazi na stranici s postavkama, do analize zapisa, kao što su, na primjer, web varijable.

    I na kraju, treći zahtjev koji sam vidio: -MajorDoMo jednostavni objekti
    Ovdje je vrijedno napomenuti da je zahtjev sastavljen malo netočno. Iako objekt Može biti bilo što, nedavno je u sustav uveden dodatni koncept: Jednostavni uređaji. To je učinjeno kako bi se početnicima olakšao život. Iskreno govoreći, ovo još nisam koristio, zbog činjenice da radim upravo na razini tih objekata. Ali izvesti malog čovjeka na pravi put: (Simple Devices) mogao bi, doslovno, u sekundi. 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, tiho pišem članak o kuhalu za vodu, ali sam u iskušenju da pogledam metriku. Odustala sam i odlučila pogledati. I vidim još jedan upit za pretraživanje: — MajorDoMo struktura baze podataka
    Teško je odmah odgovoriti ovo pitanje, a da u početku ne znate što osoba konkretno želi. Struktura će, kako se sustav bude punio, za svakoga biti drugačija, netko će instalirati ovaj ili onaj modul, ovu ili onu aplikaciju, a nekome neće trebati... Tablice, prema tome, također imaju daleko od standardnih polja. Stoga ću u ovoj fazi dati svoj popis, a onda ako nekoga zanima nešto konkretno neka pita pa ćemo pogledati.

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

    Zahtjev: MajorDoMo, web varijabla temperatura?
    Odgovor: Vjerojatno će poseban članak biti posvećen web varijablama kako bismo dobili ideju o najsloženijoj, na prvi pogled, stvari koja tamo postoji, a to je filtriranje. Za sada konkretan odgovor na konkretno pitanje.
    Preuzet ćemo trenutnu temperaturu s web stranice Forecaster zbog njene stabilnosti i postojanosti.
    Stvorite web varijablu s Ime: Sinoptik_temp
    U Veza Zapiši: https://sinoptik.com.ru/weather-Volgograd U vašem slučaju, mijenjamo Volgograd u vaš grad.
    U Uzorak pretraživanja:

    Povezani objekt: Ovo računalo
    Svojstvo: 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 svakih 10 minuta Mzhor će očitati, iz Forecastera, trenutnu temperaturu u vašem gradu, i upisati je u svojstvo Sinoptik_temp, s kojim možete raditi što god želite, prikazati, koristiti u skriptama itd. .

    Zahtjev: MajorDoMo, zalazi li sunce?
    Odgovor: U MajorDoMo postoje dva načina rada, naime, noćni način i tamni način. Noćni način rada aktivira sat, prema zadanim postavkama od 20:00 do 8:00. Ovaj način je vrlo zgodan, na primjer, za isključivanje glasovnih obavijesti. Način rada, Dark, uključuje se pri zalasku sunca i isključuje pri izlasku sunca; ovaj način je prikladan, na primjer, za upravljanje uličnom rasvjetom. Podaci za određenu lokaciju dobivaju se pomoću web varijabli. Koji se naknadno pohranjuju u svojstvima 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 su sklona promjenama, su te iste globalne varijable. Recimo da imamo određeni scenarij i moramo učiniti nešto sa svojstvom, recimo, promijeniti temperaturni prag termostata. Pomoću funkcije getGlobal uzimamo vrijednost svojstva u našu skriptu i zapisujemo je u lokalnu varijablu, neka to bude: $temp_term. S ovom lokalnom varijablom u našoj skripti, mi već radimo transformacije koje su nam potrebne, i konačno pišemo promijenjeno stanje $temp_term, pomoću funkcije setGlobal, natrag u svojstvo. Pa s imovinom, kao što već znamo, možemo što hoćemo. Na primjer, prikazati njegovu vrijednost na ekranu, poslati ga fizičkom termostatu ili ga čak izgovoriti kroz zvučnike sustava... Usput, govoreći o globalnim varijablama, vrijedi istaknuti ugrađene funkcije sustava. Moramo zapamtiti da postoji određeni skup funkcija i varijabli koje su implementirane isključivo za sustav. Sjećate se kad sam spomenuo da uglavnom radimo s PHP-om, ali postoje i neke ugrađene stvari? Možete vidjeti ugrađene funkcije. A kada pogledate, obratite pozornost na stavku "Upravljanje ciklusima (uslugama)", tamo ćete naići na ugrađenu globalnu varijablu i shvatiti da je metodologija svugdje ista.

    Zahtjev: MajorDoMo html block koristi vrijednost iz varijable?
    Odgovor: Na primjer, ja to radim ovako: Na otvorenom: %ESP8266003b5df7.dhtt1%°C(tj. napišem simbol ° s tipkovnice) i onda je izgled lud. Simbol stupnja postavljen je na ALT+0176, brojevi se upisuju na numeričkom dijelu tipkovnice (LINK NA WIKEPEDIJU).
    Neki to rade ovako:
    %Glavna kuhinja.dhtt1%°C a onda trebate staviti C isključivo u engleskom rasporedu. Osobno nisam probao, ali ovo je spomenuto: (LINK NA FORUM).
    Pažnja! Ako netko odluči kopirati i zalijepiti: %Glavna kuhinja.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 ga vratiti!
    I tako dalje... Bla, bla, bla: %OBJECT.PROPERTY% bla, bla, bla. Bla, bla, bla na bilo kojem jeziku, čak i kineskom.
    Ako trebate, na primjer, prikazati vlažnost, učinite ovo: %ESP8266003b5df7.dhth1%% drugi znak % bit će samo simbol.

    Zahtjev: Tako da majordomo skripta radi svaki sat?
    Odgovor: Idite na metodu: OBJECTS/Objects/Timer/onNewMinute i na samom kraju dodajte:

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

    Ne zaboravite kliknuti gumb "Ažuriraj".
    Skripta će se izvršavati nakon svake desete minute sata.

    Zahtjev: MajorDoMo kako postaviti put do drugih stranica?
    Odgovor:
    1. Ako želite da vaša stranica izgleda kao kartica, trebali biste otići na: Glavni administrativni izbornik/POSTAVKE/Početne stranice, kliknite na gumb "Nova stranica", Na terenu Ime(*) unesite naziv kartice na popisu Tip izabrati URL, u polju Veza, unesite adresu stranice. Za lokalne stranice dovoljno je navesti lokalni put, npr.: /Template_alt/page name.html. Ako imate stranicu u vlastitoj mapi iu njoj se nalazi indeksna datoteka, dovoljno je navesti samo mapu, npr.: /Kinoteatr/

    2. Recimo da ste htjeli ubaciti neku internetsku stranicu u MajorDoMo kako biste je mogli stalno koristiti. Vrlo je jednostavno. Da biste to učinili, morate koristiti aplikaciju “Sent Links” ( Čitati na tržištu dodataka).
    Primjer. Imate preglednik na poslu. Izrada oznake preglednika s Titula: Pošalji u MJD i na terenu URL pišemo:

    javascript:(funkcija())(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 PROMIJENITI: Vaša MajorDoMo adresa !!!
    Stavimo ga na vidljivo mjesto, na primjer u traku oznaka (koja se, naravno, prvo mora prikazati).
    Sada, bez obzira na kojoj se stranici nalazite, samo kliknite na ovu knjižnu oznaku i stranica će se pojaviti u vašem MajorDoMo, na kartici Veze. Tamo (u otvorenoj kartici Linkovi) obratite pažnju na malu ikonicu u gornjem lijevom kutu, klikom na nju otvorit ćete izbornik u kojem možete: odabrati stranicu koja će biti trajno prikazana u okviru (u kartici), Ručno dodajte novu stranicu (Ako iz nekog razloga ne želite koristiti oznaku), i na kraju, uzmite tu vezu da biste kreirali oznaku (Pažnja! Ako preuzimate vezu od tamo, obratite pozornost na: host="mycomp" !} moj komp ovo je poveznica na vaš MajorDoMo, u pravilu tamo može biti lokalni IP, morat ćete ga promijeniti ili u vanjski IP ili u naziv domene. Općenito, preporučio bih da koristite naziv domene, praktičniji je u svakom pogledu. Tako, na primjer, ako imate naziv domene izvana i registrirate njegovu povezanost na lokalnoj mreži, imat ćete samo jednu vezu koju možete koristiti posvuda, to je vrlo zgodno kada radite s mobilne aplikacije, Tasker itd. nema potrebe oslanjati se na promjenu nečega kad ste kod kuće pa vani).

    3. I na kraju, ako želite, svoju stranicu možete umetnuti izravno u scenu. Pa, na primjer, ako imate određenu gotovu stranicu s grupom gumba itd. Prilike možete pogledati ovdje: (LINK)

    Zahtjev: MajorDoMo izvodi metodu objekta?
    Odgovor: Metoda se poziva linijom:

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

    Ranije, u komentaru o globalnim varijablama, pisao sam o internim funkcijama i dao (LINK), tamo u odjeljku "Rad s objektima" također ćete naći o metodama.

    Zahtjev: Kako napisati vrijednost iz svojstva jednog objekta u svojstvo drugog?
    Odgovor: Prvo, vrijedi utvrditi zašto je to potrebno. To je potrebno, na primjer, kada trebate stvoriti Jednostavan uređaj , recimo temperaturni senzor, ali fizički imate složen uređaj, na primjer ESP modul, na koji su spojeni mnogi senzori, uključujući senzor temperature. Ali, zbog činjenice da ESP nije jednostavan uređaj i skripta za snimanje svih njegovih senzora je složena (tj. vrijednost se upisuje u svojstvo kombiniranjem identifikatora kao objekta i, zapravo, svojstva. U ukratko, kod je isti, a podaci se zapisuju u svojstva različitih ESP-ova), njegova izravna uporaba u jednostavnim uređajima je nemoguća.
    Kako nastaviti?
    1. Kreirajmo Jednostavan uređaj , senzor temperature. Na izlazu ćemo dobiti par Object.Property, na primjer: Sensor_temp01.vrijednost sjetimo ga se.
    2. Saznajte naziv senzora temperature ESP-a koji nas zanima (recimo da želimo koristiti senzor temperature iz BME-280, koji je spojen na prvi ESP modul koji imamo u dvorani), idite na svojstva Hall ESP-a i vidimo da imamo senzor temperature koji se zove: ESP8256007b5b6d.bmet, zapamtimo.
    3. Kreirajmo skriptu koja će svake minute pisati vrijednost iz ESP temperaturnog svojstva u temperaturno svojstvo jednostavnog uređaja. Nazovimo to: SensorAssociation
    I dajmo mu kod:

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

    Spasimo naš scenarij!

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

    Zahtjev: MajorDoMo indikatori?
    Odgovor: Mnogi početnici često zapnu na ovom pitanju. Da, doista, bez dubokog poznavanja strukture, a posebno uzoraka, indikatore nije tako lako pronaći, ali znajući točno mjesto na kojem se nalaze, to neće biti nikakav problem. Prvo što bih želio reći je da su indikatori dio predloška, ​​tj. takozvani Web njuške ili (front-end, ako hoćete), jel zato? tamo ih treba tražiti. I tako, naša Web njuška može se nalaziti na dva mjesta. 1. Ako koristite standardni predložak, vjerojatno biste ga trebali potražiti ovdje: /www/templates/default.html 2. Ako ste, kao i ja, koristili alternativni predložak i pritom slijedili pravila, plemeniti web majstori, ne serite sa zadanim (ono što autor daje po zadanom), nikad se ne zna, što ako ga morate više prepravljati lijepo. Onda biste svakako trebali pogledati alternativni predložak: /www/templates_alt/default.html. Odlučili smo se za predložak, otvorite datoteku u uređivaču teksta: default.html i kako ne biste morali lutati po velikom tekstu tražeći ono što vam treba, potražite redak u datoteci: System.IndicatorColor Ovo je svojstvo (u kojem je vrijednost slika) statusa sustava, indikator broj jedan! Uvijek je prisutan, dodajući na njegovu sličnost svojstva u kojima se odvijaju slike, dobit ćete onoliko potrebnih pokazatelja koliko želite na glavnoj stranici.

    Ali to nije sve. Ovdje na ovoj mojoj stranici (LINK), moj predložak je prikazan kao glavna ilustracija, a ako bolje pogledate, primijetit ćete da se indikatori nalaze ne samo na desnoj strani glavnog predloška, ​​već iu izborniku . Ovo nije hir ili besmislica, jer prema zadanim postavkama, što ja koristim u MajorDroidu, ne možete vidjeti glavnu stranicu, glavna stranica je izbornik (napravit ću rezervaciju, ovo je u mom slučaju , jer ako želite, tamo možete prikazati scenu prema zadanim postavkama!) Stoga u izborniku također možete vidjeti dvostruke indikatore.
    Gdje ih tražiti? Jednostavno je, morat ćete ih sami napraviti ako vam stvarno trebaju.
    Dakle, kako to učiniti?
    Izrada stavke jelovnika sa Titula: država i postavite ga na sam vrh vašeg izbornika( Prioritet: 100000 ), Nadređena stavka: prirodno bi trebalo postojati KORIJEN.
    U Tip: izaberimo HTML blok.
    U polje Podaci: upišite sljedeći kod:

    Ovo je moja opcija, možete urediti kako vam odgovara, lako ćete razumjeti što, kako i gdje je. I oprostite na slici, samo je moj sustav dizajniran na takav način da hvata ovaj kod. Dakle, morat ćete ga prepisati rukom. Napomena: Liquid_Crystal je font koji imitira LCD sat, u tom stilu je napravljen moj predložak, ako želite isti, morat ćete ga preuzeti, ako vam nije bitno, onda ako ne Ako ne nađete Liquid_Crystal, sustav će spojiti Arial i napisati ga na vrhu.
    I na kraju, na mjestu: Razdoblje automatskog ažuriranja: zapisat ćemo 10 sek.
    Štedimo i dobivamo što smo htjeli.

reci($ph,$level)-- kaže frazu (koristi globalne varijable $voicemode [naime speak] i $commandLine [pretvara odgovor u echo utf2win(), inače samo echo]). $level označava razinu važnosti fraze (ovisno o trenutnim postavkama minimalne razine izgovora, fraza se može izgovoriti glasom ili jednostavno zabilježiti u povijesti poruka).

procesnaredba($naredba)-- šalje tekstualnu naredbu na izvršenje (na primjer, "recite mi koliko je sati"). Same naredbe se konfiguriraju pomoću metode ThisComputer->commandReceived.

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

setGlobal($varname,$value);-- postavljanje globalnog svojstva

procesna linija ($ linija);-- pokretanje skripte za sinkronizaciju

getRandomLine($filename);-- uzimanje nasumičnog niza iz tekstualne datoteke. $filename se može skratiti, na primjer file1 i tada će datoteka biti preuzeta./texts/file1.txt

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

playMedia($path);-- reproduciraj glazbu iz direktorija $path. Primjer

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

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

Rad s objektima

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

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

$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("ime_klase");-- vraća niz objekata navedene klase u nazivu obrasca. Primjer iteracije kroz objekte u petlji i postavljanja vrijednosti svojstava: $objects=getObjectsByClass("class_name"); foreach($objects as $obj) ( setGlobal($obj["TITLE"]..property_name",1); )

Vrijeme/intervali

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

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

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

jeWeekEnd()-- slobodan dan da/ne = 1/0 jeWeekDay()-- dan u tjednu da/ne = 1/0

vrijeme je ($tm)-- provjerava podudara li se trenutno vrijeme s onim prenesenim u formatu hh:mm

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

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

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

prepoznajvrijeme($tekst)-- funkcija pokušava izdvojiti određeno vrijeme/datum iz izraza. 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 zadnjeg poziva (u formatu vremenske oznake)

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

$ovo-- Pokazivač na sebe. Koristi se u razrednim metodama. 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);-- $ističe za nekoliko sekundi

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

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

ClearTimeOut("naslov");-- analogno ClearScheduledJob("title");

timeOutExists("naslov");-- vraća identifikator planiranog zadatka (ili 0 ako ga nema)

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

registriranovrijemedogađaja($eventName);-- vraća vrijeme zadnje registracije događaja $eventName (-1 ako još nije bilo takvog događaja)

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 pisma u HTML formatu

Prije nekog vremena, aktivnosti takozvanog neprofitnog partnerstva "Vologdska udruga udruga vlasnika stanova (HCB) i stambenih vlasnika" privukle su pažnju naših urednika.

Kako kažu čelnici Udruge vlasnika stanova, ciljevi stvaranja i djelovanja neprofitnog partnerstva "Vologdska udruga udruga vlasnika stanova (HSB) i stambenih vlasnika" su formiranje sustava koordinacije, međusobnog informiranja i interakcije vlasnika stanova, kao i zastupanje i zaštita njihovih interesa u tijelima državne uprave, lokalne samouprave, sudskim tijelima


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

Prema otvorenim podacima, osnivači NP "Vologdska udruga udruga vlasnika stanova (ZHSK) i stambenih vlasnika" su 2 pojedinaca: Suhikh Artjom Vladimirovič i Ivanov Nikolaj Leonidovič.


Politikom se bavi i Udruga vlasnika stanova koja svoje kandidate na izborima promovira trošenjem novca.

Ti pojedinci već nekoliko godina agitiraju vlasnike nekretnina da pređu na samoupravljanje svojim nekretninama. Glavni cilj osnivača Udruge HOA su stambene zgrade, u kojima vlasnici nekretnina (stanova) sanjaju o stvaranju vlastitog partnerstva.

U početku, HOA Udruga nudi vlasnicima punu pomoć u pripremi dokumenata potrebnih za registraciju HOA. Članovi uprave takvih HOA-a u pravilu su osobe daleko od sfere stambenih i komunalnih usluga i upravljanja stambenim zgradama, koje zbog svog materijalnog interesa potpuno kontroliraju Udruga HOA-a.

Rezultat takve suradnje uvijek je isti: nedostatak neovisnosti HOA u odabiru izvođača, izvođenje radova po napuhanim cijenama, povlačenje sredstava dodijeljenih za popravke i održavanje stambenih objekata organizacijama koje kontrolira Udruga HOA.

Shema NP "Udruga HOA"

Što se zna o tim organizacijama?

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

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

Predstavnik Sokol LLC je Artem Vladimirovich Sukhikh, s punomoći izdanom na deset godina, isti A.V. Sukhikh. koji je s Ivanovom suosnivač Udruge udruga vlasnika stanova.

U travnju 2019. primili smo informacije o pritužbama stanovnika kuće br. 9 u Lavrovoj ulici u gradu Vologda o nezakonitom oduzimanju kuće pod upravom Sokol Management Company LLC.

Ranije u ovom stambena zgrada inicijativa građana osnovala je udrugu vlasnika stanova koja je upravljala stambenim zgradama.

Čim je LLC društvo za upravljanje "Sokol" počelo upravljanje, vlasnici su se osjećali, kako kažu, za sebe. Kao rezultat pranja izmjenjivača topline, rashladna tekućina je ušla u vodu koja se isporučuje stanovnicima kuće, zbog čega je voda postala zelena. Pola kuće još uvijek nema tople vode. Cijevi u podrumu stalno cure. LLC društvo za upravljanje "Sokol" ne poduzima nikakve radnje za povratak Vruća voda u stanove vlasnika, a također ne poduzima mjere za popravak ili zamjenu izmjenjivača topline. Čišćenje zajedničkih prostorija u kući je nekvalitetno, a ponekad se uopće ne obavlja. Jedina stvar koju Društvo za upravljanje Sokol LLC radi pravodobno i kvalitetno je distribucija potvrda za plaćanje usluga poštanskim sandučićima, a Artem Sukhikh odlazi vlasnicima i zahtijeva plaćanje. Ljudi su ogorčeni što se od njih traži da plate radove koji zapravo nisu dovršeni.

Osim toga, društvo za upravljanje doo "Sokol" pokušava povući sredstva, navodno za popravak jednog od liftova u zgradi, iako na temelju rezultata tehničkog pregleda postoji zaključak da je lift u dobrom stanju i da ne zahtijevaju popravke.

Na ovaj trenutak nepravilnog upravljanja zgradom broj 9 na ul. Lavrov, Vologda, potvrđeno izvješćem o inspekciji provedenom protiv tvrtke za upravljanje Sokol LLC. Dana 28. lipnja 2019. Odjel za komunalne usluge Gradske uprave Vologde izdao je nalog tvrtki za upravljanje Sokol LLC da ukloni kršenja zahtjeva licenciranja za upravljanje organizacije.

Postaje nejasno zašto “Neprofitno” partnerstvo Udruge vlasnika, čija je svrha pomoći stanovnicima u stvaranju Udruge, djeluje u suprotnom smjeru, seleći kuće od Udruge kontroliranim organizacijama, što je Sokol Management Company LLC.

Šef LLC društva za upravljanje Sokol je direktor Bazhenov Alexander, kojeg kontroliraju Ivanov N. i Sukhikh A.

Treba napomenuti da je, zahvaljujući brižnim stanovnicima, odluka vlasnika da izaberu Sokol Management Company LLC proglašena nezakonitom od strane Gradskog suda u Vologdi i potpuno poništena.

2. LLC "SU-35"

Sudionici SU-35 LLC su Ulyana Pavlovna Borodii i Maxim Alekseevich Dobrelya. Artem je u stalnim poslovnim odnosima s potonjim Sukhikhom.

U ovom trenutku, odlukom Arbitražnog suda Vologdske regije, SU-35 LLC je proglašen nesolventnim (stečaj) i otvoren je stečajni postupak.

U početku, 10. travnja 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 postupka nadzora u odnosu na SU-35 LLC, Sukhoi je, zajedno s upravom Su-35 LLC, POKUŠAO PODIZANJE NOVCA S TEKUĆIH RAČUNA. Za provedbu ovog pokušaja, bez suglasnosti privremenog upravitelja, sklopljen je sporazum između SU-35 LLC i Suhoja o izmjeni postojećih uvjeta ugovora.

Zapravo, uz prethodno dogovorenu mjesečnu plaću od 30.000 rubalja 00 kopejki, pored navedenih isplata, za iste dužnosti koji su dodijeljeni Sukhikh A.V. ugovor o radu, stranke dogovoreno je povećanje plaće za 270 500 rubaljamjesečno. (811 500 rubalja za razdoblje od 28. travnja 2018. do 17. srpnja 2018.)

Kako bi povlačenje sredstava izgledalo legalno, 20. studenog 2018. A.V. podnio tužbeni zahtjev o naplati zaostalih plaća od SU-35 LLC u iznosu od 1 082 229 rubalja 99 kopejki. Međutim, Gradski sud u Vologdi udovoljio je zahtjevima A.V. Sukhikha. samo djelomično, povrativši od SU-35 LLC dug u iznosu 70 117 rubalja 46 kopejki.

Kasnije je Arbitražni sud regije Vologda sporazum o promjeni postojećih uvjeta ugovora o radu proglasio nevažećim. Sudskom presudom utvrđeno je nepošteno ponašanje A.V. Sukhikha. , izražen u sklapanju Ugovora u uvjetima činjenice nelikvidnosti (stečaja) SU-35 LLC utvrđene od strane suda (u postupku praćenja), te sporazuma o uvjetima povećanja plaća za obavljanje radnih dužnosti prethodno dodijeljen Suhoju od strane Ugovor o radu, što ukazuje na prisutnost znakova ništavosti transakcije utvrđene člankom 10 Građanski zakonik RF (transakcija izvršena mimo zakona s ciljem nanošenja štete)

3. DOO "Metprom"

Direktor Metroprom LLC je Artem Vladimirovich Sukhikh. U ovom trenutku Metrprom LLC je likvidiran odlukom Federalne porezne službe. Registar pravnih osoba u odnosu na Metprom doo sadrži podatke o nepouzdanosti podataka o adresi pravne osobe.

Nepouzdana pravna adresa jedan je od znakova preletljive organizacije.

Što se još zna o Artyomu Vladimirovichu Sukhikhu?


Kao osnivač i odvjetnik NP "HOA Association", Sukhikh pruža pravne usluge udrugama vlasnika kuća.

Kako smo saznali, iz HOA na adresi Vologda, Tekhnichesky Lane, 56, udruga HOA koju zastupa A.V. Sukhoikh. sklopljen je ugovor o pružanju usluga naplate potraživanja od vlasnika nekretnina koji su dugovali novac za usluge popravka i održavanja s nestambeni prostori. Trošak takve usluge procijenjen je na dvadeset tisuća rubalja. (u usporedbi s tržišnom cijenom, 10 puta je precijenjena), međutim, prema riječima predsjednika Udruge vlasnika stanova, A.V. Sukhikh nije pružio usluge naplate duga iz nategnutog razloga. Pokušaji povrata novca bili su neuspješni, jer je predsjednik Udruge HOA, Nikolaj Ivanov, na sve moguće načine zanijekao svoju povezanost sa Sukhikhom, iako je zapravo veza očita, jer je Sukhikh suosnivač Udruge. Novac nikada nije vraćen predsjedniku.

Svjesni smo i još jednog slučaja nekvalitetne usluge. pravne usluge udruga vlasnika kuća.

U prosincu 2016. Sukhikh A.V. u ime HOA, podnio je zahtjev protiv jednog od programera za povrat troškova rada potrebnog za uklanjanje nedostataka napravljenih tijekom izgradnje kuće. U prosincu 2018. Arbitražni sud regije Vologda u cijelosti je odbacio zahtjeve. U svojoj odluci sud je naveo sljedeće:

“Sud je također uzeo u obzir i priznao opravdanim iskaz svih tuženika o zlouporabi prava tužitelja, koji je, znajući da je u vrijeme podnošenja tužbe, nositelj zahvata pokrenuo postupak likvidacije, a tijekom suđenja, kao i da je u postupku likvidacije nositelj tužbe, kao i da je tužitelj u postupku likvidacije. punomoćnik ovog tuženika odmah je obavijestio sud o prihvaćanju predmeta o stečaju društva, nije podnio nikakve prijave za upis u registar tražbina vjerovnika, nije koristio svoja prava vjerovnika u okviru tuženika. stečajnom predmetu, nije sudjelovao na skupštini vjerovnika, nije zahtijevao supsidijarnu odgovornost sudionika društva, ako ih ima, nije se izjasnio iz razloga, odnosno dobrovoljno je odbio ostvarivati ​​svoja prava koja su mu zakonom priznata.”

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 uklanjanje građevinskih nedostataka, HOA je primio samo pravne troškove u obliku državne pristojbe u iznosu od 43 003 rublja, ogromne troškove za provođenje građevinskog pregleda, čiji je trošak premašio 100 000 rubalja, troškove plaćanja za usluge "specijalista visoke klase" A.V. Sukhikh., kao i dvogodišnja pravna bitka s unaprijed određenim rezultatom. Time je obogaćeno samo Neprofitno partnerstvo Udruge vlasnika stanova

Odbijanje HOA, koju zastupa predstavnik A.V. Sukhikh. , od ostvarivanja svojih prava sugerira korupcijsku komponentu kod investitora u stečaju. Kao rezultat toga, jedine žrtve su oni koji žive u zgradi investitora s građevinskim nedostacima, kada je Sukhikh A.V. prima novac za svoje usluge, a programer je uspješno likvidiran bez ikakve prepreke.

Rezultat rada Udruge HOA je predvidljiv i vrlo tužan. Vlasnici dobivaju imaginarnu neovisnost i imaginarnu moć nad svojom imovinom, a Udruga kućevlasnika i organizacije koje ona kontrolira obogaćuju se na račun kućevlasnika. Odgovornost za sve postupke u ovom slučaju, prema važećim zakonskim propisima, snosi samo HOA, a udruga ni u kojoj mjeri ne snosi odgovornost za svoje postupke.

Nastavit će se.

Ja ću izraziti svoje mišljenje o proizvodu, možda će nekome biti od koristi.
Stručnjaci, prije svega integratori, vjerojatno neće biti zainteresirani za MajorDoMo, sve dok ne postoji normalan proizvod u kutiji, nema normalne tehničke dokumentacije, nema podrške 7/24, nema prodajne mreže, nema bonusa.

Malo je vjerojatno da će to zanimati i samograditelje; nema globalnih razlika u odnosu na, recimo, OpenHab ili ioBroker.

Ali za one koji se tek spremaju izgraditi sustav pametne kuće i žele razumjeti što zapravo žele i što pametna kuća može učiniti, vjerojatno ima smisla neko vrijeme petljati sa sustavom. Osobno sam već navukao nekoliko desetaka svojih prijatelja na MajorDoMo.

Sve se odvija na banalan način, navečer dolaze gosti na roštilj - boohaching. Kad padne sumrak, MajorDoMo automatski pali svjetlo na verandi, da pojačam efekt, dajem glasovnu naredbu UD-u da uključi radio ili glazbu. Koristim svoj glas za kontrolu razine zvuka ili prebacivanje na drugu radio stanicu ili pjesmu.

Zatim dovodim goste u kuću i opet svojim glasom tražim od pametne kuće da ispriča o sebi. (Konfigurirao sam ovaj demo način rada). UD počne paliti i gasiti svjetla, kaže vremensku prognozu, pali televizore, splitove i još desetak razmetanja.

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

Samo tako da potrošite nekoliko sati na te lekcije, bez osnovno znanje u programiranju, bez razumijevanja logike, strukture i drugih stvari, samo glupo ponavljajući sve radnje na videu, možete.

Postavite budilicu na svom računalu koristeći svoj glas i reproducirajte kada se uključi glazba ili radio
Glasom upravljajte media playerom na računalu
Organizirajte videonadzor pomoću bilo kojeg pametnog telefona ili tableta
Pratite kretanje i lokaciju djece, na primjer, pomoću GPS-a
Upravljajte online radio postajama na svom računalu svojim glasom
Nabavite pametan popis za kupovinu
Glasom slušajte vremensku prognozu na računalu
Postavljajte pitanja glasom i primajte odgovore s wikija
Dodajte i brišite zadatke iz svog dnevnika glasom.
Glasovni podsjetnici.
Primite trenutne tečajeve glasom na zahtjev
Čitajte dolazne SMS poruke glasom
Daljinski isključite računalo
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 filmske sažetke

Dovraga, umoran sam od pisanja, pa ima još puno toga...

I sve ovo nije napisano niti jednom linijom koda (sav kod je objavljen ispod videa)

Tijekom proteklih godinu i pol, sve više i više integratora i ljudi iz građevinske industrije kucalo nam je na vrata tražeći od nas da naučimo kako raditi sa softverom i "napraviti Smart Home".
Trenutačno nekoliko desetaka integratora (po cijelom CIS-u) implementiraju Smart Homes na Majordomo. Ne plaćamo im ništa (bez bonusa, bez prodajnih popusta) – tako je. ALI njihovi klijenti ne moraju platiti ni softver. I uz pomoć Majordoma, koristite više proračunske opreme.
Sve to uvelike smanjuje konačni trošak za kupce

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

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