Dosierung OFF/AUTO schalten ?

Anbindung des Controllers an externe Hausautomationssysteme.
Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

Moin
Falls das im anderen Thread unter gegangen sein sollte, hier noch einmal als separates Thema.

Besteht die Möglichkeit die Stati der Dosiereinstellungen zu ändern (auto/aus) ? Generell geht es nur um die externe Möglichkeit den Status OFF/AUTO zu ändern, nichts anderes.
Welcher Post Befehl (welche Variablen?) bewirken eine Änderung des Zustands ?

Generell ist das auch über das Ändern der AN/AUTO/OFF Einstellungen möglich, aber da besteht die Gefahr bei einer falsch errechneten Zahl, das man die Dosierrelais "dauer an" schaltet oder habe ich da einen Denkfehler ?


Gruß
Jens

Benutzeravatar
Frankie
Beiträge: 311
Registriert: 22. Dezember 2014, 22:29

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Frankie »

Hi Jens
die Dosierung über die drei Relais Optionen: Manuel Auto / On / OFF ist nur ein Behelf. Damit schaltest du letztendlich nur das entsprechende Relais aus. Die Dosiersteuerung ist intern immer noch aktiv, dosiert am Ende nur nichts, weil das Relais verriegelt ist
ist auch bischen kritischer weil der COntroller selber gerade schaltet , deine Seite aber noch den alten Zustand kurz zuvor erwischt hat
dann schickst das geändert zurück, schlechtestenfalls hast du gerade das überschrieben was der COntroller gerade geschaltet hat

vielleicht safer ? :
du kannst mit einem HTTP GET Request die datei usr/rdxcntrl.ini holen
die erste Zeile enthält einen Identifier TAG ( hier [RDXCNTRL])
die zweite Zeile enthält TYPE=1, hier heisst das 0 = OFF, 1 = Auto
kannst den Wert auf 0 setzen und die Daten mit einem POST wieder zurückschicken
die erste Zeile lässt du dabei weg ([RDXCNTRL]))
dann die bisherigen Daten nehmen, Format muss jedoch gleichbleiben , da darfst nix dran ändern
in der letzten Zeile einen Zeilenumbruch einfügen ( falls noch nicht vorhanden)
in der neuen Zeile RDXCNTRL=1 einfügen und das ganze mit einem POST an usrcfg.cgi schicken
also nochmal kurz:

empfangen via GET request usr/rdxcntrl.ini
[RDXCNTRL])
DATA ( mehrere Zeilen)

verschicken :
geänderte DATA ( mehrere Zeilen)
RDXCNTRL=1

Einzelparameter Änderungen via WEB sind nicht vorgesehen, es wird immer die Gesamtkonfiguration der Seite versendet

hilft das ?
gruß
Frank

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

Hallo Frank,

vielen Dank, damit kann ich erst mal rumprobieren.
Für PH- nehme ich mal an das die Datei "/usr/phcntrl.ini" heißt ?


Gruß
Jens

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

So, ich noch einmal ...

Lesen der Werte ist kein Problem, aber bevor ich jetzt etwas ändere frage ich lieber noch einmal.
Was meinst Du mit "Format nicht ändern" ?
Im Grunde lese ich die Daten, bastle daraus ein Array mit den Werten und schicke das Ganze wieder zurück.
Meist Du lediglich Punkt/Komma oder noch etwas anderes ?

Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Alex »

Denke Frank meinte auch die Reihenfolge der Werte. Die muss gleich bleiben und der Reihenfolge entsprechen, wie sie auch in der Datei stehen.

Benutzeravatar
Frankie
Beiträge: 311
Registriert: 22. Dezember 2014, 22:29

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Frankie »

ja du solltest die gleichen Texte und Zeileninhalte so wie du sie empfangen hast auch wieder zurückschicken
zum Probieren mein Vorschlag :
in der letzten Zeile z,B sowas reinschreiben
statt
RDXCNTRL=1
schreibst du
JENS=1
wichtig nur : beim Versenden geht's gleich mit den Daten los , der TAG Identifier kommt zum Schluss
beim Empfang ist es umgekehrt : der Tag identifier kommt zuerst
die eigentlichen Nutzdaten sind jedoch identisch aufgebaut

damit legt der Controller im /usr Verzeichnis die Datei jens.ini an, wenn sie noch nicht existiert , ansonsten wird sie neu überschrieben
die kannst du mit der originalen rdxcntrl.ini zunächst vergleichen ( solange du noch am basteln bist )
damit veränderst du die originale Datei erstmal nicht, kannst natürlich auch ich keine Dosierung ausschalten
die wird einfach nur mit den gePOSTeten Inhalten abgelegt
erst wenn du sicher bist das das Endergebnis passt , solltest du
statt
JENS=1
dann das finale
RDXCNTRL=1
übertragen
dann erkennt der Controller die Redox Konfigparameter und übernimmt diese dann auch direkt

am Ende solltest du dann usr/jens.ini löschen

gruß
Frank

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

*hmpf*
erster Versuch fehlgeschlagen, trotz eines "Jens = 1" am Ende, wurde eine Datei 17.ini entweder erstellt oder verändert ... 17 wird dann das letzte Element im Array gewesen sein, da ich wie üblich aus den Daten ein Array gemacht habe !?
Ich bräuchte ein Beispiel, wie der Aufbau der Daten sein soll.

Gruß
Jens

Mario
Beiträge: 1151
Registriert: 6. Januar 2015, 13:02

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Mario »

Pack die Daten die du bekommst mal in nen String und nicht in nen array, dann siehst doch wie das ausschaun muss...

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

Moin

Man sollte das nicht übermüdet mitten in der Nacht machen, dann klappts auch.
Ich habe einfach das Array nicht korrekt gefüllt :oops:
Die Testdatei wird jetzt korrekt erstellt.

Gruß
Jens

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Alex »

Wenn Du wissen willst wie die "original" POSTs auszusehen haben, nimm einfach die Debugger der Browser zu Hilfe... am besten z.B. Chrome. (F12 öffnet den debugger)
Kannst Dir alle Requests bzw. die enthaltenen Daten ankucken die von der Webseite an den Controller geschickt werden.

Für die Cl Dosierung wäre das z.B.:
Bild

Sevensworld
Beiträge: 56
Registriert: 13. April 2016, 18:42

Re: Dosierung OFF/AUTO schalten ?

Beitrag von Sevensworld »

Danke noch mal für den Hinweis, aber die Doppelpunkte irritieren ein wenig.
In der Datei selbst stehen die Daten ja auch mit einem "=" drin.

Das hier ist meine Lösung um die Daten zu holen:

Code: Alles auswählen

$client = "IP";
$page = "/usr/phcntrl.ini";

$response = http_get($client.$page);
//echo $response;

$arr = array();
$inhalt = explode("\r\n", $response);
//echo $inhalt[0]."\n";
foreach( $inhalt as $zeile ) {
	$werte = explode("=", $zeile);
	$anzahl = count($werte);
	If ($anzahl > 1 ) {
    	$arr[trim($werte[0])]= trim($werte[1]);
	}
	}

print_r($arr);


function http_get($GET) 
{ 
    $ch = curl_init($GET); 
    curl_setopt($ch, CURLOPT_HTTPGET, 1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $login = curl_exec($ch); 
    curl_close($ch); 
    return $login; 
} 


Geht sicher noch kürzer, aber für mich reichts ;-)


Gruß
Jens