GetState.csv Logikbaustein für GIRA Homeserver (KNX)
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo zusammen,
zur Anbindung des PoolController's an meinen GIRA-Homeserver habe ich eine erste Version eines GetState.cvs-Logikbaustein's erstellt.
Dieser dient dazu die von GetState.csv gelieferten Werte in KNX-Kommunikationsobjekte umzusetzen (siehe EIB_PoolController.gif).
Wenn ich das richtig verstehe, kann ich die Werte vom PoolController "nur pullen" d.h. zur Abfrage der Werte, zyklisch die URL GetState.csv aufrufen?
Falls ja, welche Zykluszeit wäre hier Sinnvoll in Bezug auf Aktualität und Last?
Ich möchte gerne die Unterwasserscheinwerfer über einen Taster am Terrassenausgang Ein-/Ausschalten.
Gibt es über den SetState.pl auch die Möglichkeit das Relais umzuschalten, also bei Zustand Ein=>Aus und wenn Aus=>Ein.
Dann wäre der aktuelle Relaisstatus nicht "zeitkritisch".
Viele Grüße
Werner
P.S.:
Bei Interesse kann ich den Logikbaustein (.hsl-Datei) gerne hier hochladen.
zur Anbindung des PoolController's an meinen GIRA-Homeserver habe ich eine erste Version eines GetState.cvs-Logikbaustein's erstellt.
Dieser dient dazu die von GetState.csv gelieferten Werte in KNX-Kommunikationsobjekte umzusetzen (siehe EIB_PoolController.gif).
Wenn ich das richtig verstehe, kann ich die Werte vom PoolController "nur pullen" d.h. zur Abfrage der Werte, zyklisch die URL GetState.csv aufrufen?
Falls ja, welche Zykluszeit wäre hier Sinnvoll in Bezug auf Aktualität und Last?
Ich möchte gerne die Unterwasserscheinwerfer über einen Taster am Terrassenausgang Ein-/Ausschalten.
Gibt es über den SetState.pl auch die Möglichkeit das Relais umzuschalten, also bei Zustand Ein=>Aus und wenn Aus=>Ein.
Dann wäre der aktuelle Relaisstatus nicht "zeitkritisch".
Viele Grüße
Werner
P.S.:
Bei Interesse kann ich den Logikbaustein (.hsl-Datei) gerne hier hochladen.
- Dateianhänge
-
- Screenshotausschnitt aus dem grafischen Logikeditor
- EIB_PoolController.gif (18.09 KiB) 822 mal betrachtet
-
Alex
- Administrator
- Beiträge: 10332
- Registriert: 28. Mai 2014, 23:00
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Werner,
>>Ich möchte gerne die Unterwasserscheinwerfer über einen Taster am Terrassenausgang Ein-/Ausschalten.
...also über die SetState geht das nicht, die braucht einen Status auf den geschaltet werden soll. "Wechseln" kann die nicht.
Einer der Digitalinputs kann z.B. mit der function STEP sowas machen. Da wird theoretisch immer umgeschalten. Heisst der physische Schalter müsste
an einen der DigitalInputs des Controllers. Wobei z.B. eine laufende Zeitschaltregel das auch direkt wieder "rückgängig" macht, wenn Du versucht das Licht über den Taster AUS zu machen und die Zeitschaltregel sagt aktuell EIN.
...wobei ich wohl den Anwendungsfall noch nicht ganz verstanden habe... also wer, wo und wie kann/soll alles das Licht EIN/AUS schalten?
Der Homeserver per Webrequest und ein physischer Taster? ...oder nur ein physischer Taster und die Weboberfläche des Controllers?
>>Wenn ich das richtig verstehe, kann ich die Werte vom PoolController "nur pullen" d.h. zur Abfrage der Werte, zyklisch die URL GetState.csv aufrufen?
>>Falls ja, welche Zykluszeit wäre hier Sinnvoll in Bezug auf Aktualität und Last?
Ja, über die GetState kannst nur Werte abfragen... in welchem Intervall... gute Frage. Ich frage bei mir mit der externen Software alle 60 Sekunden ab.
Das is eigentlich schon mehr als ausreichend in Punkto Aktualität. Man kann aber natürlich auch kürzer... hat man halt dauernd den Traffic auf dem Netzwerk
>>Ich möchte gerne die Unterwasserscheinwerfer über einen Taster am Terrassenausgang Ein-/Ausschalten.
...also über die SetState geht das nicht, die braucht einen Status auf den geschaltet werden soll. "Wechseln" kann die nicht.
Einer der Digitalinputs kann z.B. mit der function STEP sowas machen. Da wird theoretisch immer umgeschalten. Heisst der physische Schalter müsste
an einen der DigitalInputs des Controllers. Wobei z.B. eine laufende Zeitschaltregel das auch direkt wieder "rückgängig" macht, wenn Du versucht das Licht über den Taster AUS zu machen und die Zeitschaltregel sagt aktuell EIN.
...wobei ich wohl den Anwendungsfall noch nicht ganz verstanden habe... also wer, wo und wie kann/soll alles das Licht EIN/AUS schalten?
Der Homeserver per Webrequest und ein physischer Taster? ...oder nur ein physischer Taster und die Weboberfläche des Controllers?
>>Wenn ich das richtig verstehe, kann ich die Werte vom PoolController "nur pullen" d.h. zur Abfrage der Werte, zyklisch die URL GetState.csv aufrufen?
>>Falls ja, welche Zykluszeit wäre hier Sinnvoll in Bezug auf Aktualität und Last?
Ja, über die GetState kannst nur Werte abfragen... in welchem Intervall... gute Frage. Ich frage bei mir mit der externen Software alle 60 Sekunden ab.
Das is eigentlich schon mehr als ausreichend in Punkto Aktualität. Man kann aber natürlich auch kürzer... hat man halt dauernd den Traffic auf dem Netzwerk
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Alex,
danke für die deine Infos.
Also bei dem Szenario das ich mir vorstelle, sendet der EIB-Lichtschalter (also eigentlich ein Taster) eine 0 bzw. 1 (EIB-Status der UWS) auf den EIB-Bus . Dieses Telegramm wird vom Gira Homeserver ausgewertet und schickt einen SetState.pl Webrequest an den PoolController.
Wegen der Zykluszeit mache ich mir wahrscheinlich zu viele Gedanken. Für die Messwerte sind 60 Sekunden mehr als ausreichend aktuell und falls innerhalb der letzten 59 Sekunden ein Relais wirklich (z.B. über die Weboberfläche) umgeschaltet worden sein sollte, muss man den entsprechenden EIB-Taster halt zweimal betätigen (da dann z.B.: EIB-Status der UWS aus ist während der PoolControler-Status der UWS an ist).
Was mir gerade noch eingefallen ist: Ich teste mal ob ich vor dem SetState.pl-Webrequest einfach den GetState.csv abfragen kann. Somit würde ich vor dem Befehl zuerst den aktuellen Status abholen.
Gruß
Werner
danke für die deine Infos.
Also bei dem Szenario das ich mir vorstelle, sendet der EIB-Lichtschalter (also eigentlich ein Taster) eine 0 bzw. 1 (EIB-Status der UWS) auf den EIB-Bus . Dieses Telegramm wird vom Gira Homeserver ausgewertet und schickt einen SetState.pl Webrequest an den PoolController.
Wegen der Zykluszeit mache ich mir wahrscheinlich zu viele Gedanken. Für die Messwerte sind 60 Sekunden mehr als ausreichend aktuell und falls innerhalb der letzten 59 Sekunden ein Relais wirklich (z.B. über die Weboberfläche) umgeschaltet worden sein sollte, muss man den entsprechenden EIB-Taster halt zweimal betätigen (da dann z.B.: EIB-Status der UWS aus ist während der PoolControler-Status der UWS an ist).
Was mir gerade noch eingefallen ist: Ich teste mal ob ich vor dem SetState.pl-Webrequest einfach den GetState.csv abfragen kann. Somit würde ich vor dem Befehl zuerst den aktuellen Status abholen.
Gruß
Werner
-
Alex
- Administrator
- Beiträge: 10332
- Registriert: 28. Mai 2014, 23:00
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Ah OK.
Jo, dann ist das wohl die bevorzugte Lösung.
GetState abfragen, auswerten, direkt neue "Befehle" an die SetState.pl schicken.
So mach ich das bei mir auch. Ich habe allerdings keine "physischen" Schalter die sowas auslösen.
Musst mal testen. Je nach Geschwindigkeit des ganzen hast halt u.U ein paar 10 ms mehr Verzögerung
bis das Licht AN oder AUS geht.
Jo, dann ist das wohl die bevorzugte Lösung.
GetState abfragen, auswerten, direkt neue "Befehle" an die SetState.pl schicken.
So mach ich das bei mir auch. Ich habe allerdings keine "physischen" Schalter die sowas auslösen.
Musst mal testen. Je nach Geschwindigkeit des ganzen hast halt u.U ein paar 10 ms mehr Verzögerung
bis das Licht AN oder AUS geht.
-
Frankie
- Beiträge: 311
- Registriert: 22. Dezember 2014, 22:29
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Wenn du GetState.csv herranziehst , musst nur dran denken das die Relais eine bitcodierung haben
jedes Relais hat ein ganzes Byte das ist aber so aufgeteilt:
0 0 0 0 0 0 0 0 = AUTO, OFF
0 0 0 0 0 0 0 1 = AUTO, ON
0 0 0 0 0 0 1 0 = MANUAL, OFF
0 0 0 0 0 0 1 1 = MANUAL, ON
also Bit 0 sagt ob ein Relais OFF oder ON ist
Bit 1 sagt ob es im manuellen oder automatischen Betrieb läuft
Besonderheit :
wenn Manuell OFF , so bedeutet dies , das das Relais durch keine andere Aktion wieder eingeschaltet werden kann
Hintergrund :
alle Regeln die explizit etwas ausschalten sollen (OFF) , haben Vorrang vor allen anderen Wünschen
d.h. der unbedingte Wunsch etwas ausschalten zu wollen wird durch alle Instanzen durchgereicht , weil anzunehmen ist dies eine unbedingte Forderung ist
Umgekehrt: wenn eine Regel die etwas einschalten (ON) soll nicht erfüllt ist , so ist das Relais zunächst einfach default OFF, kann aber von jeder anderen Regel überschrieben werden. Quasie zwanglos OFF, wer will, kann das Relais jederzeit ON stellen
jedes Relais hat ein ganzes Byte das ist aber so aufgeteilt:
0 0 0 0 0 0 0 0 = AUTO, OFF
0 0 0 0 0 0 0 1 = AUTO, ON
0 0 0 0 0 0 1 0 = MANUAL, OFF
0 0 0 0 0 0 1 1 = MANUAL, ON
also Bit 0 sagt ob ein Relais OFF oder ON ist
Bit 1 sagt ob es im manuellen oder automatischen Betrieb läuft
Besonderheit :
wenn Manuell OFF , so bedeutet dies , das das Relais durch keine andere Aktion wieder eingeschaltet werden kann
Hintergrund :
alle Regeln die explizit etwas ausschalten sollen (OFF) , haben Vorrang vor allen anderen Wünschen
d.h. der unbedingte Wunsch etwas ausschalten zu wollen wird durch alle Instanzen durchgereicht , weil anzunehmen ist dies eine unbedingte Forderung ist
Umgekehrt: wenn eine Regel die etwas einschalten (ON) soll nicht erfüllt ist , so ist das Relais zunächst einfach default OFF, kann aber von jeder anderen Regel überschrieben werden. Quasie zwanglos OFF, wer will, kann das Relais jederzeit ON stellen
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Werner,
ich hätte Interesse an deinem Baustein und so wäre es toll, wenn du den Baustein hochlädst.
lg Gerry
ich hätte Interesse an deinem Baustein und so wäre es toll, wenn du den Baustein hochlädst.
lg Gerry
wernerLi hat geschrieben:Hallo zusammen,
zur Anbindung des PoolController's an meinen GIRA-Homeserver habe ich eine erste Version eines GetState.cvs-Logikbaustein's erstellt.
Dieser dient dazu die von GetState.csv gelieferten Werte in KNX-Kommunikationsobjekte umzusetzen (siehe EIB_PoolController.gif).
Wenn ich das richtig verstehe, kann ich die Werte vom PoolController "nur pullen" d.h. zur Abfrage der Werte, zyklisch die URL GetState.csv aufrufen?
Falls ja, welche Zykluszeit wäre hier Sinnvoll in Bezug auf Aktualität und Last?
Ich möchte gerne die Unterwasserscheinwerfer über einen Taster am Terrassenausgang Ein-/Ausschalten.
Gibt es über den SetState.pl auch die Möglichkeit das Relais umzuschalten, also bei Zustand Ein=>Aus und wenn Aus=>Ein.
Dann wäre der aktuelle Relaisstatus nicht "zeitkritisch".
Viele Grüße
Werner
P.S.:
Bei Interesse kann ich den Logikbaustein (.hsl-Datei) gerne hier hochladen.
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Gerry,
im Anhang der Baustein um mit dem Gira Homeserver die Response des PoolControllers auszuwerten. Ich musste die Dateiendung von .hsl auf .txt umbenennen um die Datei hier im Forum hochladen zu können. Also nach dem Download wieder in .hsl Datei umbenennen.
Leider habe ich keinen offiziellen Baustein-Nummernbereich von Dacom. D.h. du müsstest prüfen ob die von mir frei vergebene Bausteinnummer 10004 bei dir noch frei ist.
Im Anhang noch ein paar Screenshots zur Konfiguration im Homeserver. Das Kommunikationsobjekt Pool_GetState.csv ist vom Typ 14-Byte Text.
Falls du noch Fragen hast einfach melden.
Viele Grüße
Werner
im Anhang der Baustein um mit dem Gira Homeserver die Response des PoolControllers auszuwerten. Ich musste die Dateiendung von .hsl auf .txt umbenennen um die Datei hier im Forum hochladen zu können. Also nach dem Download wieder in .hsl Datei umbenennen.
Leider habe ich keinen offiziellen Baustein-Nummernbereich von Dacom. D.h. du müsstest prüfen ob die von mir frei vergebene Bausteinnummer 10004 bei dir noch frei ist.
Im Anhang noch ein paar Screenshots zur Konfiguration im Homeserver. Das Kommunikationsobjekt Pool_GetState.csv ist vom Typ 14-Byte Text.
Falls du noch Fragen hast einfach melden.
Viele Grüße
Werner
- Dateianhänge
-
- PoolController3.jpg (72.88 KiB) 756 mal betrachtet
-
- PoolController2.jpg (68.46 KiB) 756 mal betrachtet
-
- PoolController1.jpg (70.9 KiB) 756 mal betrachtet
-
- PoolControllerUebersicht.jpg (132.42 KiB) 756 mal betrachtet
-
- 10004_PoolController.txt
- HSL-Datei PoolController V1.0
- (5.18 KiB) 276-mal heruntergeladen
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Werner,
sehr genial!!
Danke!
Hast du es auch schon hinbekommen, mit dem HS einen Befehl an die Steuerung zu senden für zB. Filterpumpe ein?
lg Gerry
sehr genial!!
Danke!
Hast du es auch schon hinbekommen, mit dem HS einen Befehl an die Steuerung zu senden für zB. Filterpumpe ein?
lg Gerry
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hi Gerry,
über "/SetState.pl?RX=?" kannst du ein Relais ein- bzw. ausschalten, wenn sich das entsprechende Relais im "AUTOMATIK"-Modus befindet. Das "X" muss durch die entsprechende Relaisnummer (zählweise beginnt mit 1) ersetzt und das "?" mit einer "1" für ein- bzw. einer "0" für ausschalten ersetzt werden. Ich nutze diesen Mechanismus um die Unterwasserscheinwerfer über KNX ein- bzw. auszuschalten.
Ich hatte mir auch schon herausgesucht, was zum Umschalten der Modi (also "EIN, AUTOMATIK, AUS") zu senden ist. Leider finde ich die hierfür benötigten Requests gerade nicht. Falls das für dich wichtig ist, kann ich nochmal nachsehen.
Auf dem Bild PoolControllerUebersicht.jpg siehst du unten den entsprechenden Binär-Auslöser.
Hier die Screenshots für die Webabfrage "Pool UWS An"
Gruß
Werner
über "/SetState.pl?RX=?" kannst du ein Relais ein- bzw. ausschalten, wenn sich das entsprechende Relais im "AUTOMATIK"-Modus befindet. Das "X" muss durch die entsprechende Relaisnummer (zählweise beginnt mit 1) ersetzt und das "?" mit einer "1" für ein- bzw. einer "0" für ausschalten ersetzt werden. Ich nutze diesen Mechanismus um die Unterwasserscheinwerfer über KNX ein- bzw. auszuschalten.
Ich hatte mir auch schon herausgesucht, was zum Umschalten der Modi (also "EIN, AUTOMATIK, AUS") zu senden ist. Leider finde ich die hierfür benötigten Requests gerade nicht. Falls das für dich wichtig ist, kann ich nochmal nachsehen.
Auf dem Bild PoolControllerUebersicht.jpg siehst du unten den entsprechenden Binär-Auslöser.
Hier die Screenshots für die Webabfrage "Pool UWS An"
Gruß
Werner
- Dateianhänge
-
- UWS_An2.jpg (82.83 KiB) 745 mal betrachtet
-
- UWS_An1.jpg (70.43 KiB) 745 mal betrachtet
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Danke, das ist mir schon eine große Hilfe und ich kann damit durchstarten.
Wenn mal Zeit bleibt, wäre EIN/AUTO/AUS natürlich auch noch interessant
Lg Gerry
Wenn mal Zeit bleibt, wäre EIN/AUTO/AUS natürlich auch noch interessant
Lg Gerry
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Eine Sache noch, mit was misst du denn die Restmenge PH im Kanister (vermute ich)? Hängt der Messer direkt an den Digital Inputs?
danke lg Gerry
danke lg Gerry
-
Alex
- Administrator
- Beiträge: 10332
- Registriert: 28. Mai 2014, 23:00
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Der Controller "berechnet" das selber. Abhängig der eingestellten Förderleistung der Dosierpumpe und der (ihm) bekannten Dosierzeit, wird der Restinahlt des Kanisters rückwärts gezählt und in der GetState.csv mit ausgegeben. Wie genau das ist hängt davon ab, wie genau man die Förderleistung der Dosierpumpe einstellt... das kann man über längere Zeit einfach "rausspielen" indem man einfach kuckt was noch im Kanister ist und was der Controller anzeigt, oder man kann es auslitern, indem man den Saugschlauch der Dosierpumpe in einen Messbecher mit z.B. 1000ml Wasser hängt, 10 Minuten dosiert, kuckt was fehlt und das dann entsprechend im Controller eingibt.
Die Pumpen sind angegeben mit 1500ml/h... was sie genau fördern hängt aber immer vom Gegendruck des Systems ab, in das sie fördern müssen.
Die Pumpen sind angegeben mit 1500ml/h... was sie genau fördern hängt aber immer vom Gegendruck des Systems ab, in das sie fördern müssen.
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Werner,
könntest du mir den Abfragezyklus noch genauer zeigen bitte.
Was machst du mit UWS EIN/AUS.
Danke!
LG Gerald
könntest du mir den Abfragezyklus noch genauer zeigen bitte.
Was machst du mit UWS EIN/AUS.
Danke!
LG Gerald
- Dateianhänge
-
- Bildschirmfoto 2015-06-21 um 23.42.38.png (71.27 KiB) 717 mal betrachtet
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
....und passt 16bit EIS5 für die Anzeige der pH Werte usw. ?
danke
danke
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hi Gerry,
leider weiß ich nicht genau, wie gut du dich mit dem Homeserver-Experten auskennst. Also falls etwas zu ungenau sein sollte bitte nachfragen - falls ich zu detailliert beschreibe einfach überlesen.
Die zyklische Abfrage des Poolcontrollers habe ich folgendermaßen gemacht:
1) Request zur Abfrage einer Web-Seite anlegen
* im linken Experten-Menü unter Kommunikation den Punkt "Web-Seiten/IP-Geräte" auswählen
* in dem sich öffnenden Fenster mittels des "Neu" Button eine neue Abfrage anlegen
* bzgl. der einzugebenden Werte (siehe Screenshot-Bilder PoolController1-3.jpg vom Beitrag am 3.6.15 14:50)
* Im Reiter Daten muss natürlich die IP-Adresse des Poolcontrollers entsprechend angepasst werden
* Fenster schließen
2) zyklische Abfrage im Logikeditor anlegen
* im linken Experten-Menü unter EIB-Steuerung den grafischen Logikeditor starten
* in dem sich öffnenden Fenster mittels des "Neu" Button ein neues Arbeitsblatt für den Poolcontroller anlegen (Größe nach Wunsch)
* im linken unteren Fenster Bausteine unter dem Ordner "Weitere-Bausteine" den Telegrammgenerator auf das Arbeitsblatt ziehen. Die Zykluszeit (Eingang E1) auf den gewünschten Fixwert in Sekunden setzen (ich habe mich für 60 Sekunden entschieden) und den Baustein mit dem Fixwert "1" einschalten
* mit der rechten Maustaste eine Ausgangsbox anlegen und mittels des Plus-Buttons einen Befehl der Ausgangsbox hinzufügen
* Bezeichnung eintragen z.B.: "Pool GetState.csv abrufen", Kommunikationsobjekt bleibt leer und im Unterfenster Befehle einen neuen Befehl vom Typ "IP/EIB-Telegramm senden / Web-Seite/IP-Gerät auswerten" anlegen und den Modus hier auf "Web-Seite/IP-Gerät auswerten" stellen. Im Feld Web-Seite/IP-Gerät die unter 1) angelegte Web-Abfrage auswählen
* den Ausgang A1 des Telegrammgenerators mit dem Befehl der Ausgangsbox verknüpfen (A1 anklicken und auf den Befehl in der Ausgangsbox ziehen)
Mit UWS Ein/Aus schalte ich die Unterwasserscheinwerfer (UWS) durch einen EIB-Taster ein bzw. aus.
16bit EIS5 für die Float-Werte ist korrekt
Gruß Werner
leider weiß ich nicht genau, wie gut du dich mit dem Homeserver-Experten auskennst. Also falls etwas zu ungenau sein sollte bitte nachfragen - falls ich zu detailliert beschreibe einfach überlesen.
Die zyklische Abfrage des Poolcontrollers habe ich folgendermaßen gemacht:
1) Request zur Abfrage einer Web-Seite anlegen
* im linken Experten-Menü unter Kommunikation den Punkt "Web-Seiten/IP-Geräte" auswählen
* in dem sich öffnenden Fenster mittels des "Neu" Button eine neue Abfrage anlegen
* bzgl. der einzugebenden Werte (siehe Screenshot-Bilder PoolController1-3.jpg vom Beitrag am 3.6.15 14:50)
* Im Reiter Daten muss natürlich die IP-Adresse des Poolcontrollers entsprechend angepasst werden
* Fenster schließen
2) zyklische Abfrage im Logikeditor anlegen
* im linken Experten-Menü unter EIB-Steuerung den grafischen Logikeditor starten
* in dem sich öffnenden Fenster mittels des "Neu" Button ein neues Arbeitsblatt für den Poolcontroller anlegen (Größe nach Wunsch)
* im linken unteren Fenster Bausteine unter dem Ordner "Weitere-Bausteine" den Telegrammgenerator auf das Arbeitsblatt ziehen. Die Zykluszeit (Eingang E1) auf den gewünschten Fixwert in Sekunden setzen (ich habe mich für 60 Sekunden entschieden) und den Baustein mit dem Fixwert "1" einschalten
* mit der rechten Maustaste eine Ausgangsbox anlegen und mittels des Plus-Buttons einen Befehl der Ausgangsbox hinzufügen
* Bezeichnung eintragen z.B.: "Pool GetState.csv abrufen", Kommunikationsobjekt bleibt leer und im Unterfenster Befehle einen neuen Befehl vom Typ "IP/EIB-Telegramm senden / Web-Seite/IP-Gerät auswerten" anlegen und den Modus hier auf "Web-Seite/IP-Gerät auswerten" stellen. Im Feld Web-Seite/IP-Gerät die unter 1) angelegte Web-Abfrage auswählen
* den Ausgang A1 des Telegrammgenerators mit dem Befehl der Ausgangsbox verknüpfen (A1 anklicken und auf den Befehl in der Ausgangsbox ziehen)
Mit UWS Ein/Aus schalte ich die Unterwasserscheinwerfer (UWS) durch einen EIB-Taster ein bzw. aus.
16bit EIS5 für die Float-Werte ist korrekt
Gruß Werner
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Vielen Dank, dass du dir für die Erklärung soviel Zeit nimmst!
Genaue Beschreibungen sind natürlich immer toll, bin aber schon relativ bewandert mit dem HS.
Meine Frage war eher, wohin zeigt die zyklische Abfrage genau aber ich denke, die Abfrage geht auf das selbe GetState wie beim
Eingang.
Die Frage zur UWS Schaltung meinte ich so:
Du hast ja die Befehle UWS EIN, UWS AUS und UWS EIN/AUS.
Der dritte Befehl war mir nicht klar wo hier der Unterschied liegt.
Den Status hole ich mir dann wie du es auch machst, wieder über den Baustein zurück.
Was macht der Bitcuter bzw. was machst du damit?
Die Funktion EIN/AUTO/AUS wäre in der Tat noch eine schöne Sache für die Visu zum integrieren!
lg Gerry
Genaue Beschreibungen sind natürlich immer toll, bin aber schon relativ bewandert mit dem HS.
Meine Frage war eher, wohin zeigt die zyklische Abfrage genau aber ich denke, die Abfrage geht auf das selbe GetState wie beim
Eingang.
Die Frage zur UWS Schaltung meinte ich so:
Du hast ja die Befehle UWS EIN, UWS AUS und UWS EIN/AUS.
Der dritte Befehl war mir nicht klar wo hier der Unterschied liegt.
Den Status hole ich mir dann wie du es auch machst, wieder über den Baustein zurück.
Was macht der Bitcuter bzw. was machst du damit?
Die Funktion EIN/AUTO/AUS wäre in der Tat noch eine schöne Sache für die Visu zum integrieren!
lg Gerry
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Mit einer Sache habe ich zur Zeit noch zu kämpfen.
Wenn ich mit dem HS einen Befehl zum Schalten versende, kommt die Reaktion am Poolcontroller erst etwa 10min. später.
Hättest du hierfür auch einen Tipp für mich?
Vielen Dank für deine Ausdauer!!
lg Gerry
Wenn ich mit dem HS einen Befehl zum Schalten versende, kommt die Reaktion am Poolcontroller erst etwa 10min. später.
Hättest du hierfür auch einen Tipp für mich?
Vielen Dank für deine Ausdauer!!
lg Gerry
-
Alex
- Administrator
- Beiträge: 10332
- Registriert: 28. Mai 2014, 23:00
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
10 Minuten später? Wie/was schickt ihr denn um ein Relais zu schalten? .... den GET an "SetState.pl?Rx=..."gerald090 hat geschrieben:Wenn ich mit dem HS einen Befehl zum Schalten versende, kommt die Reaktion am Poolcontroller erst etwa 10min. später.
Einem Relais den Status EIN/AUTO/AUS zu geben wäre grundsätzlich schon auch möglich. Bin ich jetzt aber überfragt wie "kompliziert" das bei euch um zu setzen ist. Es müssen zuerst die aktuellen Zustände bekannt sein (GetState abfragen)... anhand dieser kann man dann einen neuen POST Request basteln und an /usrcfg.cgi schicken.
Es muss halt immer der Status aller 16 möglichen Relais (inkl Relais_Extension) geschickt werden -> deswegen muss die GetState vorher abgefragt werden, damit man auch für die Relais die man "nicht bedienen" will den aktuellen Status wieder zurück schicken kann..
-
wernerLi
- Beiträge: 37
- Registriert: 7. Januar 2015, 10:14
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo Gerry,
sorry - wusste nicht genau was du wissen willst.
Jetzt glaube ich das Problem zu verstehen:
Ich habe verwirrenderweise das interne Kommunikationsobjekt in dem der Response des Poolcontrollers abgelegt wird, genau so benannt wie die Webabfrage des Poolcontrollers - beides mal "Pool GetState.csv".
Bei der Ausgangsbox wird Webabfrage und bei der Eingangsbox das interne Kommunikationsobjekt verwendet.
Der Befehl "UWS An/Aus" ist redundant und sollte eigentlich als parametrisierte Variante die anderen beiden Befehle ersetzen. Ich wollte lieber einen Befehl und die Relais-Nummer als Parameter falls sich mal den UWS an ein anderes Relais an klemmen sollte. Nachdem dieser Befehl aber nicht auf anhieb geklappt hat, habe ich diese "Schönheitskorrektur" auf später verschoben. "UWS An/Aus" kannst du also ignorieren.
Der Poolcontroller liefert den Status des Relais in Form von 2 Bit zurück - Bit0=Zustand des Relais, Bit1=Betriebsart (manuell, Auto):
Bit
10
==
00 (0x00)= Auto Off
01 (0x01)= Auto On
10 (0x02)= Off
11 (0x03)= On
Mit dem Bitcutter trenne ich quasi die Betriebsart ab um den reinen Schaltzustand des Relais zu bekommen.
Zur Visualisierung der Zustände EIN/AUTO/AUS kannst du diesen Status bereits verwenden.
Das Umschalten der Betriebsart ist jedoch aufwendiger und funktioniert leider nicht mit dem Get Request SetState.pl?RX=2 bzw. 3. (@Alex, @Frankie: könnte man dies evtl. zulassen?)
Wie Alex geschrieben hat müsste man hierfür einen POST Request basteln, der nach meinen "Nachforschungen" folgendes Format haben müsste:
-----------------------------------------------------------------
POST /usrcfg.cgi HTTP/1.1
Content-Length: len
Content-Type: application/x-www-form-urlencoded
Host: 192.168.0.10
ENA=X,Y&MANUAL=1
----------------------------------------------------------------
Wobei "len" mit der Zeichenlänge von "ENA=X,Y..." besetzt sein muss.
In dem Bitmuster X müssen die Relais, die auf die Betriebsart "manuell" geschaltet werden, auf "1" stehen.
Hierbei ist Relais 1 = Bit 0 (0x01 1) und Relais 8 = Bit 7 (0x80 128)
In dem Bitmuster Y müssen die Schaltzustände dieser Relais angegeben werden (1=An,0=Aus).
Mit ENA=193,65 würde man also Relais1=EIN,Relais7=EIN,Relais8=AUS setzen - alle anderen Relais werden auf AUTO gesetzt
X=11000001 (2^7 + 2^6 + 2^0 = 128 + 64 + 1 = 193)
Y=01000001 Bit7=0 => Relais8=AUS ; Bit6=1 => Relais7=EIN ; Bit0=1 => Relais1=EIN
Mit ENA=0,0 würde man alle Relais auf AUTO setzen.
Also bei mir geht der UWS sofort an bzw. aus wenn ich den EIB-Taster betätige.
Was passiert wenn du den Befehl ".../SetState.pl?RX=1/0" in der Adresszeile deines Browsers eingibst, schaltet dann das Relais sofort?
Hast du mal auf der Debug-Seite des Homeservers im Bereich "Event-BiDir" nachgeschaut ob der Request auch sofort rausgeht?
Gruß Werner
sorry - wusste nicht genau was du wissen willst.
Jetzt glaube ich das Problem zu verstehen:
Ich habe verwirrenderweise das interne Kommunikationsobjekt in dem der Response des Poolcontrollers abgelegt wird, genau so benannt wie die Webabfrage des Poolcontrollers - beides mal "Pool GetState.csv".
Bei der Ausgangsbox wird Webabfrage und bei der Eingangsbox das interne Kommunikationsobjekt verwendet.
Der Befehl "UWS An/Aus" ist redundant und sollte eigentlich als parametrisierte Variante die anderen beiden Befehle ersetzen. Ich wollte lieber einen Befehl und die Relais-Nummer als Parameter falls sich mal den UWS an ein anderes Relais an klemmen sollte. Nachdem dieser Befehl aber nicht auf anhieb geklappt hat, habe ich diese "Schönheitskorrektur" auf später verschoben. "UWS An/Aus" kannst du also ignorieren.
Der Poolcontroller liefert den Status des Relais in Form von 2 Bit zurück - Bit0=Zustand des Relais, Bit1=Betriebsart (manuell, Auto):
Bit
10
==
00 (0x00)= Auto Off
01 (0x01)= Auto On
10 (0x02)= Off
11 (0x03)= On
Mit dem Bitcutter trenne ich quasi die Betriebsart ab um den reinen Schaltzustand des Relais zu bekommen.
Zur Visualisierung der Zustände EIN/AUTO/AUS kannst du diesen Status bereits verwenden.
Das Umschalten der Betriebsart ist jedoch aufwendiger und funktioniert leider nicht mit dem Get Request SetState.pl?RX=2 bzw. 3. (@Alex, @Frankie: könnte man dies evtl. zulassen?)
Wie Alex geschrieben hat müsste man hierfür einen POST Request basteln, der nach meinen "Nachforschungen" folgendes Format haben müsste:
-----------------------------------------------------------------
POST /usrcfg.cgi HTTP/1.1
Content-Length: len
Content-Type: application/x-www-form-urlencoded
Host: 192.168.0.10
ENA=X,Y&MANUAL=1
----------------------------------------------------------------
Wobei "len" mit der Zeichenlänge von "ENA=X,Y..." besetzt sein muss.
In dem Bitmuster X müssen die Relais, die auf die Betriebsart "manuell" geschaltet werden, auf "1" stehen.
Hierbei ist Relais 1 = Bit 0 (0x01 1) und Relais 8 = Bit 7 (0x80 128)
In dem Bitmuster Y müssen die Schaltzustände dieser Relais angegeben werden (1=An,0=Aus).
Mit ENA=193,65 würde man also Relais1=EIN,Relais7=EIN,Relais8=AUS setzen - alle anderen Relais werden auf AUTO gesetzt
X=11000001 (2^7 + 2^6 + 2^0 = 128 + 64 + 1 = 193)
Y=01000001 Bit7=0 => Relais8=AUS ; Bit6=1 => Relais7=EIN ; Bit0=1 => Relais1=EIN
Mit ENA=0,0 würde man alle Relais auf AUTO setzen.
Also bei mir geht der UWS sofort an bzw. aus wenn ich den EIB-Taster betätige.
Was passiert wenn du den Befehl ".../SetState.pl?RX=1/0" in der Adresszeile deines Browsers eingibst, schaltet dann das Relais sofort?
Hast du mal auf der Debug-Seite des Homeservers im Bereich "Event-BiDir" nachgeschaut ob der Request auch sofort rausgeht?
Gruß Werner
-
gerald090
- Beiträge: 26
- Registriert: 6. Mai 2015, 21:52
Re: GetState.csv Logikbaustein für GIRA Homeserver (KNX)
Hallo zusammen und ein schönes Frühjahr!
Nach dem unsere Inbetriebnahme des Pool und euer Update erledig ist, würde ich mich gerne weiter mit dem Thema "Einbindung in KNX" weiter
beschäftigen.
So habe ich eine erste grundlegende Frage, was mir gerade aufgefallen ist:
Ich habe mal versucht was passiert, wenn ich über den Webbrowser Befehle versende.
Ergebnis: Ich kann nur Relais 7 und 8 per Webbefehl schalten.
192.168.0.205:9090/SetState.pl?R7=0
Woran kann das liegen, das die Relais 1-6 nicht auf diese Befehle reagieren?
Nach dem unsere Inbetriebnahme des Pool und euer Update erledig ist, würde ich mich gerne weiter mit dem Thema "Einbindung in KNX" weiter
beschäftigen.
So habe ich eine erste grundlegende Frage, was mir gerade aufgefallen ist:
Ich habe mal versucht was passiert, wenn ich über den Webbrowser Befehle versende.
Ergebnis: Ich kann nur Relais 7 und 8 per Webbefehl schalten.
192.168.0.205:9090/SetState.pl?R7=0
Woran kann das liegen, das die Relais 1-6 nicht auf diese Befehle reagieren?