+ Antworten
Seite 2 von 3 ErsteErste 1 2 3 LetzteLetzte
Ergebnis 11 bis 20 von 30
  1. #11
    Registriert seit
    Oct 2012
    Beiträge
    346

    Wo find ich das Ganze?

    Um jetzt mal nicht zu offtopic zu werden evtl per PM ...

  2. #12
    Registriert seit
    Dec 2011
    Ort
    am Ende des Internets
    Beiträge
    329

    Standard Energiemanagementsystem

    Ich möchte schon lange die Konsole mit den vielen Drehknöpfchen und Rändelrädern auf meinem Heizkessel im Keller durch etwas digitales ersetzen, dessen Funktion auch durchschaubar ist,

    Damit die Idee nicht mit Heizkörpersteuerungen vom Typ HomeMatic verwechselt wird, nenne ich das Projekt mal ganz bombastisch

    Energiemanagementsystem

    Sensoren messen
    Außentemperatur, Innentemperatur(en)
    Vorlauftemperatur(en) der Heizkreise (Heizkörper, Fußbodenheizung), Kessel-, Boiler-Temperatur
    optional Windgeschwindigkeit, Sonnenscheindauer

    Ein Script (oder eine Sammlung von Scripten)
    wertet die Eingangsdaten der Sensoren aus und steuert (bzw. regelt) in Abhängigkeit eines Heizplans (siehe Universelle Heizungssteuerung, Ernies Heizungsscript) diverse Aktoren:

    Aktoren (Ein/Aus) steuern
    Öl/Gas-Brenner
    Heizkreis-, Ladepumpen
    Mischermotor(en)
    optional (Fußboden)heizkreise

    Das Script muß so "intelligent" sein, daß es folgende Leistungsmerkmale hat:
    • Regelfunktion für den Mischermotor als Stellgröße (in Abhängigkeit von Außentemperatur und Heizplan als Eingangsgrößen). Man nennt das außentemperaturgeführte Regelung, diese verwendet eine Heizungskurve, die normalerweise händisch eingestellt wird; das Script sollte durch "Experimentieren" die optimale Heizungskurve selbst erstellen.
    • Angaben zum Energieverbrauch (ermittelt durch Brenndauer), zum Energieinhalt (wieviel Badewannen noch mit dem aufgeheizten Brauchwasser gefüllt werden können, bei einer Solarheizung wie lange noch abends geheizt werden kann)
    • usw.


    Grusz Harald

  3. #13
    Registriert seit
    Dec 2009
    Ort
    Salzburg / Austria
    Beiträge
    175

  4. #14
    Registriert seit
    Mar 2008
    Ort
    Ruesselsheim
    Beiträge
    3,555

    Zitat Zitat von skeal Beitrag anzeigen
    Wo find ich das Ganze?

    Um jetzt mal nicht zu offtopic zu werden evtl per PM ...
    Alphabereich war ein Scherz.

  5. #15
    Registriert seit
    Sep 2009
    Ort
    Bocholt
    Beiträge
    1,128

    Hallo alle zusammen,

    ja, ich lebe noch.
    Ich bin momentan (seit Juni) zu mit Arbeit und komme einfach nicht zu IPS.

    Ich habe nun schon ein paar mal "Modus" und "Anwesenheitssimulation" gelesen.
    Ich war mal angefangen mein "EMAs"-Konzept nieder zu schreiben.

    Hier nun meine Ergüsse.

    EMAs – Konzept

    EMAs steht für: Erweiterte Modus und Abwesenheitssimulation
    Mann könnte auch sagen: „Eine Rezepturverwaltung für das Haus“

    Teil 1 -> EMAs statisch oder „Erweiterter Modus“

    Wie soll das aussehen?
    Ich möchte einen Modus für das Haus nicht in einem Script hinterlegen, sondern aus dem Haus auslesen und in einer Datei abspeichern. Diese, sagen wir mal „EMAs“-Datei kann ich nach Belieben wieder aus einer Vielzahl von Dateien aussuchen und in das Haus „zurückspielen“ .

    Ein kleines Beispiel:

    Ich möchte mir einen „Ich lese ein Buch“ – Modus generieren. Was muss ich machen?

    Wenn ich ein Buch lese, dann ist:
    • Das Licht an der Couch zu 100% an.
    • Das Licht über dem Esstisch ist zu 40% an.
    • Das Rollo im Wohnzimmer auf der rechten Seite ist 0% geöffnet.
    • Das Rollo im Wohnzimmer auf der linken Seite ist 0% geöffnet.
    • Da ich immer nur lese, wenn ich alleine bin, sind im restlichen Haus alle Lampen aus.

    • Mein Sonos-Player im Wohnzimmer
    -> o spielt
    -> o mit einer Lautstärke von 20%
    -> o den Radiosender „1FM ChillOut-Radio“

    • Alle anderen Player im Haus sind aus.

    Wenn ich das nächste Mal ein Buch lese, hat mein Haus genau diese Einstellung (Setup). Per Tastendruck lese ich diese Einstellung aus dem Haus aus und speichere sie in die Datei „Martin_liest_ein_Buch.ems“. Wenn ich danach ein Buch lese, wähle ich diese Datei und schreibe (lade) die Einstellungen zurück ins Haus.


    Wie soll das Konkret im Webfront aussehen?

    Lesen:
    • Um eine aktuelle Einstellung zu laden, brauche ich natürlich einen „Lesen“-Knopf.
    • Um die geladene Einstellung in eine Datei zu schreiben, muss ich den Dateinamen eingeben können.
    • Ich brauche natürlich einen „Speichern“-Knopf um die Einstellungen in die Datei zu speichern.

    Schreiben:
    • Um eine Datei mit den Einstellungen auswählen zu können, braucht man eine Liste mit allen Einstellungsdateien, in der ich scrollen kann und in der ich eine Datei auswählen kann.
    • Die von mir ausgewählte Datei wird in einem separaten Feld angezeigt.
    • Der Inhalt der Datei wird in einer separaten Ansicht angezeigt. Dort kann man sich die Einstellungen ansehen und gegebenenfalls editieren.
    • Um eine Einstellungsdatei in das Haus zu schreiben, brauche ich einen „Schreiben“-Knopf.

    Allgemein:
    • Wenn irgendwelche Fehler passieren, ist eine Ausgabe von Meldungen wünschenswert. Z.B. Diesen Dateinamen „Martin_liest_ein_Buch.ems“ gibt es bereits. Soll die Datei überschrieben werden?

    Diesen Teil von EMAs ist statisch. Es werden feste Einstellungen aus dem Haus geladen und in das Haus geschrieben. Die Einstellungen verändern sich nicht. Sie bleiben statisch, bis ich eingreife (Lich An/Aus oder ich lade eine neue Datei).

    Warum muss das so sein? Kann ein Status nicht auch dynamisch sein?

    Ich meine „Ja“.


    Teil 2 -> EMAs dynamisch oder „Erweiterter Abwesenheitssimulation“

    Wie soll das aussehen?
    Warum muss ich mir eine Abwesenheitssimulation aus den Fingern saugen?
    Wäre es nicht viel schöner einfach alle Ereignisse (Event‘s) im Haus mitzuschreiben?
    Ich würde Montag morgen im Webfront die „Record“-Taste drücken und alle Veränderungen werden mitgeschrieben. Irgendwann drücke ich auf die „Stop“-Taste und speichere alles in eine Datei. Wenn mir danach ist lade ich diese Datei und Drücke die „Play“-Taste.

    Ich hoffe da hat jemand spass daran.

    Den statischen Teil bin ich bereits angefangen.
    Wenn jemand diese Scripte haben möchte......
    Bis dann

    Martin

  6. #16
    Registriert seit
    Sep 2009
    Ort
    Bocholt
    Beiträge
    1,128

    "bay the way"

    jemand hatte Interesse gezeigt mein Ebay Projekt in die Library zu bringen.

    Einen Namen sag ich jetzt nicht. Oder "1007".
    Bis dann

    Martin

  7. #17
    Registriert seit
    Dec 2007
    Ort
    Stuttgart
    Beiträge
    159

    Standard Ein Ereignishandler bzw. ein Benachrichtigungsmodul

    Problemstellung:

    Für verschiedenste Ereignisse die im System vorkommen können sollte es ein Modul geben das diese einheitlich sammelt, anzeigt, benachrichtigt bzw. daran erinnert und ggf. eskaliert. Die Benachrichtigung sollte (sofern ein Tracker vorhanden ist) auch gezielt an die Anwesende Person gerichtet sein, wenn es sie betrifft. Besser kann ichs leider nicht erklären, deshalb beschreib ich einfach mal was ich bisher dazu realisiert habe....evtl wird es dadurch nachvollziehbarer.

    Ähnlich wie beim IPSLogger kann aus jedem Script heraus ein Ereignis generiert werden. Die meisten Parameter die dabei übergeben werden sind optional. Daher gleich mal 2 Beispiele:

    • Das Backupscript hat erfolgreich meine Webseite gesichert:
      PHP-Code:
      IPS_RunScriptEx(16940 /*[eigene Module\Informationsmodul\Beta\create]*/,array("initiator"=>$_IPS['SELF'],"text"=>"Website erfolgreich gesichert")); 
    • Die Temperatur im Gefrierschrank hat einen Schwellwert überschritten:
      PHP-Code:
      IPS_RunScriptEx(16940 /*[eigene Module\Informationsmodul\Beta\create]*/,array("escal_sw"=>1,"escal_ts"=>date()+60*60"interval"=>30*60,"recallmax"=>20"prio"=>"3","who"=>0,"initiator"=>$_IPS['SELF'],"initiator_ro"=>false,"ack_req"=>true,"text"=>"Problem mit dem Gefrierschrank" )); 

    Welche Parameter gibt es:

    drop = [TS]Verfallszeitpunkt (Wann kann das Erreignis aufgeräumt bw. gelöscht werden)
    escal_sw = [int]Eskalation (Soll/Ist --> 0= nicht gewünscht, 1= gewünscht aber inaktiv, 2= Eskalation sofort aktiv)
    escal_ts = [TS]Eskalationszeitpunkt (Wann soll, wenn gewünscht, eskaliert werden?)
    interval = [int]Erinnerungsintervall (In welchen Abständen (s) soll erinnert werden? -1=nur einmal Initial )
    recallmax = [int]Maximale Anzahl Erinnerungen
    prio = [int]Priorität
    who = [int]Für wen ist es gedacht (0=alle, 1=Person1, 2=Person2)
    initiator = [int]ID der Verursachervariable (Diese Variable wird überwacht, ein Wechsel von "true" auf "false" führt zu einer Quittierung des Ereignisses)
    initiator_ro= [bool]Initiatorvariable nur lesend (D.h. es gibt keine Möglichkeit der manuellen Quittierung, z.B. Batterie leer Variable)
    ack_req = [bool]Bestätigung erforderlich?
    text = [int]Referenz auf Text für Sprachausgabe, Webfront, Log und Mail (immer in Verbindung mit der "ack"-Variable)

    Es gibt noch weitere Parameter die bei der Generierung des Events hinzugefügt werden. Für alle nicht übergebenen Parameter werden Standardwerte gesetzt. Pflicht ist nur "Initator" und "Text".
    Jedes Ereignis ist ein separates Objekt das alle Daten enthält. Timer werden zusätzlich dem Objekt untergeordnet und enthalten den erforderlichen Code um ihre Aktion auszulösen. So sieht das dann aus:
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	ereignisobjekt.png 
Hits:	253 
Größe:	11.9 KB 
ID:	19271

    Im Webfront kann man sich dann die relevanten Daten anzeigen lassen (diese Beispielansicht ist noch eher funktional, die meisten Details braucht man später nicht zu visualisieren):
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	ereignisliste.png 
Hits:	350 
Größe:	59.6 KB 
ID:	19272
    Bei Ereignissen deren Zustand über eine Variable wiedergegeben wird, ist es praktisch diese als Initiator zu übergeben. Dann wird das entsprechende Ereignis automatisch quittiert wenn sich der Zustand ändert. Wenn z.B. der HM-ZwischenStecker (erster Eintrag im Bild) wieder erreichbar wird.


    Wie die Erinnerung/Benachrichtigung abläuft wird über die Prio geregelt:
    z.B. bei mir so:
    PHP-Code:
    /*
    prio = [int]Priorität
    1-->     für sehr dringende Ereignisse
    Webfront-Popup, Sprache (auch Nachts und beim Filmschauen), Telefonanruf (bei Abwesenheit), Email (bei Abwesenheit), Protokoll
    2-->    für dringende Ereignisse
    Webfront-Popup, Sprache (auch Nachts und beim Filmschauen), Email (bei Abwesenheit), Protokoll
    3-->    für normale Ereignisse
    Webfront-Popup, Sprache (_nicht_ wenn Schlafenszeit, Abwesenheit oder Filmschauen), Protokoll
    4-->    für wenig wichtige Ereignisse
    Webfront-Popup, Protokolleintrag
    */ 

    In den Parameter für Text kommt nur eine ID, die dann über ein Sprachscript erst zur Meldung umgeschrieben wird. Damit kann man unterscheiden wie die Meldung im Webfront-Popup, Email, Telefon, Sprache auszugeben ist. Auch kann sich der Inhalt ändern wenn ein Ereignis als "Erledigt" markiert wurde.

    Ziel ist einfach ein Standardverfahren für alle Ereignisse im IPS-System zu schaffen die mehr Beachtung benötigen als einen Logeintrag. Das bisher beschriebene funktioniert so bereits, aber bis zu einem fertigen Modul das sich für jeden individuell parametrisieren lässt.....naja ist es noch ein weiter Weg.
    Geändert von brausepaul (23.11.12 um 10:50 Uhr)

  8. #18
    Registriert seit
    Apr 2011
    Ort
    Cologne
    Beiträge
    801

    Ich finde Brausepauls Idee Klasse, würde noch Prowl hinzufügen.

  9. #19
    Registriert seit
    Sep 2005
    Ort
    Stade
    Beiträge
    6,609

    Ich finde Brausepauls Idee Klasse
    Sowas ähnliches hatte ich als IPS-Modul laufen hier... Zusätzlich hat es noch Logfiles einer USV und eines Linux-Servers gescannt. Den Code hab ich noch und eine Growl-Lösung gibts auch. Hab ich mal für nen User hier gebaut/erweitert. Sollte dann veröffendlicht werden, ist aber nie dazu gekommen.

    Wir könnten die Idee ja mal weiter spinnen und ich reaktiviere das Projekt wieder.

    Toni

  10. #20
    Registriert seit
    Sep 2009
    Ort
    Bocholt
    Beiträge
    1,128

    Zitat Zitat von T30 Beitrag anzeigen
    Regelfunktion für den Mischermotor als Stellgröße (in Abhängigkeit von Außentemperatur und Heizplan als Eingangsgrößen). Man nennt das außentemperaturgeführte Regelung, diese verwendet eine Heizungskurve, die normalerweise händisch eingestellt wird; das Script sollte durch "Experimentieren" die optimale Heizungskurve selbst erstellen.
    Alleine das ist schon eine sehr interessante und anspruchsvolle Einzelaufgabe.
    Ein Regelalgorithmus in IPS. Da werde ich gerade richtig geil.
    Bis dann

    Martin

Ähnliche Themen

  1. IPSLibrary - NetPlayer
    Von Brownson im Forum IPSLibrary
    Antworten: 189
    Letzter Beitrag: 09.05.19, 20:49
  2. IPSLibrary
    Von Brownson im Forum IPSLibrary
    Antworten: 35
    Letzter Beitrag: 03.11.18, 20:17
  3. IPSLibrary - BusBahn
    Von 1007 im Forum IPSLibrary
    Antworten: 140
    Letzter Beitrag: 04.02.18, 06:48