Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

I kēia lā, mahalo i ka hoʻomohala wikiwiki ʻana o nā microelectronics, nā ala kamaʻilio, nā ʻenehana pūnaewele a me Artificial Intelligence, ke ulu nei ke kumuhana o nā hale akamai. Ua hoʻololi koʻikoʻi ka hale kanaka mai ka wā Pōhaku a i ke au o Industrial Revolution 4.0 a me ka Pūnaewele o nā Mea, ua lilo ia i mea ʻoluʻolu, hana a palekana. Ke hele mai nei nā hopena i ka mākeke e hoʻohuli i kahi keʻena a i ʻole hale ʻāina i mau ʻōnaehana ʻike paʻakikī e hoʻomalu ʻia mai nā wahi a pau o ka honua me ka hoʻohana ʻana i kahi kelepona. Eia kekahi, ʻaʻole koi hou ka pilina kanaka-mīkini i ka ʻike o nā ʻōlelo papahana - mahalo i ka ʻike ʻōlelo a me nā algorithm synthesis, ʻōlelo kekahi kanaka i kahi home akamai i kā lākou ʻōlelo ʻōiwi.

ʻO kekahi mau ʻōnaehana home akamai i kēia manawa ma ka mākeke kahi hoʻomohala kūpono o nā ʻōnaehana wikiō wikiō, nā mea hoʻomohala i ʻike i ka pono o kahi hoʻonā piha ʻaʻole wale no ka nānā ʻana, akā no ka mālama ʻana i nā mea mamao.

Ke hōʻike aku nei mākou iā ʻoe i kahi ʻatikala o ʻekolu mau ʻatikala, e haʻi iā ʻoe e pili ana i nā mea nui āpau o kahi ʻōnaehana home smart cloud, i hoʻomohala pilikino e ka mea kākau a hoʻokomo ʻia. Hoʻolaʻa ʻia ka ʻatikala mua i nā lako mea kūʻai aku i hoʻokomo ʻia i loko o kahi home akamai, ʻo ka lua i ka hoʻolālā ʻana o ka mālama ʻana i ke ao a me ka ʻōnaehana ʻikepili, a ʻo ka hope, ʻo ke kolu i ka noi mea kūʻai aku no ka hoʻokele ʻana i ka ʻōnaehana ma nā polokalamu kelepona a me nā mea paʻa.

Na lako hale akamai

ʻO ka mea mua, e kamaʻilio e pili ana i ka hana ʻana i kahi home akamai mai kahi hale maʻamau, dacha a i ʻole cottage. No ka hana ʻana i kēia, ma ke ʻano he kānāwai, pono e kau i nā mea hana ma ka home:

  1. nā mea ʻike e ana i nā ʻāpana like ʻole;
  2. nā mea hana e hana ana i nā mea o waho;
  3. he mea hoʻoponopono e hana ana i nā helu ʻana e like me nā ana sensor a me ka loiloi i hoʻopili ʻia, a hoʻopuka i nā kauoha i nā mea hoʻokele.

Hōʻike ka kiʻi ma lalo nei i kahi kiʻi o kahi home akamai, aia ma luna o nā mea ʻike no ka leaka wai (1) i loko o ka lumi ʻauʻau, ka mahana (2) a me nā kukui (3) i loko o ka lumi moe, kahi kumu akamai (4) i ka lumi kuke a me kahi. kiʻi kiʻi wikiō (5) ma ke alaloa.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

I kēia manawa, hoʻohana nui ʻia nā mea kani uila me ka RF433, Z-Wave, ZigBee, Bluetooth a me WiFi. ʻO kā lākou mau pono nui he maʻalahi o ka hoʻokomoʻana a me ka hoʻohanaʻana, a me ka uku haʻahaʻa a me ka hilinaʻi, no ka mea Ke hoʻoikaika nei nā mea hana e lawe i kā lākou mau mea hana i ka mākeke nui a hiki iā lākou ke loaʻa i ka mea hoʻohana maʻamau.

ʻO nā sensor a me nā mea hana, ma ke ʻano he lula, ua hoʻopili ʻia ma o ke kelepona uila i kahi mea hoʻokele home akamai (6) - kahi microcomputer kūikawā e hoʻohui i kēia mau mea āpau i hoʻokahi pūnaewele a hoʻokele iā lākou.

Eia naʻe, hiki i kekahi mau hoʻonā ke hoʻohui i kahi sensor, kahi mea hoʻokele a me kahi mea hoʻoponopono i ka manawa like. No ka laʻana, hiki ke hoʻolālā ʻia kahi plug akamai e hoʻā a hoʻopau paha e like me ka papa kuhikuhi, a hiki i kahi pahupaʻi kiʻi wikiō ao ke hoʻopaʻa i ka wikiō ma muli o ka hōʻailona ʻike neʻe. I nā hihia maʻalahi, hiki iā ʻoe ke hana me ka ʻole o kahi kaʻawale kaʻawale, akā no ka hana ʻana i kahi ʻōnaehana maʻalahi me nā hiʻohiʻona he nui, pono ia.

No ka hoʻopili ʻana i ka mea hoʻoponopono home akamai i ka pūnaewele puni honua, hiki ke hoʻohana ʻia kahi mea hoʻokele pūnaewele maʻamau (7), i lilo i mea hana hale maʻamau i kēlā me kēia home. Eia kekahi hoʻopaʻapaʻa e pili ana i kahi mea hoʻoponopono home akamai - inā nalowale ka pilina i ka Pūnaewele, e hoʻomau ka home akamai i ka hoʻomaikaʻi maʻamau i ka poloka logic i mālama ʻia i loko o ka mea hoʻoponopono, ʻaʻole i ka lawelawe ao.

Hoʻoponopono home akamai

Hoʻokumu ʻia ka mea hoʻoponopono no ka ʻōnaehana home smart cloud i kūkākūkā ʻia ma kēia ʻatikala ma muli o kahi microcomputer papa hoʻokahi Raspberry Pi 3 kükohu B+, i hoʻokuʻu ʻia ma Malaki 2018 a lawa nā kumuwaiwai a me nā hana no nā hana home akamai. Loaʻa iā ia kahi kaʻina hana quad-core Cortex-A53 e pili ana i ka hoʻolālā 64-bit ARMv8-A, hoʻopaʻa ʻia ma 1.4 GHz, a me 1 GB o RAM, Wi-Fi 802.11ac, Bluetooth 4.2 a me kahi adapter gigabit Ethernet e hana ana ma o USB 2.0. .

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

He mea maʻalahi loa ka hoʻohui ʻana i ka mea hoʻoponopono - ua hoʻokomo ʻia ka microcomputer (1) i loko o kahi pahu plastik (2), a laila hoʻokomo ʻia kahi kāleka hoʻomanaʻo 8 GB i ka format microSD me ka lako polokalamu (3) a me kahi mea hoʻokele pūnaewele Z-Wave USB (4). nā ʻāpana pili. Hoʻopili ʻia ka mea hoʻoponopono home akamai i ka lako mana ma o kahi 5V, 2.1A mana adapter (5) a me kahi USB - micro-USB cable (6). Loaʻa i kēlā me kēia mea hoʻoponopono kahi helu ʻike kūʻokoʻa, i kākau ʻia ma ka faila hoʻonohonoho i ka wā i hoʻomaka mua ʻia a pono e launa pū me nā lawelawe home smart cloud.

Ua hoʻomohala ʻia ka polokalamu hoʻokele home akamai e ka mea kākau o kēia ʻatikala e pili ana i ka ʻōnaehana hana Linux Raspbian Stretch. Loaʻa iā ia nā subsystems nui:

  • kaʻina kikowaena no ka launa pū ʻana me nā lako home akamai a me ke ao;
  • hoʻohana kiʻi kiʻi no ka hoʻonohonoho ʻana i ka hoʻonohonoho a me nā ʻāpana hana o ka mea hoʻokele;
  • waihona no ka mālama ʻana i ka hoʻonohonoho hoʻonohonoho.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Database Hoʻokomo ʻia ka mea hoʻokele home akamai ma muli o kahi DBMS i hoʻopili ʻia SQLite a he faila ma ke kāleka SD me ka polokalamu ʻōnaehana. Hoʻohana ia ma ke ʻano he waihona no ka hoʻonohonoho hoʻonohonoho - ʻike e pili ana i nā lako pili a me kona kūlana o kēia manawa, kahi poloka o nā lula hana logical, a me ka ʻike e pono ai ka indexing (no ka laʻana, nā inoa faila o kahi waihona wikiō kūloko). Ke hoʻomaka hou ʻia ka mea hoʻoponopono, mālama ʻia kēia ʻike, e hiki ai ke hoʻihoʻi i ka mea hoʻoponopono i ka wā o ka mana.

GUI Ua hoʻomohala ʻia ka mea hoʻokele home akamai ma PHP 7 me ka microframework Slim. ʻO ke kikowaena pūnaewele ke kuleana no ka holo ʻana i ka noi. kukui uila, hoʻohana pinepine ʻia i nā mea i hoʻopili ʻia ma muli o kāna hana maikaʻi a me nā koi haʻahaʻa haʻahaʻa.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike
(e kaomi ma luna o ke kiʻi e wehe ia ma ka hoʻonā kiʻekiʻe)

ʻO ka hana nui o ke kiʻi kiʻi ʻo ka hoʻopili ʻana i nā lako home akamai (nā kāmela nānā IP a me nā mea ʻike) i ka mea hoʻoponopono. Heluhelu ka palapala noi pūnaewele i ka hoʻonohonoho ʻana a me ke kūlana o kēia manawa o ka mea hoʻoponopono a me nā mea e pili ana iā ia mai ka waihona SQLite. No ka hoʻololi ʻana i ka hoʻonohonoho hoʻoponopono, hoʻouna ʻo ia i nā kauoha hoʻomalu i ka format JSON ma o ka RESTful API interface o ke kaʻina kikowaena.

Kaʻina kikowaena

Kaʻina kikowaena - he ʻāpana koʻikoʻi e hana ana i nā hana nui a pau i ka hoʻomaʻamaʻa ʻana i nā kaʻina ʻike e hoʻokumu i ke kumu o kahi home akamai: ka loaʻa ʻana a me ka hoʻoili ʻana i ka ʻikepili sensory, ka hoʻopuka ʻana i nā hana mana e pili ana i ka logic i hoʻopili ʻia. ʻO ke kumu o ke kaʻina hana kikowaena e launa pū me nā lako home akamai, e hoʻokō i nā lula noʻonoʻo hana, loaʻa a hana i nā kauoha mai ke kiʻi kiʻi a me ke ao. Hoʻokō ʻia ke kaʻina hana kikowaena ma ka mea hoʻokele home akamai e noʻonoʻo ʻia e like me kahi noi multi-threaded i hoʻomohala ʻia ma C ++ a hoʻokuʻu ʻia ma ke ʻano he lawelawe ʻokoʻa. 'ōnaehana ʻōnaehana Linux Raspbian.

ʻO nā poloka nui o ke kaʻina kikowaena:

  1. Luna Hoʻokele;
  2. Kahua pahu kiʻi IP;
  3. Z-Wave mea kikowaena;
  4. Server o ka hana logical rules;
  5. ʻIkepili o ka hoʻonohonoho ʻana o ka mea hoʻoponopono a me ka poloka o nā lula pili;
  6. RESTful API kikowaena no ka launa pū ʻana me ke kiʻi kiʻi;
  7. Mea kūʻai MQTT no ka launa pū ʻana me ke ao.

Hoʻokomo ʻia nā poloka kaʻina hana ma ke ʻano he mau kaula kaʻawale, ka ʻike ma waena o ia mea i hoʻoili ʻia ma ke ʻano o nā memo ma ke ʻano JSON (a i ʻole nā ​​hale ʻikepili e hōʻike ana i kēia ʻano i ka hoʻomanaʻo kaʻina hana).

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

ʻO ka mea nui o ke kaʻina kikowaena luna memo, ka mea e alakaʻi ai i nā memo JSON i nā poloka kaʻina hana kikowaena āpau. Ua helu ʻia nā ʻano o nā kahua ʻike memo JSON a me nā waiwai i hiki iā lākou ke ʻae i ka papa:

ʻano mea hana
Hana ma'amau
messageType
deviceState
kauoha

pahupaʻiwikiō
onvif
sensorData
on
ke kahe ana

mīkiniʻimi
zwave
kauoha
aku
ka hoʻopaʻa ʻana (Hā/Paʻa)

mea hoʻihoʻi
mqtt
businessLogicRule
ke kahe ana
evice(Hoʻohui/Wehe)

pāʻoihanaLogic
configurationData
ka hoʻopaʻa ʻana (Hā/Paʻa)

Bluetooth
deviceState
kikowaena

Wifi

rf

No ka laʻana, he memo mai kahi mea ʻike neʻe pahupaʻikiʻi e like me kēia:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566293475475",
	"clientType": "gateway",
	"deviceId": "1616453d-30cd-44b7-9bf0-************",
	"deviceType": "camera",
	"protocol": "onvif",
	"messageType": "sensorData",
	"sensorType": "camera",
	"label": "motionDetector",
	"sensorData": "on"
}

ʻO ka loina hana

No ka loaʻa ʻana a hoʻouna ʻana paha i kahi leka mai ka mea hoʻouna, hoʻopaʻa inoa ka poloka kaʻina kikowaena i nā memo o kekahi ʻano. ʻO ka hoʻopaʻa inoa ʻana he lula noʻonoʻo hana o ke ʻano "Inā ... a laila...", hōʻike ʻia ma ke ʻano JSON, a me kahi loulou i ka mea lawe leka i loko o ka poloka kaʻina hana kikowaena. No ka laʻana, no ka ʻae ʻana i ka server IP camera e loaʻa nā kauoha mai ka GUI a me ke ao, pono ʻoe e hoʻohui i kēia lula:

{
	"if": {
	    "and": [{
		"equal": {
		    "deviceId": "1616453d-30cd-44b7-9bf0-************"
		}
	    },
	    {
		"equal": {
		    "messageType": "command"
		}
	    }
	    ]
	},
	"then": {
	    "result": "true"
	}
}

Inā nā kūlana i kuhikuhi ʻia ma mua (ʻaoʻao hema) ʻoiaʻiʻo nā lula, a laila ua māʻona hopena (ʻaoʻao ʻākau) nā lula, a hiki i ka mea lawelawe ke komo i ke kino o ka leka JSON. Kākoʻo ka antecedent i nā mea hoʻohana loiloi e hoʻohālikelike i nā hui waiwai kī JSON:

  1. like "equal";
  2. ʻaʻole like me "not_equal";
  3. emi "emi";
  4. ʻoi aku ka "nui";
  5. emi iho a like paha me ka "emi_a like paha";
  6. ʻoi aku ka nui a i ʻole like me "greater_or_equal".

Hiki ke hoʻopili ʻia nā hopena hoʻohālikelike i kekahi me ka hoʻohana ʻana i nā mea hoʻohana algebra Boolean:

  1. A "a"
  2. A I ʻole "a";
  3. ʻAʻole "ʻaʻole".

No laila, ma ke kākau ʻana i nā mea hana a me nā operand ma ka notation Polish, hiki iā ʻoe ke hana i nā kūlana paʻakikī me ka nui o nā ʻāpana.

Hoʻohana ʻia ke ʻano hana like, e pili ana i nā leka JSON a me nā lula hana ma ke ʻano JSON, i hoʻohana ʻia i ka poloka server logic production e hōʻike i ka ʻike a hoʻokō i ka inference logical me ka hoʻohana ʻana i ka ʻikepili sensory mai nā ʻike home akamai.

Ke hoʻohana nei i kahi polokalamu kelepona, hana ka mea hoʻohana i nā hiʻohiʻona e like me ka hana o ka home akamai. ʻo kahi laʻana: "Inā hoʻomaka ka sensor no ka wehe ʻana i ka puka mua, a laila e hoʻā i ke kukui ma ke alahele". Heluhelu ka palapala noi i nā mea ʻike o nā sensor (sensor wehe) a me nā mea hana (smart socket a i ʻole ke kukui akamai) mai ka waihona a hoʻopuka i kahi lula pili i ka format JSON, i hoʻouna ʻia i ka mea hoʻokele home akamai. E kūkākūkā nui ʻia kēia ʻano hana ma ka ʻatikala ʻekolu o kā mākou moʻo, kahi e kamaʻilio ai mākou e pili ana i ka noi o ka mea kūʻai aku no ka mālama ʻana i kahi home akamai.

Hoʻohana ʻia ka mīkini hana loiloi i kūkākūkā ʻia ma luna me ka hoʻohana ʻana i ka waihona RapidJSON — SAX parser no ka palapala JSON ma C++. Hiki iā ʻoe ke hoʻokō maʻalahi i ka hana hoʻohālikelike ʻikepili i loko o nā antecedents:

void CRuleEngine::Process(PProperties pFact)
{
    m_pActions->clear();

    rapidjson::Reader   reader;
    for(TStringMap::value_type& rRule : m_Rules)
    {
        std::string sRuleId   = rRule.first;
        std::string sRuleBody = rRule.second;

        CRuleHandler            ruleHandler(pFact);
        rapidjson::StringStream ruleStream(sRuleBody.c_str());
        rapidjson::ParseResult  parseResult = reader.Parse(ruleStream, ruleHandler);
        if(!parseResult)
        {
            m_Logger.LogMessage(
                        NLogger2::ePriorityLevelError,
                        std::string("JSON parse error"),
                        "CRuleEngine::Process()",
                        std::string("RuleId: ") + sRuleId);
        }

        PProperties pAction = ruleHandler.GetAction();
        if(pAction)
        {
            pAction->Set("ruleId", sRuleId);
            m_pActions->push_back(pAction);
        }
    }
}

he mea pFact - kahi hale i loaʻa nā hui waiwai kī mai kahi leka JSON, m_Rula — string array of production rules. Hana ʻia ka hoʻohālikelike o ka memo e hiki mai ana a me ka lula hana i ka hana heluhelu.Parse(ruleStream, ruleHandler)kahi ruleHandler he mea i loaʻa ka manaʻo o Boolean a me nā mea hoʻohālikelike. sRuleId - kahi ʻike kānāwai kūʻokoʻa, mahalo i ka mea hiki ke mālama a hoʻoponopono i nā lula i loko o ka ʻikepili hoʻokele home akamai. m_pActions - he hui me nā hopena o ka hoʻohālikelike kūpono: Nā memo JSON i loaʻa nā hopena mai ke kumu lula a hoʻouna hou ʻia i ka luna memo i hiki i nā mea kākau inoa ke hana iā lākou.

Hoʻohālikelike ka hana RapidJSON i ka hana strlen(), a ʻo nā koi kumu waiwai ʻōnaehana liʻiliʻi e ʻae i ka hoʻohana ʻana i kēia waihona i nā mea i hoʻopili ʻia. ʻO ka hoʻohana ʻana i nā memo a me nā lula pili i ka format JSON e hiki ai iā ʻoe ke hoʻokō i kahi ʻōnaehana maʻalahi o ka hoʻololi ʻana i ka ʻike ma waena o nā mea āpau o ka mea hoʻokele home akamai.

Nā Nalu Z-Wave a me nā mea hana

ʻO ka pōmaikaʻi nui o kahi home akamai ʻo ia ka hiki ke ana kūʻokoʻa i nā ʻāpana like ʻole o ke kaiapuni o waho a hana i nā hana pono e pili ana i ke kūlana. No ka hana ʻana i kēia, hoʻopili ʻia nā mea ʻike a me nā mea hana i ka mea hoʻokele home akamai. I ka mana o kēia manawa, ʻo ia nā mea uila e hoʻohana ana i ka protocol Nalu Z ma kahi alapine i hoʻokaʻawale kūikawā ʻia 869 MHz No Rusia. No ka hana ʻana, ua hui pū ʻia lākou i loko o kahi pūnaewele mesh, kahi i loaʻa i nā mea hōʻailona hōʻailona e hoʻonui i ka wahi uhi. Loaʻa i nā hāmeʻa kahi ʻano mālama ola kūikawā - hoʻolilo lākou i ka hapa nui o ka manawa ma ke ʻano hiamoe a hoʻouna i ka ʻike i ka wā e loli ai ko lākou mokuʻāina, hiki ke hoʻonui nui i ke ola o ka pākaukau i kūkulu ʻia.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Hiki iā ʻoe ke ʻike i kahi helu nui o nā mea Z-Wave like ʻole ma ka mākeke. E nānā kākou i kekahi mau laʻana:

  1. Hiki i ka Zipato PAN16 smart socket ke ana i kēia mau ʻāpana: ka hoʻohana uila (kWh), ka mana (W), ka uila (V) a me ka manawa (A) i ka pūnaewele uila. Loaʻa iā ia kahi hoʻololi i kūkulu ʻia e hiki ai iā ʻoe ke hoʻomalu i ka mea uila pili;
  2. ʻIke ka Neo Coolcam leak sensor i ka hele ʻana o ka wai i kahe ʻia ma ka pani ʻana i nā pilina o ka ʻimi mamao;
  3. ʻO ka Zipato PH-PSG01 uahi sensor ke hoʻoulu ʻia i ka wā e komo ai nā ʻāpana uahi i ke keʻena loiloi kinoea;
  4. Hoʻopili ka Neo Coolcam motion sensor i ka radiation infrared o ke kino kanaka. Eia kekahi, aia kahi ʻike kukui (Lx);
  5. ʻO Multisensor Philio PST02-A e ana i ka mahana (°C), ka māmā (%), ka wehe ʻana o ka puka, ka noho ʻana o ke kanaka i loko o ka lumi;
  6. Z-Wave USB Stick ZME E UZB1 mea hoʻoponopono pūnaewele, kahi e hoʻopili ʻia ai nā ʻike.

He mea koʻikoʻi ka hana ʻana o nā hāmeʻa a me ka mea hoʻoponopono i ka like pinepine, inā ʻaʻole lākou e ʻike i kekahi i kekahi i ka manawa o ka pilina. Hiki ke hoʻopili ʻia a hiki i 232 mau mea hoʻohana i hoʻokahi mea hoʻokele pūnaewele Z-Wave, i lawa loa no kahi keʻena a i ʻole hale ʻāina. No ka hoʻonui ʻana i ka ʻāpana o ka ʻoihana pūnaewele i loko o ka hale, hiki ke hoʻohana ʻia kahi kumu akamai ma ke ʻano he hōʻailona hōʻailona.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Ma ke kaʻina hana kikowaena home control i kūkākūkā ʻia ma ka paukū mua, aia ke kuleana o ka server Z-Wave no ka launa pū ʻana me nā polokalamu Z-Wave. Hoʻohana ia i kahi waihona e loaʻa ai ka ʻike mai nā mea ʻike OpenZWave ma C ++, e hāʻawi ana i kahi kikowaena no ka launa pū ʻana me ka Z-Wave network USB controller a hana pū me nā ʻano mea ʻike like ʻole a me nā mea hana. Hoʻopaʻa ʻia ka waiwai o ka ʻāpana kaiapuni i ana ʻia e ka mea ʻike e ka Z-Wave server ma ke ʻano o kahi leka JSON:

{
	"vendor": "*****",
	"version": "3.0.0",
	"timestampMs": "1566479791290",
	"clientType": "gateway",
	"deviceId": "20873eb0-dd5e-4213-a175-************",
	"deviceType": "sensor",
	"protocol": "zwave",
	"messageType": "sensorData",
	"homeId": "0xefa0cfa7",
	"nodeId": "20",
	"sensorType": "METER",
	"label": "Voltage",
	"sensorData": "229.3",
	"units": "V"
}

A laila, hoʻouna ʻia i ka luna memo o ke kaʻina kikowaena i loaʻa i nā loina mea kākau. ʻO ka mea kākau inoa nui ka server logic production, e pili ana i nā koina kahua memo i nā antecedents o nā lula logic. Hoʻouna ʻia nā hopena inference e loaʻa ana nā kauoha mana i ka luna memo a mai laila e hele i ka Z-Wave server, nāna e hoʻokaʻawale iā lākou a hoʻouna iā lākou i ka Z-Wave network USB controller. A laila komo lākou i ka actuator, e hoʻololi i ke kūlana o nā mea kaiapuni, a hana ka home akamai i nā hana pono.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike
(e kaomi ma luna o ke kiʻi e wehe ia ma ka hoʻonā kiʻekiʻe)

Hoʻohui ʻia nā mea hana Z-Wave ma ke kiʻi kiʻi o ka mea hoʻokele home akamai. No ka hana ʻana i kēia, e hele i ka ʻaoʻao me kahi papa inoa o nā mea hana a kaomi i ka pihi "Add". Hoʻokomo ke kauoha hoʻohui ma o ka RESTful API interface i ke kaʻina kikowaena a laila hoʻouna ʻia e ka luna memo i ka Z-Wave server, kahi e hoʻokomo ai i ka mana USB network Z-Wave i kahi ʻano kūikawā no ka hoʻohui ʻana i nā polokalamu. A laila, ma ka polokalamu Z-Wave pono ʻoe e hana i kahi ʻano o nā kaomi wikiwiki (3 kaomi i loko o 1,5 kekona) o ke pihi lawelawe. Hoʻopili ka mea hoʻokele USB i ka hāmeʻa i ka pūnaewele a hoʻouna i ka ʻike e pili ana iā ia i ke kikowaena Z-Wave. ʻO ia, e hana i kahi komo hou i ka waihona SQLite me nā ʻāpana o ka mea hou. Ma hope o ka manawa i ʻōlelo ʻia, e hoʻi ka ʻaoʻao kiʻi i ka ʻaoʻao papa inoa mea Z-Wave, heluhelu i ka ʻike mai ka waihona a hōʻike i ka mea hou i ka papa inoa. Loaʻa i kēlā me kēia hāmeʻa kona ʻike ponoʻī, i hoʻohana ʻia i nā lula inference hana a i ka wā e hana ai i ke ao. Hōʻike ʻia ka hana o kēia algorithm ma ke kiʻi UML:

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike
(e kaomi ma luna o ke kiʻi e wehe ia ma ka hoʻonā kiʻekiʻe)

Hoʻopili i nā kāmeʻa IP

ʻO ka ʻōnaehana home smart cloud i kūkākūkā ʻia ma kēia ʻatikala he hoʻomaikaʻi ʻana i ka ʻōnaehana nānā wikiō kapua, i hoʻomohala ʻia e ka mea kākau, aia ma ka mākeke no kekahi mau makahiki a he nui nā hoʻonohonoho ma Rusia.

No nā ʻōnaehana nānā wikiō kapua, ʻo kekahi o nā pilikia koʻikoʻi ʻo ke koho palena ʻole o nā mea hana e hiki ai ke hoʻohui ʻia. Hoʻokomo ʻia ka polokalamu pono no ka hoʻopili ʻana i ke ao i loko o ka pahupaʻiwikiō, kahi e koi koke ai i nā koi koʻikoʻi ma kāna lako - ka mea hana a me ka nui o ka hoʻomanaʻo manuahi. ʻO kēia ka wehewehe nui ʻana i ke kumukūʻai kiʻekiʻe o nā kāmela CCTV kapua i hoʻohālikelike ʻia me nā kāmela IP maʻamau. Eia kekahi, he manawa lōʻihi o ke kūkākūkā ʻana me nā ʻoihana hana kiʻi kiʻi kiʻi CCTV e koi ʻia e kiʻi i ka ʻōnaehana faila kamera a me nā mea hana pono āpau.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Ma ka ʻaoʻao ʻē aʻe, loaʻa i nā kāmela IP hou nā protocol maʻamau no ka launa pū ʻana me nā mea hana ʻē aʻe (ʻo ia hoʻi, nā mea hoʻopaʻa wikiō). No laila, ʻo ka hoʻohana ʻana i kahi mea hoʻokele kaʻawale e hoʻopili ai ma o kahi protocol maʻamau a hoʻolaha i nā kahawai wikiō mai nā kāmeʻa IP a i ke ao e hāʻawi i nā pono hoʻokūkū koʻikoʻi no nā ʻōnaehana nānā wikiō kapua. Eia kekahi, inā ua hoʻokomo mua ka mea kūʻai aku i kahi ʻōnaehana nānā wikiō e pili ana i nā kāmela IP maʻalahi, a laila hiki ke hoʻonui a hoʻololi iā ia i kahi home smart cloud piha.

ʻO ka protocol kaulana loa no nā ʻōnaehana nānā wikiō IP, i kākoʻo ʻia e nā mea hana kiʻi kiʻi IP āpau me ka ʻole ONVIF Pūnaewele S, nona nā kiko'ī ma kahi ʻōlelo wehewehe lawelawe pūnaewele wsdl. Ke hoʻohana nei i nā mea hoʻohana mai ka mea hana gSOAP Hiki ke hana i ka code kumu no nā lawelawe e hana pū ana me nā kāmele IP:

$ wsdl2h -o onvif.h 
	https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl 
	https://www.onvif.org/ver10/events/wsdl/event.wsdl 
	https://www.onvif.org/ver10/media/wsdl/media.wsdl 
	https://www.onvif.org/ver20/ptz/wsdl/ptz.wsdl

$ soapcpp2 -Cwvbj -c++11 -d cpp_files/onvif -i onvif.h

ʻO ka hopena, loaʻa iā mākou kahi pūʻulu poʻomanaʻo "*.h" a me nā faila "*.cpp" i C++, hiki ke waiho pololei ʻia i loko o kahi noi a i ʻole kahi waihona ʻokoʻa a hōʻuluʻulu ʻia me ka hoʻohana ʻana i ka GCC compiler. Ma muli o ka nui o nā hana, ua nui ke code a pono i ka hoʻonui ʻana. Ua lawa ka hana o ka Raspberry Pi 3 model B+ microcomputer no ka hoʻokō ʻana i kēia code, akā inā pono e hoʻokomo i ke code i kahi kahua ʻē aʻe, pono e koho i ka hoʻolālā ʻōnaehana kūpono a me nā kumuwaiwai ʻōnaehana.

ʻO nā kāmela IP e kākoʻo ana i ka maʻamau ONVIF, i ka wā e hana ana ma kahi pūnaewele kūloko, pili ʻia i kahi hui multicast kūikawā me ka helu wahi. 239.255.255.250. Aia kahi protocol WS-ʻIke, hiki iā ʻoe ke hoʻokaʻawale i ka ʻimi ʻana i nā polokalamu ma ka pūnaewele kūloko.

Hoʻokomo ka ʻaoʻao kiʻi kiʻi o ka mea hoʻokele home akamai i kahi hana huli no nā kāmera IP ma PHP, kahi mea maʻalahi loa i ka wā e launa pū me nā lawelawe pūnaewele ma o nā memo XML. Ke koho ʻana i nā mea papa kuhikuhi Nā lakohana > nā kāmeʻa IP > ka nānā ʻana Hoʻokuʻu ʻia ka algorithm no ka ʻimi ʻana i nā kāmera IP, e hōʻike ana i ka hopena ma ke ʻano o kahi papaʻaina:

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike
(e kaomi ma luna o ke kiʻi e wehe ia ma ka hoʻonā kiʻekiʻe)

Ke hoʻohui ʻoe i kahi kamera i ka mea hoʻoponopono, hiki iā ʻoe ke kuhikuhi i nā hoʻonohonoho e like me ka mea e launa pū ai me ke ao. I kēia manawa hoʻi, hāʻawi ʻia ʻo ia i kahi mea ʻike ponoʻī, kahi e hiki ai ke ʻike maʻalahi i loko o ke ao.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

A laila, hoʻopuka ʻia kahi leka ma JSON format e loaʻa ana nā ʻāpana āpau o ke kāmela i hoʻohui ʻia a hoʻouna ʻia i ke kaʻina kikowaena o ka mea hoʻokele home akamai ma o ke kauoha RESTful API, kahi i hoʻokaʻawale ʻia ai nā ʻāpana kamera a mālama ʻia i loko o ka waihona SQLite kūloko, a ua hoʻohana pū ʻia no ka hoʻomaka ʻana i nā pae hana e pili ana:

  1. hoʻokumu i kahi pilina RTSP e loaʻa i nā kahawai wikiō a me nā leo;
  2. transcoding leo mai G.711 mu-Law, G.711 A-Law, G.723, etc. formats. i ka format AAC;
  3. ka hoʻololi ʻana i nā kahawai wikiō ma ke ʻano H.264 a me ka leo ma ke ʻano AAC i loko o kahi pahu FLV a hoʻouna iā ia i ke ao ma o ka protocol RTMP;
  4. ka hoʻokumu ʻana i kahi pilina me ka hope o ka mea ʻike neʻe ka pahu kiʻi IP ma o ka protocol ONVIF a koho i kēlā me kēia manawa;
  5. hana i kekahi manawa i kahi kiʻi nānā kiʻi liʻiliʻi a hoʻouna iā ia i ke ao ma o ka protocol MQTT;
  6. ka hoʻopaʻa ʻana i nā wikiō a me nā kahawai leo ma ke ʻano o nā faila ʻokoʻa i ka MP4 format ma kahi kāleka SD a Flash paha o kahi mea hoʻokele home akamai.

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

No ka hoʻokumu ʻana i kahi pilina me nā kāmela, transcode, kaʻina a me ka hoʻopaʻa ʻana i nā kahawai wikiō i ke kaʻina kikowaena, hoʻohana ʻia nā hana mai ka waihona. FFmpeg 4.1.0.

I ka hoʻokolohua hoʻokolohua hana, ua hoʻopili ʻia nā kāmela 3 i ka mea hoʻoponopono:

  1. HiWatch DS-I114W (hoʻonā - 720p, hōʻano kōmike - H.264, bitrate - 1 Mb/s, kani G.711 mu-Law);
  2. ʻO Microdigital MDC-M6290FTD-1 (ka hoʻonā - 1080p, hōʻano kōmike - H.264, bitrate - 1 Mb/s, ʻaʻohe kani);
  3. ʻO Dahua DH-IPC-HDW4231EMP-AS-0360B (ka hoʻonā - 1080p, hōʻano kōmike - H.264, bitrate - 1.5 Mb/s, leo AAC).

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

Hoʻopuka ʻia nā kahawai ʻekolu a pau i ke ao, lawe ʻia ka transcoding leo mai hoʻokahi pahupaʻiwikiō, a ua pio ka hoʻopaʻa waihona kūloko. ʻO ka ukana CPU ma kahi o 5%, ʻo ka hoʻohana ʻana o RAM he 32 MB (no kēlā me kēia kaʻina hana), 56 MB (ka huina me ka OS).

No laila, ma kahi o 20 - 30 mau kāmeʻa hiki ke hoʻopili ʻia i ka mea hoʻokele home akamai (e pili ana i ka hoʻonā a me ka bitrate), lawa ia no kahi ʻōnaehana nānā wikiō no kahi hale hale ʻekolu a i ʻole kahi hale kūʻai liʻiliʻi. No nā hana e koi ana i ka hana ʻoi aku ka maikaʻi, hiki iā ʻoe ke hoʻohana i ka nettop me kahi kaʻina Intel multi-core a me Linux Debian Sarge OS. Ke ho'āʻo nei ka mea hoʻoponopono i kēia manawa, a e hōʻano hou ʻia ka ʻikepili i kāna hana.

Ka launa pū me ke ao

Mālama ka home akamai i ke ao i ka ʻikepili o ka mea hoʻohana (nā ana wikiō a me nā ana sensor) ma ke ao. E kūkākūkā hou ʻia ke ʻano o ka mālama ʻana i ke ao ma ka ʻatikala aʻe i kā mākou moʻo. I kēia manawa, e kamaʻilio e pili ana i ke kikowaena no ka hoʻouna ʻana i nā leka ʻike mai ka mea hoʻokele home akamai i ke ao.

Hoʻouna ʻia nā mokuʻāina o nā mea pili a me nā ana sensor ma o ka protocol MQTT, ka mea i hoʻohana pinepine ʻia i nā papahana Internet of Things ma muli o kona maʻalahi a me ka pono o ka ikehu. Hoʻohana ʻo MQTT i kahi hiʻohiʻona mea kūʻai aku, kahi e kau inoa ai nā mea kūʻai aku i nā kumuhana kikoʻī i loko o ka broker a hoʻolaha i kā lākou mau leka. Hoʻouna ka broker i nā leka i nā mea kākau inoa a pau e like me nā lula i hoʻoholo ʻia e ka pae QoS (Quality of Service):

  • QoS 0 - ka lōʻihi hoʻokahi (ʻaʻohe hōʻoia hoʻouna);
  • QoS 1 - ma ka liʻiliʻi hoʻokahi (me ka hōʻoia o ka lawe ʻana);
  • QoS 2 - pololei hoʻokahi (me ka hōʻoia hoʻouna hou aku).

I kā mākou hihia, hoʻohana mākou Namu Eclipse. ʻO ka inoa kumuhana ka mea ʻike kūʻokoʻa o ka mea hoʻokele home akamai. Hoʻopaʻa inoa ka mea kūʻai aku MQTT i loko o ke kaʻina kikowaena i kēia kumuhana a unuhi i nā leka JSON mai ka luna memo i loko. ʻO ka mea ʻē aʻe, hoʻouna ʻia nā memo mai ka MQTT broker e ia i ka luna memo, a laila e hoʻonui iā lākou i kāna poʻe kākau inoa i loko o ke kaʻina kikowaena:

Cloud Smart Home. Māhele 1: Mea hoʻoponopono a me nā mea ʻike

No ka hoʻouna ʻana i nā leka e pili ana i ke kūlana o ka mea hoʻokele home akamai, hoʻohana ʻia ke ʻano o nā memo i mālama ʻia mau memo MQTT protocol. Hāʻawi kēia iā ʻoe e nānā pono i ka manawa o ka hoʻopili hou ʻana i ka wā o ka mana.

Hoʻokumu ʻia ka mea kūʻai aku MQTT ma muli o ka hoʻokō waihona Eclipse Paho ma ka ʻōlelo C++.

Hoʻouna ʻia nā kahawai media H.264 + AAC i ke ao ma o ka protocol RTMP, kahi i kuleana ai ka pūʻulu o nā kikowaena media no ka hana ʻana a me ka mālama ʻana iā lākou. No ka puunaue maikaʻi i ka ukana i loko o ka puʻupuʻu a koho i ka mea hoʻolaha media liʻiliʻi loa, hana ka mea hoʻoponopono home akamai i kahi noi mua i ka mea kaulike o ke ao a ma hope wale nō o ka hoʻouna ʻana i ke kahawai media.

hopena

Ua nānā ka ʻatikala i hoʻokahi hoʻokō kikoʻī o kahi mea hoʻokele home akamai e pili ana i ka microcomputer Raspberry Pi 3 B+, ​​hiki ke loaʻa, kaʻina hana ʻike a me nā mea hoʻokele ma o ka protocol Z-Wave, e launa pū me nā kāmera IP ma o ka protocol ONVIF, a me ka hoʻololi ʻana i ka ʻikepili a nā kauoha me ke ao. lawelawe ma o nā protocol MQTT a me RTMP. Ua hoʻomohala ʻia kahi mīkini loiloi hana ma muli o ka hoʻohālikelike ʻana i nā lula loiloi a me nā ʻoiaʻiʻo i hōʻike ʻia ma ke ʻano JSON.

Ke ho'āʻo nei ka mea hoʻokele home akamai i kēia manawa ma kekahi mau wahi ma Moscow a me ka ʻāina ʻo Moscow.

Hoʻolālā ka mana hou o ka mea hoʻokele e hoʻopili i nā ʻano mea like ʻole (RF, Bluetooth, WiFi, wired). No ka ʻoluʻolu o nā mea hoʻohana, e hoʻoneʻe ʻia ke kaʻina hana no ka hoʻopili ʻana i nā sensor a me nā kāmera IP i ka polokalamu kelepona. Aia kekahi mau manaʻo no ka hoʻonui ʻana i ke code kaʻina kikowaena a me ka lawe ʻana i ka polokalamu i ka ʻōnaehana hana WeheWrt. E ʻae kēia iā ʻoe e mālama i kahi mea hoʻokele kaʻawale a hoʻololi i ka hana o kahi home akamai i kahi router home maʻamau.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka