Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum

Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.

Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.

Steuerung für einen Bier-Gärschrank

Benutzeravatar

Themenersteller
mawi
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 151
Registriert: Fr 7. Jun 2002, 10:01
Kontaktdaten:

#1 Steuerung für einen Bier-Gärschrank

Beitragvon mawi » Di 31. Jan 2017, 11:06

Hallo Leute,
nach längerer Auszeit habe ich mal wieder ein Projekt wo ich eure Unterstützung gebrauchen kann. Neben meinen vielen Hobbys bin nun auch seit einem Jahr Bierbrauer und gerade dabei meine Anlage zu optimieren.

B) Situation:
Vorhanden IPS, LCN, KNX und 1-Wire (Messfühler im Sud).
Ich plane einen sogenannten Gärschrank, den ich aus einem Kühlschrank bauen möchte. Dieser Gärschrank soll eine vorgegebene Temperatur für ca. 2 Wochen halten. Untergäriges Bier braucht 8-10°C und obergäriges 18-24°C. Zum kühlen habe ich den Kühlschrank (ja ne ist klar) und zum heizen ein im Kühlschrank liegendes Heizband. Als Optimum/Nicetohave noch einen Lüfter für die Umwälzung.

:confused: Offende Punkte:
- Wie kann man im LCN so etwas angehen?
- Kann ich einen Sensorwert vom 1-Wire über IPS auch ein LCN-Modul schreiben?
- Kann der LCN-Regler zwischen kühlen und heizen "umschalte"n?
- Kann der Sollwert aus IPS im Modul verschoben werden?

Schon einmal Danke für die ersten Reaktionen und ...
:w00t: sollte man das mit dem LCN realisieren können stelle ich beim nächsten LCN-Stammtisch eine Kiste selbst gebrautes Craftbeer.

Benutzeravatar

Uwe
...
Beiträge: 14246
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal
Kontaktdaten:

#2 Re: Steuerung für einen Bier-Gärschrank

Beitragvon Uwe » Di 31. Jan 2017, 11:29

Moin Marcus,
mit dem Bier kannst du mich nicht locken - aber wir könnten das Projekt ja auch auf "kalter Kaffee" umstellen :lol:

Mit den neuen Modulen mit 12 Variablen geht schon eine Menge, aber einen beliebigen Wert in eine Variable schreiben ist immer noch ... (geht schon, aber...).
1wire könntest du allerdings (bislang nur über unsere busIX-Module) auch direkt am LCN-Modul anschliessen. Da kann Lutz dir bestimmt helfen, der ist ja nicht weit weg.
Den Regler von heizen auf kühlen umstellen geht auch nicht, aber du kannst dafür beide Regler nutzen und einfach immer einen sperren.
Die Sollwertverschiebung ist bei neuen Modulen deutlich besser geworden, das geht aber auch schon mit älteren. Mit ein paar Hilfsvariablen in IPS kannst du den sogar über einen Stromausfall 'retten'.

Grüße, Uwe
----------------o00o----'(_)'----o00o---------------------

Benutzeravatar

Themenersteller
mawi
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 151
Registriert: Fr 7. Jun 2002, 10:01
Kontaktdaten:

#3 Re: Steuerung für einen Bier-Gärschrank

Beitragvon mawi » Di 31. Jan 2017, 12:52

Vielleicht aber mit meinem letzten Bier ... das war ein Porter mit Kaffeegeschmack http://www.maischemalzundmehr.de/index.php?id=529&inhaltmitte=recipe&suche_begriff=porter

Aber zum Thema, das hört sich ja nicht so toll an :thumbdown: ... der Temperatursensor soll definitiv im 1-wire Netzwwerk bleiben. Was meinst du denn genau mit "geht schon aber"? Meine Alternative, die Reglung in IPS abzubilden wollte ich erst einmal vermeiden.

Benutzeravatar

Uwe
...
Beiträge: 14246
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal
Kontaktdaten:

#4 Re: Steuerung für einen Bier-Gärschrank

Beitragvon Uwe » Di 31. Jan 2017, 13:10

Lieber nicht ...
Alkohol: 5.9 %

Das haut mich um (hatte ich über 20 Jahre nicht mehr) :lol:

Du kannst nur eine Zählervariable setzen - erst 0-stellen, dann Wert setzen (also immer nur mit 2 Kommandos). Das ist schon doof ...

Aber unsere IX sind ja aus der "Bastelstube" mittlerweile raus und werden auch ganz offiziell verkauft. Daran ist 1wire schon geil ;)
Nur mit verfügbaren Stückzahlen (wäre bei dir ja nur 1) haben wir noch etwas Probleme ...

Anders bekommst du 1wire auch nur über IPS ins LCN-Modul - dann kannst du IPS auch gleich regeln lassen (wenn es denn mal ausfallen sollte, ist der Wert ja auch weg).

Grüße, Uwe
----------------o00o----'(_)'----o00o---------------------

Benutzeravatar

Themenersteller
mawi
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 151
Registriert: Fr 7. Jun 2002, 10:01
Kontaktdaten:

#5 Re: Steuerung für einen Bier-Gärschrank

Beitragvon mawi » Di 31. Jan 2017, 13:22

Uwe hat geschrieben:Anders bekommst du 1wire auch nur über IPS ins LCN-Modul - dann kannst du IPS auch gleich regeln lassen (wenn es denn mal ausfallen sollte, ist der Wert ja auch weg).

Soweit klar aber meine PHP Kenntnisse begrenzen sich leider noch auf Drag&Drop, deswegen meine scheu. :blush:
Ich denke dann versuche ich es parallel mit KNX.

Benutzeravatar

Beleuchtfix
Administrator
Administrator
Beiträge: 5281
Registriert: Mi 10. Jan 2007, 18:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

#6 Re: Steuerung für einen Bier-Gärschrank

Beitragvon Beleuchtfix » Mi 1. Feb 2017, 12:21

Drag and Drop ist doch schon was.
Such mal im IPS Forum nach Heizungssteuerung, da gibt es bestimmt schon fertige Module, die du ziehen und fallen lassen kannst.

Viel Erfolg
Florian

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#7 Re: Steuerung für einen Bier-Gärschrank

Beitragvon Thomas » Mi 1. Feb 2017, 13:16

mawi hat geschrieben: ... der Temperatursensor soll definitiv im 1-wire Netzwwerk bleiben. Was meinst du denn genau mit "geht schon aber"? Meine Alternative, die Reglung in IPS abzubilden wollte ich erst einmal vermeiden.

Wenn du die 1wire Sensoren direkt an den GPIO vom Pi hängst, auf dem auch ein IPS läuft, ist das ein klacks die Werte in ein LCN Modul zu schreiben. Und dort könntest du weitermachen...
Ich habe es aber etwas anders gemacht, bei meiner Heizungssteuerung, die aber etwas komplexer ist. Alles in PHP im IPS... (Vorteil ist halt die komplette Steuerung im Webfront, die sich so einfacher machen läßt, und am Pi hängt dann gleich noch ne 10EUR Relaiskarte mit 8 X 230V Anschlüssen, die die einzelnen Verbraucher schalten.)
Aber das muss nicht sein.

Skripte für 1wire und LCN Werte übertragen kannst du von mir haben, ich muss nur Wissen, was für LCN Module du hast. (Mit 3 Var's, oder 12Var's.
Im Kühlschrank würde ich dir die DS18x20 mit Tauchhülse empfehlen.
lg Thomas

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5727
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 19 Mal
Danksagung erhalten: 13 Mal

#8 Re: Steuerung für einen Bier-Gärschrank

Beitragvon Thomas » Mi 1. Feb 2017, 13:30

Zu 1wire auf dem Pi.
Dieses Skript liest den 1wire Bus auf dem Pi aus,wenn in der /boot/config.txt der Bus aktiviert ist.
config.txt um die Zeile erweitern, und 1wire an den GPIO Pin anschliessen :

Code: Alles auswählen

dtoverlay=w1-gpio,gpiopin=4,pullup=on


Beispiel, alle Sensoren auslesen und alle VAR im IPS anlegen (geht automatisch..)
<?
$id = IPS_GetParent($_IPS['SELF']);
$id2= IPS_GetParent($id);
$id3= IPS_GetObjectIDByName("GPIO Temperatur", $id2);
//------------------------------------------------------------------------------
if($_IPS['SENDER'] == "Execute") // nur wenn bei "Ausführen"
{
CreateVariableByName($id3, "onewireId", 3);
CreateVariableByName($id3, "onewirezaehler", 1);
$onewireID = IPS_GetObjectIDByName("onewireId", $id3);
SetValue($onewireID, "");
$vid = CreateVariableByName($_IPS['SELF'], "Running", 0);
$eid = CreateEventIDByName($_IPS['SELF'], "StartStop", 0);
IPS_SetEventActive($eid, true);
IPS_SetEventTrigger($eid, 0, $vid);
IPS_SetEventScript($eid, $_IPS['SELF']);
$zaehler = intval(exec('cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count'));
$onewirezaehlerID = IPS_GetObjectIDByName("onewirezaehler", $id3);
SetValue($onewirezaehlerID, $zaehler);

$datei = file("/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves");
$i=1;
foreach($datei AS $dallas_id)
{
$ds_id[$i]= $dallas_id;
$wire = GetValue($onewireID);
$wire = "".$wire." ".$ds_id[$i];
SetValue($onewireID, $wire);
$i++;
}
}
//------------------------------------------------------------------------------
// if($_IPS['SENDER'] == "TimerEvent") //
$onewireID = IPS_GetObjectIDByName("onewireId", $id3);
$onewirezaehlerID = IPS_GetObjectIDByName("onewirezaehler", $id3);
$zaehler = GetValue($onewirezaehlerID);
//$zaehler = intval(exec('cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count'));

$wire = GetValue($onewireID);
$ds_id = explode(" ", $wire);
for ($i = 1; ; $i++)
{
if ($i > $zaehler) {
break;
}
$ds_id[$i]= trim($ds_id[$i]);
$temp = exec('cat /sys/bus/w1/devices/'.$ds_id[$i].'/w1_slave |grep t=');
$crc = exec('cat /sys/bus/w1/devices/'.$ds_id[$i].'/w1_slave | grep crc | sed "s/^.*\(...\)$/\1/"');
$temp = explode('t=',$temp);
//The power-on reset value of the temperature register is +85°C
if($crc =="YES" and $temp[1] !== "-62" and $temp[1] !== "85000") //Fehler raus, -1.2 °C ,85°C und CRC
{
$temp = $temp[1] / 1000;
$temp = round($temp,2);
$id = CreateVariableByName($id3, $ds_id[$i], 2);
SetValue($id, $temp);
}
}
//------------------------------------------------------------------------------
if($_IPS['SENDER'] == "Variable")
{
if($_IPS['VALUE'])
{
IPS_SetScriptTimer($_IPS['SELF'], 10); // Sekunden-Takt
} else {
IPS_SetScriptTimer($_IPS['SELF'], 0);
}
}
//------------------------------------------------------------------------------
//##############################################################################
function CreateVariableByName($id, $name, $type)
{
$vid = @IPS_GetVariableIDByName($name, $id);
if($vid===false) {
$vid = IPS_CreateVariable($type);
IPS_SetParent($vid, $id);
IPS_SetName($vid, $name);
}
return $vid;
}
//##############################################################################
function CreateEventIDByName($id, $name, $type)
{
$eid = @IPS_GetEventIDByName($name, $id);
if($eid===false) {
$eid = IPS_CreateEvent($type);
IPS_SetParent($eid, $id);
IPS_SetName($eid, $name);
}
return $eid;
}
?>

Dann hast du alle 1wire Sensoren im IPS, und kannst hinter jedem Sensor ein Ereignis legen (bei Werteänderung) welches ein Skript mit passenden senden zum LCN auslöst. (werde ich hier nicht posten, kommt dann per anders zu dir, wenn du es brauchst.)
Dafür brauchst du dann aber eine LCN-PCHK zur Kopplung am LCN !
ps hier noch der link zu den Bildern...
https://www.symcon.de/forum/threads/295 ... post273872
lg Thomas

Benutzeravatar

Themenersteller
mawi
Fingerwundschreiber
Fingerwundschreiber
Beiträge: 151
Registriert: Fr 7. Jun 2002, 10:01
Kontaktdaten:

#9 Re: Steuerung für einen Bier-Gärschrank

Beitragvon mawi » Mi 1. Feb 2017, 14:28

Meine Module sind ältere Geräte mit 3 Vars,
IPS läuft bei mir auf einem Windows-Server und
1-wire habe ich nicht auf dem pi, als Controller ist folgender https://www.eservice-online.de/shop/1-wire-smart-home/1-wire-controller-1-wire-gateway-intelligente-schnittstellen/254/1-wire-controller-1-intelligente-systemschnittstelle?c=133 im Einsatz


hocky
Dr. Forum
Dr. Forum
Beiträge: 696
Registriert: So 14. Okt 2012, 23:24
Hat sich bedankt: 2 Mal
Danksagung erhalten: 3 Mal

#10 Re: Steuerung für einen Bier-Gärschrank

Beitragvon hocky » Mi 1. Feb 2017, 14:29

Beleuchtfix hat geschrieben:Drag and Drop ist doch schon was.
Such mal im IPS Forum nach Heizungssteuerung, da gibt es bestimmt schon fertige Module, die du ziehen und fallen lassen kannst.


Jo, also sowas wäre für mich auch ein klarer Fall für IPS.
Da gibt es z.B. das fertige "HeatingControl" Modul. Dem sagst Du wo Deine Ist-Temperatur herkommt (1Wire) und Deine Relais.
Davon legst Du zwei an, einer für untergärig, einer für obergärig und musst dann halt nur schauen dass jeweils nur einer aktiv ist.
--
Grüße, Hocky


Zurück zu „Programmierfragen“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste