Pi und Co

Hallo,

nachdem ich jetzt ein Zoo von Pi’s und Clone’s habe, hier mal meine Meinung.

Der Raspberry kommt an die Grenze (1x900 MHz), da geht nicht mehr viel drauf…
Der BananaPi-R1 ( 2x 1 GHz) steckt mehr weg und hat noch viele Reserven.
Der Odroid C1 (4x1,5 GHz) rennt wie Sau, hat aber zum Banana leider kein SATA.

Daher nutze ich als Life System den BPi-R1 mit 60GB Sata.

Nach einigen DSL und Stromausfällen (Neustart der BPi ohne I-Net) habe ich jetzt eine I2C RTC drin, dadurch wird mir jetzt die Zeit und das Datum immer (fast) richtig gesetzt.
Ohne RTC sind mir leider einige IPS VAR’s komplett durcheinander gewürfelt worden.

Ich lasse „root“ auch immer vom „externen“ Speicher laufen, auf der SD befindet sich nur die komplette installation, damit im Fehlerfall schnell alle wieder zur Verfügung stehen kann.

Alle 3 System rennen im Moment parallel am LCN, mit eigenem Koppler, im Test.
Pi mit USB Festplatte,20GB
BananaPi-R1 mit „onboard“ Sata SSD Platte
Odroid C1 mit 4GB USB-Sick, jeweils als „root“ .
Vom Zugriff per Webfront merkt man einen Unterschied zwischen Pi und > 2x1GHz merklich.

Der BananaPi-R1 hat den Vorteil, alles in einem Gehäuse, mit RTC geht dan auch anstecken und loslegen ohne I-Net, da die Zeit passt. Zudem braucht es nur Strom und LCN-PKU am USB, und man kann sofort drauf zugreifen, wenn die PCHK mit 2 Lizenzen da drauf ist. (1x für IPS, 1x für PRO).
Dann nur noch den Laptop an den Wlan-AP vom BananaPi-R1 und alles ist gut (IPS Zugriff auf 3777, LCN Pro Zugriff, innerhalt von ca 30 Sekunden da.)
Weiterer Vorteil sind die 4 Port Switch, der DHCP (wie Wlan auch) macht, plus ein Port zur Einspeisung vom vorhandenem Netzwerk (mit I-Net Zugang).

Hallo,

da mir die Jahres - Monats - Wochen Werte in der Ansicht fehlten, habe ich mal ein bischen mit dem Skript von Paresy gespielt (Automatische Reaggregation aller geloggten Variablen) und es etwas abgeändert.
Damit geht es auch auf der Banane und dem Odroid (Pi nicht getestet, der ist bei mir am Anschlag…)


<?
/*****
*
* Automatische Reaggregation aller geloggten Variablen
*
* Dieses Skript reaggregiert automatisch alle geloggten Variablen nacheinander
* automatisiert bei Ausführung. Nach Abschluss des Vorgangs wird der Skript-Timer
* gestoppt. Zur erneuten kompletten Reaggregation ist der Inhalt der automatisch
* unterhalb des Skripts angelegten Variable 'History' zu löschen.
*
*****/

$archiveHandlerID = IPS_GetInstanceIDByName("Archive", 0);

$historyID = CreateVariableByName($_IPS['SELF'], "History", 3, "");
// Neu rein, TS
$historyIDdef = CreateVariableByName($_IPS['SELF'], "History defekte ID", 3, "");
// Neu rein ENDE, TS
$finished = true;
$history = explode(',', GetValue($historyID));
// Neu rein, TS
$historydef = explode(',', GetValue($historyIDdef));
// Neu rein ENDE, TS
$variableIDs = IPS_GetVariableList();

foreach ($variableIDs as $variableID)
{
	 if(IPS_GetVariable($variableID)["VariableValue"]["ValueType"] != 3)
    {
        if (AC_GetLoggingStatus($archiveHandlerID, $variableID) && !in_array($variableID,$history))
        {
            $finished = false;
// Neu rein, TS
                $history[] = $variableID;
                SetValue($historyID, implode(',', $history));
// Neu rein Ende, TS
            if (@AC_ReAggregateVariable($archiveHandlerID, $variableID))
            {
// Neu raus, TS
//                $history[] = $variableID;
//                SetValue($historyID, implode(',', $history));
//                print_r ($variableID);
// Neu raus ENDE, TS
            }
// Neu rein, TS
            else
				{
	                $historydef[] = $variableID;
						 SetValue($historyIDdef, implode(',', $historydef));
				}
// Neu rein Ende, TS
            break;
        }
    }
}

if ($finished)
{
    IPS_LogMessage('Reaggregation', 'Reaggregation completed!');
}

IPS_SetScriptTimer($_IPS['SELF'], $finished ? 0 : 10); //zum testen, da schneller auf Odroid....
// IPS_SetScriptTimer($_IPS['SELF'], $finished ? 0 : 60); // Orginal

function CreateVariableByName($id, $name, $type, $profile = "")
{
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #".$_IPS['SELF']);
        if($profile !== "")
        {
            IPS_SetVariableCustomProfile($vid, $profile);
        }
    }
    return $vid;
}
?>

ich lasse das Nachts einmal durchlaufen, vorher werden die History Daten gelöscht, per Timer.

In „History defekte ID“ stehen die Var’s die fehlerhaft sind, und müssen von Hand überprüft werden.
Aber das Skript läuft so bei mir durch, und alles was ok ist, wird dann richtig im Webfront Graphen angezeigt.

Für den Pi mitt mit dem IPS_SetScriptTimer spielen, den habe ich von 60 Sekunden auf 10 Sekunden im Beispiel stehen.

Die Funktion zum Reaggregieren ist zur Zeit eher schlecht als recht :slight_smile: Ich würde auf die Werte die dort raus kommen nicht so sehr vertrauen :smiley:

paresy

Mag sein,

aber der Trend der MAX Werte hilft mir erst mal.:slight_smile:

Hallo tomgr,

mit welcher Distri hast Du IP-Symcon auf dem Banana PI Router laufen?
Habe Symcon problemlos auf den Raspberry, Raspberry2 installiert.

Nur auf dem Pi Router mag es nicht laufen. Habe es mit Bananian, Raspbian und LeMedia versucht … ohne Erfolg.
Nach einigen Einträgen im Errorlog wird Symcon beendet.

Ich poste heute Abend mal einen Auszug der Logeinträge.

Uuuups … sehe eben diesen Thread:

Danke und Gruß,
Hermann

Hallo zusammen,

habe es jetzt mit mit Bananian 2015-01-11 und anschliessender Methode in Post:

IP-Symcon Community Forum

hinbekommen, dass Ip-Symcon auf meinem BPi-R1 ebenfalls läuft.

BG,
Hermann

Hallo Herrman,

schön…
Im Bananian 2015-01-11 sollte die Änderungen von mattrix enthalten sein.
Ich habe kein neues probiert, nur updates gemacht, da einiges selbst erzeugt ist.

Nebenbei, so rennt auch mein OdroidC1 mit IPS…

Tipp, „root“ von SD auf externen Speicher auslagern, aber auf SD lassen im im Notfall schnell „umschalten“ zu können.
„Boot“ ist auch am WIN-PC lesbar, und kann dort geändert werden, falls nötig (Mountpoint)