Произошла ошибка при работе с POP3. Код ошибки: 3. Ответ сервера:

Детектив. симптомы: «Произошла ошибка при работе с POP3. Код ошибки: 3. Ответ сервера:». Маршрутизатор микротик rb2011 v.6.49. Через NAT микротика не открываются страницы домена 1c.ru и поддомены, прочие сайты(ya.ru и др.) открывает норм, через прокси(на том же микротике) работает. Отчетность 1 не грузит частично(ошибка 3 через pop3).

Пока разбирался нашел в логах прокси, что идут обращения на немаршрутизируемый адрес 192.0.2.1(адрес для использования в наглядных пособиях(схемах и т.п.) для обучения или визуализирования логики работы: Читать далее «Произошла ошибка при работе с POP3. Код ошибки: 3. Ответ сервера:»

HS-303 прошивка камеры

OpenIPC Wiki

Оглавление

Switcam HS-303

Компания-производитель выпускала IP камеры Switcam HS-303 в трёх версиях, значительно отличающихся аппаратно между собой. На данный момент проект OpenIPC поддерживает прошивку без разборки всех трёх версий камер. Читать далее «HS-303 прошивка камеры»

Камера HS-303 ошибка обновления

При обновлении с помощью

sysupgrade -k -r

ошибка:

SoC is not defined in U-Boot environment Aborting.

Решение:

flash_eraseall /dev/mtd1
flash_eraseall -j /dev/mtd4

Затем выключить питание и снова включить
Подождать минуту-две и еще раз дернуть питание

Источник: https://t.me/c/1717997582/11359

Почему не работает преренаправление портов во FreeBSD

Задача: из Интернета попасть на видеорегистратор внутренней сети.

Решение: добавить правило redirect_port описанию конфигурации NAT. Прежнее правило никак не заводилось, получилось так:

Рабочий вариант:

ipfw nat 1 config if tun0 deny_in same_ports unreg_only reset redirect_port tcp 192.168.37.80:8000 8000

Не рабочий вариант:

ipfw nat 2 config if tun0 log same_ports reset redirect_port tcp 192.168.37.80:8000 8000
Читать далее «Почему не работает преренаправление портов во FreeBSD»

unbound freebsd 14.3 установка настройка

Обновлено 27.11.2025

Unbound — это легкий, высокопроизводительный рекурсивный DNS-резолвер, который можно использовать для повышения скорости и безопасности разрешения DNS. FreeBSD включает Unbound в свою базовую систему, что упрощает настройку и конфигурирование. Это руководство поможет вам установить, настроить и защитить Unbound как локальный DNS-резолвер на FreeBSD. Читать далее «unbound freebsd 14.3 установка настройка»

FreeBSD 14.3 zabbix74 установка

Создаем отдельную клетку для zabbix машины
cbsd jconstruct-tui

IP адрес вручную и шлюз вручную указать.

Заходим в клетку в ней дальше работаем
cbsd jlogin
Установка необходимого софта веб-сервера и потом заббикса
pkg install apache24 mysql80-server zabbix74-agent zabbix74-frontend-php84 mod_php84 php84-extensions php84-mysqli php84-mbstring php84-gd php84-bcmath php84-curl zabbix74-server

Читать далее «FreeBSD 14.3 zabbix74 установка»

HAOS добавить счётчик энергии Tuya

Дано: виртуальная машина с ОС HAOS и Счетчик энергии «Tuya Zigbee Single Clamp Energy Meter»(в HA устройство TS0601_TZE204_cjbofhxw).

Задача; подружить счетчик энергии Tuya с Home Assistant.

Решение(все действия выполняются в панели управления hass, через браузер):
1. Добавить дополнение Studio Code Server


2. Отредактировать конфигурацию, добавить:

zha:
  custom_quirks_path: /config/custom_zha_quirks/

3. Создать папку /config/custom_zha_quirks/ в ней файл  и вставить в него код(ниже) ил из файла ts0601_din_power :

Код для вставки:

"""Tuya Din Power Meter."""
from typing import Dict

from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl import foundation
from zigpy.zcl.clusters.general import Basic, Groups, Ota, Scenes, Time
from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement
from zigpy.zcl.clusters.smartenergy import Metering

from zhaquirks import LocalDataCluster
from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
)
from zhaquirks.tuya import TuyaLocalCluster
from zhaquirks.tuya.mcu import (
    DPToAttributeMapping,
    EnchantedDevice,
    TuyaMCUCluster,
    TuyaOnOff,
)


class TuyaPowerMeasurement(TuyaLocalCluster, ElectricalMeasurement):
    """Custom class for power, voltage and current measurement."""

    AC_CURRENT_MULTIPLIER = 0x0602
    AC_CURRENT_DIVISOR = 0x0603

    _CONSTANT_ATTRIBUTES = {AC_CURRENT_MULTIPLIER: 1, AC_CURRENT_DIVISOR: 1000}


class TuyaElectricalMeasurement(TuyaLocalCluster, Metering):
    """Custom class for total energy measurement."""

    POWER_WATT = 0x0000

    _CONSTANT_ATTRIBUTES = {
        0x0300: POWER_WATT,  # unit_of_measure
        0x0302: 1000,  # divisor
    }


class DinPowerManufCluster(TuyaMCUCluster):
    """Tuya Manufacturer Cluster with din power datapoints."""

    class TuyaConnectionStatus(t.Struct):
        """Tuya request data."""

        tsn: t.uint8_t
        status: t.LVBytes

    client_commands = TuyaMCUCluster.client_commands.copy()
    client_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status",
                {"payload": TuyaConnectionStatus},
                True,
                is_manufacturer_specific=True,
            ),
        }
    )

    server_commands = TuyaMCUCluster.server_commands.copy()
    server_commands.update(
        {
            0x25: foundation.ZCLCommandDef(
                "mcu_connection_status_rsp",
                {"payload": TuyaConnectionStatus},
                False,
                is_manufacturer_specific=True,
            ),
        }
    )

    def handle_mcu_connection_status(
        self, payload: TuyaConnectionStatus
    ) -> foundation.Status:
        """Handle gateway connection status requests (0x25)."""

        payload_rsp = DinPowerManufCluster.TuyaConnectionStatus()
        payload_rsp.tsn = payload.tsn
        payload_rsp.status = b"\x01"  # 0x00 not connected to internet | 0x01 connected to internet | 0x02 time out

        self.create_catching_task(
            super().command(0x25, payload_rsp, expect_reply=False)
        )

        return foundation.Status.SUCCESS

    dp_to_attribute: Dict[int, DPToAttributeMapping] = {
        0x01: DPToAttributeMapping(
            TuyaElectricalMeasurement.ep_attribute,
            "current_summ_delivered",
        ),
        0x06: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            ("rms_current", "rms_voltage"),
            converter=lambda x: (x >> 16, (x & 0x0000FFFF) / 10),
        ),
        0x10: DPToAttributeMapping(
            TuyaOnOff.ep_attribute,
            "on_off",
        ),
        0x66: DPToAttributeMapping(
            TuyaElectricalMeasurement.ep_attribute,
            "current_summ_received",
        ),
        0x67: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "active_power",
        ),
        0x69: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "ac_frequency",
        ),
        0x6D: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "total_reactive_power",
        ),
        0x6E: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "reactive_power",
        ),
        0x6F: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "power_factor",
        ),
    }

    data_point_handlers = {
        0x01: "_dp_2_attr_update",
        0x06: "_dp_2_attr_update",
        0x10: "_dp_2_attr_update",
        0x66: "_dp_2_attr_update",
        0x67: "_dp_2_attr_update",
        0x69: "_dp_2_attr_update",
        0x6D: "_dp_2_attr_update",
        0x6E: "_dp_2_attr_update",
        0x6F: "_dp_2_attr_update",
    }


class TuyaManufClusterDinPower(DinPowerManufCluster):
    """Manufacturer Specific Cluster of the Tuya Power Meter device."""

    dp_to_attribute: Dict[int, DPToAttributeMapping] = {
        17: DPToAttributeMapping(
            TuyaElectricalMeasurement.ep_attribute,
            "current_summ_delivered",
        ),
        18: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "rms_current",
        ),
        19: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "active_power",
            converter=lambda x: x // 10,
        ),
        20: DPToAttributeMapping(
            TuyaPowerMeasurement.ep_attribute,
            "rms_voltage",
            converter=lambda x: x // 10,
        ),
    }

    data_point_handlers = {
        17: "_dp_2_attr_update",
        18: "_dp_2_attr_update",
        19: "_dp_2_attr_update",
        20: "_dp_2_attr_update",
    }


class TuyaPowerMeter(EnchantedDevice):
    """Tuya power meter device."""

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE204_cjbofhxw", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterDinPower.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    TuyaManufClusterDinPower,
                    TuyaPowerMeasurement,
                    TuyaElectricalMeasurement,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        }
    }


class HikingPowerMeter(CustomDevice):
    """Hiking Power Meter Device - DDS238-2."""

    signature = {
        # "node_descriptor": "<NodeDescriptor byte1=1 byte2=64 mac_capability_flags=142 manufacturer_code=4098
        #                       maximum_buffer_size=82 maximum_incoming_transfer_size=82 server_mask=11264
        #                       maximum_outgoing_transfer_size=82 descriptor_capability_field=0>",
        # device_version=1
        # input_clusters=[0x0000, 0x0004, 0x0005, 0xef00]
        # output_clusters=[0x000a, 0x0019]
        MODELS_INFO: [
            ("_TZE200_bkkmqmyo", "TS0601"),
            ("ffffffffffffffff", "TS0601"),
        ],
        ENDPOINTS: {
            # <SimpleDescriptor endpoint=1 profile=260 device_type=51
            # device_version=1
            # input_clusters=[0, 4, 5, 61184]
            # output_clusters=[10, 25]>
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    DinPowerManufCluster.cluster_id,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            }
        },
    }

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    Groups.cluster_id,
                    Scenes.cluster_id,
                    DinPowerManufCluster,
                    TuyaElectricalMeasurement,
                    TuyaPowerMeasurement,
                ],
                OUTPUT_CLUSTERS: [Time.cluster_id, Ota.cluster_id],
            },
            16: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
                INPUT_CLUSTERS: [
                    TuyaOnOff,
                ],
                OUTPUT_CLUSTERS: [],
            },
        }
    }

4. Перезапустить HA, датчик обзаведется значениями Мощность, Ток и напряжение:

Готово.

Источник: https://community.home-assistant.io/t/zha-tze204-cjbofhxw-power-clamp-meter/638908/10

https://github.com/jeverley/zha-device-handlers/blob/616138cca57b6478802e1c8b854f2633d49dd101/zhaquirks/tuya/ts0601_energy_meter.py

dzen.ru/a/ZhZuCenO7VOirVYBhttps://dzen.ru/a/ZhZuCenO7VOirVYB2 https://dzen.ru/a/ZhZuCenO7VOirVYBhttps://dzen.ru/a/ZhZuCenO7VOirVYBhttps://dzen.ru/a/ZhZuCenO7VOirVYBhttps://dzen.ru/a/ZhZuCenO7VOirVYB

https://dzen.ru/a/ZhZuCenO7VOirVYBhttps://dzen.ru/a/ZhZuCenO7VOirVYB

FreeBSD Проверка и исправление ошибок

1.Для файловых систем UFS
Заходим в однопользовательский режим, после приглашения выполняем:

fsck -fy

2.Для файловых систем ZFS
В отличие от традиционных файловых систем, таких как UFS или EXT4, ZFS была разработана с учетом самовосстановления и не требует использования утилиты fsck для проверки и исправления ошибок. Выполняем:

zpool scrub имя-пула-обычно-zroot

Если ошибки предыдущей командой обнаружены, выполняем:

zpool clear имя-пула-обычно-zroot
Яндекс.Метрика