(Gelöst) SmartVISU mit armbian?

Begonnen von Funsailor, 12 Juni 2019, 17:18:09

Vorheriges Thema - Nächstes Thema

Funsailor

Hallo,
am WE hat mein Netzteil (Angeblich 3A, 11 Monate alt) den Geist aufgegeben und dabei die SATA Platte zerschossen hatte (Nach einem Stromausfall ging das Netzteil in einen ,,Taktmodus" über .. An/Aus..An/Aus..An/Aus) habe ich mich an die überfällige Arbeit gemacht und mein System neu aufgesetzt.
Ich wollt auch nicht auf die Ablage zurückgreifen, da diese in den letzten 4 Jahren von ,,wheezy" zu ,,jessie" mit update/upgrade mutiert ist.
Also alles neu macht der Mai...

Da ich schon viel positives von Armbian gelesen hatte nahm ich mir die Letzt gültige Version für meinen Banana Pro vor.
Die Installation ging (bis auf den Umzug auf die SATA, das ging doch nicht so einfach) gut.
FHEM ließ sich auch ohne Problem installieren. Darauf habe ich dann meine Ablage kopiert  und nach dem ich einige fehlende Module nach installiert hatte lief  FHEM ohne Probleme. Bisher.. man soll ja den Tag nicht vor dem Abend loben.

Aber dann ging es an Smartvisu.... Egal wie ich das gemacht habe, nix geht.
Ich habe das Ganze dann parallel auf einem M2 Berry mit Armbian durchgezogen -> auch hier lief Smartvisu nicht.
Im Moment erhalte ich auf dem Pro folgendes:
addPath(const_path.'pages/'.$config_pages); if (dirname($request['page']) != '.' && is_dir(const_path.'pages/'.$config_pages.'/'.dirname($request['page']))) $loader->addPath(const_path.'pages/'.$config_pages.'/'.dirname($request['page'])); // add dir if is not directly chosen if (config_driver == 'smarthome.py' and $config_pages != 'smarthome' and is_dir(const_path."pages/smarthome")) $loader->addPath(const_path.'pages/smarthome'); $loader->addPath(const_path.'dropins'); $loader->addPath(const_path.'pages/base'); $loader->addPath(const_path.'widgets'); // init environment $twig = new Twig_Environment($loader); $twig->addExtension(new Twig_Extension_StringLoader()); if (config_debug) { $twig->enableDebug(); $twig->addExtension(new Twig_Extension_Debug()); } if (config_cache) $twig->setCache(const_path.'temp/twigcache'); foreach ($request as $key => $val) { if ($key == "page") $val = basename(str_replace('.', '_', $val)); $twig->addGlobal($key, $val); } if (config_design == 'ice') { $twig->addGlobal('icon1', 'icons/bl/'); $twig->addGlobal('icon0', 'icons/sw/'); } elseif (config_design == 'greenhornet') { $twig->addGlobal('icon1', 'icons/gn/'); $twig->addGlobal('icon0', 'icons/ws/'); } else { $twig->addGlobal('icon1', 'icons/or/'); $twig->addGlobal('icon0', 'icons/ws/'); } foreach (get_defined_constants() as $key => $val) { if (substr($key, 0, 6) == 'config') $twig->addGlobal($key, $val); } $twig->addGlobal('config_pages', $config_pages); $twig->addGlobal('pagepath', dirname($request['page'])); $twig->addGlobal('const_path', const_path); $twig->addGlobal('mbstring_available', function_exists('mb_get_info')); $twig->addFilter('_', new Twig_Filter_Function('twig_concat')); $twig->addFilter('bit', new Twig_Filter_Function('twig_bit')); $twig->addFilter('substr', new Twig_Filter_Function('twig_substr')); $twig->addFilter('smartdate', new Twig_Filter_Function('twig_smartdate')); $twig->addFilter('deficon', new Twig_Filter_Function('twig_deficon', array('needs_environment' => true))); $twig->addFilter('md5', new Twig_Filter_Function('twig_md5')); $twig->addFunction('uid', new Twig_Function_Function('twig_uid')); $twig->addFunction('once', new Twig_Function_Function('twig_once')); $twig->addFunction('isfile', new Twig_Function_Function('twig_isfile')); $twig->addFunction('isdir', new Twig_Function_Function('twig_isdir')); $twig->addFunction('dir', new Twig_Function_Function('twig_dir')); $twig->addFunction('docu', new Twig_Function_Function('twig_docu')); $twig->addFunction('configmeta', new Twig_Function_Function('twig_configmeta')); $twig->addFunction('lang', new Twig_Function_Function('twig_lang')); $twig->addFunction('read_config', new Twig_Function_Function('twig_read_config')); $twig->addFunction('timezones', new Twig_Function_Function('twig_timezones')); $twig->addFunction('implode', new Twig_Function_Function('twig_implode', array('is_safe' => array('html')))); // init lexer comments $lexer = new Twig_Lexer($twig, array('tag_comment' => array('/**', '*/'))); $twig->setLexer($lexer); // load template try { $template = $twig->loadTemplate($request['page'].'.html'); $content = $template->render(array()); if ($request['page'] == "manifest") { header('Content-Type: application/manifest+json'); die($content); } // write to cache and output $cache->write($content); } catch (Exception $e) { // header("HTTP/1.0 602 smartVISU Template Error"); echo "

\n";
echo str_repeat(" ", 71)."smartVISU\n";
echo str_repeat(" ", 62).date('H:i, d.m').", v".config_version."\n";
echo str_repeat("-", 80)."\n\n";
echo "Error occurred in twig-template engine!\n\n";
echo "error: ".$e->getRawMessage()."\n";
echo "file:  ".$e->getTemplateFile()."\n";
echo "line:  ".$e->getTemplateLine()."\n\n";
echo str_repeat("-", 80)."\n\n";
echo "\n

"; } } else { header("HTTP/1.0 404 Not Found"); echo "

\n";
echo str_repeat(" ", 71)."smartVISU\n";
echo str_repeat(" ", 62).date('H:i, d.m').", v".config_version."\n";
echo str_repeat("-", 80)."\n\n";
echo "Error loading Page '".$request['page']."' !\n\n";
echo "Check config.php -> 'config_pages' for correct Pages/Project configuration\n";
echo "or try the index page!\n\n";
echo str_repeat("-", 80)."\n\n";
echo "\n

"; } ?>

Dann habe ich das Debian Image von hier (http://wiki.banana-pi.org/Banana_Pi_BPI-M2_Berry#Image_Release) genommen und nur SmartVisu installiert. Lief auf Anhieb!
Dann meine Ablage drüber gebügelt -> lief auch...

Hier die installierten Php Module des Pro (Armbian):

root@bananapipro:~# sudo dpkg --get-selections | grep php7                     
libapache2-mod-php7.0                           install
php7.0                                          install
php7.0-cgi                                      install
php7.0-cli                                      install
php7.0-common                                   install
php7.0-curl                                     install
php7.0-json                                     install
php7.0-mbstring                                 install
php7.0-opcache                                  install
php7.0-readline                                 install
php7.0-xml                                      install
root@bananapipro:~#

und hier die des Berrys (Debian):
root@bpi-iot-ros-ai:~# sudo dpkg --get-selections | grep php7
libapache2-mod-php7.0                           install
php7.0                                          install
php7.0-cli                                      install
php7.0-common                                   install
php7.0-curl                                     install
php7.0-json                                     install
php7.0-mbstring                                 install
php7.0-opcache                                  install
php7.0-readline                                 install
php7.0-xml                                      install
root@bpi-iot-ros-ai:~#


Die Zugriffsrechte habe ich nach dem kopieren gesetzt.
www-data  775

Das zu meine Erfahrungen mit Armbian.

Jetzt die Frage: Hat jemand auch solche Erfahrungen mit ARMBIAN gemacht?  Ich würde da ungern auf ein totes Pferd setzen. 

Mit der 2 Server Lösung könnte ich bis nach dem Urlaub leben, aber ich bekomme die Werte/Schaltzustände von FHEM (auf dem Bananian Pro <-> Bananian Berry) nicht angezeigt.
Wie kann ich da den Websocket für Fronthem anpassen?
Ich habe dazu im FHEM Forum nichts gefunden.


Danke


- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

herrmannj

läuft denn php überhaupt? sieht nicht so aus ...

Funsailor

Hmmm,
sieht so aus.

Ist das der richtige Weg?
root@bananapipro:~# sudo a2dismod mpm_prefork
Module mpm_prefork already disabled
root@bananapipro:~# a2enmod php7.0
Considering dependency mpm_prefork for php7.0:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.0, aborting
root@bananapipro:~#
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

herrmannj

Apache und PHP7, da gibt es tausende tutorials im Netz. In Deinem ersten Post wird ja der sv Quellcode ausgegeben, die PHP Installation ist da definitiv nicht ok.

Funsailor

#4
So, php und apache scheint zu laufen.

System Linux bananapipro 4.19.38-sunxi #5.85 SMP Wed May 8 14:20:48 CEST 2019 armv7l
Build Date Mar 8 2019 10:01:24
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php/7.0/apache2
Loaded Configuration File /etc/php/7.0/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.0/apache2/conf.d
Additional .ini files parsed /etc/php/7.0/apache2/conf.d/10-opcache.ini, /etc/php/7.0/apache2/conf.d/10-pdo.ini, /etc/php/7.0/apache2/conf.d/15-xml.ini, /etc/php/7.0/apache2/conf.d/20-calendar.ini, /etc/php/7.0/apache2/conf.d/20-ctype.ini, /etc/php/7.0/apache2/conf.d/20-curl.ini, /etc/php/7.0/apache2/conf.d/20-dom.ini, /etc/php/7.0/apache2/conf.d/20-exif.ini, /etc/php/7.0/apache2/conf.d/20-fileinfo.ini, /etc/php/7.0/apache2/conf.d/20-ftp.ini, /etc/php/7.0/apache2/conf.d/20-gettext.ini, /etc/php/7.0/apache2/conf.d/20-iconv.ini, /etc/php/7.0/apache2/conf.d/20-json.ini, /etc/php/7.0/apache2/conf.d/20-mbstring.ini, /etc/php/7.0/apache2/conf.d/20-phar.ini, /etc/php/7.0/apache2/conf.d/20-posix.ini, /etc/php/7.0/apache2/conf.d/20-readline.ini, /etc/php/7.0/apache2/conf.d/20-shmop.ini, /etc/php/7.0/apache2/conf.d/20-simplexml.ini, /etc/php/7.0/apache2/conf.d/20-sockets.ini, /etc/php/7.0/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.0/apache2/conf.d/20-sysvsem.ini, /etc/php/7.0/apache2/conf.d/20-sysvshm.ini, /etc/php/7.0/apache2/conf.d/20-tokenizer.ini, /etc/php/7.0/apache2/conf.d/20-wddx.ini, /etc/php/7.0/apache2/conf.d/20-xmlreader.ini, /etc/php/7.0/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.0/apache2/conf.d/20-xsl.ini
PHP API 20151012
PHP Extension 20151012
Zend Extension 320151012
Zend Extension Build API320151012,NTS
PHP Extension Build API20151012,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support provided by mbstring
IPv6 Support enabled
DTrace Support available, disabled
Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*


Jetzt läuft SmartVISU wieder.
Allerdings komme ich nicht an die Config....
Da bekomme ich wieder die Anzeige aus dem erstem Post..


Edit 12.06.2019 21:58
So, läuft wieder wie bisher. Da war nur das Cache noch gefüllt. Ich dachte nicht daran, das ich in jedem Unterfenster das Cache löschen muss.
SmartVISU läuft nun auf beiden Systemen.
1.)sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-zip php7.0-mysql -y
2.)sudo apt-get install -t stretch libapache2-mod-php7.0 -y

Was jetzt genau geholfen hat kann ich nicht sagen..

Warum sich das mit Armbian so verhackt hat kann ich nicht sagen, ich bin in beiden Fällen nach der gleichen Anleitung vorgegangen...




- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -