Страница 2 из 3

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

Добавлено: Пн мар 04, 2019 1:49 pm
skysilver
Fat-Zer писал(а): Вс мар 03, 2019 7:24 am Нет, такой возможности нет, все данные сохраняются напрямую в базу на диск. Хорошо было бы это реализовать.
Для пользователя такой возможности нет. Но архитектурно предусмотрены некоторые таблицы с типом MEMORY, которые размещаются в ОЗУ и ничего не пишут на диск. А в образах для малинок вообще вся база крутится в ОЗУ по умолчанию, чтобы уменьшить износ карты памяти.

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

Добавлено: Пн мар 04, 2019 3:57 pm
lexfin
Если играться с Linux и устанавливать МД скриптом, то там же параллельно ставиться и MQTT. Прошивки с mqtt и для есп и для ардуины есть и платные и бесплатные. Данные идут с той скоростью с какой настроишь в прошивке. Модуль mqtt для МД это все читает. Остается наклепать в "Простых устройствах" датчиков и релюшек, которые автоматически создадут нужные объекты и привязать эти объекты к данным приходящим по mqtt. Там-же, в ПУ, пожно вывести эти данные на сцену и в меню. По моему это самый простой способ по которому иду сам. Ничего программировать не нужно.

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

Добавлено: Пн мар 04, 2019 8:52 pm
Fat-Zer
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 в качестве основных шин сети. В них, конечно, очень не хватает прерываний, но большинство параметров этого не требуют. Благо вся закладка системы будет на стадии строительства, так что протянуть сотню-другую метров кабеля — не проблема...

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

Добавлено: Вт мар 05, 2019 8:18 am
lexfin
Так всеравнож домашний вайфай висит, смысл боятся к нему есп подключать? Параноика стоит иногда задвигать подальше).

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

Добавлено: Вт мар 05, 2019 8:40 am
tarasfrompir
По поводу вафли - заведи внутреннюю сеть с многими буквами в пароле на нее .
Пока что сам не смог поламать свою сеть.. Хотя взломщик из меня по словарям :oops: :oops: :oops:

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

Добавлено: Пт мар 08, 2019 10:54 pm
nightwind
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 раз)

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

Добавлено: Сб мар 09, 2019 12:05 am
serghei
Fat-Zer писал(а): Вс мар 03, 2019 7:24 am А из коробки какой-нибудь ежесекундный таймер есть? Или для этого придётся уже свой цикл делать?
Из коробки нет , но если разберётесь , то Тут написан таймер на 2 секунды.

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

Добавлено: Сб мар 09, 2019 12:23 am
fandaymon
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 не прокатит

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

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

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

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

Добавлено: Ср мар 20, 2019 2:23 pm
Chainik
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 -- система гибкая, и количество альтернативных вариантов настройки велико. Только народ не всегда желает тратить свое время, "разжевывая" страждущим работоспособные схемы.