| |||||||
| Registrieren | Benutzerliste | Interessengemeinschaften | Usermap | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| |||
|
Hallo Leute, mathematisch stellt es mich nicht so vor Probleme, aber als Anfänger vor die Frage der richtigen Umsetzung... Also: Am Warmwasservorlauf (also Richtung Verbraucher) hängt ein 1-Wire Temperatursensor (der wird auch erkannt). Nun soll in Abhängigkeit von der Temperaturänderung über die Zeit die Zirkulationspumpe eingeschaltet werden, um den Warmwassertransport zu beschleunigen. Dazu muss ich also jeweils die Temperatur bis zur nächsten Änderung in einer Variablen zwischenspeichern (also immer den letzter Wert vor dem neuen Einlesen), somit habe ich die zwei Werte für die Y-Achse, die beiden Uhrzeiten stellen die beiden X-Werte da. Aus den zwei X1/Y1 (vorherige Einlesung) und den X2/Y2 (aktuelle Einlesung) Pärchen kann ich dann die Steigung zwischen den beiden Punkten berechnen. Ist die Steigung über einem bestimmten Schwellwert, dann wird Warmwasser abgefordert, wenn also noch nicht in Betrieb, dann soll die Zirkulationspumpe anlaufen... Mathematisch also nicht das Problem, aber die IPS-Umsetzung bereitet mir noch arge Probleme. Leider fand ich in der Online-Hilfe bis dato nicht so das Richtige... (derzeit weiß ich nicht, wie ich wo welche Objekte (Variablen Skripte) anlegen sollte). Würde mich freuen, wenn mir jemand auf die Sprünge helfen würde... Joachim |
| ||||
|
Ich mache im Prinzip das Gleiche für meine Wetterstation, hier für den Luftdruck: - zwei Variablen anlegen - Script wie unten - Script zyklisch triggern (damit hast Du schon mal die Zeiteinheit bzw. kannst diese beliebig wählen) Das Script schiebt dann in jedem Zeitintervall jeweils den aktuellen Luftdruck in Variable 1 und den letzten Wert in Variable 1 in die Variable 2. Mit der if-Anweisung kannst Du dann die Differenz auswerten. PHP-Code: (Meine funktioniert aber auch und die verstehe ich als PHP-Noob)
__________________ Gruß dreamy1 Meine eigene Hardwareserie: *dreamy1bees* Geändert von dreamy1 (21.12.09 um 19:16 Uhr) |
| |||
|
Hallo dreamy1 und Attain, vielen Dank erst einmal für Eure Antworten. Ich versuche dem zu folgen, habe aber als Neuanfänger so meine Problem. Offensichtlich füge ich bei "Variable" den 1-Wire Sensor falsch ein. Kannst Du mir noch sagen wie das aussehen müsste? Joachim |
| ||||
|
Hallo Joachim, Du legst das Script an. Fügst dem Script ein neues Ereignis hinzu. Als auslösende Variable wählst Du die 1-Wire Temperatur aus und bei der Änderung der Variablen wird das Script gestartet. Das Script berrechnet die Differenz zwischen dem alten($IPS_OLDVALUE) und dem jetzt neuen($IPS_VALUE) Wert. Weiterhin wird die Zeit Berrechnet, die vergangen ist seit dem letzten('LastExecute') Ausführen und dem jetzigem (time()) Zeitpunkt. Gruß |
| |||
|
Hallo Attain, ich konnte schon ein paar kleine Erfolge feiern - mir ist programmieren nicht fremd, aber mit dem Syntax von php - auch in Verbindung mit IPS - muss (und will) ich mich noch anfreunden. Ich werde heute abend mal sehen, wie weit mich das bringt. Vielen Dank für die Unterstützung! Joachim |
| ||||
|
Ok, als PHP-Dummie möchte ich mich da mal einklinken. Ich brauche ein Script zur Verbrauchsberechnung (Liter/Stunde, kwh/Tag etc.) Das Script von Attain scheint mir schon das Richtige zu sein - aber mit learning by doing (besser: rumprobiering and nixlearning) komme ich nicht weiter. Angenomme ich habe folgende Situation: Ich habe eine Variable "verbrauch", die mir den aufsummierten Verbrauch anzeigt. Weiterhin habe ich eine Variable "verbrauchstd" für den Verbrauch der letzten 24 Std und eine Variable "verbrauchmon" für die letzten 30 Tage. Für ein aufgedröseltes Script, wo die einzelnen Befehle erklärt sind wäre ich echt dankbar. Die Systemvariablen habe ich zwar in der Doku gefunden aber ohne Beispiel kann ich damit leider nix anfangen Vielen Dank schonmal. Ralf P.S. Eine Aufnahme in die Script Libary wäre super - wie z.B. Parsey's Variablenumrechnung
__________________ irgendwann klappts! |
| ||||
|
Hallo Ralf, ich mach mal ein paar Kommentare ins Script: PHP-Code: |
| ||||
|
Hallo Attain, so ähnlich dachte ich mir das schon - habe aber leider keine Werte rausbekommen. Ich muß also nochmal fragen: PHP-Code: Was ist die: $Differenz = $IPS_VALUE - $IPS_OLDVALUE? Die Differenz zwischen zwei script-starts? Wenn mein Brenner läuft, ändert sich die Variable jede Sekunde. Was kommt dann dabei raus? Und wie konne ich da auf einen Wert pro Stunde? PHP-Code: PHP-Code: PHP-Code: ![]() Tja, so siehts aus, wenn mann's nicht kann ![]() Bekomme ich das hin? Vielen Dank schonmal!
__________________ irgendwann klappts! |
| ||||
|
Für IPS-Funktionen empfiehlt sich immer wieder ein Blick in die Doku .IPS_LogMessage - IP-Symcon :: Automatisierungssoftware wird in der Konsole unter Meldungen wiedergegeben und ist hinterher auch im Ordner /logs zu finden. IPS_GetScript - IP-Symcon :: Automatisierungssoftware liefert, wie schon von Attain geschrieben, ein Array mit Informationen über ein Skript. Was ein Array ist steht unter PHP: Arrays - Manual, was ein Array enthält lässt sich mit print_r() herausfinden, siehe Beispiel in der Doku. Die Informationen werden hier in $Script gespeichert. Hinterher wird zur Berechnung der Zeitdifferenz $Script['LastExecute'] herangezogen. Dann solltest Du Dir noch die meiner Meinung nach wichtigste Seite der Dokumentation ansehen: Systemvariablen - IP-Symcon :: Automatisierungssoftware. Dort steht beschrieben, welche Variablen beim Skriptaufruf bereits existieren. Hier z.B.: - $IPS_SELF: ID des ausgeführten Skripts - $IPS_SENDER: wodurch das Skript aufgerufen worden ist ("Variable" = Ausführung durch Ereignis an einer Variable) - $IPS_VALUE: existiert bedingt durch die Ausführung des Variablenereignisses und enthält den aktuellen Variablenwert zur Ausführung Die Abfrage nach $IPS_SENDER macht man, damit man sicher gehen kann, dass nur bei der Ausführung durch den bestimmten Sender der Code ausgeführt wird und nur dann dadurch bedingt Variablen existieren, so existiert $IPS_VALUE nicht für $IPS_SENDER == "RunScript".
__________________ Horst Geändert von Horst (23.12.09 um 04:38 Uhr) |
![]() |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Temperatur Regelung mit Funk-Wandthermostat (hm-cc-tc) | Mischka | HomeMatic | 7 | 07.10.10 08:21 |
| LCN Temperatur auslesen | atmel | KNX/EIB, LCN | 17 | 23.10.09 15:46 |
| Heizkennlinie berechnen | ckerndl | Scripte, PHP, SQL | 7 | 23.08.09 18:56 |
| Wer hat an der Temperatur gedreht? | jolentes | Dashboard | 5 | 19.05.06 17:38 |
| Temperatur grafisch darstellen | Jimmy Neutron | Dashboard | 14 | 26.01.06 21:46 |