Hallo,
Lutz hat da ein RS485 Modul am Pi hängen, und da mal die Elsner Wetterstation dran gehängt.
Wir haben dann da gerade mal ein Skript auf Lutz seinem Rechner gebastelt, welches die Daten in IPS Var's bringt. Sieht gut aus.
@Lutz, bitte stelle das mal auch hier vor.
lg Thomas
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.
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.
Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.
-
- Lord Forum
- Beiträge: 1671
- Registriert: Di 15. Jul 2008, 21:06
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
#2 Re: Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.
Dann versuche ich das mal.
Bei den PI muß man erst die Serielle Schnittstelle anstellen/einbinden.
Als Hardware habe ich die Erweiterungsplatine RS485 für den PI genommen, gibt es beim großen C.
Dann muß man in der Raspi-Config die Serielle Schnittstelle freigeben und zusätzlich noch in der cmdline.txt etwas laut Internet entfernen.
Aufpassen, welchen Raspi man hat. Der 3er hat noch Bluetooth auf dem Port
In IPS die Schnittstelle festlegen
Dann einen Cutter installieren. Wichtig hier die 57 und die 03, die das Start und Endbyte darstellen
Als nächstes muß man eine RegisterVariable anlegen, wo dann noch ein Skript hinterlegt ist.
Nach dem speichern und ausführen des Skriptes erscheinen die Variablen im Objektbaum
Die Elsner sendet ihr Werte jede Sekunde. Kann man auch er Platine sehen. Dort sollte die rot LED aufblinken
LG Lutz
Bei den PI muß man erst die Serielle Schnittstelle anstellen/einbinden.
Als Hardware habe ich die Erweiterungsplatine RS485 für den PI genommen, gibt es beim großen C.
Dann muß man in der Raspi-Config die Serielle Schnittstelle freigeben und zusätzlich noch in der cmdline.txt etwas laut Internet entfernen.
Aufpassen, welchen Raspi man hat. Der 3er hat noch Bluetooth auf dem Port
In IPS die Schnittstelle festlegen
Dann einen Cutter installieren. Wichtig hier die 57 und die 03, die das Start und Endbyte darstellen
Als nächstes muß man eine RegisterVariable anlegen, wo dann noch ein Skript hinterlegt ist.
Nach dem speichern und ausführen des Skriptes erscheinen die Variablen im Objektbaum
Die Elsner sendet ihr Werte jede Sekunde. Kann man auch er Platine sehen. Dort sollte die rot LED aufblinken
LG Lutz
Let there be sound, and there was sound
Let there be light, and there was light
Let there be light, and there was light
-
Themenersteller - Alleswisser
- Beiträge: 5730
- Registriert: Mo 21. Apr 2008, 20:03
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 13 Mal
#3 Re: Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.
Hi Lutz,
und hänge hier bitte noch das PHP Skript rein, welches wir auf deinem Rechner erarbeit haben, dann könnten es alle nutzen
und hänge hier bitte noch das PHP Skript rein, welches wir auf deinem Rechner erarbeit haben, dann könnten es alle nutzen
lg Thomas
-
- Lord Forum
- Beiträge: 1671
- Registriert: Di 15. Jul 2008, 21:06
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
#4 Re: Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.
Jepp
Code: Alles auswählen
// $inbuf ="+22.2112233N88811.1J??????????????1992";
$ModulID = IPS_GetParent($_IPS['SELF']);
if ($_IPS['SENDER'] == "RegisterVariable")
{
$inbuf = RegVar_GetBuffer($_IPS['INSTANCE']);
$inbuf .= $_IPS['VALUE'];
// var_dump ($inbuf);
setvalue(11111, $inbuf);
$temp = substr($inbuf,0,5);
// var_dump($temp);
$id = CreateVariableByName($ModulID, 'Temperatur', 2);
setvalue($id, $temp);
$tageslicht = substr($inbuf,12,3);
$id = CreateVariableByName($ModulID, 'Tageslicht', 1);
setvalue($id , $tageslicht);
$ksüd = substr($inbuf,5,2);
$id = CreateVariableByName($ModulID, 'kLux Süd', 1);
setvalue($id , $ksüd);
$ksüd = substr($inbuf,7,2);
$id = CreateVariableByName($ModulID, 'lKux West', 1);
setvalue($id , $ksüd);
$ksüd = substr($inbuf,9,2);
$id = CreateVariableByName($ModulID, 'kLux Ost', 1);
setvalue($id, $ksüd);
$wind = floatval(substr($inbuf,15,4));
$id = CreateVariableByName($ModulID, 'Wind', 2);
setvalue($id, $wind);
$regen = substr($inbuf,11,1);
// var_dump($regen);
$id = CreateVariableByName($ModulID, 'Dämmerung', 0);
switch($regen){
case "J":
setvalueboolean($id, 1);
break;
case "N":
setvalueboolean($id , 0);
break;
}
$regen = substr($inbuf,19,1);
// var_dump($regen);
$id = CreateVariableByName($ModulID, 'Regen', 0);
switch($regen){
case "J":
setvalueboolean($id, 1);
break;
case "N":
setvalueboolean($id , 0);
break;
}
}
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;
}
?>
Let there be sound, and there was sound
Let there be light, and there was light
Let there be light, and there was light
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast