Как принципиально подключаются устройства.

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

Модератор: immortal

skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Как принципиально подключаются устройства.

Сообщение skysilver » Пн мар 04, 2019 1:49 pm

Fat-Zer писал(а):
Вс мар 03, 2019 7:24 am
Нет, такой возможности нет, все данные сохраняются напрямую в базу на диск. Хорошо было бы это реализовать.
Для пользователя такой возможности нет. Но архитектурно предусмотрены некоторые таблицы с типом MEMORY, которые размещаются в ОЗУ и ничего не пишут на диск. А в образах для малинок вообще вся база крутится в ОЗУ по умолчанию, чтобы уменьшить износ карты памяти.
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
lexfin
Сообщения: 8
Зарегистрирован: Пн янв 08, 2018 12:49 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Как принципиально подключаются устройства.

Сообщение lexfin » Пн мар 04, 2019 3:57 pm

Если играться с Linux и устанавливать МД скриптом, то там же параллельно ставиться и MQTT. Прошивки с mqtt и для есп и для ардуины есть и платные и бесплатные. Данные идут с той скоростью с какой настроишь в прошивке. Модуль mqtt для МД это все читает. Остается наклепать в "Простых устройствах" датчиков и релюшек, которые автоматически создадут нужные объекты и привязать эти объекты к данным приходящим по mqtt. Там-же, в ПУ, пожно вывести эти данные на сцену и в меню. По моему это самый простой способ по которому иду сам. Ничего программировать не нужно.
Fat-Zer
Сообщения: 6
Зарегистрирован: Ср фев 27, 2019 9:06 am
Благодарил (а): 2 раза
Поблагодарили: 2 раза

Re: Как принципиально подключаются устройства.

Сообщение Fat-Zer » Пн мар 04, 2019 8:52 pm

Chainik писал(а):
Вс мар 03, 2019 8:35 am
Меня, правда, всегда удивляло (с практической точки зрения) стремление опрашивать датчики ежесекундно.
В плане сделать это для быстро меняющихся данных, например, текущие электрический ток/мощность и запустить это в живой график со значениями на пару минут. Мне нравится идея обратной связи «включил свет→увидел скачок потребления тока».
skysilver писал(а):
Пн мар 04, 2019 1:49 pm
Для пользователя такой возможности нет. Но архитектурно предусмотрены некоторые таблицы с типом MEMORY, которые размещаются в ОЗУ и ничего не пишут на диск.
Из коробки такая таблица всего одна — cached_values и она используется в основном для кеширования значений при чтении... в принципе на её основе было бы несложно сделать write-back кеш...
skysilver писал(а):
Пн мар 04, 2019 1:49 pm
А в образах для малинок вообще вся база крутится в ОЗУ по умолчанию, чтобы уменьшить износ карты памяти.
Образ, честно сказать, не смотрел, но подозреваю, что не вся, а только «значения свойств» (ситуация «моргнул свет→настраивай всё с нуля» думаю ни кого не устраивает)... В любом случае, обычной практикой является, что некоторое значения свойств представляют настройки пользователя (я прав?), а они не должны теряться.
lexfin писал(а):
Пн мар 04, 2019 3:57 pm
Если играться с Linux и устанавливать МД скриптом, то там же параллельно ставиться и MQTT. Прошивки с mqtt и для есп и для ардуины есть и платные и бесплатные.
Я чураюсь использовать беспроводные средства — полноценную защиту (класса wpa) на них не создашь (или я ошибаюсь?), так что мой внутренний параноик строго против... А ethernet ИМХО всё же тяжеловат для система организации УД и под него мало дешёвого готового оборудования. Пока склоняюсь к modbus+1wire в качестве основных шин сети. В них, конечно, очень не хватает прерываний, но большинство параметров этого не требуют. Благо вся закладка системы будет на стадии строительства, так что протянуть сотню-другую метров кабеля — не проблема...
lexfin
Сообщения: 8
Зарегистрирован: Пн янв 08, 2018 12:49 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Как принципиально подключаются устройства.

Сообщение lexfin » Вт мар 05, 2019 8:18 am

Так всеравнож домашний вайфай висит, смысл боятся к нему есп подключать? Параноика стоит иногда задвигать подальше).
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Как принципиально подключаются устройства.

Сообщение tarasfrompir » Вт мар 05, 2019 8:40 am

По поводу вафли - заведи внутреннюю сеть с многими буквами в пароле на нее .
Пока что сам не смог поламать свою сеть.. Хотя взломщик из меня по словарям :oops: :oops: :oops:
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Благодарил (а): 28 раз
Поблагодарили: 52 раза
Контактная информация:

Re: Как принципиально подключаются устройства.

Сообщение nightwind » Пт мар 08, 2019 10:54 pm

fandaymon писал(а):
Сб мар 02, 2019 9:38 pm
nightwind писал(а):
Сб мар 02, 2019 9:16 pm

Код: Выделить всё

import urllib
import os

temperature = os.popen('vcgencmd measure_temp').readline()
temperature =  temperature.replace("temp=","").replace("'C\n","")
link="http://127.0.0.1/objects/?op=set&object=ThisComputer&p=CpuTemp&v=" + temperature
f=urllib.urlopen(link)
оверхед космический! так скоро стоядерного процессора не хватит. :mrgreen: зато низкиq порог входа и не нужны {}
решается все одной строчкой, по быстродействию лучше в раз 100.

Код: Выделить всё

setGlobal("ThisComputer.CPU_temp",file_get_contents('/sys/class/thermal/thermal_zone0/temp') / 1000);
Да прям. Так уж и в 100 раз. У меня к тому же в этом же скрипте другие датчики опрашиваются, а температура это просто заодно
Друг, спорить на коньяк не стану, но судя по опыту - твой код будет тормознее еще больше, чем в сто раз. я фанат оптимизаций, довелось один эмбеддед проект ускорить более чем в 10 000 раз)
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Как принципиально подключаются устройства.

Сообщение serghei » Сб мар 09, 2019 12:05 am

Fat-Zer писал(а):
Вс мар 03, 2019 7:24 am
А из коробки какой-нибудь ежесекундный таймер есть? Или для этого придётся уже свой цикл делать?
Из коробки нет , но если разберётесь , то Тут написан таймер на 2 секунды.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Как принципиально подключаются устройства.

Сообщение fandaymon » Сб мар 09, 2019 12:23 am

nightwind писал(а):
Пт мар 08, 2019 10:54 pm
fandaymon писал(а):
Сб мар 02, 2019 9:38 pm
nightwind писал(а):
Сб мар 02, 2019 9:16 pm

Код: Выделить всё

import urllib
import os

temperature = os.popen('vcgencmd measure_temp').readline()
temperature =  temperature.replace("temp=","").replace("'C\n","")
link="http://127.0.0.1/objects/?op=set&object=ThisComputer&p=CpuTemp&v=" + temperature
f=urllib.urlopen(link)
оверхед космический! так скоро стоядерного процессора не хватит. :mrgreen: зато низкиq порог входа и не нужны {}
решается все одной строчкой, по быстродействию лучше в раз 100.

Код: Выделить всё

setGlobal("ThisComputer.CPU_temp",file_get_contents('/sys/class/thermal/thermal_zone0/temp') / 1000);
Да прям. Так уж и в 100 раз. У меня к тому же в этом же скрипте другие датчики опрашиваются, а температура это просто заодно
Друг, спорить на коньяк не стану, но судя по опыту - твой код будет тормознее еще больше, чем в сто раз. я фанат оптимизаций, довелось один эмбеддед проект ускорить более чем в 10 000 раз)
Этот простой setGlobal сейчас задействует столько кода, что разница в скорости интерпретаторов запросто нивелируется
Повторюсь - скрипт на питоне опрашивает другие датчики, температура это просто заодно. К тому же если температура понадобится не на той малинке, на которой крутится МДМ, то чтение файла из php не прокатит
Аватара пользователя
Nail
Сообщения: 373
Зарегистрирован: Пн мар 05, 2018 7:09 am
Откуда: Самара
Благодарил (а): 174 раза
Поблагодарили: 28 раз

Re: Как принципиально подключаются устройства.

Сообщение Nail » Ср мар 20, 2019 1:28 pm

Chainik писал(а):
Сб мар 02, 2019 9:20 pm
Итак, сейчас мы рассмотрим вариант, когда в качестве контроллера у нас будет выступать MegaD (https://ab-log.ru/smart-house/ethernet/megad-2561), а в качестве датчика -- цифровой датчик температуры DS18B20.

Немного о подключении датчика
Датчик DS18B20 можно подключить напрямую к цифровым портам контроллера MegaD-2561. .....
я не понял наверно, почему так заморачиваться ), а почему нельзя класс "МегаД"-привязать к портам меги ПУ или объекты и тянуть все данные из свойств и методов (предоставленные классом МД) и лепить графики и условия их работ ?
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS ZigBee Gateway. Broadlink.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Как принципиально подключаются устройства.

Сообщение Chainik » Ср мар 20, 2019 2:23 pm

Nail писал(а):
Ср мар 20, 2019 1:28 pm
Chainik писал(а):
Сб мар 02, 2019 9:20 pm
Итак, сейчас мы рассмотрим вариант, когда в качестве контроллера у нас будет выступать MegaD (https://ab-log.ru/smart-house/ethernet/megad-2561), а в качестве датчика -- цифровой датчик температуры DS18B20.

Немного о подключении датчика
Датчик DS18B20 можно подключить напрямую к цифровым портам контроллера MegaD-2561. .....
я не понял наверно, почему так заморачиваться ), а почему нельзя класс "МегаД"-привязать к портам меги ПУ или объекты и тянуть все данные из свойств и методов (предоставленные классом МД) и лепить графики и условия их работ ?
Ну это один из вариантов. MDM -- система гибкая, и количество альтернативных вариантов настройки велико. Только народ не всегда желает тратить свое время, "разжевывая" страждущим работоспособные схемы.
Ответить