Май 232023
 

Отлично работает со светодиодными или энергосберегающими лампами.
Внутри стоит симистр BTA16.

Тесты:

  • Энергосберегающая 21W – не мерцает
  • Светодиодная 10W – мерцает
  • 2 x Светодиодные Лампы 10W – не мерцают 
  • 3 x Светодиодные Лампы 10W – не мерцают

Ноя 182022
 

Улучшенная версия ESP32-GSM-Tasmota-Relay V3.0. Исправлены ошибки, удалены не нужные интерфейсы OpenTherm, добавлены 4xSSR (Твердотельные реле), добавлена возможность установить BMP280 и RTC(Real Time Clock DS3231) одновременно и даже подключить TM1637. SPI на плате также присутствует. Небольшой пример использования Berry на Tasmota для отправки SMS и управление портами через GSM. gsm-berry-tasmota-ver-1-0 (PDF)

  • ESP32-WROOM-32(D) – прошивка Tasmota
  • 4 Изолированные Входа. (12V)
  • 4 SSR  – Твердотельные реле (2А) – Индикация включения.
  • 4 LED (Индикация входов или Выходов)
  • Индикация питания 3V, 4V(GSM), Контроль напряжения 4V через GPIO (ADC)
  • Индикатор состояния сети (WiFi, MQTT, etc.)
  • RS485 Интерфейс.
  • Buzzer – зуммер.
  • WS2812B – Индикация.
  • Установка модулей RTC-DS3231, BMP280, SPI Модулей
  • Внешнее подключение 2xGPIO, I2C, 3.3V, GND.
  • Можно установить модуль GSM SIM800L или ZigBee E18-MS1-PCB/IPX (Описание ниже)
  • USB для перепрограммирования.
  • Питание 9-15 Вольт.
  • Схема.

Схема. (Schematics)

Готовим платы к производству. 

https://www.pcbway.ru/

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

Процесс сборки (Монтаж PCB)

Analog1 = Напряжение на GSM модеме. R1 = 4.7K, R2 = 10K

V = (R1+R2)/R2 * (Analog1 * 3.3)/4095

V= ((4700+10000)/10000) * (3359*3.3)/4095 = 3.97V

Управление RGB(WS2812B) светодиодом:

SetOption17 1 – To set color units to R,G,B,W (0-255):

color 255,0,0,0 – Red
color 0,255,0,0 – Green
color 0,0,255,0 – Blue
color 0,0,0,255 – White

backlog color 0,0,255,0;dimmer 40

Улучшения по сравнению с предыдущими версиями.

Еще немного фото.

Настройка: 

Для инициализации GSM модема при старте или рестарте.

rule ON System#Boot do backlog power1 on;power1 off endon

Дополнительные модули.

При всех модулях.

backlog webbutton1 R1;
webbutton2 R2;
webbutton3 R3;
webbutton4 R4;
webbutton5 GSM;
webbutton6 WLED;
webbutton7 CLOCK;
webbutton8 IN1;
webbutton9 IN2;
webbutton10 IN3;
webbutton11 IN4

  • SetOption146 1 # to enable display of ESP32 internal temperature
  • GPIO4 – Reset SIM800L
  • backlog SetOption36 0;SetOption65 1;wificonfig 4; SetOption59 1; TelePeriod 150; TimeZone +3

Управление MCP23008:

Входа
backlog sensor29 0,2,1; sensor29 1,2,1; sensor29 2,2,1; sensor29 3,2,1

Индикация входа
backlog sensor29 4,5,0; sensor29 5,5,0; sensor29 6,5,0; sensor29 7,5,0

Ноя 062022
 

Схема: DipTrace Schematic – module-for-onega-tasmota

 

Тестовая прошивка.(Работает) 2023.04.19 Home-Assistant видит только GPIO выключатели.
Tasmota – Видит BMP280 и DS18B20 и LDR.
https://ptvo.info/


Тип платы: CC2530
Тип устройства: Роутер
Имя производителя: RomikGSMzigBee
Идентификатор модели: GSMzigBeeRouter
Описание расположения: Moscow
Обновить дату и время сборки в прошивке: 2023-04-18
Включить сторожевой таймер (watchdog): Да
Отключить сброс устройства через процедуру включения/выключения: Да
Отключить удаленную настройку интервала во время работы: Да
Индикатор статуса: P01, Подключение или ошибки
Установить интервал отправки отчетов (с): 150

Выходные контакты:
P07: Выход 2, GPIO, Внешняя подтяжка к + (Роль: Универсальный), Запоминать состояние
P06: Выход 3, BMP280 (I2C SDA), Внешняя подтяжка к + (Адрес (десят-ый): 118)
P05: Выход 4, I2C SCL/SPI CLK, Внешняя подтяжка к +
P10: Выход 5, GPIO, Внешняя подтяжка к + (Роль: Универсальный), Запоминать состояние
P13: Выход 6, DS18B20, Внешняя подтяжка к + (Идентификатор сенсора (необязат., шестнад-ый): )
P04: Выход 7, АЦП (макс. 3.3В) (Коэффициент: 1, Сдвиг: 0)

Входные контакты:
P20: Вход 1, Внешнее пробуждение, Внешняя подтяжка к +

Вот так выглядит данные SENSOR на Tasmota.


{"ZbReceived":{"0x7779":{"Device":"0x7779","Power":0,"Endpoint":2,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","Power":0,"Endpoint":5,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":99273,"AnalogInDescription":"Pa,00","Endpoint":3,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":28.99,"AnalogInDescription":"C,00","Endpoint":3,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":27.69,"AnalogInDescription":"C,28-FF-64-0E-7E-73-74-32","Endpoint":6,"LinkQuality":111}}}
{"ZbReceived":{"0x7779":{"Device":"0x7779","AnalogValue":3.29,"AnalogInDescription":"V","Endpoint":7,"LinkQuality":111}}}

Ноя 052022
 

Дополнительные модули.

ZigBee E18-MS1-PCB/IPX (https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/)

P2.0 – Отключить от GND – для работы как Coordintaor ZigBee (Перерезать дорожку)

Маркировка на плате R1 и R3 – перепутаны !!!

E18-MS1-PCB-Module-Romik-V1.0 (Схема) Schematics

https://ptvo.info/cc2530-based-zigbee-coordinator-and-router-112/

R1,R2 – Запаять для использования порта P0.2(RX),P0.3(TX) как UART
R3,R4 – Запаять для использования порта P1.4(RX),P1.5(TX) как UART
Одновременно запаивать не нужно.

Программирование модуля: https://zigbee.blakadder.com/flashing_ccloader.html

P.S. External sensor power control – it is a special output type. The firmware sets the configured output to the HIGH state before reading a sensor’s value, and sets it to LOW after that. The CC2530 and CC2531 chips allow you to use pins P10 and P11 to supply power up to 20 mA to external sensors.

https://ptvo.info/zigbee-configurable-firmware-features/power-saving-mode/

Ноя 112021
 

Вот что получилось.

ZibGee – Tasmota – MQTT Координатор.

 

ZigBee 4 симистора и 4 входа, 4x5v Выходов, DS18B20

Коричневый.

Коричневый+красный

VCC = 3.3V

ZigBee координатор: Rule ON System#Boot do TCPStart 8888 endon

Прошивка https://ptvo.info/

Прошивка: RomikZigBeeSwitch

Как прошить: https://zigbee.blakadder.com/flashing_ccloader.html

Прошивка: objcopy –gap-fill 0xFF –pad-to 0x040000 -I ihex Romik.Switch.V1.hex -O binary Romik.Switch.V1.bin
./ccloader /dev/ttyUSB0 Romik.Switch.V1.bin 1

Выходные контакты:
P20: Выход 1, GPIO, Внешняя подтяжка к +
P21: Выход 2, GPIO, Внешняя подтяжка к +
P22: Выход 3, GPIO, Внешняя подтяжка к +
P13: Выход 4, GPIO, Внешняя подтяжка к +
P12: Выход 5, GPIO, Внешняя подтяжка к +
P17: Выход 6, GPIO, Внешняя подтяжка к +
P16: Выход 7, GPIO, Внешняя подтяжка к +
P15: Выход 8, GPIO, Внешняя подтяжка к +

Входные контакты:
P00: Вход 1, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 1
P01: Вход 2, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 2
P04: Вход 3, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 3
P05: Вход 4, GPIO, Внешняя подтяжка к +, Переключатель, Привязать к выходу 4
P06: Вход 5, DS18B20, Внешняя подтяжка к +

Схема – повторять не нужно – много недоработок.

DipTrace Schematic – zigbee-relay-v1.0

HA


sensor:

  - platform: mqtt
    unique_id: ZigBeeTempDS18B20
    name: "ZigBeeTest Temperature"
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: "{{ value_json.ZbReceived['0xCE98'].AnalogValue | float }}"
    unit_of_measurement: "°C"
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    device_class: temperature

 


- platform: mqtt
    unique_id: ZigBeeV1Switch_4
    name: ZigBeeV1Switch_4
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: |-
      {%- if value_json.ZbReceived is defined and value_json.ZbReceived['0xCE98'] is defined -%}
      {%- if value_json.ZbReceived['0xCE98'].Endpoint == 4 -%}
      {%- if value_json.ZbReceived['0xCE98'].Power == 1 -%}
      ON
      {% else %}
      OFF
      {% endif %}
      {% endif %}
      {% endif %}
    state_on: "ON"
    state_off: "OFF"
    command_topic: "cmnd/ZigBeeTest/ZbSend"
    payload_on: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"on"} }'
    payload_off: '{ "device":"0xCE98", "Endpoint":4, "send":{"Power":"off"} }'
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    retain: false

Координатор работает прекрасно.

p.s. В исполнительном устройстве нужно отрезать от МОДУЛЯ ножки P24,P23 так как они используются для входа кварца 32.768 и на плате (с нижней стороны) соединить P23-P13,P24-P12.

Координатор Tasmota-ZigBee:

LWT: Для Home-Assistant – Над правилами нужно еще поработать.

Rule 
ON zbstate#Status==30 DO publish tele/ZigBeeTest/LWT Online ENDON
ON zbreceived#?#Reachable==false DO publish tele/ZigBeeTest/LWT Offline ENDON
ON zbreceived#0xCE98 DO publish tele/ZigBeeTest/LWT Online ENDON

Включение PerminJoin по кнопке BOOT=GPIO0

rule2 ON Switch1#State=2 DO zbpermitjoin 1 ENDON

p.s. Управление ключами с другой Tasmota:

publish cmnd/ZigBeeTest/zbsend { “device”:”0xCE98″, “Endpoint”:4, “send”:{“Power”:”off”} }

Схема дополнительного модуля: DipTrace Schematic – Replace-CC2530-to-ESP07s

Последняя прошивка 15-06-2022 года.

Ноя 112021
 

Пример:

{“ZbReceived”:{“0x8982”:{“Device”:”0x8982″,”0006!01″:””,”Power”:1,“Endpoint”:1,”LinkQuality”:117}}}

value_json.ZbReceived[‘0x8982’].Endpoint

1

Так более правильно:


- platform: mqtt
    unique_id: ZigBeeV1Switch_8
    name: ZigBeeV1Switch_8
    state_topic: "tele/ZigBeeTest/SENSOR"
    value_template: |-
      {%- if value_json.ZbReceived is defined and value_json.ZbReceived['0x8982'] is defined -%}
      {%- if value_json.ZbReceived['0x8982'].Endpoint == 8 -%}
      {%- if value_json.ZbReceived['0x8982'].Power == 1 -%}
      ON
      {% else %}
      OFF
      {% endif %}
      {% endif %}
      {% endif %}
    state_on: "ON"
    state_off: "OFF"
    command_topic: "cmnd/ZigBeeTest/ZbSend"
    payload_on: '{ "device":"0x8982", "Endpoint":8, "send":{"Power":"on"} }'
    payload_off: '{ "device":"0x8982", "Endpoint":8, "send":{"Power":"off"} }'
    availability_topic: "tele/ZigBeeTest/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    retain: false
# ---------------------------------------------