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.

Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.

Hier finden sich auch die aktuellen Termine für den IPS-Stammtisch
Benutzeravatar

Themenersteller
Thomas
Alleswisser
Alleswisser
Beiträge: 5637
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 16 Mal
Danksagung erhalten: 10 Mal
Kontaktdaten:

#1 Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.

Beitragvon Thomas » Mo 1. Mai 2017, 20:38

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
lg Thomas


Lutz
Lord Forum
Lord Forum
Beiträge: 1664
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.

Beitragvon Lutz » Di 2. Mai 2017, 21:53

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 :mad:

In IPS die Schnittstelle festlegen

Bild

Dann einen Cutter installieren. Wichtig hier die 57 und die 03, die das Start und Endbyte darstellen

Bild

Als nächstes muß man eine RegisterVariable anlegen, wo dann noch ein Skript hinterlegt ist.

Bild

Nach dem speichern und ausführen des Skriptes erscheinen die Variablen im Objektbaum

Bild

Die Elsner sendet ihr Werte jede Sekunde. Kann man auch er Platine sehen. Dort sollte die rot LED aufblinken

LG Lutz
Dateianhänge
Elsner4.PNG
Elsner2.PNG
Elsner3.PNG
wichtig hier die 57 und die 03, die das Start und Endbyte darstellen
Elsner1.PNG
Let there be sound, and there was sound
Let there be light, and there was light

Benutzeravatar

Themenersteller
Thomas
Alleswisser
Alleswisser
Beiträge: 5637
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 16 Mal
Danksagung erhalten: 10 Mal
Kontaktdaten:

#3 Re: Elsener Wetterstation am Raspberry, auf dem auch IPS läuft.

Beitragvon Thomas » Mi 3. Mai 2017, 21:35

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 :lol:
lg Thomas


Lutz
Lord Forum
Lord Forum
Beiträge: 1664
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.

Beitragvon Lutz » Mi 3. Mai 2017, 22:04

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


Zurück zu „IP-Symcon“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast