Kako pokrenuti metodu iz skripte u majordomu. MajorDoMo

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

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

Radi lakšeg razumijevanja i implementacije, kôd možete postaviti na različita mjesta. Radi razumijevanja, navest ću jednostavan primjer ovog pristupa. Pretpostavimo da imamo potrebu izvršiti neki apsolutno identičan kod, pritiskom na gumb u izborniku i glasovnom naredbom. Ovaj kod možemo napisati izravno i na gumb izbornika i na glasovnu naredbu. Glomazno zar ne? Ili ga možemo staviti u skriptu, a zatim pozvati ovu skriptu s apsolutno bilo kojeg mjesta u jednom retku. To je, zapravo, cijela tajna ove prividne složenosti. 🙂

Otuda i jednostavna formula. Ako se neki kod planira izvršiti s jednog mjesta, onda ga napišemo izravno odakle i izvršit ćemo ga. Ako vam treba pristup s barem dva mjesta, već biste trebali razmisliti o skripti.

Gdje su ova mjesta za šifru?

  • Pa, naravno da su skripte. (Administracijski izbornik/OBJEKTI/Skripte ).
  • Metode (Administracijski izbornik/OBJEKTI/Objekti ), o čemu ću kasnije detaljnije govoriti.
  • Izbornik (Administrativni izbornik/OBJEKTI/Kontrolni izbornik ).
  • Kontrola glasa (Administracijski izbornik/OBJEKTI/Ponašanja ).
  • Vizualna kontrola na planu zgrade (Administrativni izbornik/OBJEKTI/Scene ).
  • Ekstrahiranje podataka s web stranica (parsing) (Administracijski izbornik/OBJEKTI/Web varijable ).

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

Scenariji.

Sa scenarijima je sve jasno. U njima propisujemo kod koji želimo izvršiti s različitih mjesta.

Izbornik, upravljanje glasom i scene.

U njih zapisujemo najdraže indikatore, tipke, prekidače, regulatore ...

Mogu se napisati:

  1. Sav kod.
  2. Izravan prijelaz na skriptu (odabirom unaprijed pripremljene skripte s popisa).
  3. Mješoviti tip (na primjer, kada razradimo dio koda izravno u gumbu, na primjer, njegovu indikaciju, zatim idite na skriptu i učinite ono što je napisano u njemu).

Parsing.

Uglavnom, raščlanjivanje ovdje je izvlačenje podataka s tuđih stranica predstavljenih na mreži postavljanjem početka i kraja potrebnog dijela teksta. PHP ovdje igra prilično pomoćnu ulogu i koristi se relativno rijetko.

Evo primjera. Recimo da trebate dobiti temperaturu sa stranice, uvjetno "Prognostičar". Koristimo posebne znakove za označavanje početka i kraja teksta koji nam je potreban (neka to bude broj trenutne temperature). Nadalje, s određenom učestalošću koju smo postavili, ovaj se broj čita i upisuje u svojstvo. Više o nekretninama kasnije. Za sada samo znajte da je očitani broj pohranjen kod nas na određeno mjesto dok se ne promijeni. Čim se to dogodi, brojka će se promijeniti na ovom mjestu (svojstvu). Parametar (temperaturnu brojku) zabilježen u svojstvu obrađujemo na potreban način. Pretpostavimo da za izbornik dodamo riječi ispred prikazanog broja: "Na ulici: " i onda "°C » .

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

Na ulici: i°C to je samo tekst.

ALI:Ovo Računalo.Sinoptik_temp samo naše vlasništvo, gdjeOvo Računalo ovo je klasa iSinoptik_temp to je svojstvo ove klase, a točka se koristi kao graničnik. Sve ćete ovo razumjeti čitajući u nastavku. O da, % su graničnici za izbornik, obično se koriste navodniki u kodu.

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

Objekti.

I konačno, još uvijek imamo objekte, upravo mjesto gdje leže naša svojstva i ne samo. Objekti se, također, na prvi pogled čine kao komplicirana stvar. Ali ovo je samo na prvi pogled. 🙂

Objekt ovo je prikaz nečega, na primjer: računalo (kao u primjeru iznad), ili budilica, ili timer, ili čak Skype ... Općenito, bilo što.

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

Struktura je ovdje sljedeća:

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

1.1. Ovajrazreda možete postavitiSvojstva (ako, na jednostavan način, postavljanjemučionica ESP imovinetemperatura automatski će se pojaviti u svima namaobjekti klase ESP , tj. neće biti potrebno stvaratiimovine , svakomeobjekt ).

1.2 Ovorazreda , također možete postavitimetode (tj. izvršenje nekog koda, ovemetode takođerSvojstva pojavljuju u svim našimpredmeta ).

1.3. I na kraju, naravno,učionica tamo jepredmeta . To su već, izravno, naši fizički ESP-ovi: ESP-12 br. 1, ESP-12 br. 2, itd.

Svakiobjekt (ESP-12 #1, ESP-12 #2, itd.), zauzvrat, ima svojeSvojstva imetode .

Svojstva su dvije vrste. svojstva klase i Svojstva objekta njihova razlika leži u činjenici da se svojstva registrirana u klasi automatski pojavljuju u svim novim objektima, a svojstva dodana objektu nalaze se samo u njemu. To se radi kako bi se, s jedne strane, riješilo nepotrebnog pisanja, a s druge strane, kako bi se osiguralo individualno Svojstva. Metode stvoreni su samo u klasi, a već su registrirani samo u objektu.

Objasnit ću primjerom:

Recimo da imamo ESP-12 #1 i ESP-12 #2. Na oba trebamo izmjeriti temperaturu, ali osim ovoga na prvom trebamo izmjeriti i vlažnost, a drugom upravljati relejem.

RadeRazred ESP , pišemo u njemuimovine Temperatura . Automatski će se pojaviti u svojstvima ESP-12 #1 i ESP-12 #2. Dalje izravno, za ESP-12 br. 1, već u njegovomSvojstva , propisujemoVlažnost . NASvojstva isti, ESP-12 br. 2 registriramo Relej. Kao rezultat, imamo ESP-12 br. 1 sa svojstvima u kojima će sustav bilježiti vrijednosti temperature i vlažnosti ​​ i ESP-12 br. 2 sa svojstvima u kojima će sustav bilježiti vrijednost temperature i status releja (0-Isključeno, 1-Uključeno). I, sukladno tome, metode koji će nam pomoći da obradimo upravo te podatke, ako bude bilo potrebe za tim, pokrenut ćemo to u razredu ESP, a mi ćemo u njih već osobno upisati kod za svaki objekt.

Treba napomenuti da se metode mogu pozvati s bilo kojeg mjesta. callMethod("Object.Method", $params); ili alternativno cm cm("Objekt.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 linija:getURL(gg('AlarmOne.UrlAlarmRing'),0); otvorit će vezu pohranjenu u svojstvuAlarmOne.UrlAlarmRing

Sada sigurno imate sve da razumijete kako MajorDoMo radi.

Popravimo to konkretnim primjerom:

Prebacili smo firmware s wifi-iot.com na naše ESP-12 module #1 i #2. Prvi očitava temperaturu i vlagu, a drugi temperaturu i upravlja relejem. Oba ESP-12 šalju podatke MajorDoMo u redovitim intervalima, gdje ih prima skripta koja razlaže primljene podatke u svojstva. I konačno, uzimamo te podatke iz svojstava i koristimo ih po vlastitom nahođenju, odnosno ubacujemo potrebno svojstvo već tamo gdje ga treba prikazati ili primijeniti.

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

Također, iz istih svojstava uzimamo sve iste temperature i prikazujemo je u izborniku ili na pozornici za vizualnu prezentaciju.

A ujutro će nam metoda koja se pokreće iz objekta Budilnik pokrenuti skriptu koja će nam, nakon što se konačno probudimo i isključimo melodiju, glasom pročitati trenutnu vremensku prognozu. A što mislite odakle mu brojke o temperaturi i vlažnosti? Točno, od nekretnina!

I možete izgraditi koliko god želite, sve dok ima dovoljno mašte, ovdje imate fleksibilnost koju sam obećao.

Što je sljedeće?

Pa, sada kada ste već razumjeli strukturu MajorDoMo-a, reći ću vam o HDMI matrici, gdje ćemo već vidjeti interakciju uređaja u MajorDoMo-u. I na kraju, prijeći ću na ozbiljniju prezentaciju, s kodom, slikama, dijagramima i ostalim užicima... Općenito, dosta gole teorije, sada će uglavnom biti prakse.

Dakle HDMI 4×2 matrica 4K x 2K 3D .

    Odmah moram 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 uspije uvijek 🙁 . Ako vidite da tekst komentara prelazi granice, samo okrenite pametni telefon na bok (Pejzažna orijentacija), pametni telefoni, oni su drugačiji.

    Analizirajući svoj blog, naišao sam na nekoliko upita za pretraživanje, kao što su: - Gdje je datoteka menu.html ili scenes.html itd.
    Odgovori na takva pitanja vrlo su jednostavni da im se posveti poseban blog. Stoga ću im odgovoriti u komentarima.
    Prema zadanim postavkama, sve datoteke koje tvore izgled terminala nalaze se u mapi /templates; ako već imate instaliranu kožu treće strane, te datoteke trebate potražiti u mapi /templates_alt. Mapa /templates_alt ima veći prioritet od /templates i sve u njoj se prvo obrađuje. Ako nešto nedostaje u njemu, motor se okreće u /templates mapu za onu koja nedostaje. Pa, vjerojatno, na temelju gore navedenog, vrijedi napomenuti da ako ćete staviti vlastiti predložak (skin) na MajorDoMo, trebali biste kreirati mapu /templates_alt (ako još nije kreirana) i izvesti sve eksperimente u to. To će vas spriječiti da izgubite sve što ste primili prema zadanim postavkama u slučaju neuspjeha.

    Postojao je i ovaj zahtjev: -MajorDoMo ne prihvaća podatke...
    MajorDoMo prima podatke, obično izvršavanjem neke vrste skripte koja ili prima te podatke ili ih čita, a zatim ih skripta stavlja u svojstva koja ste pripremili za ovo svojstvo, odakle se podaci koji su vam potrebni naknadno čitaju i koriste. Te se skripte obično pokreću; Ili izvana, s poslužitelja treće strane (pa, recimo, kao u slučaju ESP8266, koji slanjem podataka pokreće skriptu espdata), tako mi dobivamo podaci (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 podatke s bilo kojeg mjesta. 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, na ovaj način dobivamo vrijeme izlaska i zalaska sunca. Web varijabla uzima vrijednost vremena s neke vremenske stranice, upisuje je u svojstvo, a zatim, već u metodi, vršimo obradu (drugim riječima, uspoređujemo trenutno vrijeme s vremenom zalaska sunca), zbog čega Alice nam, u pravo vrijeme, govori — Sunce zalazi. i, ako je potrebno, izvodi sve radnje ili 🙂 pokreće potrebnu skriptu.
    Dakle, ako MajorDoMo ne prihvaća nikakve podatke, prije svega vrijedi pronaći skriptu ili izvor (na primjer, kao u slučaju web varijable) koji je odgovoran za to i provjeriti njegovu izvedbu. Za to su osigurani svi mehanizmi, od elementarnog pokretanja skripte, izravno iz njezinih postavki, klikom na poveznicu propisanu na stranici njenih postavki, pa do analize dnevnika, kao što je npr. dostupno na webu. varijable.

    I na kraju, treći zahtjev koji sam vidio: -MajorDoMo jednostavni objekti
    Ovdje je vrijedno napomenuti da je upit napravljen malo pogrešno. Iako objekt sve se može, nedavno je u sustav uveden dodatni koncept: Jednostavni uređaji. To je učinjeno kako bi se olakšao život početnicima. Iskreno govoreći, nisam ga još koristio, jer radim samo na razini tih istih objekata. Ali usmjeriti malog čovjeka na pravi put: (Simple Devices) moglo bi, doslovno, u sekundi. Stoga se slobodno registrirajte i pitajte u komentarima. U svakom slučaju, puno ih češće razmatram nego što analiziram upite za pretraživanje.

    Sjedim, tiho pišem članak o čajniku, ali sam se ispire, pogledaj metriku. Odustala sam i odlučila pogledati. I vidim još jedan upit za pretraživanje: - Struktura baze podataka MajorDoMo
    Teško je odmah odgovoriti na ovo pitanje, ne znajući u početku što osoba želi konkretno. Struktura, kako se sustav popunjava, bit će različita za svakoga, netko će instalirati ovaj ili onaj modul, ovu ili onu aplikaciju, a nekome to neće trebati ... Tablice, odnosno, također imaju daleko od tipičnih polja. Stoga ću u ovoj fazi dati svoj popis, a tamo, ako nekoga zanima nešto konkretno, pitajte pa ćemo pogledati.

    Zahtjev: Kako napisati vrijednost svojstvu?
    Odgovor: U većini slučajeva vrijednost u svojstvu se upisuje automatski, međutim, to se može učiniti ručno. Pročitajte članak o Broadlink SP3 socketu i nikada više nećete imati takva pitanja.

    Zahtjev: MajorDoMo, varijable web temperature?
    Odgovor: Zaseban članak će vjerojatno biti posvećen web varijablama kako bi se dala predodžbu o najtežoj stvari, na prvi pogled, o filtriranju. Zasad konkretan odgovor na konkretno pitanje.
    Trenutnu temperaturu ćemo uzeti sa stranice Prognostičar zbog njene stabilnosti i postojanosti.
    Izradite web varijablu s Ime: Sinoptik_temp
    NA Veza zapisujemo: https://sinoptik.com.ru/weather-Volgograd U vašem slučaju, Volgograd se mijenja u vaš grad.
    NA Obrazac pretraživanja:

    Povezani objekt: Ovo Računalo
    Nekretnina: Sinoptik_temp ovo svojstvo treba kreirati na objektu This Compuer (pročitajte ovaj članak i članak o utičnici SP3).
    Interval provjere: 600
    To je sve, sada će svakih 10 minuta Mzhor čitati trenutnu temperaturu u vašem gradu iz Prognostičara i zapisivati ​​je u svojstvo Sinoptik_temp, s kojim možete raditi što god želite, prikazivati ​​ga u skriptama itd...

    Zahtjev: MajorDoMo, zalazi li sunce?
    Odgovor: U MajorDoMo-u postoje dva načina rada, i to Night Mode i Dark Mode. Noćni način rada, uključuje se po satu, prema zadanim postavkama od 20:00 do 8:00. Ovaj način rada je vrlo prikladan, na primjer, za isključivanje glasovne najave. Način rada, tamno doba dana, uključuje se pri zalasku sunca i isključuje se pri izlasku, ovaj način je prikladan, na primjer, za upravljanje uličnom rasvjetom. Podaci specifični za lokaciju dobivaju se primjenom web varijabli. Koji se naknadno pohranjuju u svojstva ThisComputer.SunRiseTime i ThisComputer.SunSetTime i obrađuju u metodi onNewMinute klase Timer.

    Zahtjev: Glavne varijable MajorDoMo?
    Odgovor: Funkcije gg (getGlobal) i sg (setGlobal) govore same za sebe, dobro, a naša svojstva, s obzirom na to da imaju tendenciju mijenjanja, su te iste globalne varijable. Recimo da imamo određeni scenarij i moramo nešto učiniti sa svojstvom, recimo, promijeniti graničnu temperaturu termostata. Pomoću funkcije getGlobal uzimamo vrijednost svojstva u našu skriptu i zapisujemo je u lokalnu varijablu, neka bude: $temp_term. S ovom lokalnom varijablom, u našoj skripti, već radimo transformacije koje su nam potrebne, i konačno, zapisujemo promijenjeno stanje $temp_term, koristeći setGlobal funkciju, natrag u svojstvo. Pa s imovinom, kao što već znamo, možemo što hoćemo. Primjerice, prikazati njegovu vrijednost na ekranu, poslati je na fizički termostat ili čak govoriti kroz zvučnike sustava... Inače, kad smo već kod globalnih varijabli, vrijedi istaknuti ugrađene funkcije sustava. Treba imati na umu da postoji određeni skup funkcija i varijabli koje se implementiraju isključivo za sustav. Sjećate se da sam spomenuo da većinu vremena radimo s PHP-om, ali postoji i nešto ugrađeno? Možete vidjeti ugrađene funkcije. A kada pogledate, obratite pozornost na stavku “Upravljanje ciklusima (uslugama)”, tamo ćete jednostavno naići na ugrađenu globalnu varijablu i shvatiti da je metodologija svugdje ista.

    Zahtjev: MajorDoMo html blok koristi vrijednost iz varijable?
    Odgovor: Ja, na primjer, radim ovako: Vanjski: %ESP8266003b5df7.dhtt1%°C(tj. napišem simbol ° s tipkovnice) i onda je raspored do sranja. Simbol stupnja je postavljen na ALT + 0176, brojevi se upisuju na numerički dio tipkovnice (LINK NA WIKEPEDIA).
    Neki rade ovakve stvari:
    %KitchenMain.dhtt1%°C a onda moraš staviti C isključivo na engleskom prijevodu. Osobno nisam probao, ali je rečeno: (LINK NA FORUM).
    Pažnja! Ako netko odluči copy-paste: %KitchenMain.dhtt1%°C imajte na umu da se ovdje na blogu prikazuje ne kao simbol stupnja, već kao ° Zamijenio sam englesko slovo u kodu znakova e na ruski, ne zaboravite vratiti natrag!
    Pa i tako dalje... Bla, bla, bla: %OBJECT.PROPERT% bla, bla, bla. Bla, bla, bla na bilo kojem jeziku, čak i na kineskom.
    Ako trebate, na primjer, prikazati vlažnost, učinite ovo: %ESP8266003b5df7.dhth1%% drugi % bit će samo simbol.

    Zahtjev: Da bi se majordomo skripta izvodila svakih sat vremena?
    Odgovor: Idite na metodu: OBJECTS / Objects / Timer / onNewMinute i na samom kraju dodajte:

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

    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, idite na: Glavni izbornik administratora/POSTAVKE/Početne stranice, kliknite na gumb "Nova stranica", U polju Ime(*) napišite naziv kartice na popisu Vrsta birati URL, u polju Veza, napišite adresu stranice. Za lokalne stranice dovoljno je navesti lokalni put, na primjer: /Template_alt/pagename.html . Ako imate stranicu u vlastitoj mapi i ima indeksnu datoteku, trebate samo navesti mapu, na primjer: /Kinoteatr/

    2. Recimo da želite u MajorDoMo umetnuti neku web stranicu s interneta kako biste je stalno koristili. Vrlo je jednostavno. Da biste to učinili, trebate koristiti aplikaciju "Poslane veze" ( Čitati na tržištu dodataka).
    Primjer. Imate preglednik na poslu. Izrada oznake preglednika sa Titula: Pošaljite MJD-u i na terenu URL propisati:

    javascript:(function()(varhost=" Adresa vašeg MajorDoMo-a"; 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="(!LANG:+encodeURIComponent(title);))());

    NE ZABORAVITE PROMIJENITI: Adresa vašeg MajorDoMo-a !!!
    Stavljamo ga na istaknuto mjesto, na primjer, u traku oznaka (koja se, naravno, prvo mora prikazati).
    Sada, bez obzira na kojoj se stranici nalazite, samo kliknite na ovu karticu i stranica će se pojaviti u MajorDoMo-u, na kartici Veze. Obratite pažnju tamo (u otvorenoj kartici Linkovi) na malu ikonicu u gornjem lijevom kutu, klikom na nju otvorit ćete izbornik u kojem možete: Odaberite stranicu koja će se trajno prikazati u okviru (u kartici), Ručno dodajte novu stranicu (ako iz nekog razloga ne želite koristiti oznaku), i na kraju uzmite samu vezu da biste stvorili oznaku (Pažnja! Ako odatle preuzmete vezu, obratite pažnju na: host="mycomp" !} mycomp ovo je poveznica na vaš MajorDoMo, u pravilu može postojati lokalni IP, morat ćete ga promijeniti ili u vanjski IP ili u naziv domene. Općenito, preporučio bih vam da koristite naziv domene, to je prikladnije u svakom pogledu. Tako, na primjer, imate ime domene izvan i registrirate njegovu povezanost u lokalnoj mreži, imat ćete samo jednu poveznicu koju možete koristiti posvuda, što je vrlo zgodno kada radite s mobilnim aplikacijama, Taskerom itd. nema potrebe da se nadate da ćete nešto promijeniti kad ste kod kuće, a zatim vani).

    3. Konačno, ako želite, možete umetnuti svoju stranicu izravno u scenu. Pa, na primjer, ako imate neku gotovu stranicu sa grupom gumba itd. Više saznajte ovdje: (LINK)

    Zahtjev: Pokretanje metode MajorDoMo objekta?
    Odgovor: Metoda se poziva linijom:

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

    Ranije sam u komentaru o globalnim varijablama pisao o internim funkcijama i citirao (LINK), na istom mjestu u odjeljku "Rad s objektima" naći ćete i metode.

    Zahtjev: Kako napisati vrijednost iz svojstva jednog objekta u svojstvo drugog?
    Odgovor: Za početak, vrijedno je utvrditi zašto je to potrebno. To je potrebno, na primjer, kada trebate stvoriti jednostavan uređaj , recimo temperaturni senzor, a fizički imate složen uređaj npr. ESP modul na koji je spojeno mnogo senzora, uključujući i temperaturni senzor. No, s obzirom na činjenicu da ESP nije jednostavan uređaj i da je skripta za upisivanje svih njegovih senzora složena (tj. vrijednost se upisuje u svojstvo sastavljanjem identifikatora kao objekta i, zapravo, svojstva. Ukratko, kod je jedan, a podaci se zapisuju u svojstva različitih ESP-a), njegova izravna upotreba u jednostavnim uređajima je nemoguća.
    Kako nastaviti?
    1. Kreirajte jednostavan uređaj , senzor temperature. Na izlazu ćemo dobiti par Object.Property, na primjer: Sensor_temp01.value prisjetimo se toga.
    2. Saznajte naziv temperaturnog osjetnika ESP-a koji nas zanima (recimo da želimo koristiti temperaturni senzor iz BME-280 koji je spojen na prvi ESP modul koji imamo u hodniku), idite na svojstva hale ESP i vidimo da imamo senzor temperature koji se zove: ESP8256007b5b6d.bmet, sjeti se.
    3. Kreirajmo skriptu koja će svaku minutu zapisivati ​​vrijednost iz svojstva temperature ESP u svojstvo temperature jednostavnog uređaja. nazovimo to: Udruga senzora
    I napišite kod za to:

    //Zapisuje podatke svake minute od ESP8256007b5b6d.bmet do Sensor_temp01.value
    $templ = getGlobal("ESP8256007b5b6d.bmet");
    setGlobal(("Sensor_temp01.value"),$templ);

    Sačuvajmo našu skriptu!

    4. I na kraju, stavite skriptu da se izvršava svake minute u metodi timera: onNewMinute

    Zahtjev: MajorDoMo indikatori?
    Odgovor: Mnogi početnici često zapnu oko ovog pitanja. Da, doista, bez dubokog poznavanja strukture, a posebno uzoraka, indikatore nije tako lako pronaći, ali poznavanje točnog mjesta gdje se nalaze neće biti, apsolutno, nikakav problem. Prvo što bih želio reći je da su indikatori dio predloška, ​​t.j. takozvani Web lica ili (front-end, ako želite), pa? tu ih treba tražiti. I tako, web brnjicu možemo imati na dva mjesta. 1. Ako koristite standardni predložak, vjerojatno biste ga trebali potražiti ovdje: /www/templates/default.html 2. Ako, kao ja, imate primijenjen alternativni predložak, a pritom se poštuju pravila plemenitih webmastera, ne zajebajte zadano (što Autor daje po defaultu), nikad se ne zna, i odjednom morate to ponoviti ljepše. Zatim, svakako, trebate 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 lutali teškim tekstom, u potrazi za pravim, tražimo redak u datoteci: System.IndicatorColor ovo je svojstvo (u kojem je vrijednost slika) statusa sustava, indikator broj jedan! Uvijek je prisutan, dodajući u svojoj sličnosti svojstva u kojima se nalaze 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 dobro pogledate, primijetit ćete da indikatori imaju mjesto ne samo desno u glavnom predlošku, već i u izbornik. Ovo nije hir i nije glupost, jer po defaultu, koji koristim u MajorDroidu, ne možete vidjeti glavnu stranicu, tamo je glavna stranica izbornik (rezervirat ću, ovo je u mom slučaju, jer ako želite, tamo možete prikazati scenu prema zadanim postavkama!), dakle, također možete vidjeti duple indikatore u izborniku.
    Gdje ih tražiti? Jednostavno je, morat ćete ih sami napraviti ako vam baš zatreba.
    Pa kako to učiniti?
    Izrada stavke jelovnika sa Titula: država i stavite ga na sam vrh svog jelovnika ( Prioritet: 100000 ), roditeljska stavka:, naravno, trebao bi biti KORIJEN.
    NA Tip: birati HTML blok.
    U polje Podaci: upišite sljedeći kod:

    Ovo je moja verzija, sami uredite, što, kako i gdje leži, već ćete shvatiti bez poteškoća. I oprostite na slici, samo je moj sustav tako uređen da hvata ovaj kod. Stoga će se morati prepisati rukom. Napomena: Liquid_Crystal je font koji imitira LCD sat, u ovom stilu je napravljen moj predložak, ako želite isti, morat ćete ga sami skinuti, ako vam nije bitno onda ako nemojte pronaći Liquid_Crystal, sustav će spojiti Arial, ali ga već napišite na vrhu.
    I na kraju, u odlomku: Razdoblje automatskog ažuriranja: Zapiši 10 sec.
    Uštedite i dobijete ono što želite.

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

processCommand($command)-- šalje tekstualnu naredbu koju treba izvršiti (na primjer, "recite koliko je sati"). Same naredbe su konfigurirane u metodi ThisComputer->commandReceived.

getGlobal($varname);-- dobivanje vrijednosti globalnog svojstva

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

procesna linija ($ linija);-- pokrenite skriptu za sinkronizaciju

getRandomLine($filename);-- uzeti nasumični niz iz tekstualne datoteke. $filename može biti skraćeno, na primjer file1 i tada će se datoteka preuzeti./texts/file1.txt

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

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

runScript($id,$data);-- izvršava skriptu s zadanim 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. S primljenim objektom možete raditi na 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 navedenim 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 prethodne funkcije

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

sg-- alternativni naziv prethodne funkcije

$objects=getObjectsByClass("naziv_klase");-- vraća niz objekata navedene klase kao ime Primjer petlje kroz objekte i postavljanja vrijednosti svojstava: $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.

pretvorba vremena ($tm)-- pretvoriti 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 postavljen, vraća trenutno vrijeme. $tm u vremenskom formatu.

je vikend()-- slobodan dan da/ne = 1/0 je dan u tjednu()-- radnim danom da/ne = 1/0

vrijeme je ($tm)-- provjerava odgovara li trenutno vrijeme prenesenom vremenu u formatu hh:mm

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

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

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

vrijeme prepoznavanja ($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 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 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);-- $istek u sekundama

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

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

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

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

registerEvent($eventName, $details="",$expire_in=365);-- registracija događaja $eventName

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

Slanje pošte

Pošalji poštu($od, $za, $predmet, $tijelo);-- š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 e-pošte u HTML formatu

Prije nekog vremena u vidno polje naše redakcije došla je djelatnost takozvanog nekomercijalnog partnerstva "Vologda Udruga udruga vlasnika kuća (ZhSK) i stambenih vlasnika".

Kako kažu čelnici Udruge HOA, ciljevi stvaranja i djelovanja neprofitnog partnerstva "Vologda udruga HOA (HBC) i vlasnika kuća" su formiranje sustava koordinacije, međusobnog informiranja i interakcije vlasnika kuća, kao i kao zastupanje i zaštita njihovih interesa u državnim tijelima, jedinicama lokalne samouprave, pravosudnim tijelima.


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

Prema otvorenim podacima, osnivači NP "Vologda udruga HOA (ZhSK) i vlasnika stanova" su 2 osobe: Sukhikh Artyom Vladimirovich i Ivanov Nikolai Leonidovich.


A politikom se bavi i Udruga HOA koja trošenjem novca promovira svoje kandidate na izborima.

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

Zajednica udruga u početku nudi vlasnicima pomoć u pripremi dokumenata potrebnih za registraciju udruga. Članovi odbora takvih HOA-a u pravilu su osobe daleko od sfere stambeno-komunalnih usluga i upravljanja stambenim zgradama, koje zbog svog materijalnog interesa postaju potpuno pod kontrolom Udruge HOA.

Rezultat takve suradnje uvijek je isti: nedostatak neovisnosti HOA u izboru suradnika, obavljanje poslova po napuhanim cijenama, povlačenje sredstava dodijeljenih za popravak i održavanje stanova organizacijama koje kontrolira Udruga HOA .

Shema NP "Udruga HOA"

Što se zna o tim organizacijama?

1. LLC UK "Sokol".

Generalni direktor i jedini osnivač organizacije je Bazhenov Alexander Nikolaevich. Pravna adresa: Vologda, ul. Mira, r. 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-a je Sukhikh Artem Vladimirovič po punomoći izdanoj na deset godina, isti Sukhikh A.V. koji je zajedno s Ivanovim suosnivač Udruge HOA.

U travnju 2019. primili smo informaciju o pritužbama stanovnika kuće br. 9 u ulici Lavrov u gradu Vologdi o nezakonitom oduzimanju kuće pod upravljanjem Sokol Management Company LLC.

Ranije su u ovoj stambenoj zgradi inicijativni građani stvorili HOA, koji je upravljao stambenom zgradom.

Čim je Sokol Management Company LLC počela upravljati, vlasnici su to osjetili, kako kažu na sebi. Kao rezultat pranja izmjenjivača topline, rashladna tekućina je dospjela u vodu koja je opskrbljena stanovnicima kuće, zbog čega je voda postala zelena. Pola kuća još uvijek nema toplu vodu. Cijevi u podrumu stalno cure. Društvo za upravljanje "Sokol" doo ne poduzima nikakve radnje za vraćanje tople vode u stanove vlasnika, a također ne poduzima mjere za popravak ili zamjenu izmjenjivača topline. Čišćenje zajedničkih prostora kuće je nekvalitetno, a ponekad nikako. Jedina stvar koju Sokol Management Company LLC čini pravodobno i kvalitetno je raspršivanje potvrda o plaćanju usluga u poštanske sandučiće, a Sukhikh Artem odlazi vlasnicima i zahtijeva plaćanje. Ljudi su ogorčeni što su dužni platiti posao koji nije stvarno obavljen.

Osim toga, Društvo za upravljanje Sokol doo pokušava povući sredstva, navodno za popravak jednog od dizala u kući, iako se prema rezultatima tehničkog pregleda zaključuje da je dizalo u dobrom stanju i ne zahtijeva popravak. .

Trenutno je nepravilno upravljanje kućnim brojem 9 u ul. Lavrov, Vologda potvrđeno je inspekcijskim izvješćem provedenim u odnosu na Sokol Management Company LLC 28. lipnja 2019. Odjel za komunalno gospodarstvo Gradske uprave Vologda izdao je nalog za otklanjanje kršenja zahtjeva za licenciranje za upravljačke organizacije.

Postaje neshvatljivo zašto "Nekomercijalno" partnerstvo Udruge HOA, čiji je cilj pomoći stanovnicima u stvaranju HOA, djeluje u suprotnom smjeru, odvodeći kuće od HOA kontroliranim organizacijama, a to je Sokol Management Company LLC.

Voditelj društva za upravljanje LLC "Sokol" je direktor Bazhenov Alexander, pod kontrolom Ivanov N. i Sukhikh A.

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

2. DOO "SU-35"

Ulyana Pavlovna Borodiy i Maksim Alekseevich Dobrelya članovi su OOO SU-35. S potonjim Sukhikh Artem je u stalnim poslovnim odnosima.

Trenutno je odlukom Arbitražnog suda regije Vologda, OOO "SU-35" priznat kao nesolventan (stečaj), a otvoren je postupak za stečaj.

U početku, 10. travnja 2017. između Sukhikh A.V. i LLC "SU-35" sklopljen je ugovor o radu, prema kojem je Sukhikh preuzeo obavljanje dužnosti zamjenika direktora za pravne poslove.

Zatim, nakon uvođenja postupka nadzora u odnosu na LLC "SU-35", Sukhikh je zajedno s upravom LLC "Su-35" POKUŠAO POVLAČENJE NOVCA S RAČUNA ZA NAMIRENJE. Za provedbu ovog pokušaja, bez suglasnosti privremenog upravitelja, sklopljen je sporazum između OOO SU-35 i Sukhikh o promjeni postojećih uvjeta ugovora.

Zapravo, na prethodno dogovorenu mjesečnu plaću 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 plaća za 270.500 rubaljamjesečno. (811.500 rubalja za razdoblje od 28. travnja 2018. do 17. srpnja 2018.)

Kako bi povlačenje sredstava izgledalo zakonito, 20. studenog 2018. Sukhikh A.V. podnio zahtjev za povrat zaostalih plaća od SU-35 doo u iznosu od 1.082.229 rubalja 99 kopejki Međutim, gradski sud u Vologdi zadovoljio je zahtjeve Sukhih A.The. samo djelomično, nakon što je od LLC "SU-35" naplatio dug u iznosu od 70 117 rubalja 46 kopejki.

Kasnije je Arbitražni sud regije Vologda poništio sporazum o izmjeni postojećih uvjeta ugovora o radu. Presudom suda utvrđeno je nepošteno ponašanje Sukhih A.The. , izraženo u sklapanju Ugovora u uvjetima činjenice nesolventnosti (stečaja) OOO SU-35 koju je utvrdio sud (u postupku praćenja), te sporazuma o uvjetima za povećanje plaća za obavljanje radnih dužnosti prethodno dodijeljen Sukhikhu prema Ugovoru o radu, koji ukazuje na prisutnost znakova ništavosti transakcije, utvrđene člankom 10. Građanskog zakona Ruske Federacije (transakcija učinjena u zaobilaženju zakona s namjerom da se nanese šteta)

3. DOO "Metprom"

Artem Vladimirovič Sukhikh je direktor Metroprom LLC-a. U ovom trenutku, Metprom doo je likvidiran odlukom Federalne porezne službe. Registar pravnih osoba u odnosu na Metprom doo sadrži podatke o netočnosti podataka o adresi pravne osobe.

Nepouzdanost pravne adrese jedan je od znakova "jednodnevnosti" organizacije

Što se još zna o Sukhikh Artjomu Vladimiroviču?


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

Kako nam je postalo poznato, s HOA-om na adresi Vologda, Tehnička ulica, 56 u udruzi HOA koju zastupa Sukhikh A.V. sklopljen je ugovor o pružanju usluga naplate potraživanja od vlasnika nekretnina koji imaju dug za usluge popravka i održavanja iz nestambenih prostora. Trošak takve usluge procijenjen je na dvadeset tisuća rubalja. (u usporedbi s tržištem precijenjenim za 10 puta), međutim, prema riječima predsjednika HOA-e, usluge naplate dugova nisu pružene iz namišljenog razloga Sukhikh A.V. Pokušaji povrata novca bili su neuspješni, budući da je Nikolaj Ivanov, predsjednik Udruge HOA, na svaki mogući način negirao svoju povezanost sa Sukhikhom, iako je zapravo veza očita, budući da je Sukhikh suosnivač Udruge. Novac nikada nije vraćen predsjedniku.

Znamo i za još jedan slučaj nekvalitetne pravne usluge udruzi vlasnika kuća.

U prosincu 2016. Sukhikh A.V. u ime HOA-e podnio je zahtjev protiv jednog od developera za povrat troškova radova potrebnih za otklanjanje nedostataka učinjenih tijekom izgradnje kuće. U prosincu 2018. Arbitražni sud regije Vologda u cijelosti je odbio zahtjeve. Sud je u svojoj odluci naveo sljedeće:

“Sud je također uzeo u obzir i priznao opravdanim iskaz svih tuženika o zlouporabi svog prava od strane tužitelja, koji je znajući da je u trenutku podnošenja tužbe investitor pokrenuo postupak likvidacije, a tijekom suđenju, zastupnik ovog tuženika je odmah obavijestio sud o prihvaćanju predmeta u postupak društva, nikada nije podnio zahtjeve za upis u registar tražbina vjerovnika, nije koristio svoja prava vjerovnika u okviru stečaja. predmet tuženika, nije sudjelovao u skupštini vjerovnika, zahtjeve za privođenjem supsidijarne odgovornosti sudionika društva, ako postoje razlozi, nije se izjasnio, odnosno dobrovoljno je odbio ostvariti svoja prava koja su mu data od strane tuženika. zakon.

Rezultat takve tvrdnje pokazao se tužnim za HOA. Vjerujući u obećanja Udruge HOA i nadajući se visokoj kvalifikaciji Sukhikh A.V. U zamjenu za sredstva za otklanjanje građevinskih nedostataka, HOA je primila samo pravne troškove u obliku državne pristojbe u iznosu od 43.003 rubalja, ogromne troškove za provođenje građevinskog pregleda, čiji je trošak premašio 100.000 rubalja, i troškove za plaćanje usluga "visokog stručnjaka" Sukhikh A.V., kao i dvogodišnju pravnu bitku s unaprijed određenim ishodom. Time je samo Udruga udruga vlasnika kuća "Neprofitno partnerstvo" "obogatila"

Odbijanje HOA-e, koju je zastupao predstavnik Sukhikh A.V. , iz ostvarivanja svojih prava, sugerira korupcijsku komponentu s investitorom u stečaju. Kao rezultat toga, žrtve su samo oni koji žive u kući developera 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 vlast nad svojom imovinom, a udruga HOA i organizacije koje ona kontrolira obogaćuju se na račun vlasnika kuća. Odgovornost za sve radnje u ovom slučaju, temeljem važećeg zakonodavstva, snosi sama HOA, dok udruga ne snosi nikakvu odgovornost za svoje postupke.

Nastavit će se.

Iznijet ću svoje mišljenje o proizvodu, možda nekome bude od koristi.
Stručnjaci, prije svega, integratori vjerojatno neće biti zainteresirani za MajorDoMo, sve dok nema ni normalnog pakiranog proizvoda, ni normalne tehničke dokumentacije, ni 7\24 podrške, ni mreže dilera, ni bonusa.

Malo je vjerojatno da će to zanimati i samograditelje, nema globalnih razlika od recimo OpenHaba ili ioBrokera.

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

Sve se događa otrcano, navečer gosti dolaze na roštilj - bukhaching. U sumrak MajorDoMo automatski pali svjetlo na verandi, kako bi pojačao efekt, dajem glasovnu naredbu UD-u da upali radio ili glazbu. glasom upravljajte razinom zvuka ili se prebacite na drugu radio stanicu ili pjesmu.

Onda dovedem goste u kuću i opet u glas zamolim pametne da pričaju o sebi. (Imam konfiguriran takav demo način rada). UD počinje paliti i gasiti svjetla, kaže vremenska prognoza, pali televizore, dijeli se i tucet raznih razmetanja.

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

Tek nakon što provedete nekoliko sati na ovim lekcijama, bez osnovnog znanja u programiranju, bez razumijevanja logike, strukture i ostalog, samo glupo ponavljajući sve radnje u videu, moći ćete.

Postavite alarm na računalu svojim glasom za reprodukciju kada se aktivira glazba ili radio
Upravljajte medijskim playerom na računalu svojim glasom
Organizirajte videonadzor koristeći bilo koji pametni telefon ili tablet
Pratite kretanje i pronalaženje, primjerice, djece putem GPS-a
Upravljajte mrežnim radio postajama na računalu svojim glasom
Nabavite pametni popis za kupovinu
Glasom slušajte vremensku prognozu na računalu
Glasovno postavljajte pitanja i dobivajte odgovore s wikija
Glasovno dodavanje i uklanjanje zadataka iz dnevnika.
Glasovni podsjetnici.
Primite trenutni tečaj glasom na zahtjev
Čitanje dolaznih SMS-ova glasom
Ugasite računalo na daljinu
Pratite napunjenost baterije na svom pametnom telefonu i primajte obavijesti o kritičnom smanjenju napunjenosti
Svojim glasom slušajte naslove vijesti ili same vijesti i sinopse filmova

Prokleto umoran od pisanja, pa, ima još puno toga...

I sve to nije napisano ni u jednom retku koda (cijeli kod je objavljen ispod videa)

Proteklih godinu i pol sve više integratora i ljudi iz građevinske industrije kuca nam sa zahtjevom da nas nauče raditi sa softverom i „napraviti pametni dom“.
Trenutačno nekoliko desetaka integratora (širom CIS-a) implementira Smart Homes na Majordomo. Ne plaćamo im ništa (ni bonuse, ni popuste dilera) – tako je. ALI njihovi kupci ne moraju plaćati 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, polako ćemo je puniti

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