Hallo,
bisher habe ich hier viel anonym gelesen, und durch viel probieren IP Symcon so zurecht gebogen wie ich es haben wollte. Doch jetzt weiß ich mit meinem spärlichen Wissen auch nicht mehr weiter. Also versuchte ich jetzt im Forum mit hoffentlich passenden Suchbegriffen meine Probleme lösen zu können. Nach weiteren 4 Tagen durchsuchen und lesen hab ich jetzt das Handtuch geworfen und traue mich voller Ehrfurcht mal nachzufragen.
Kurze Infos um meine Fragen nachvollziehen zu können…
-> Neubau Stadtvilla
-> ALLES sternförmig verkabelt
—> jede Steckdose
—> Türsensoren
—> Fenstersensoren
—> CAT7 Dosen
—> SAT Dosen
—> Lampen / Leuchten / Lichtvouten / Deckensegel
-> LCN System
—> 6 x SHS
—> 6 x R8H
—> aktuell 1 x DMXH
-> 1-Wire System
—> 1 x 1-Wire Controller 2 von Esera
—> 6 x 1-Wire 8-Fach Digital Eingang von Esera
—> 8 x 1-Wire Relaisbausteine von Denkovi (DS2408)
—> 28 NTC 18B20
Die Einbindung aller Komponenten in IP Symcon verlief einwandfrei. Was mich am meisten reizt, ist die Tatsache das ich in Ip Symcon mit PHP ansetzen kann. Ich arbeite seit 14 Jahren leidenschaftlich gern mit PHP, MySQL, etc.
Nun die konkreten Fragen und meine bisherigen Lösungsansätze…
1.) 1-Wire Relaisbaustein per Script schalten
In der Dokumentation steht dazu der Befehl
OW_SETPIN(Instanz, Pin, Status)
Konkret sieht das bei mir so aus
OW_SetPin(42273, 5, true);
Starte ich das Script bekomme ich folgende Fehlermeldung…
WARNING: Instance #42273 does not exist in /var/lib/symcon/13627.ips.php an line 18
In Zeile 18 steht exakt der o.g. Befehl. Nun dachte ich, dann nehme ich mal die ID vom Contoller, obwohl dies für mich unlogisch schien, da auch dieser ja mehrere Ein- und Ausgänge hat. Natürlich klappte das auch nicht. Dann war ich der Meinung ich müsse die 1-Wire ID benutzen, da nur die ja eindeutig aussagt welches Gerät also Instanz ich ansprechen möchte. Natürlich klappte das auch nicht.
Probiert habe ich auch…
OW_SetPin(21793, 5, true);
jedoch auch ohne Erfolg. Die gleiche Fehlermeldung nur mit der Object ID 21793.
Unter
tail -f /var/log/symcon/logfile.log
wird mir auch nichts angezeigt, was logisch ist, das Script wird ja schon bei der Überprüfung durch den Parser ausgebremst. Was übersehe ich?
2.) Zeitsteuerung
Wie man in der o.g. Grafik sehen kann, mache ich schon viel mit Zeitsteuerungen. Nun habe ich 2 weitere NTC am Vor- und Rücklauf der WP angeschlossen. Ziel ist es, die Warmwasserumwälzpumpe (WWUWP) nicht rund um die Uhr laufen zu lassen, sondern in der Zeit von beispielsweise 5:30 - 9:30 IM INTERVALL von 10 Minuten an und 10 Minuten aus. Mit einem Wochenschaltplan habe ich zwar hinbekommen das diese in der Zeit von beispielsweise 5:30 - 9:30 durchweg läuft. Nun möchte ich es jedoch noch weiter verfeinern. In dieser Zeitspanne soll diese im Intervall von 10 Minuten laufen. Probiert habe ich unter dem Wochenschaltplan noch einen Zyklusplan „anzuhängen“. Das geht jedoch nicht, da ich eine ausführende Variable, also das Relais der WWUWP angeben muss, damit wäre der Wochenschaltplan jedoch wieder unberücksichtigt.
Lässt sich dies wieder nur mit einem Script realisieren? Das tolle ist, das der Wochenschaltplan auch vom Endbenutzer im Frontend editiert werden könnte, daher habe ich all meine Hoffnung darauf gelegt.
3.) Button erstellen
Bitte nicht lachen, ich bin wohl zu blöd einen Button zu erstellen. Laut Doku…
{ "type": "Button", "caption": "An", "onClick": "echo $id;" }
Erstelle ich ein Testscript und kopiere das dort rein und führe es im Frontend aus bekomme ich folgende Fehlermeldung
Parse error: syntax error, unexpected ':' in /var/lib/symcon/scripts/16728.ips.php
Das sieht mir eher nach JSON aus. Wie verwende ich dies in den Scripten? Gibt es da bereits Standardroutinen. (Methoden)
Ziel ist es, zukünftig eine Gruppenschaltung zu realisieren. 8 Rollläden im EG über einen Button zu schließen, wobei alle Einzelbuttons der Rollläden dann auch nach und nach den Status des Rollladen annehmen sollten, also Open oder Close, je nachdem. Zur Zeit sieht dies noch so aus…
<?php
//definitionen
include(IPS_GetScriptFile(36893));
//ausführung
include(IPS_GetScriptFile(57827));
?>
Die Einzelscripte sehen so aus
//script 36893
<?php
//definition jalousien eg
$jalousien = array(
53857 Rollladen-Essbereich (Busmodule\LCN Module\Rollläden/EG (000, 006)),
34816 Rollladen-Terassentür (Busmodule\LCN Module\Rollläden/EG (000, 006)),
21408 Rollladen-Wohnbereich (Busmodule\LCN Module\Rollläden/EG (000, 006)),
19937 Rollladen-Wohnbereich klein (Busmodule\LCN Module\Rollläden/EG (000, 006)),
40943 Rollladen-Badezimmer (Busmodule\LCN Module\Rollläden/EG (000, 005)),
25204 Rollladen-Technik (Busmodule\LCN Module\Rollläden/EG (000, 005)),
19152 Rollladen-Küche-Links (Busmodule\LCN Module\Rollläden/EG (000, 005)),
17925 Rollladen-Küche-Rechts (Busmodule\LCN Module\Rollläden/EG (000, 005)),
);
?>
//script 57827
<?php
//rollläden schliessen
foreach($jalousien as $k => $v){
if(LCN_ShutterMoveDown($v)){
//SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
sleep(1);
}
?>
Hierbei nervt jedoch, das für die Dauer der Abarbeitung die Sanduhr läuft. Auch habe ich bei dem Script keinen chicen Button den man eben drücken kann (Frau-freundlich eben) Daher die obige Frage. Toll wäre es, wenn ich eine Variable definiere die per Button aufrufe und HINTER dieser Variable dann die einzelnen Object ID´s der Rollläden stehen könnten.
Sollte es schon Lösungsansätze zu den oben genannten Fragen im Forum geben, wäre der Link zu dem Thema ausreichend. Ich bedanke mich bereits im Voraus für eure Zeit und Hilfe.
tomquenten