РЕКЛАМА НА ФОРУМХАУС Есть инвертор МАП. Но нет солнечных контролеров этой же фирмы ("МА"). Зато есть контролеры Epsolar. И есть приличная программка для сбора статистики той-же фирмы "МА", которая естественно работает только со своим железом. Очень хотелось передавать информацию с Epsolar в эту программу. Что из этого получилось, можно посмотреть на видео. Но на этом история не закончилась. Два десятка устройств нашли своих пользователей. А следом вышла "версия два" данного устройства.
"Версия два" - это законченное устройство, в корпусе на din-рейку. Имеет встроенный переходник uart-USB, а также два выхода на подключение внешних устройств. Выходы управляются с помощью той же программы малина-2, которая собирает статистику. В общем получилось вот так: Это промежуточный вариант. Имеет встроенный переходник uart-usb (чип CP2102) и один выход на внешнее управление. Окончательный вариант вот такой: Два выхода на внешнее управление и USB переходник на чипе PL2303 - отличный чип, между прочим. так это выглядит на din-рейке: Таким образом получилось собирать данные с Epsolar даже если нет ни одного "родного" устройства фирмы МА. А так как "малина-2" умеет еще и отдавать нужные данные по внешним запросам, удалось эти данные транслировать дальше в другие системы: domoticz, majordomo, emonpi и т. п. практически в любую которая работает с MQTT или json запросами. Примеры скриптов для передачи данных будут представлены чуть позже.
Малина-2 теперь умеет получать и хранить данные с Epsolara, показывать по ним статистику строить графики. Но так же есть возможность отправлять данные дальше, в другие системы для показа или сбора статистики. Например в различные "умные дома", например majordomo, domoticz (и далее в grafana например), в локальное облако emonpi (локальная версия emoncms. org) и т. п. Сделать это несложно (спасибо Osolemio, задал правильное направление). Предположим есть еще одна rasPi или что-то другое с установленным python. Python, как правило по умолчанию входит в большинство сборок для rasPi поэтому рассмотрим скрипт на базе питона. И так скрипт должен: 1. запросить и получить у малина-2 данные 2. взять нужное из полученного и подготовить к отправке дальше 3. собственно отправить дальше. Запросы к малине довольно просты и имеют такой вид: http://малина_IP/read_json.php?device=map http://малина_IP/read_json.php?device=mppt http://малина_IP/read_json.php?device=bat Соответственно получаем данные по МАПу, МППТ, или Батарейному монитору. Запросы можно посылать из обычного браузера и там же смотреть ответы. Ответы примерно такие: Спойлер: пример ответа по трем МППТ подключенным к малине-2 [ {"timestamp":"1527845203","time":"12:26:43","UID":"130","Vc_PV":"35.8","Ic_PV":"8.0","V_Bat":"14.0","P_PV":"288","P_Out":"288","P_Load":"0","P_curr":"288","I_Ch":"20.6","I_Out":"20.6","Temp_Int":"30","Temp_Bat":"20","Pwr_kW":"0.720","Sign_C0":"0","Sign_C1":"1","I_EXTS0":"0","I_EXTS1":"0","P_EXTS0":"0","P_EXTS1":"0","Relay_C":"0","RSErrSis":"0","Mode":"F","Sign":"l","MPP":"t","windspeed":"65535","FW":"6.5","R1":"0","R2":"0","R3":"0"},{"timestamp":"1527845204","time":"12:26:44","UID":"160","Vc_PV":"42.5","Ic_PV":"2.0","V_Bat":"13.8","P_PV":"86","P_Out":"86","P_Load":"0","P_curr":"86","I_Ch":"6.3","I_Out":"6.3","Temp_Int":"27","Temp_Bat":"20","Pwr_kW":"0.760","Sign_C0":"0","Sign_C1":"1","I_EXTS0":"0","I_EXTS1":"0","P_EXTS0":"0","P_EXTS1":"0","Relay_C":"1","RSErrSis":"0","Mode":"F","Sign":"l","MPP":"t","windspeed":"65535","FW":"6.5","R1":"1","R2":"0","R3":"0"},{"timestamp":"1527845206","time":"12:26:46","UID":"230","Vc_PV":"41.8","Ic_PV":"2.0","V_Bat":"13.8","P_PV":"83","P_Out":"83","P_Load":"0","P_curr":"83","I_Ch":"6.0","I_Out":"6.0","Temp_Int":"26","Temp_Bat":"21","Pwr_kW":"0.320","Sign_C0":"0","Sign_C1":"1","I_EXTS0":"0","I_EXTS1":"0","P_EXTS0":"0","P_EXTS1":"0","Relay_C":"0","RSErrSis":"0","Mode":"F","Sign":"l","MPP":"t","windspeed":"65535","FW":"6.5","R1":"0","R2":"0","R3":"0"} ] Подробно про это тут Рассмотрим пример скрипта. Начало: Код: # подключаем библиотеки import httplib import urllib import json import os #формируем переменные для запроса malina = httplib.HTTPConnection("192.168.49.36") malina.request("GET", "/read_json.php?device=mppt") #выполняем запрос response = malina.getresponse() data = response.read() arr = json.loads(data) Здесь 192.168.49.36 - ip адрес малина-2 device=mppt - запрашиваем данные по МППТ соответвенно: malina. request("GET", "/read_json.php?device=bat") для батарейного монитора malina..request("GET", "/read_json.php?device=map") для МАПа после выполнения этого кода в массиве arr будут полученные данные из МППТ. Причем, в зависимости от того откуда запрашиваем данные: - для map это будет одномерный массив - для bat двухмерный. - для mppt "мерность" массива будет равна кол-ву подключенных к малине МППТ. Например напряжение батареи по данным МППТ-1 хранится тут: arr[0]['V_Bat'] Мощность солнечных панелей по МППТ-2 тут: arr[1]['P_PV'] А энергия сети из МАПа: arr['_E_NET'] (одномерный массив) Далее нужно взять только нужные данные из всего полученного, и отправить их по назначению. Для простоты понимания, сделаем это через переменные. Данные будем посылать от трех МППТ подключенных к малине в систему emonpi продолжение крипта: Код: for n in range(3): v_bat = arr[n]['V_Bat'] p_pv = arr[n]['P_PV'] vc_pv = arr[n]['Vc_PV'] runcom = "curl --data \"node="+str(n)+"&data={" runcom = runcom+"V_bat:"+v_bat+"," runcom = runcom+"P_pv:"+p_pv+"," runcom = runcom+"Vc_PV:"+vc_pv+"}" runcom = runcom+"&apikey=105df69d2669dcc3aa88ad4849f81c07\" \"localhost/emoncms/input/post\"" os.system(runcom) В данном примере цикл выполняется три раза, для каждого МППТ. Каждый раз берутся три параметра (напряжение батареи, мощность панелей, напряжение панелей), формируем из них "командную строку" вида: curl -data "node=1&data{V_bat:14,P_pv:288,Vc_PV:35.8}&apikey=105df69d2669dcc3aa88ad4849f81c07" "localhost/emoncms/input/post" и с помощью команды os. system (runcom) сформированная "командная строка" выполняется и посылает данные в node 1, 2 или 3 в emonpi, расположенный на этом же rasPi (localhost) Собирая нужные "командные строки" можно посылать данные куда нужно. например domoticz: "curl '192.168.1.17:8080/json.htmtype=command¶m=udevice&idx=28&svalue="+v_bat+"'" или через MQTT " mosquitto_pub -h 192.168.1.37 -t 'domoticz/in' -m '{ "idx": 3, "nvalue": 0, "svalue": "22"}' " и т. п. Осталось только запускать наш скрипт с нужной периодичностью, любым удобным способом. Выяснить какая переменная в массиве что хранит (например ['V_Bat']), проще всего запустив в браузере нужный запрос (один из трех указанных в начале) и посмотреть ответ.
Немножко "бантиков". Скрипт наш, делаем что хотим. Добавим еще несколько передаваемых параметров и посчитаем, среднее напряжение батарей, получаемое от каждого МППТ и сумму мощностей панелей, сумму тока, сумму дневной выработки и отправим суммы в ноду 4. Код: import httplib import urllib import json import os malina = httplib.HTTPConnection("192.168.49.36") malina.request("GET", "/read_json.php?device=mppt") response = malina.getresponse() data = response.read() arr = json.loads(data) V_Bat_avr = 0 P_PV_sum = 0 I_Ch_sum = 0 Pwr_kW_sum = 0 for n in range(3): vbat = arr[n]['V_Bat'] V_Bat_avr = V_Bat_avr + float(vbat) P_PV_sum = P_PV_sum + float(arr[n]['P_PV']) I_Ch_sum = I_Ch_sum + float(arr[n]['I_Ch']) Pwr_kW_sum = Pwr_kW_sum + float(arr[n]['Pwr_kW']) runcom = "curl --data \"node="+str(n+1)+"&data={" runcom = runcom+"time:"+arr[n]['time']+"," runcom = runcom+"UID:"+arr[n]['UID']+"," runcom = runcom+"Vc_PV:"+arr[n]['Vc_PV']+"," runcom = runcom+"Ic_PV:"+arr[n]['Ic_PV']+"," runcom = runcom+"V_Bat:"+vbat+"," runcom = runcom+"P_pv:"+arr[n]['P_PV']+"," runcom = runcom+"I_Ch:"+arr[n]['I_Ch']+"," runcom = runcom+"Temp_Int:"+arr[n]['Temp_Int']+"," runcom = runcom+"Temp_Bat:"+arr[n]['Temp_Bat']+"," runcom = runcom+"Pwr_kW:"+arr[n]['Pwr_kW']+"}&apikey=105df69d2669dcc3aa88ad4849f81c07\" \"localhost/emoncms/input/post\"" os.system(runcom) V_Bat_avr = V_Bat_avr / 3 runcom = "curl --data \"node=4&data={V_Bat_avr:"+str(V_Bat_avr)+",P_PV_sum:"+str(P_PV_sum)+",I_Ch_sum:"+str(I_Ch_sum)+",Pwr_kW_sum:"+str(Pwr_kW_sum) runcom = runcom+"}&apikey=105df69d2669dcc3aa88ad4849f81c07\" \"localhost/emoncms/input/post\"" os.system(runcom) на что стоит обратить внимание при выполнении арифметических операций: - данные приходят от малины в виде "текста" - для сложение, деления и т. п. их нужно сначала превратить в "числа". с помощью функций int() или float() - перед отправкой по новому адресу, полученное значение нужно снова превратить в "текст" с помощью функции str()
Eще один пример скрипта, на этот раз в Majordomo используя MQTT и несколько картинок с результатами. Спойлер: пример скрипта Код: import httplib import urllib import json import os conn = httplib.HTTPConnection("192.168.1.46") # ip malina-2 mqtthost = "mosquitto_pub -h 192.168.1.17 -t 'malina' -m" #start request mppt conn.request("GET", "/read_json.php?device=mppt") response = conn.getresponse() data = response.read() mppt = json.loads(data) #start request bat conn.request("GET", "/read_json.php?device=bat") response = conn.getresponse() data = response.read() bat = json.loads(data) #start request map conn.request("GET", "/read_json.php?device=map") response = conn.getresponse() data = response.read() map = json.loads(data) #end request #mppt res = mppt[0]['V_Bat'] runcom = mqtthost+" '{\"U_bat\":"+res+"," res = int(mppt[0]['P_curr']) + int(mppt[1]['P_curr']) runcom = runcom + "\"Psolar_ALL\":"+str(res)+"," res = mppt[0]['P_curr'] runcom = runcom + "\"P_poli\":"+res+"," res = mppt[1]['P_curr'] runcom = runcom + "\"P_mono\":"+res+"," k0 = round(float(mppt[0]['Pwr_kW']),1) runcom = runcom + "\"kWh_poli\":"+str(k0)+"," k1 = round(float(mppt[1]['Pwr_kW']),1) runcom = runcom + "\"kWh_mono\":"+str(k1)+"," runcom = runcom + "\"kWh_All\":"+str(round((k0+k1),1))+"," #bat res = round(float(bat[1]['Isumm']),1) runcom = runcom + "\"Isumm\":"+str(res)+"}'" #print runcom os.system(runcom) и немножко картинок, из разных систем, куда отправляются данные. PS. конструкция conn. request("GET", "/read_json.php?device=map") response = conn. getresponse() data = response. read() map = json. loads (data) на самом деле содержит полный ответ в переменной data и разобранный по ячейкам масива, в данном случае масcив map Спойлер: пример полного ответа {"timestamp":"1528536203","time":"12:23:23","_UID":"0","_MODE":"13","_Status_Char":"0","_Uacc":"26.5","_Uch_T":"27.3","_Ubuf_T":"27.1","_Iacc":"12","_PLoad":"-300","_PLoad_calc":"-334.6","_F_Acc_Over":"0","_F_Net_Over":"0","_UNET":"234","_INET":"0","_PNET":"0","_PNET_calc":"43.9","_TFNET":"50.0","_ThFMAP":"50.0","_UOUTmed":"227","_TFNET_Limit":"19.8","_UNET_Limit":"170","_RSErrSis":"0","_RSErrJobM":"0","_RSErrJob":"0","_RSWarning":"0","_Temp_Grad0":"23","_Temp_Grad2":"40","_INET_16_4":"0.2","_IAcc_med_A_u16":"-12.6","Temp_off":"18","_E_NET":"53004","_E_ACC":"44880","_E_ACC_CHARGE":"25581","_E_NET_SIGN":"52720","_Inet_flag":"0","_I_acc_avg":"0.0","_I_mppt_avg":"0.0","_I2C_Err":"0","_Temp_Grad1":"20","_Relay1":"0","_Relay2":"0","_Flag_ECO":"0","_RSErrDop":"0","_flagUnet2":"2","_CoolerSpeed":"1","_MPPTs_mode":"0","_I_acc_3ph":"-6496.4","_I_ph1":"13.0","_I_ph2":"-3257.8","_I_ph3":"-3251.6","fw":"25.7"} Если нужно отправить все полученные данные, то не стоит их разбирать и собирать заново. можно отправить всю data runcom = mqtthost+" '"+data+"'"
Пользуясь случаем, еще раз выражаю огромное спасибо Дмитрию @bdna2009, за неоценимую помощь в подключении моих контроллеров EPSolar iTracer к малине2 и передаче данных с них на свой сервер emonсms, называется он emonpi (собран на raspberry pi2 или pi3, но вроде пишут, что ставится и на более ранних). Причины, почему я перешел на собственное "облако": 1. Сервис emoncms. org с 1 июля становится платным, причем плата пропорционально зависит от количества полей. 2. У меня белый IP 3. У меня нет МАПа, а значит я лишен батарейного монитора и всех его "вкусностей" по обработке данных с нескольких контроллеров и других полезных обработанных данных с других устройств. 4. В облаке от МАПА, демо, которое показано недавно в теме по малине2, не предусмотрено (надеюсь, что только пока) никаких обработок данных (например от нескольких устройств, усреднений сумм и т. д.), поэтому в моем случае на это облако надеяться практически не приходится (придется все данные с контроллеров, а их у меня три, складывать в уме, смотря на картинки. Конечно можно это предварительно сделать и в скрипте, который приводит Дмитрий, но это на любителя, мне показалось проще (да и к дашборду от emoncms я уже прикипел) собрать свое облако. Я взял готовый образ emonSD-26Oct17 и закатал его на карточку. Есть несколько моментов, на которые я хочу заострить внимание, чтобы те, кто тоже это будет делать, не наступали на мои грабли. Итак: 1. После первого запуска rashberry с emonpi нужно обязательно подождать не менее 10 минут и ничего не делать с системой, идет обновление. 2. После этого зайти по ssh (pi, emonpi2016), набрать raspi-config и сделать русскую локаль и выбрать из языков только английский (en_GB UTF8) и русский (ru_RU UTF8) 3. Не пользоваться расширением системы на всю флешку встроенными средствами (да она и не сработает, так как в системе не одна партиция линукс, а две), только специальной утилитой, набрав sudo emonSDexpand и смиренно ждать примерно 20 минут, пока rasbberry не выключится. В это время ничего не нужно делать с системой, просто ждать. 4. Теперь самое интересное. Я столкнулся с тем, что в дашборде не сохраняются русские символы. Оказалось, что в базе данных по умолчанию кодировка latin1, почему это так сделали непонятно, но так есть. Нужно в базе установить кодировку utf8, мне помогли это сделать, вот я записал, все, что нужно сделать: Спойлер: ssh pi@emonpi (ro):~$ locale LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= pi@emonpi (ro):~$ mysql -u root -p Enter password: (тут вводим (пароль не отражается): emonpimysql2016) Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 62820 Server version: 5.5.57-0+deb8u1 (Raspbian) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "emoncms"; +-+ | default_character_set_name | +-+ | latin1 | +-+ 1 row in set (0.00 sec) mysql> ALTER DATABASE emoncms CHARACTER SET utf8; Query OK, 1 row affected (0.00 sec) mysql> use emoncms; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +-+ | Tables_in_emoncms | +-+ | app_config | | dashboard | | feeds | | graph | | input | | multigraph | | rememberme | | schedule | | setup | | sync | | users | +-+ 11 rows in set (0.00 sec) mysql> ALTER TABLE app_config CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE dashboard CONVERT TO CHARACTER SET utf8; Query OK, 2 rows affected (0.13 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE feeds CONVERT TO CHARACTER SET utf8; Query OK, 71 rows affected (0.02 sec) Records: 71 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE graph CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE input CONVERT TO CHARACTER SET utf8; Query OK, 34 rows affected (0.02 sec) Records: 34 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE multigraph CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE rememberme CONVERT TO CHARACTER SET utf8; Query OK, 4 rows affected (0.07 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE schedule CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.02 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE setup CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE sync CONVERT TO CHARACTER SET utf8; Query OK, 0 rows affected (0.02 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> ALTER TABLE users CONVERT TO CHARACTER SET utf8; Query OK, 1 row affected (0.06 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Bye pi@emonpi (ro):~$ После этого все работает с русскими символами без приключений. Для надежности стоит систему перенести на внешний жесткий диск или ssd. p. s. Вот картинка сейчас с этого "домашнего" сервера, правда на русский еще практически ничего, кроме слова Экономия, не правил и не вводил надписей на русском. Можно спокойно отключаться от сервера emoncms. org
Осталось два переходника на din рейку с управлением внешними реле. Больше делать не планируется. кому еще нужно, пишите в личку.
Интересно для тех, у кого есть прямой IP и есть желание сделать свое "облако" для статистики. Появился новый образ emonSD-13Jun18 (Beta) Поставил его, через встроенный backup все отлично перенеслось с прежней версии (описывал выше) на новый emonpi, ничего (по языку) дорабатывать не нужно, с русским сразу все отлично. Новый образ собран на последней версии Raspbian Stretch Compatible with RasPi 3B+ (and backward compatible with older RasPi) Судя по описанию, в последних образах emonpi уже есть поддержка https, но, учитывая, что @Osolemio не планирует сделать возможным из малины направлять данные на свое "облако" emonsms (emonpi), можно попробовать воспользоваться или dns proxy (как он советует) или скриптом от @bdna2009 (мне, к примеру, именно так показалось сделать гораздо проще).
Добрый вечер. Не могли бы Вы на пальцах для несведущего объяснить как с малина-2 отправить в domoticz данные по напряжению сети на входе МАП?
Силами самой малины-2 никак. В том смысле что нет к ней официального доступа на уровне шела, чтобы скрипт свой в ней сохранить и запускать. Поэтому спросить нужные данные можно только со стороны домотикса. Если Домотикс стоит на распберри, то скрипт пишется например на питоне и запускается с некой периодичностью. Или на любом другом поддерживаемомо языке. Теоретиечски можно даэе сам скрипт непосредственно в домотиксе написать, на встроенном туда языке (не помню как он там называется). Если Домотикс развернут на винде, то мне кажется самый простой вариант это второй (встроенный язык). Сам скрипт расписан в примере поста номер 3 т. е. запрашиваем сначала данные из малины указав ip Вашей малины и заменив строку запроса на malina. request("GET", "/read_json.php?device=map") #для МАПа далее вынимаем нужный параметр в переменную и отправляем его в домотикс примерно так: "curl '192.168.1.17:8080/json.htmtype=command¶m=udevice&idx=28&svalue="+v_bat+"'" заменив тут ip на ip домотикса (или localhost) и idx = 28 поменять на idx вашего устройства в домотиксе, в которое посылаете данные. т. е. скрипт примерно такой: # подключаем библиотеки import httplib import urllib import json import os #формируем переменные для запроса malina = httplib. HTTPConnection("192.168.49.36") # ip malina-2 malina. request("GET", "/read_json.php?device=map") #для МАПа #выполняем запрос response = malina. getresponse() data = response. read() arr = json. loads (data) #вынимаем напряжение сети U_net = arr['_UNET'] #формирем командную строку runcom = "curl '192.168.1.17:8080/json.htmtype=command¶m=udevice&idx=28&svalue="+U_net+"'" #выполняем os. system (runcom) Скрипт примерный, не проверенный. Домотикса давно нет, поэтому проверить не на чем.
Подскажите, может найдется у кого лишний комплект данного оборудования? Продайте пожалуйста, заранее спасибо!
@vagorzel, все скачал по Вашим ссылкам. Развернуть на microSD получилось только Win32 Disk Imager'ом. Recommended method: Flash using Etcher tool. Туль работать на W8 отказался. Получил Raspberry Pi 3 с локальным облаком emonpi. достучался до этого облака из W8... Дальше ковырять - нет стал, т. к. искал немного другое решение. С Линуксами на ВЫ. Отсюда вопрос: На самой Raspberry с emonpi можно поднять интерфейс emoncms и ни куда не ходить? Прикрутить к Raspberry монитор, клавиатуру, мышь... отлучить от и-нета и оставить её вариться в собственном соку, собранную в одну сетку с Малинами от Osolemio?.
@Nick5453, если не работали раньше с облаком emoncms. org и у вас все оборудование МАП Энергия, то непонятно, зачем вам стороннее облако, если в теме малинки2 есть свое "родное" облако, которое, вероятно, еще долго будет поддерживаться и совершенствоваться. Тем более, что автор старается учесть те пожелания пользователей, которые не нарушают политику безопасности облака. Другое дело для тех, кого полностью устраивал сервис enomcms и они его немного освоили и привыкли, но с введением оплаты за каждую строку данных жаба давит отдавать "кровные". Или есть оборудование не от МАП Энергия и нужно собирать данные в единое облако (например, у меня вообще нет оборудования МАП, я малину2 использую совместно с другим адаптером от @bdna2009 только для преобразований данных от моих солнечных контроллеров и передачи их в "свое" облако, так как некоторые данные я не могу направить в малину2 и, соответственно, в облако малины2). Вот в этом случае имеет смысл перейти на свое облако emonpi (на raspberry pi2 (3), интерфейс полностью совпадает, а возможностей (по моему мнению) даже больше, чем на платном облаке. К примеру, в emonpi реализован прием данных по mqtt (встроен брокер и клиент mqtt и все это настроено под emonpi), то есть любые устройства, которые умеют передавать данные по mqtt, вы легко прицепите к своему облаку и сможете с ними делать что угодно (строить графики, рисовать дашборды, иметь информацию на своем смартфоне или планшете (в emonpi есть для этого приложение App) в любом месте, где доступен интернет). Вопрос непонятен, в emonpi все это есть, только зачем приделывать туда монитор и клавиатуру с мышкой, заходите по вэб с любого устройства в доме и все это имеете. Или до меня не дошел смысл вопроса. В emoncms (emonpi) нет готовых дашбордов, вы сами строите с помощью встроенных инструментов картинки, графики, окошки и т. п. Поэтому с этим облаком нужно немного разобраться, поэкспериментировать. Если не пробовали или не готовы к экспериментам, то я не вижу смысла переходить вам с родного МАП-овского облака на что-то другое. Там уже все готово для оборудования МАП.
@vagorzel, C облаком emoncms. org раньше не работал. Да, все оборудование МАП Энергия. Стороннего оборудования нет. В .. малинки есть свое "родное" облако в которое я с удовольствием смотрю, но нужна картинка "на месте" Нет любого устройства, не откуда заходить. Отсюда желание - Малины от оборудования МАП Энергия шлют инфу в Облако МикроАрт, а локально на Raspberry PI 3 с emonpi поднять на 127.0.0.1 дашбоард и рисовать с помощью встроенных инструментов картинки, графики, окошки и т. п. без внешнего трафика. И, скорее всего, без клавиатуры и мышИ.
@Nick5453, у Вас несколько вариантов видится: 1. поставить на raspberry "родную ОС" типа расбиан. (по сути линукс) и пользоваться установленным там браузером для подключения к малина-2. смотреть на ней статистику и графики, которые есть в самой малине-2. Если конечно этой информации достаточно. 2. на raspberry с установленным emonpi поднять X (графическую оболочку) установить браузер, который любимый и далее смотреть что нужно: малину-2 или emonpi-localhost 3. еще одна отдельная raspberry с расбиан чисто для просмотра малину-2 либо emonpi ну и конечно во всех трех случаях клавиатура, мышь и дисплей, раз никаких других устройств нет. 4 вариант. любой бюджетный планшет с браузером и wifi.