HomeServer 2.1 Logik Archiv

Nachfolgende Logikoperatoren sind zum kostenlosen Download verfügbar. Die Installation ist kinderleicht. Die *.hsl-Dateien im "/logic" Ordner der Experten-Installation speichern. Fertig. Danach stehen die neuen Funktionen zur Verfügung.

Ideen und Anregungen bitte an "logik [at] kuehn-clan.de".

Benutzung auf eigene Gefahr!

Übersicht:
Summe, Anzahl, Runden&Nachkomma, Min/Max/Mittelwert, Temperatur-Tendenz, ZeitDatum-Speicher, Kalenderwoche, DatumUhrzeit->Text, 14Byte-Laufschrift, Energiezähler, Rolladensteuerung, Momentan-Stromverbrauch, Mondphase, RGB-Sequenzer, Bedingungs-Text, Textumbruch, Telefonbuch

Bausteine (NEUE FIRMWARE > Mai 2005) komplett und auf dem aktuellsten Stand im *.zip-Format downloaden.
Bausteine (ALTE FIRMWARE <= Mai 2005) komplett und auf Stand vom 16.06.05 *.zip-Format downloaden.

Update 21.01.06:
- DatumUhrzeit->Text Bugfix mit Sonnenauf/-untergang
- Temperatur-Tendenz Bugfix mit Timer

Update 24.10.05:
- Telefonbuch-Baustein zur Vorgabe bekannter Telefonnummern.
- Alle vorhandenen Bausteine wurden in der Syntax bereinigt (Dank Gastons super Logik-Checker-Tool).

Update 22.07.05:
- 2 neue Bausteine (Bedingungs-Text, Textumbruch).

Update 08.07.05:
- Erweiterte Erklärung des Energiezähler-Bausteins mit Bild und Template.

Update 04.07.05:
- Der DatumUhrzeit->Text-Baustein hatte Probleme in Verbindung mit dem Sonnenauf/-untergang und zeigte eine Stunde Differenz. Dieses Problem sollte nun behoben sein! Bitte bei Winterzeitumstellung nochmals checken, ob es dann auch funktioniert.

News 16.06.05:
- DACOM bringt erneut ein tolles Update für den HomeServer raus! Hier findet ihr die angepaßten Bausteine für die neue Firmware-Version im *.zip-Format

News 19.01.05:
- Auf der Webseite von DACOM findet man seit heute Bausteine für ein Codeschloß und ein 10-fach Vergleicher.

Update 24.01.05:
- Neuer Baustein RGB Sequenzer ermöglicht das Animieren von farbigen LED Leuchten.

Update 03.01.05:
- Temperatur-Tendenz nun mit Zeitintervall-Eingang. Tendenz-Symbole zum Download.

Update 26.12.04:
- Neuer Baustein zur Momentan-Stromverbrauchs-Berechnung.

Update 21.12.04:
- Neue Symbole für die Mondphase, Baustein dafür geupdated!
- Wetter-Online WetterSymbole als Vorlage zum Download für den Experten Version 2.1. In der Visu "Vorlage importieren" und die entpackte Datei anwählen! Mit einem Klick sind alle 114 Symbole im Projekt eingefügt :-)

Update 19.12.04:
- DatumUhrzeit->Text, überarbeitet mit neuen Ausgängen und mehr Formaten!, Unterstützung des Sonnenauf/untergangs-Bausteins (Hi SmartEIB:-)

  Summe (8 Eingänge)
Summe der 8 Eingänge E1..E8.
z.B. Anzahl offener Fenster aller Etagen.

  Anzahl (8 Eingänge)
Anzahl der Eingänge, an denen ein Wert ungleich 0 anliegt.
z.B. Anzahl offener Fenster einer Etage.

Runden und Nachkomma
Gibt Ganzzahl und Nachkommanteil einer Gleitkommazahl aus.

Min, Max, Mittelwert überwacht einen Wert und protokolliert das Minimum, Maximum und den Mittelwert. Für Minimum und Maximum wird außerdem der Zeitpunkt gespeichert.
z.B. Wind oder Außentemperatur.

Temperatur-Tendenz
Gibt die Temperatur-Tendenz des vorgegebenen Zeitbereiches (Eingang 2) an. Wenn sich innerhalb dieses Zeitbereiches der Eingangswert (Temperatur) nicht ändert, wird die Tendenz auf 0 gesetzt (grüner Pfeil). Der Baustein eignet sich auch für die überwachung anderer Parameter als der Temperatur (z.B. Luftdruck). Symbole zum Download .
Ausgabe: 0 = gleichbleibend, 1 = Wärmer, 2 = Kälter
z.B.: überwachung der Raumtemperatur

ZeitDatum-Speicher
Speichert bei Eingang eines Telegramms die aktuelle Uhrzeit.
z.B. letzter Telefonanruf, letztes Telegramm eines Bewegungsmelders, letzter Abgleich mit Wetter-Online:-)

Kalenderwoche Ausgabe der Kalenderwoche des aktuellen Datums. Der Trigger-Eingang stößt die Berechnung des Bausteins erneut an (im Optimalfall sollte jeden Montag um 0:01 ein Telegramm eintreffen). Beim HS Neustart wird der Baustein ebenfalls berechnet.

DatumUhrzeit->14ByteText

Update 19.12.04: Wandelt die aktuelle oder gespeicherte Uhrzeit (von ZeitDatum-Speicher  oder Sonnenauf/Untergangs-Baustein) in einen 14ByteText. Es werden folgende Ausgaben erzeugt: 1. "Datum, Uhrzeit", 2. "vergangene Zeit" (bei eingespeister Zeit), 3. "Datum", 4. "Uhrzeit"
z.B. Visualisierung des Datums des letzten Sonnenstrahls :-)

Format Datum  Format Zeit 
0 dd.mm.yyyy 19.12.2004 0 hh:mm:ss 21:41:30
1 dd.mm.yy 19.12.04 1 hh:mm 21:41
2 dd. mon. yyyy 19. Dez. 2004
3 dd. mon. yy 19. Dez. 04
4 dd. monat yyyy 19. Dezember 2004
5 dd. monat yy 19. Dezember 04


14Byte-Laufschrift Scrollt einen beliebig langen Text im angegeben Zyklus (Update) mit einer Schrittweite von beliebig vielen Zeichen. Die Breite des Ergebnistextes ist individuell anpaßbar. Die Startpos läßt den Text beliebig starten.
z.B. Anzeige längerer Texte auf einem Infodisplay:-)
Hinweis: wenn diese Text-Telegramme zyklisch auf den Bus gesendet werden kann die erheblichen Traffic verursachen!

Energiezähler
Berechnet die Zählerstände für 3 Zeiträume. Anzeige des aktuellen und vorherigen Zeitraums.

- Counter (Aktuell): ist der Zählerstand des EIB Zählers
- Zählerstand (Abgleich): wird verbunden mit einem KO, das in einem Menü per Werteingabe mit dem aktuellen Zählerstand gefüttert wird. Daraufhin berechnet der Baustein die Differenz zum EIB Zähler und paßt den Zählerstandausgang auf den echten Stand an!
- Korrekturfaktor: der EIB Zählerstand wird durch diesen Wert geteilt.
- Preis()/Einheit für Kostenanzeige

z.B. Erfassung des Gaszählerstandes für Heute/Gestern, diesen/letzten Monat, dieses/letztes Jahr für Visualisierung und Archivierung. Ein Beispiel für die Beschaltung findet man hier als Screenshot und Logik-Editor-Template (click Speichern unter).

Rolladensteuerung Mein komplexester Baustein übernimmt alle Steuerungsfunktionen für einen Rolladen in Abhängigkeit zahlreicher Eingangsparameter. Ausgangsseitig bekommt man nur einen einzigen Werte für den Rolladen raus - die absolute Position in Prozent (0%=oben, 100%=unten!). Für jeden Zustand können abweichend vom Standard Initialwerte angegeben werden.

Automatik (An/Aus) Baustein aktiv oder nicht
Systemstart sollte mit der Systemstart-Variablen des HS verbunden werden
Anwesend bei Anwesenheit eine sollte dieser Eingang ungleich 0 sein
Dunkel fährt die Rolladenposition bei Dunkelheit an
Schlafen Position bei Schlafen im Raum
Fenster gekippt 1 wenn Fenster gekippt (bei Dunkelheit fährt Fenster auf Schlitz, auch wenn Rolladen ganz zu ist)
Offen 1 wenn Fenster offen ist (z.B. Terrassentür würde dann den Rolladen auch bei Dunkelheit ganz hochfahren)
Raumtemperatur/ Außentemperatur überhitzungsschutz im Sommer (wenn Außentemperatur über 30 Grad und Sonne auf diesen Rolladen scheint, wird verdunkelt)
Manuell Beweg/Stop Setzt Automatik außer Kraft (bis zum nächsten Dunkelwerden oder Hausverlassen)
Schlafsimulation bei Abwesenheit damit die Rolläden auch bei Abwesenheit so tun als würde man schlafen)
Zwang>>Ist fährt den Rolladen auf Zwang wenn Position kleiner ist.
Pos: xxx Vorgabewerte für Rolladenpositionen
z.B. Rolladensteuerung:-)

MomentanverbrauchStrom
Berechnung des Momentan-Stromverbrauches. Der Eingang "Counter" wird mit dem Strom-Zählerstand des EIB verbunden. Der Korrekturfaktor gibt die Anzahl der Zählimpulse pro kWh an. Wenn der Zählerstand nicht zyklisch gesendet wird kann mit Zyklus eine Neuberechnung aller X Sekunden erzwungen werden (0 berechnet nur bei Telegrammeingang). Der Ausgang gibt den aktuellen Stromverbrauch in kW an! Ein nachgeschalteter Multiplikator 1000 gibt die Watt aus :-)

Mondphase
(Autor: Matthias Schmidt )
Ausgabe der Mondphase des heutigen Tages.
Ausgang 1:0,00 Neumond, 0.25 Erstes Viertel, 0.50 Vollmond, 0.75 Letztes Viertel.
Ausgang 2: 0 = Neumond ... 14 = Vollmond ... 28 = Neumond (z.B. die neuen dyn. Symbole).
NEUE Visu Symbole hier downloaden - Im Visueditor auf Vorlage importieren

RGB Sequenzer
(Autor: Matthias Schmidt )
RGB Sequenzer für LED Leuchten. Dauer definiert die Durchlaufzeit eines gesamten Zyklus. Modus 1 ist Regenbogen, 6 7 und 8 sind Sequenzen mit Einzelfarben. SW ist aktuelle die Schrittweite. Die Ausgänge R,G,B geben den Rot-, Grün- und Blauwert von 0..255 aus. Der Baustein berechnet sich aller 4 Sekunden neu und schickt bei änderung die Farbwerte raus.

Bedingungs-Text
Dieser Baustein verknüpft frei wählbare Texte wenn die jeweilige Bedingung erfüllt ist. Im Ergebnis ergibt dies dann einen neuen String, der die verknüpften Texte beinhaltet. Der Baustein ist kaskadierbar (mittels "Vorheriger Text") und ermöglicht so auch die Verknüpfung von mehr als 4 Bedingungen (siehe Beispiel). Verbingungstext definiert die Zeichen, die zwischen den Texten erscheinen sollen. Ein " " (Leerzeichen) ist der Standardwert, der beliebig editiert werden kann.

Beispiel aus meinem HS-Projekt:
Da es mich genervt hat nur die Anzahl der offenen Fenster im InfoDisplay zu sehen und trotzdem durchs Haus rennen zu müssen um zu erfahren WO sie offen sind, bastelte ich diesen Baustein. Die 3 hintereinander geschalteten Bausteine erzeugen EINEN langen Text, der alle Räume mit geöffneten Fenstern beinhaltet. Ist beispielsweise der Eingang der 1. Bedingung am ersten Baustein ungleich 0 dann wird der Text "Wohn" an den Gesamttext (Fensterstatus) angehängt.

Textumbruch
Der Textumbruch erlaubt das Aussplitten eines langen Textes in Texte mit begrenzter Länge. Dabei wird nicht mitten im Wort gebrochen, sondern an Leerzeichen. "Text" gibt den Text vor. "Text Breite" gibt die maximale Anzahl der Zeichen vor, die in den Ergebnis Text reinpassen ("Zeile"). 14 ist als Standardwert gewählt, damit der Wert in ein 14-Byte-Objekt auf den Bus geschickt werden kann (z.B. Anzeige im InfoDisplay). Der "Rest"-Ausgang beinhaltet den Text, der nicht in die Zeile gepaßt hat. Auch dieser Baustein läßt sich mehrfach hintereinander schalten und erlaubt somit die Aufteilung in mehrere Zeilen am InfoDisplay.

Beispiel aus meinem HS-Projekt:
Die 3 hintereinander geschalteten Bausteine zerstückeln den eingespeisten Text (des Bedingungs-Text-Bausteins) in 3 Zeilen passend für mein Infodisplay. Sicherlich ist dies es auch für Newsticker denkbar und nützlich. Vielleicht fällt Euch noch was ein.

Und so sieht das Ganze dann an meinem Display aus. Das tolle ist jetzt, das immer alles ins Display reinpaßt, egal welche Räume geöffnet sind. (man beachte die Kornfliege hinter der Glasscheibe mitten im LCD Display zwischen dem 'l' und 'a' von Schlaf - fragt nicht wie die ins LCD kommt - ich krieg sie dort auf jeden Fall nicht mehr raus :-)

Telefonbuch
Das Telefonbuch erlaubt die Vorgabe von bekannten Telefonnummern zur Ermittlung des Anrufernamens. Die Idee entstand, nachdem Michel aus dem EIB-Forum das Anruferscript gebaut hat, welches bei Anruf die Telefonnummer des Anrufers bei www.dasoertliche.de ermittelt und im Homerserver hinterlegt.

Dieser Baustein wird vor den Aufruf der Web-Reversesuche geklemmt und gibt entweder gleich den bekannten Namen zurück, oder triggert das Web-Reversesuche-Script im Negativfall.

Beschreibung des Bausteins: Der Telefonnummerneingang wird mit der Anrufnummer verbunden, die der HS liefert. Der Wert Präfix wird vor die vom Homeserver gelieferte Telefonnummer angehängt. Diese kann je nach Telefonanlage oder Installation verschieden sein (bei mir liefert der HomeServer alle Anrufnummern ohne führende '0', deshalb ist default Prefix='0').
Der Ausgang "Name" liefert den übersetzten Namen im Klartext. "Gefunden" signalisiert dazu mit einer '1', das der Name zugeordnet wurde. Wenn nix gefunden wurde, wird eine '0' geschickt. Ein Sonderfall ist der Filter, bei dem der Baustein vor setzen irgendeines Bausteins verlassen wird (mein HS meinte von Zeit zu Zeit ein Teilnehmer mit der Telefonnummer '0' hätte angerufen, obwohl im Haus kein Telefon klingelte).

So wird der Baustein bei mir verwendet:


Und so tragt ihr eure eigenen Nummern ein:

1. öffnet die Logik-Bausteindatei in einem Texteditor und sucht nach dieser Stelle.

------------------
# eintrag suchen
5012|1|"EC[1] and SN[1]=='0173677xxxx'"|"'Tilo @ D2'"|""|1|0|0|0
5012|1|"EC[1] and SN[1]=='0173677xxxx'"|"'Conny @ D2'"|""|1|0|0|0
#5012|1|"EC[1] and SN[1]==''"|"''"|""|1|0|0|0

# ...
# hier so viele nummern wie ihr wollt hinzufügen,
# indem ihr die drüberstehende zeile dupliziert
# und nummer und name anpaßt.
# (achtung: die hochkommas nicht löschen)
# ...
------------------

2. nun ändert ihr die ersten beiden Zeilen (Tilo, Conny) in eure eigenen Nummern um.
3. diese Zeilen könnte ihr so oft wiederholen wie ihr wollt. Sie müssen nur an dieser Stelle im Logikbaustein stehen! Die Raute '#' vor der leeren Zeile muß entfernt werden!
Ich habe ca. 200 Telefonnummern drin, was für den HS kein Problem darstellt. Viel Spaß beim Tippen ...

Besucher seit 17.12.2004: [Besucherzähler]
(C) 2006, Tilo Kühn