[Info] Ankündigung: SAS 4.00 kommt...

JL3

Aktives Mitglied
Mitglied seit
4 Dez 2010
Beiträge
1,995
Punkte für Reaktionen
8
Punkte
38
Die neue Version 4.00
wird optisch keine Veränderungen mit sich bringen. Dennoch wird sie große interne Veränderungen aufweisen.

Der Cache wird nun von einem sich dauernd selbst aufrufenden Shellscript erzeugt, das sensorandswitchautoget.php im Hintergrund die Geräteinformationsbeschaffung vornehmen lässt. Diese Daten werden in die Cache-Datenbank geschrieben. Da hier nun die 1 Minuten-Frist fällt, kann das PHP-Script nun theoretisch unbegrenzt viele PseudoScripte abfragen. Da es keine Schaltvorgänge ausführt, ist die Ausführungszeit ebenfalls schneller (und damit die Werte aktueller) als vorher.

Die automatischen Schaltvorgänge nimmt nach wie vor sensorandswitchautopro.php vor. Dieses erzeugt aber den Cache nicht mehr sondern liest und schreibt nur seine Schaltvorgänge in die Datenbank. Dadurch ist die Abarbeitung ebenfalls schneller und die Schaltzeitpunkte präziser.


Dies hat allerdings seinen Preis:

Es muss unbedingt nach dem Update auf dem jeweiligen Gerät (Pi oder Fritzbox) händisch nachgearbeitet werden. Die Beschreibung für den Pi habe ich unter "Cron-Dienst-Konfiguration" erklärt. Dieser Absatz ist erneut mit dem PuTTY auszuführen und danach muss der Pi neu gestartet werden. Bei der Fritzbox muss ebenfalls der cron-Aufruf angepasst werden. Bitte hier ggf. sich auch die für den Pi gemachte Beschreibung ansehen und dementsprechend adaptieren.


Zukünftig:

Ich werde in Zukunft die Installation und den Einsatz auf einem RaspberryPi fokusieren. Dennoch wird nach wie vor eine Adaption auf eine Fritzbox weiterhin möglich sein, wobei dort entsprechend abgeändert werden muss. Aber das komplette Installieren von SAS auf der Fritzbox ist wegen der vorhandenen FW-Restriktionen und dem schwachen Prozessor nicht optimal und daher ist hier ein RaspberryPi eher vorzuziehen. Beschreibungen im SAS-Web werden sich in Zukunft in diese Richtung bewegen. Wer dann Fragen zur Installationsumsetzung auf die Fritzbox hat, bitte ich, diese hier zu stellen und wird auch nur hier im Forum individuell zu seinem Fritzboxtyp Antworten erhalten.

Die Steuerung von Fritzbox-Geräten, wie etwa die DECT200, wird neben den PseudoGeräteScripten auch zukünftig unterstützt und verbessert werden.

Ich hoffe, dass die Entscheidung für den Pi als Basis für SAS Eure Zustimmung findet. Die Fritzbox-Experten unter Euch werden mit der Anleitung für den Pi garantiert dies auch schnell auf ihr Fritzbox-Modell umsetzen können. sashelper für die Fritzbox wird es ohnehin nach wie vor geben.

Die neue Version wird es nächste Woche geben. Vorher laufen bei mir noch einige Stabilitäts-Tests. :)
 
Hört Hört

Fokus auf Pi

Ist für mich OK, die Optimierungen habens soweit gebracht, dass vergleichsweise ein DokuWiki lahm wie eine Schnecke daherkommt.
Außerdem sterben die Fritz!Boxmodder langsam aus. Viel hört man ja nicht mehr. Wohl im Urlaub.
 
Wie gesagt, kompatibel soll es zur Fritzbox bleiben, aber halt keine Schritt für Schritt Installations-Anleitung dafür. Das sind einfach zu viele Variationen und der Pi zeichnet sich da wirklich ideal für aus. Billig in der Anschaffung, kaum Stromverbrauch und damit auch 24/7 rund um die Uhr Betrieb möglich. Und bootet mal die Fritzbox, so ist nicht gleich die ganze Hausautomation futsch (wg. der von AVM lahmgelegten debug.cfg). ;)

Ja, von den Meisten hört man immer weniger. Würde schon gerne wissen, wie viele SAS noch auf der Fritzbox betreiben und wie viele auf dem Pi oder auf einem NAS.
 
Wird sich zeigen, ich denke nicht und wenn ja dann werde ich mich melden.
Danke jedenfalls der Nachfrage und in dem Zusammenhang auch gleich einmal für SensorAndSwitch!
 
Die Datenbank wurde umbenannt und auf den Schnellzugriff auf die Konfigurationseinstellungen erweitert. Status-Anzeigen (Anzeigedateien) wurden im tmp-Verzeichnis umbenannt und die Dateianzahl wurde verringert.

Ein Löschen des Inhalts des tmp-Verzeichnisses bei der Fritzbox wird nach dem Update nötig sein. Ein Reboot beim Pi ebenso.
 
Moins

Hast du das ungewollte Erstellen der Indextabelle autoindex schon korrigiert?
 
Das macht SQLite von selbst. Wenn du mir verrätst, warum ich das verhindern soll und wie, dann mach ichs. :mrgreen:

Das ist doch der rowindex der Tabellen, die "name" als key haben. Habe es mir gerade mit einem HEX-Editor angeschaut.
It's not a bug, it's a feature of sqlite. ;)
 
Zuletzt bearbeitet:
Nur wenn das erste Feld einer Tabelle keine ID ist,
wird dieses Feature wirksam,
es wird also gegen "Schlamperei" eingesetzt.

Genauso, wie HTML viele viele viele Fehler verzeiht.
 
Falsch! Keine nummerische ID zu wollen, ist keine Schlamperei. Hier absolut gewollt. Eine "Schatten-ROWID" zu führen, muss das SQLite wohl.
Es als "Schlamperei" zu bezeichnen ist schon etwas dreist, oder? :mrgreen:
 
Naja, das Wort "Schlamperei" scheint dich jedenfalls auch nicht nachdenklich zu machen.

Natürlich kannst du auf deiner Meinung beharren.

Benutzt du diese (Index) Tabelle? Wofür ist die dann gut? Also wenn cache auch eine id als Index führen würde, wär sie auch nicht nötig.

Kees Nuyt schrieb:
If your PRIMARY KEY is not defined as
columnname INTEGER PRIMARY KEY,
SQLite needs it to maintain your primary key.

Dann verbessert eben SQLite3 DEINEN Fehler.
 
Zuletzt bearbeitet:
Ich sehe keinen Sinn darin, einen INT-Key zu generieren, den ich nicht nutzen kann. Letztendlich wird der Key ja indexiert und letztendlich muss ich ja nach dem Feld name suchen, das dann nicht indexiert ist. Ich sehe offen gesagt nicht das Problem und keinen Nachteil.
 
Wundern darf man sich doch noch, oder?
Ist dein Bier letztendlich.

SQLite3 braucht halt auch einen Index bei nur einen Datensatz,
weil eine Datenbanktabelle normalerweise für mehr Datensätze da sein sollte.

Mich stören solche ungefragt angelegte Sachen jedenfalls.
Besonders wenn der Weg diese zu vermeiden ganz einfach ist.

Naja, dann geh ich mal davon aus, dass autoindex bei dir Gang und Gebe ist und deswegen auch so bleibt.
 
Zuletzt bearbeitet:
Okay, schlage eine andere Lösung vor?
name sollte wegen der Geschwindigkeit indiziert sein.
Wie kommst du auf "nur ein Datensatz"? Jedes Gerät hat einen...
Den Code, den ich verwende, kannst du ja im Script einsehen. Nur rumnörgeln ändert nichts. Also her mit ner alternativen Lösung. ;)

Nachtrag: Der Code für die DB-Operationen steht in includegeraete.php, nur falls du danach suchst.

Für die V 4.00 wärs jetzt kein schlechter Zeitpunkt auch für größere Veränderungen, von daher... immer her damit. ;)
 
Zuletzt bearbeitet:
Wieso alternative Lösung?
Einfach vor "name" eine "id" als INTEGER PRIMARY KEY und "name" PRIMARY KEY wegnehmen.
...dann funktioniert das FETCHen genauso wie vorher.
 
Dann ist name aber nicht mehr indiziert, oder? Zumindest bei größeren Geschichten ginge das auf die Abfragegeschwindigkeit, weil sie sequenziell abgearbeitet werden würde, Okay, bei 20 oder 30 Gerätedatensätzen macht das wohl wenig Unterschied, aber dein Vorschlag wäre defakto langsamer in der Abarbeitung. Portiert man es auf ein anderes Datenbanksystem mit großer Anzahl von Datensätzen wäre es definitiv so, wobei andere Datenbanksysteme multible Indizes zulassen. SQLite ist halt eine kleine Lite-Version.

Aber was diskutieren wir überhaupt darüber.

Willst du die V 4.00 mal für die Fritzbox testen? Bei mir lief sie jetzt seit gestern sauber auf dem Pi durch. Schalten geht einwandfrei und die Resultate manuellen Schaltens sind viel schneller im WebGUI sichtbar, weil kein Minutentakt mehr existiert.

Nachtrag: Aber ich muss dich vorwarnen, das ist wirklich noch eine Alpha, da will ich auch noch die Scriptnamen von sensorandswitchblabla.php auf sasblabla.php generell kürzen. Das ist später einfach schneller zu tippen. ;)
 
Zuletzt bearbeitet:
Kannst sie ja als Labor schnüren, ankündigen und dann teste ich sie.
Über PN geht sowas ja nicht.
 
Ich schicke dir den Link zur ZIP im SAS-Web per PN.
Als Labor ist es mir noch zu instabil und wenn das sich dann einer drüberbügelt...

Nachtrag:

shstart.sh (von cron aufgerufen):
Code:
#!/bin/bash
# SensorAndSwitch HGR zur automatischen Schaltsteuerung und Cache-Bildung
sasPfad="/var/www/sensorandswitch"
tmpPfad="${sasPfad}/tmp"
#
cronPfad=$(cd $(dirname $0);pwd)
# WLAN-Refresh wenn down
/sbin/ifup wlan0
# SAS-Schaltung
cd $sasPfad
php -f $sasPfad/sensorandswitchautopro.php
# SAS-Cache
if [ ! -f $tmpPfad/sasget.status ];
then $cronPfad/sascache.sh $sasPfad & disown
fi

sascache.sh im gleichen Verzeichnis einmal von shstart.sh aufgerufen und dann sich selbst aufrufend:
Code:
#!/bin/bash
# SensorAndSwitch GET zur Cache-Bildung
sasPfad=$1
cronPfad=$(cd $(dirname $0);pwd)
cd $sasPfad
php -f $sasPfad/sensorandswitchautoget.php
$cronPfad/$(basename $0) $sasPfad & disown

Müssen für die Fritzbox natürlich umgesetzt werden, nur dass soweit deutlich wird, was, wie, wann gestartet werden muss...
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.