Как установить внутреннюю розетку снаружи


Как правильно установить наружные накладные розетки своими руками

Практически каждое помещение имеет в своем интерьере такой элемент электрооборудования, как розетки. Без них никуда, ведь что ни возьми — утюг или компьютер, его нужно куда-то включить. Из-за постоянно растущего количества якобы необходимых бытовых приборов, катастрофически стало не хватать этих же розеток.

В связи с этим ниже будет рассмотрен определенный тип приборов, который с успехом применяется не только в закрытых жилых помещениях, но и на улице во влажной среде.

Речь пойдет о розетках наружной установки. Их еще называют ― наружные, для открытой проводки.

Особенности розеток для открытой проводки

Чем они отличаются от обычных, которые можно видеть намного чаще первых. Основным их отличием есть довольно толстый корпус. Он закрывает собой внутреннюю часть — керамическую арматуру и группу контактов. В отличие от внутренних розеток — которым необходима монтажная коробка, глубоко углубленная в стену, наружные не требуют такой трудоемкой работы, как долбление бетонных и другого типа стен. Это намного упрощает монтаж и установку одной или несколько розеток в домашних условиях.

Степень защиты

Существуют наружные розетки для открытой проводки с разной степенью защиты корпуса от попадания влаги и других веществ.

Важно! При выборе электроарматуры, обращайте внимание на степень защиты IP. Особенно если она будет установлена в сыром помещении.

Приборы с защитой IP 21 не имеют герметичного со всех сторон корпуса. Тыльная сторона открыта и при монтаже она прислоняется к плоскости стены.

В основном для влажных и других опасных помещений предназначены наружные розетки открытой проводки с абсолютно закрытым корпусом, имеющим защиту класса от IP 44 до IP 68.

Такие приборы имеют, как уже говорилось, литой пластмассовый корпус, крышку для изоляции токоведущих частей и резиновые вставки для лучшей герметизации. Все это должно защитить человека от поражения электрическим током и пожара — внутри и снаружи здания.

Особенности монтажа

Розетки для наружного монтажа в основном применяют в паре с наружной проводкой: то есть, когда провода проложены не в стене, а снаружи: на керамических изоляторах, в металлорукаве, пластиковой гофре или пластмассовом коробе.

Важно! Монтаж в металлической гофре, предусматривает ее заземление, что не всегда возможно. Предпочтительней использовать пластиковую гофру.

Такой монтаж, конечно, может портить интерьер, но сделать проводку таким способом значительно проще и быстрее. Также для такого монтажа не требуется специальное оборудование, например, болгарка и перфоратор с короной для подрозетников.

Монтаж

Теперь на практике рассмотрим, как сделать монтаж проводки и подключить наружную розетку. Первое, что необходимо сделать — выбрать розетку. Итак, если вы планируете установит ее в сухом помещении, то выбираем наружную с небольшим классом защиты, например, IP 21. Такая обойдется дешевле и в размере будет немного меньше, чем с более высокой защитой.

Использование розеток с высокой степенью защиты.

В случае с полностью герметичной розеткой, при открученной верхней крышке, перед вами откроется внутренняя керамическая часть, на которой есть контакты и зажимы для проводов.

Эта внутренность легко может выниматься, что облегчает подключение проводов. Главное, что нужно сделать — приложить корпус ровно к стене и карандашом или маркером сделать разметку в отверстиях для крепления. Теперь убираем корпус и по разметке сверлим два отверстия под дюбели. Чаще всего — это дюбеля 6*40 мм. Притом пластмассовую часть дюбеля вставляем в отверстие сразу, а металлической — прикручиваем крышку. Когда крышка крепко держится на стене, можно сказать полдела сделано. Далее подключаем провода на клеммы внутренней части и вставляем ее в уже прибитый корпус. Прикручиваем крышку.

Монтаж розетки с защитой класса IP 21.

Теперь рассмотрим монтаж розетки открытой проводки с незакрытой тыльной частью. Здесь она нужна для подключения кондиционера. Как и в первом случае откручиваем крышку. Перед вами внутренняя часть с проушинами для крепления по бокам. Как видно монтаж велся коробом с последующей укладкой в нем проводов. Находим подходящее место для крепления и прилаживаем внутреннюю часть к стене.

 

 

 

 

 

 

 

Важно! Не нужно крепить эту часть вплотную с коробом, иначе крышка после не встанет. Примеряя, прикладывайте в собранном виде с открученным винтом крепления крышки.

 

После того как приложили, придерживая внутреннюю часть, аккуратно снимаем крышку. Делаем метки в проушинах и высверливаем отверстия в стене. Далее, вставляем пластмассовые части дюбеля в отверстия и, продев в проушины розетки металлическую часть дюбеля, закручиваем его. Теперь контактная часть уже на стене.

Переходим к подключению проводов. Здесь заранее дюбелями был прибит монтажный короб к стене для укладки проводов.

Подключаем провода и заводим их в короб. Плотно уложив их в коробе, защелкиваем крышку.

Короб необходимо выбирать такого размера, чтобы количество проводов легко помещалось в нем, иначе — это будет сплошное мучение.

В крышке вырезаем углубление для выхода проводов. Прорезь должна быть достаточной, но не слишком большой, чтобы выглядело эстетично. Надеваем крышку и закручиваем винт. С другой стороны короба, подключаем провода.

Важно! Перед тем как подключать провода, проверьте цепь на отсутствие короткого замыкания.

Сделать это можно тестером или прозвонкой. Если цепь не звониться накоротко, подключаем концы и подаем напряжение. Проверяем его присутствие.

Важно! Найдите контакт «ноль», и подсоедините к нему один конец указателя напряжения. Другим, коснитесь заземляющего контакта розетки. Если покажет 220 в, посмотрите не попал ли волос провода внутри прибора с «фазы» на «заземление». Если такое произошло, срочно устраните это. Иначе на корпусе электрического прибора будет опасный потенциал.

 

Стоимость установки внешней розетки

Установка розетки для установки вне помещения будет стоить около £ 100 , но это будет зависеть от того, какую розетку вы выберете. Прочтите наше удобное руководство по стоимости, чтобы узнать все, что вам нужно знать об установке внешней розетки.

Средняя стоимость установки внешней розетки:

В зависимости от сложности работы обычно занимает: 1-2 часа

£ 120

Сколько стоит установка внешней розетки?

Основные затраты на установку уличной розетки - это почасовая оплата электрика.Это простая работа, которая в общей сложности займет не более 2 часов. Для дешевой розетки, которая находится в легкодоступном месте, вы должны ожидать, что ее стоимость составит около фунтов стерлингов 85 . За более сложную розетку, которую может быть немного сложнее установить, вы должны ожидать, что заплатите не более 245 фунтов стерлингов.

Расположение розетки на открытом воздухе может повлиять на сложность и, следовательно, на стоимость вашей работы. Если вы можете проявить гибкость и работать с электриком, чтобы выбрать место, это поможет снизить ваши расходы.

Цены на внешние розетки

Тип розетки Средняя стоимость
Одиночный £ 85 - £ 200
Двойной 85–215 фунтов стерлингов
Розетка с таймером 125–245 фунтов стерлингов
Розетка с УЗО 95–245 фунтов стерлингов

Затраты на оплату труда и сроки

Установка наружной розетки - простая и легкая работа для квалифицированного электрика.Это займет всего 1-2 часа, независимо от типа розетки, которую вы выберете. Средняя почасовая стоимость найма электрика составляет 75–150 фунтов стерлингов. Однако в таких местах, как Лондон, он может достигать £ 250 .

Только стоимость поставки

Тип розетки Средняя стоимость
Одиночный £ 10–15
Двойной £ 10–30
Розетка с таймером 50–60 фунтов стерлингов
Розетка с УЗО 20–60 фунтов стерлингов

Дополнительные расходы

Установка розетки для улицы - несложная работа.Однако было бы выгодно объединить эту работу с другими электромонтажными работами в вашем доме. Приезд электрика в ваш дом может также выявить другие проблемы с домашней проводкой, которые необходимо будет устранить.

Осмотр электрооборудования

Если ваш дом старше, вам нужно пройти полное электрическое обследование. Это стоит от до 150–300 фунтов стерлингов. Это комплексная проверка состояния электрики вашего дома. В конце вы получите отчет, в котором будут указаны все области, которые необходимо исправить.Другой вариант - получить сертификат электробезопасности. Это может быть полезно для продажи вашего дома. Это стоит фунтов стерлингов от 80 до 150 фунтов стерлингов.

Замените свой потребительский блок

Если у вас старый потребительский блок, это может быть небезопасно. Возможно, его потребуется заменить, прежде чем вы сможете установить внешнюю розетку. Если ваш потребительский блок заполнен, вам может потребоваться отдельный блок для внешней розетки или необходимо обновить его для более крупного блока. Эта работа стоит 470 - 650 фунтов стерлингов.

Ремонт дома

Если проводка в вашем доме очень старая и не обновлялась, возможно, ее необходимо заменить.Это большая работа, но она делает дома намного безопаснее и снижает риск поражения электрическим током и пожаров. В зависимости от размера вашего дома цена составит £ 2400 - £ 5 500 .

Установить садовое освещение

Если вы устанавливаете внешнюю розетку, возможно, самое время подумать о том, как найти освещение для вашего сада. Это сделает ваше садовое пространство более пригодным для жизни и позволит вам проводить в нем больше времени. В зависимости от выбранного освещения это может стоить от £ 120 до £ 250 .

Электричество в хозяйственные постройки / навес

Если у вас есть пристройка, сарай или мастерская, и вы хотите иметь освещение и розетки, то может быть хорошей идеей настроить выделенное кольцо для вашего потребительского блока. Если вы поместите это на то же кольцо, что и внешнее гнездо, это может сэкономить вам немного денег. Стоимость будет зависеть от объема работы и расположения надворной постройки.

Факторы затрат на установку внешней розетки

Двумя основными факторами, влияющими на стоимость установки наружной розетки, являются стоимость розетки и время, которое займет работа.Все, что влияет на них, повлияет на цену.

Размер внешней розетки

Обычно для наружных розеток выбирают одинарные или двойные розетки. Стоимость одинарных розеток составляет от £ 10 до 15 фунтов стерлингов. Если вы выберете двойную розетку, вы можете найти простые варианты по цене от £ 10. Некоторые варианты будут стоить аж £ 60 .

Тип внешней розетки

Есть функции, которые вы можете выбрать для своей уличной розетки, которые повысят цену.Например, УЗО или таймер. Оба эти варианта сделают вашу розетку дороже

.

Расположение внешней розетки

Расположение розетки относительно внутренних розеток и вашего потребительского блока повлияет на цену. Если найти уличную розетку несложно, работа будет быстрее и проще. Если вам нужна розетка в месте, удаленном как от внутренних розеток, так и от потребительского блока, то установка новой розетки займет больше времени.

Легкость доступа

Если трудно получить доступ к местоположению вашей новой внешней розетки, это может повлиять на цену.Вы должны учитывать это при выборе своего местоположения. Возможно, ваш электрик не установит розетку в выбранном вами месте, если это сделать слишком сложно. Итак, будьте готовы к гибкости.

Что необходимо для установки внешней розетки?

Первым делом отключите электричество в вашем доме. Это может быть только одно кольцо или весь ваш дом. Это будет зависеть от проводки в вашем доме и расположения новой внешней розетки.

Внешняя розетка может быть запитана одним из двух способов. Его можно либо присоединить к существующему электрическому кольцу в вашем доме, либо дать ему собственное независимое кольцо. Единственная разница в том, где будет начинаться провод.

Если рядом с тем местом, где вы хотите установить розетку, есть удобное место, можно просверлить отверстие. Это отверстие будет соединять внутреннее гнездо с внешним. Затем из розетки будет снята шпора для питания внешней розетки.

В некоторых случаях может быть безопаснее проложить кабель напрямую от вашего потребительского блока к месту расположения внешней розетки.Провод будет проложен так, чтобы он не мешал и не повредился. Возможно, эту проволоку удастся проложить внутри стен. В противном случае он будет прикреплен к стене в сторону.

Когда провода будут на месте, коробку прикрепят к стене. Розетки будут подключены, и электричество снова будет включено.

Могу ли я самостоятельно установить внешнюю розетку?

Установка электрической розетки должна выполняться только компетентным лицом. В принципе, если вы не являетесь сертифицированным электриком, то это не работа своими руками.Это по двум причинам. Во-первых, безопасность. Работа с электрикой может быть очень опасной, если вы не знаете, что делаете.

Вторая причина - обеспечить соблюдение строительных норм. Осмотр работы не требуется. Однако, если позднее у вас будет проделана какая-либо работа над вашим домом, требующая осмотра здания, то все, включая эту работу, будет проверено. Заменить розетку позже может быть дороже, чем профессионально установить ее в первую очередь.

Типы внешних розеток

У вас есть несколько вариантов выбора устанавливаемого сокета. Все эти розетки входят в корпус, чтобы обеспечить их защиту от атмосферных воздействий.

Одинарная розетка

Это самый простой вариант, и он хорош, если у вас ограниченный бюджет. Это даст вам место для одной вилки снаружи. Средняя стоимость составляет фунтов стерлингов - 15 фунтов стерлингов.

Плюсы

✔ Компактный

✔ Дешево

Минусы

✖ Только одна розетка

Двойная розетка

Это внешний корпус с местом для двух вилок.Средняя стоимость £ 10 - £ 30

Плюсы

✔ Более одного штекера

✔ Дешевые варианты

Минусы

✖ Занимает больше места

Розетка с таймером

Если вы хотите использовать уличную розетку для чего-то вроде освещения, которое вы хотите использовать только в определенное время, встроенный таймер может быть очень полезной функцией. Средняя стоимость составляет фунтов стерлингов от 50 до 60 фунтов стерлингов.

Плюсы

✔ Встроенный таймер

Минусы

✖ Дороже

Розетки с УЗО

В эти розетки встроены УЗО.Это делает их безопаснее, чем без них. Они бывают как с двойной, так и с одной розеткой. Средняя стоимость составляет £ 20 - 60 £.

Плюсы

✔ Намного безопаснее

Минусы

✖ Дороже

Преимущества внешней розетки

У уличной розетки есть несколько преимуществ.

Всепогодный

Одно большое преимущество наличия розетки для улицы - это знание того, что у вас всегда есть доступ к водонепроницаемой розетке.Это означает, что вы случайно не оставите удлинитель под дождем и не будете волноваться, если во время стрижки газона неожиданно начнется дождь. Атмосферостойкая уличная розетка - это быстро, просто и надежно.

Без продольных проводов

Когда у вас есть уличная розетка, вам больше не нужно протягивать провода через окна или двери, когда вы работаете на улице. Эти провода могут не только споткнуться, но и пропускать нежелательных вредителей и пыльцу.

Легко и быстро

С садовой розеткой вы можете быстро и легко завершить работу в саду.Подключить электрические устройства легко, а навести порядок - просто.

Для чего можно использовать внешнюю розетку?

Наружную розетку можно использовать для любого электрического устройства. Нет никаких ограничений на то, для чего вы можете их использовать. Есть некоторые устройства, которые вы, возможно, захотите иметь в своем саду, которые должны работать от специальной садовой розетки.

Гидромассажная ванна

Если у вас есть стационарная или надувная гидромассажная ванна, вам понадобится электрическое питание для насоса.Для этого идеально подходит наружная розетка, так как она рассчитана на то, чтобы вода из гидромассажной ванны не повредила ее.

Водное сооружение

Для водоснабжения со встроенным насосом потребуется электропитание. Наружная розетка - простой и безопасный способ обеспечить это. Его можно оставить включенным, не беспокоясь. Если вы хотите, чтобы он работал только днем, вы можете выбрать уличную розетку с таймером.

Насосы для прудов

Если у вас есть небольшой пруд, для которого требуется насос, вам необходимо его подключить.Уличная розетка позволит вам это сделать без опасений. Его можно оставлять подключенным постоянно, и он будет защищен от брызг из пруда.

Наружное освещение

Наружное освещение может сделать ваш сад более удобным для использования. Если вам нужно надежное освещение, то лучше использовать электрические, а не солнечные светильники. Уличная розетка позволит вам легко запитать этот вид освещения.

Наружное отопление

Если вы хотите наслаждаться своим садом осенью и зимой, возможно, вам потребуется система наружного отопления.Электрические безопаснее газовых. С наружной розеткой они просты и удобны в использовании.

Газонокосилка

Чаще всего розетка для улицы используется для газонокосилки. Это позволяет легко и быстро косить газон. Вам больше не нужно прокладывать удлинительный кабель по дому.

Мойка высокого давления

Мойки высокого давления подходят для мытья автомобилей и дорожных покрытий. С наружной розеткой вы можете легко и безопасно включить мойку высокого давления, не беспокоясь о том, что вода попадет в ваш дом через двери или окна, открытые для розетки.

Строительные нормы и правила для внешней розетки

Любые электромонтажные работы, проводимые на вашем участке, регулируются строительными нормами Части P. Это означает, что работа должна выполняться в соответствии с подходящими стандартами. Вам не нужно подавать заявку на соблюдение строительных норм или посещать объект, если вы пользуетесь услугами установщика, который может самостоятельно подтвердить, что их работа соответствует стандартам.

Дополнительная плата за эту сертификацию не взимается. Все это должно быть включено в стоимость, которую взимает с вас установщик.

Разрешение на планирование для внешней розетки

Для установки внешней розетки запрашивать разрешение на строительство не требуется.

Что такое рейтинг IP?

IP означает степень защиты от проникновения. Это показатель того, насколько водонепроницаемая и пыленепроницаемая розетка. По сути, это говорит вам, насколько вероятно, что сокет будет поврежден. Рейтинг IP должен состоять из двух цифр и может иметь дополнительную букву в конце. Например. IP24 или IP56K.

Первое число указывает на устойчивость предмета к твердым частицам.Итак, насколько хорошо он предотвращает попадание пыли, песка, грязи. Цифры варьируются от 0 до 6. Ноль означает, что защиты нет. Шесть означает, что вообще ничего не может войти.

Второе число говорит о водостойкости. Цифры от 0 до 9. Защиты суммируются до 6. После этого они указывают отдельные тесты, поэтому будут перечислены отдельно. Нулевое значение означает отсутствие водонепроницаемости.

Шесть означает, что он может противостоять мощным струям воды, падающей на него.Оценки 7 и 8 относятся к погружению в воду, поэтому вряд ли применимы к внешней электрической коробке. 9K дается, чтобы показать, что электрическое устройство устойчиво к струе воды при высокой температуре, поэтому вы можете увидеть это на внешней вилке.

Для нахождения вне розетки должна быть минимальная степень защиты IP 56. Это означает, что количество грязи, которая может проникнуть внутрь, не будет мешать работе, и она может противостоять мощным струям воды с любого направления.

Удаление внешней розетки

Причин для снятия наружной розетки не так много.Даже если вы им не пользуетесь, это не повлияет ни на что другое в вашем доме, и они часто находятся в стороне. Однако, если вы хотите переместить розетку или вам нужно отремонтировать ее после того, как она была повреждена, может потребоваться удалить розетку.

Удаление наружной розетки - это работа, которую должен выполнять электрик. Работа выполняется довольно быстро и выполняется менее чем за час. Вам нужно будет оплатить только время электрика. Большинство электриков взимают минимальную плату для покрытия своих расходов и дорожных расходов.Итак, вы можете рассчитывать заплатить от 80 до 150 фунтов стерлингов. Может быть более рентабельным выполнять эту работу в то время, когда у вас выполняются другие электромонтажные работы, поскольку это будет более рентабельным вариантом.

Ваш электрик обычно избавляется от старой розетки. В противном случае вы можете довести дело до конца самостоятельно. В большинстве случаев его можно будет выбросить бесплатно.

Контрольный список для найма установщика внешних розеток

Вы захотите нанять электрика для установки розетки снаружи.Вот некоторые из ключевых вещей, на которые вам следует обратить внимание:

  • Они должны быть "компетентным лицом" или фирмой, зарегистрированной в Части P. Это означает, что они подтвердят, что их работа соответствует строительным нормам, и заполнят все необходимые документы.
  • Электрики могут быть зарегистрированы в Национальном инспекционном совете по электромонтажным работам (NICEIC), ELECSA, NAPIT или в другой утвержденной правительством схеме. Выбор того, кто есть, даст вам дополнительную защиту на случай, если в дальнейшем возникнет спор.
  • Вы должны ожидать, что у компетентного электрика будет определенная квалификация. Они могли пройти обучение или получить другую квалификацию уровня 3, например, City & Guilds.

Часто задаваемые вопросы

Как узнать степень защиты IP внешних розеток?

Рейтинг IP должен быть на видном месте на упаковке любых внешних розеток. Он может быть указан в технических характеристиках продукта, если вы найдете его в Интернете.

Что делает УЗО?

УЗО - это устройство остаточного заряда.Он определяет наличие неисправности в устройстве, использующем розетку. Затем он может отключить питание до получения травмы или несчастного случая. Эти устройства легко сбросить и не требуют замены, как предохранитель. Они могут быть как в самой розетке, так и в вашем потребительском блоке. Все современные блоки бытовой техники должны иметь УЗО.

Есть что-нибудь, что нельзя подключить к уличной розетке?

Наружные розетки работают точно так же, как и внутренние розетки. Просто они более защищены от непогоды.Это означает, что вы можете использовать их с любого электрического устройства, которое вы можете подключить.

Нужен ли мне отдельный потребительский блок для внешних источников питания?

Если у вашего существующего потребительского блока есть емкость, вы можете запустить любое внешнее питание от этого блока. Сюда входят наружные розетки и хозяйственные постройки.

Является ли удлинитель безопасной альтернативой уличной розетке?
Удлинитель может быть безопасным вариантом при правильном использовании. Однако со временем удлинители могут повредиться.Это означает, что их следует проверять перед каждым использованием. Обратите внимание на место прокладки удлинителя, так как об этом можно споткнуться.

Известно множество примеров, когда людей ударили током, коснувшись удлинителя. Если удлинитель не предназначен для использования на открытом воздухе, он не может быть водонепроницаемым.

Таким образом, да, вы можете использовать удлинитель, но вы должны делать это с осторожностью. Внешняя розетка - более простой вариант безопасного использования.

Источники

https: // www.Planningportal.co.uk/info/200130/common_projects/16/electrics/3

Последнее обновление MyJobQuote 30 сентября 2020 г. .Программирование сокетов

на Python (Руководство) - Real Python

Сокеты и API сокетов используются для отправки сообщений по сети. Они обеспечивают форму межпроцессного взаимодействия (IPC). Сеть может быть логической локальной сетью для компьютера или сетью, физически подключенной к внешней сети, с собственными подключениями к другим сетям. Очевидным примером является Интернет, к которому вы подключаетесь через своего провайдера.

В этом руководстве есть три различных итерации построения сервера и клиента сокетов с помощью Python:

  1. Мы начнем обучение с рассмотрения простого сервера и клиента сокета.
  2. После того, как вы познакомились с API и принципами работы в этом начальном примере, мы рассмотрим улучшенную версию, которая обрабатывает несколько подключений одновременно.
  3. Наконец, мы перейдем к созданию примера сервера и клиента, которые функционируют как полноценное приложение для сокетов, со своим собственным настраиваемым заголовком и содержимым.

К концу этого руководства вы поймете, как использовать основные функции и методы в модуле сокетов Python для написания собственных клиент-серверных приложений.Это включает в себя демонстрацию того, как использовать настраиваемый класс для отправки сообщений и данных между конечными точками, которые вы можете создавать и использовать для своих собственных приложений.

Примеры в этом руководстве используют Python 3.6. Вы можете найти исходный код на GitHub.

Сети и розетки - большие предметы. О них написаны буквально тома. Если вы новичок в сокетах или сетях, это совершенно нормально, если вы чувствуете себя перегруженным всеми терминами и частями. Я знаю, что сделал!

Но не расстраивайтесь.Я написал для вас это руководство. Как и в случае с Python, мы можем учиться понемногу за раз. Воспользуйтесь функцией закладок в браузере и вернитесь, когда будете готовы к следующему разделу.

Приступим!

Фон

Розетки имеют долгую историю. Их использование началось с ARPANET в 1971 году, а позже стало API в операционной системе Berkeley Software Distribution (BSD), выпущенной в 1983 году, под названием Berkeley Sockets.

Когда в 1990-х годах появился Интернет, вместе с World Wide Web росло и сетевое программирование.Веб-серверы и браузеры были не единственными приложениями, использующими преимущества новых подключенных сетей и сокетов. Широкое распространение получили клиент-серверные приложения всех типов и размеров.

Сегодня, хотя основные протоколы, используемые API сокетов, развивались с годами, и мы видели новые, API низкого уровня остался прежним.

Наиболее распространенным типом приложений сокетов являются приложения клиент-сервер, в которых одна сторона выступает в роли сервера и ожидает соединений от клиентов.Это тип приложения, о котором я расскажу в этом руководстве. В частности, мы рассмотрим API сокетов для Интернет-сокетов, иногда называемых сокетами Беркли или BSD. Существуют также сокеты домена Unix, которые могут использоваться только для связи между процессами на одном и том же хосте.

Обзор API сокетов

Модуль сокетов

Python предоставляет интерфейс к API сокетов Беркли. Это модуль, который мы будем использовать и обсуждать в этом руководстве.

Основные функции и методы API сокетов в этом модуле:

  • розетка ()
  • привязка ()
  • слушать ()
  • принять ()
  • подключение ()
  • connect_ex ()
  • отправить ()
  • прием ()
  • закрыть ()

Python предоставляет удобный и согласованный API, который напрямую отображается на эти системные вызовы, их аналоги на C.В следующем разделе мы рассмотрим, как они используются вместе.

В составе стандартной библиотеки Python также есть классы, упрощающие использование этих низкоуровневых функций сокетов. Хотя это не рассматривается в этом руководстве, см. Модуль socketserver, платформу для сетевых серверов. Также доступно множество модулей, реализующих Интернет-протоколы более высокого уровня, такие как HTTP и SMTP. Для обзора см. Интернет-протоколы и поддержка.

Сокеты TCP

Как

.

Общайтесь вне контейнера - Документация Balena

Для многих приложений код, выполняющийся в вашем контейнере, потребует некоторого способа взаимодействия с внешними службами и устройствами, будь то ОС хоста, супервизор устройства, сеть или внутреннее и внешнее хранилище. Ниже вы найдете различные методы внешнего общения, а также несколько советов, которые следует помнить.

ОС хоста

Переменные среды

Внутри вашего запущенного контейнера у вас будет доступ к ряду переменных среды BALENA_ с пространством имен, которые предоставляют информацию из системы вне контейнера:

Примечание: Во всех версиях ОС balenaOS обе переменные RESIN_ и BALENA_ будут вставлены в контейнер для обеспечения обратной совместимости.

Переменная Описание
BALENA_DEVICE_UUID Уникальный идентификационный номер устройства. Это используется для идентификации на балене
BALENA_APP_ID Идентификационный номер приложения Balena, с которым связано устройство.
BALENA_APP_NAME Имя приложения balena, с которым связано устройство.
BALENA_DEVICE_NAME_AT_INIT Имя устройства при первой инициализации.
BALENA_DEVICE_TYPE Тип устройства, на котором работает приложение.
БАЛЕНА Переменная BALENA = 1 может использоваться вашим программным обеспечением для определения того, что оно работает на устройстве balena.
BALENA_SUPERVISOR_VERSION Текущая версия агента супервизора, работающего на устройстве.
BALENA_SUPERVISOR_API_KEY Ключ аутентификации для API супервизора. Это гарантирует, что запросы к супервизору поступают только из контейнеров на устройстве. Подробную информацию об использовании см. В справочнике Supervisor API. Для мультиконтейнера сервису необходим набор меток io.balena.features.supervisor-api.
BALENA_SUPERVISOR_ADDRESS Сетевой адрес API супервизора. По умолчанию: http: // 127.0.0.1: 48484 . Для мультиконтейнера сервису необходим набор меток io.balena.features.supervisor-api.
BALENA_SUPERVISOR_HOST IP-адрес супервизора API. По умолчанию: 127.0.0.1 . Для мультиконтейнера сервису нужен набор io.resin.features.supervisor-api
BALENA_SUPERVISOR_PORT Номер сетевого порта для супервизора API. По умолчанию: 48484 . Для мультиконтейнера сервису нужен файл io.Набор ярлыков balena.features.supervisor-api.
BALENA_API_KEY API-ключ, который можно использовать для аутентификации запросов к бэкэнду balena. Может использоваться с SDK на устройстве. ПРЕДУПРЕЖДЕНИЕ Этот ключ API дает права доступа к коду для воздействия на метаданные устройства в API balena; обратитесь к нашей документации по безопасности для получения более подробной информации. Для мультиконтейнера сервису необходим набор меток io.balena.features.supervisor-api.
BALENA_HOST_OS_VERSION Версия ОС хоста.
BALENA_DEVICE_RESTART Это внутренний механизм перезапуска контейнеров, и его можно игнорировать, поскольку он не очень полезен для кода приложения. Пример: 1.13.0

Вот пример Raspberry Pi 3:

  корень @ raspberrypi3-cc723d7: / # printenv | grep BALENA BALENA_SUPERVISOR_API_KEY = 1111deadbeef2222 BALENA_APP_ID = 157270 BALENA_DEVICE_TYPE = raspberrypi3 БАЛЕНА = 1 BALENA_SUPERVISOR_ADDRESS = http: // 127.0.0.1: 48484 BALENA_SUPERVISOR_HOST = 127.0.0.1 BALENA_DEVICE_UUID = cb6f09d18ab4c08556f54a5bd7cfd353d4907c4a61998ba8a54cd9f2abc5ee BALENA_API_KEY = deadbeef12345 BALENA_SUPERVISOR_VERSION = 2.8.3 BALENA_APP_NAME = Пример BALENA_DEVICE_NAME_AT_INIT = влажная дымка BALENA_HOST_OS_VERSION = balenaOS 2.20.0 BALENA_SUPERVISOR_PORT = 48484  

Связь Dbus с ОС хоста

В некоторых случаях необходимо связаться с операционной системой хоста systemd для выполнения действий на хосте. Для этого вы можете использовать dbus.Чтобы гарантировать, что вы взаимодействуете с systemd ОС хоста, а не с systemd в вашем контейнере, важно установить DBUS_SYSTEM_BUS_ADDRESS для всей связи dbus. Настройка этой переменной среды различается для старых и новых устройств (в зависимости от версии супервизора balena), выберите строку, которая подходит для версии ОС вашего устройства (ее можно найти на панели управления устройства):

Примечание: В приложениях с несколькими контейнерами файл io.Метка balena.features.dbus должна применяться для каждой службы, требующей доступа к dbus. Если у вас есть устройства с версией супервизора ниже 7.22.0, вы должны использовать io.resin.features маркировку , поскольку это обеспечит обратную совместимость.

  # для balena supervisor версии 1.7.0 и новее (как balenaOS 1.x, так и 2.x) используйте эту версию: DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host / run / dbus / system_bus_socket  
  # для balena supervisor до 1.7.0 используйте эту версию: DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host_run / dbus / system_bus_socket  

Ниже вы можете найти пару примеров. Все они требуют либо добавления к команде указанного выше DBUS_SYSTEM_BUS_ADDRESS = ... , либо установки переменной для всех команд, запустив export DBUS_SYSTEM_BUS_ADDRESS = ... с правильным значением переменной среды, указанным выше.

В приложениях с несколькими контейнерами вы также можете установить DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host / run / dbus / system_bus_socket в разделе среды вашего сервиса в docker-compose .yml файл:

  версия: '2' Сервисы: someservice: среда: - 'DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host / run / dbus / system_bus_socket' ярлыки: io.balena.features.dbus: '1'  

Примечание: Чтобы использовать команду dbus-send в этом примере, вам необходимо установить пакет dbus в вашем Dockerfile, если вы используете образ Debian, или проверьте, под каким именем выбранная вами операционная система предоставляет dbus-send исполняемый файл.

Изменить имя хоста устройства

Изменение имени хоста устройства с помощью вызова метода dbus-send org.freedesktop.hostname1.SetHostname больше невозможно из-за того, что при этом будет предпринята попытка записи в / etc / hostname , который в ОС хоста хранится в корневом разделе, доступном только для чтения. Чтобы изменить имя хоста устройства, используйте balena supervisor API

.
Перезагрузка устройства
  DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host / run / dbus / system_bus_socket \ dbus-send \ --система \ --print-reply \ --dest = org.freedesktop.systemd1 \ / org / freedesktop / systemd1 \ org.freedesktop.systemd1.Manager.Reboot  
Проверка, синхронизировано ли время устройства по NTP
  DBUS_SYSTEM_BUS_ADDRESS = unix: path = / host / run / dbus / system_bus_socket \ dbus-send \ --система \ --print-reply \ --reply-timeout = 2000 \ --type = вызов_метода \ --dest = org.freedesktop.timedate1 \ / org / freedesktop / timedate1 \ org.freedesktop.DBus.Properties.GetAll \ строка: "org.freedesktop.timedate1"  

Ответ будет выглядеть так:

  время возврата метода = 1474008856.507103 отправитель =: 1.12 -> пункт назначения =: 1.11 серийный = 4 reply_serial = 2 массив [ запись диктовки ( строка "Часовой пояс" вариантная строка "UTC" ) запись диктовки ( строка "LocalRTC" вариант логический false ) запись диктовки ( строка «CanNTP» вариант логический истина ) запись диктовки ( строка «NTP» вариант логический истина ) запись диктовки ( строка "NTPSynchronized" вариант логический истина ) запись диктовки ( строка "TimeUSec" вариант uint64 1474008856505839 ) запись диктовки ( строка "RTCTimeUSec" вариант uint64 1474008857000000 ) ]  

Запись NTPSynchronized показывает true , так что устройство синхронизировано по NTP.(Ключ NTP показывает только, использует ли устройство службу systemd systemd-timesyncd ; начиная с balenaOS 2.13.1, служба chrony используется для управления временем.)

Примечание: Дополнительные примеры dbus см. В мастер-классе balenaOS

Внесение модулей ядра в черный список не работает

Поскольку / etc / modules , которые вы видите в своем контейнере, принадлежит файловой системе контейнера и не совпадает с / etc / modules в ОС хоста, добавление модулей ядра в черный список модулей в контейнере не будет иметь никакого эффекта. .Итак, чтобы удалить модуль, вам нужно явно выполнить команду rmmod .

Руководитель

Примечание: В приложениях с несколькими контейнерами метка io.balena.features.supervisor-api должна применяться для каждой службы, которая требует доступа к Supervisor API. Если у вас есть устройства с версией супервизора ниже 7.22.0, вы должны использовать io.resin.features маркировку , так как это обеспечит обратную совместимость

Перезагрузка из контейнера

Вы можете заметить, что если вы выполните reboot , halt или shutdown , ваш контейнер либо перейдет в странное состояние зомби, либо ничего не сделает.Причина в том, что эти команды не передаются в ОС хоста. Если вам нужно выполнить перезагрузку из вашего контейнера, вы должны использовать API супервизора, как показано:

  curl -X POST --header "Content-Type: application / json" \ "$ BALENA_SUPERVISOR_ADDRESS / v1 / reboot? Apikey = $ BALENA_SUPERVISOR_API_KEY"  

Подробнее об API супервизора

Примечание: BALENA_SUPERVISOR_API_KEY и BALENA_SUPERVISOR_ADDRESS уже должны быть в вашей среде по умолчанию для отдельных контейнеров, но для устройств с несколькими контейнерами службе требуется io.набор смолы.features.supervisor-api. Вам также понадобится , чтобы в вашем контейнере было установлено curl .

В качестве альтернативы можно перезагрузить устройство через интерфейс dbus, как описано выше.

Запись в логи на Дашборде

Все, что написано приложением на stdout и stderr , должно появиться в журналах приборной панели устройства. Взгляните на некоторые из наших примеров проектов на github, чтобы понять, как это сделать.

Сеть

BalenaEngine поддерживает режимы сети хоста и моста:

  • Режим хоста позволяет службе использовать все сетевые интерфейсы хоста.
  • В режиме моста используется определяемый пользователем сетевой интерфейс моста, к которому подключены служебные контейнеры.

Любая служба, использующая сеть хоста, не должна определять порты для входящего трафика, и служба может связываться со всеми интерфейсами хоста. Одноконтейнерные приложения всегда используют сеть хостов.

В отличие от сети хостов, мостовые сети изолируют все службы от хоста, требуя, чтобы службы явно определяли открытые порты, чтобы разрешить передачу трафика от хоста к ним (разрешен весь исходящий трафик). По умолчанию приложения с несколькими контейнерами используют мостовую сеть.

Одноконтейнерные приложения

Одноконтейнерные приложения всегда используют сеть хоста, что позволяет им связываться с любым из сетевых интерфейсов хоста. Если безопасность и песочница требуются либо для уровня привилегий, либо для обеспечения автономной сети, тогда следует использовать приложение с несколькими контейнерами, даже если требуется только одна служба.

Мультиконтейнерные приложения

Приложения Multicontainer по умолчанию используют определяемую пользователем мостовую сеть. Хосту не доступны порты, которые должны быть явно включены с помощью ключевого слова ports . Сервисы в той же сети моста имеют доступ ко всем портам других сервисов.

Следующий пример файла multiicontainer docker-compose.yml разрешает входящий трафик через порт 80 к службе proxy , но службы внешнего интерфейса и data изолированы от хоста и доступны только через мостовую сеть, которая все сервисы подключены к.

  версия: '2' Сервисы: внешний интерфейс: сборка: ./frontend выставить: - «80» прокси: сборка: ./haproxy зависит от: - внешний интерфейс - данные порты: - «80:80» данные: сборка: ./data выставить: - «8080»  

Примечание. Раскрытие портов с помощью ключевого слова expose не является обязательным и является способом документирования используемых портов, но не отображает и не открывает какие-либо порты. По умолчанию службы в той же сети моста имеют доступ ко всем портам других служб.

Для приложений с несколькими контейнерами установка для службы network_mode значения host в docker-compose.yml позволяет контейнеру совместно использовать то же сетевое пространство имен, что и ОС хоста.

Balena docker-compose.yml файлы поддерживают создание нескольких мостовых сетей, что позволяет дополнительно разделить их, так что некоторые службы существуют только в одной определенной сети, тогда как другие могут взаимодействовать во многих. Также поддерживается ключевое слово aliases для предоставления псевдонимов для служб (включая FQDN) и мостовых сетей IPAM.

Примечание: Для получения дополнительной информации о работе в сети с помощью balena см. Мастер-класс услуг balena.

URL-адреса общедоступного устройства

Balena в настоящее время предоставляет порт 80 для веб-пересылки. Чтобы включить веб-пересылку на определенном устройстве, перейдите на вкладку Действия устройства на панели управления balenaCloud и выберите Включить общедоступный URL-адрес для этого устройства кнопку . Дополнительные сведения об URL-адресах устройств см. На странице управления устройствами

.

Запуск сервера, прослушивающего порт 80 с включенным URL-адресом общедоступного устройства, позволит вам передавать контент с устройства в мир.Вот пример сервера express.js, который будет обслуживать URL-адрес устройства.

  var express = require ('экспресс') вар приложение = экспресс () app.get ('/', function (req, res) { res.send ('Привет, мир!') }) var server = app.listen (80, function () { var host = server.address (). адрес var port = server.address (). порт console.log ('Пример приложения, прослушивающего http: //% s:% s', хост, порт) })  

Использование преобразователей DNS в вашем контейнере

В ОС хоста balena dnsmasq используется для управления DNS, начиная с версии balenaOS 1.1.2. Это означает, что если у вас есть dnsmasq или другие преобразователи DNS, такие как bind9, работающие в вашем контейнере, это потенциально может вызвать проблемы, потому что они обычно пытаются привязаться к 0.0.0.0 , который мешает хосту dnsmasq. Чтобы обойти это, вам нужно добавить bind-interfaces к вашей конфигурации dnsmasq в вашем контейнере или убедиться, что ваш сервер привязывается только к внешним IP-адресам, и больше не должно быть конфликтов.

Хранилище

Постоянное хранилище

Если у вас есть данные или конфигурации, которые вы хотели бы сохранить с помощью обновлений приложений и ОС хоста, у вас есть возможность сохранить их в постоянном хранилище.Постоянное хранилище - хорошее место для записи системных журналов и других данных приложения, которые должны оставаться нетронутыми даже при изменении вашего кода.

Перед balenaOS v2.12.0

На устройствах с версиями ОС до 2.12.0 папка / data в контейнере автоматически связывается с каталогом в ОС хоста и гарантированно сохраняется при обновлениях. Доступ к содержимому папки / data можно получить через ОС хоста по адресу / mnt / data / смола-данные / .

Папка / data не синхронизируется между устройствами в вашем парке. Кроме того, папка уникальна для конкретного приложения, поэтому, если вы перенесете устройство в новое приложение, папка / data из предыдущего приложения не будет доступна в контейнере. Однако он по-прежнему будет доступен через ОС хоста, и если устройство будет перемещено обратно в исходное приложение.

Обратите внимание, что папка / data - это , а не , когда ваш проект строится на наших серверах сборки, поэтому вы не можете получить к ней доступ из своего Dockerfile .Том / data существует только тогда, когда контейнер работает на развернутых устройствах.

balenaOS v2.12.0 и выше

Начиная с balenaOS v2.12.0, постоянное хранилище обрабатывается через именованные тома. Поведение во многом такое же, как у постоянного хранилища в старых версиях ОС хоста. Фактически, для одноконтейнерных приложений по умолчанию docker-compose.yml устанавливает именованный том смолы-данные , который ссылается на каталог / data в контейнере.Единственная разница между этой и более ранними версиями заключается в том, что доступ к этим данным через ОС хоста осуществляется по адресу / var / lib / docker / volume / _resin-data / _data , а не по адресу / mnt / data / смола-данные / расположение, используемое в более ранних версиях ОС хоста.

Именованным томам могут быть присвоены произвольные имена, и они могут быть связаны с каталогом в одном или нескольких контейнерах. Пока каждый выпуск приложения включает в себя docker-compose.yml и имя тома не меняется, данные в томе будут сохраняться при обновлениях.

При использовании именованных томов обратите внимание, что:

  • Если устройство переносится в новое приложение, старая папка / data будет автоматически очищена.
  • В процессе сборки данные, добавленные в каталог контейнера, который настроен для связи с именованным томом, будут скопированы в том при первом создании на устройстве.
Использование супервизора с версией> = v10.0.0

Начиная с версии balena-supervisor v10.0.0, тома больше не удаляются автоматически с диска, когда ссылки на них удаляются из файла docker-compose приложения .Это означает, что данные больше не могут быть потеряны из-за случайного переименования тома.

Если вы регулярно меняете имена томов, ваше устройство теперь продолжит сохранять все предыдущие тома из приложения, включая их содержимое. Чтобы избежать этого, API супервизора теперь предоставляет конечную точку для очистки томов, на которые нет ссылок. Кроме того, это действие можно выполнить с панели управления с помощью действия Purge Data , которое находится на вкладке Actions для устройства.

Примечание. Тома будут по-прежнему автоматически удаляться при перемещении устройства между приложениями.

Передача больших файлов

Если у вас есть большие файлы, к которым вы хотите, чтобы ваши контейнеры имели доступ, вы можете перенести их со своего компьютера прямо на SD-карту вашего устройства. Сначала вставьте SD-карту в свой компьютер и найдите раздел смолы-данные . Затем найдите папку, связанную с вашим приложением, которая будет либо / смола-данные / , либо / docker / volume / _ / _ , в зависимости от версии ОС вашего хоста.Обратите внимание, что эти каталоги будут существовать только после того, как ваше приложение будет запущено хотя бы один раз.

Несоответствие в каталоге / tmp

На момент написания существует несоответствие в поведении каталога / tmp во время перезагрузки и перезапуска приложения. При текущем поведении любая вещь в / tmp будет сохраняться после перезагрузки, но не , а сохранится после перезапуска приложения.

Монтаж внешнего носителя

С момента выпуска мультиконтейнера на платформе balena мы больше не рекомендуем использовать начальную систему в контейнере.Это влияет на то, как мы работаем с внешним хранилищем, поскольку ранее мы полагались на systemd / OpenRC и / etc / fstab .

Рекомендуемый способ установки внешних носителей информации (SD-карты, USB-накопители, внешние диски и т. Д.) В контейнер теперь - использование mount . Здесь мы включаем набор рекомендаций, которые помогут вам начать работу.

Поддержка ядра balenaOS

Перед тем, как начать, рекомендуется проверить, было ли скомпилировано ядро ​​balenaOS, которое вы используете, с поддержкой файловой системы, которую вы хотите использовать.Для этого вы можете запустить эту команду на хосте , который выдаст список поддерживаемых файловых систем: cat / proc / filesystems .

Если ваша файловая система не поддерживается, вы можете связаться с нами через наш форум, и мы будем рады помочь.

Подготовка контейнера

Чтобы иметь возможность обнаруживать внешние носители динамически, вам необходимо запустить контейнер в привилегированном режиме и включить на нем udevd . Это легко сделать, если вы используете базовые изображения balena по:

  • Добавление Privilege: true в определение службы вашего контейнера в файле docker-compose.yml файл
  • Добавление ENV UDEV = на в Dockerfile вашего контейнера

Это гарантирует, что хост будет распространять события udev в контейнер, позволяя нам управлять устройством изнутри него.

Общие советы для внешних носителей

Устройства можно выбрать разными способами, например, по имени устройства (запись / dev ), метке или UUID. С практической точки зрения мы рекомендуем использовать метки ( LABEL =... статей). Ярлыки можно легко сделать одинаковыми для нескольких карт или флэш-накопителей, при этом вы все равно можете идентифицировать каждое устройство по их UUID. Кроме того, записи / dev не статичны на некоторых платформах, и их значение зависит от того, в каком порядке система вызывает устройства. Имена устройств или UUID - хороший выбор, если вы можете легко определить или предсказать их значения, например, в контексте правила UDev.

Примечание: Вы можете получить список имен устройств, меток и типов файловых систем, запустив lsblk -f (как на хосте, так и в контейнере).

Крепление

Чтобы смонтировать внешний диск, вы можете использовать команду Linux mount . Опять же, поддерживается любой метод выбора:

  mount -t <тип-тип> -o rw <имя-устройства> <точка-монтирования> mount -t <тип-тип> -o rw -L <метка-устройства> <точка-монтирования> mount -t <тип-тип> -o rw -U  <точка-подключения>  

Примечание: Папка точки монтирования должна существовать для успешного монтирования.

Для получения дополнительной информации о команде mount см. Справочную страницу mount.

Демонтаж

Чтобы отключить внешний диск, вы можете использовать команду Linux umount :

  umount <точка крепления>  

Для получения дополнительной информации о команде umount см. Справочную страницу umount.

Автоматическое монтирование / размонтирование по правилам UDev

В предыдущих разделах показано, как вручную подключить или отключить внешний носитель.Вероятно, вы захотите автоматизировать это, чтобы ваш носитель автоматически монтировался / размонтировался, когда вы его подключаете или отключаете. К счастью, этого легко добиться с помощью правил UDev.

Сначала создаем файл правил usb.rules :

  ACTION == "добавить", SUBSYSTEM == "block", ENV {DEVTYPE} == "partition", RUN + = "/ bin / sh -c '/usr/src/scripts/mount.sh'" ACTION == "удалить", SUBSYSTEM == "block", ENV {DEVTYPE} == "partition", RUN + = "/ bin / sh -c '/usr/src/scripts/unmount.sh'"  

Эти правила будут срабатывать каждый раз, когда мы подключаем или отключаем устройство с блочными разделами и запускаем предоставленные нами скрипты ( / usr / src / mount.sh или /usr/src/unmount.sh ).

Скопируйте правила и скрипты в свой контейнер:

  КОПИРОВАТЬ usb.rules /etc/udev/rules.d/usb.rules КОПИРОВАТЬ скрипты / usr / src / scripts  

Наконец, нам нужно написать сценарии mount.sh и unmount.sh . Эти сценарии будут использовать команды mount и umount так же, как мы описали выше в разделах Mounting и Unmount .

В этом проекте вы можете найти полностью рабочий пример автоматического монтирования / размонтирования устройств с правилами UDev.

Совместное использование установленных устройств в контейнерах

Обратите внимание, что в настоящее время невозможно совместно использовать подключенное устройство в нескольких контейнерах. Это функция, над которой мы сейчас работаем. Эта документация будет обновлена, как только мы добавим поддержку этой функции.

.

android - как решить ошибку «путь к диспетчеру sdk не распознается как внутренняя или внешняя команда»?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Смотрите также