Ultraschall-Füllstandsmesser USF 1000

Betrieb der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Micha
Beiträge: 486
Registriert: 28.01.2008, 13:44

Ultraschall-Füllstandsmesser USF 1000

Beitrag von Micha » 29.02.2008, 14:30

Hallo,
Gibt es eine Möglichkeit den"Ultraschall-Füllstandsmesser USF 1000" in das HomePuter System einzubinden?.
Wenn ja - wie. Oder ist eine andere Möglichkeit bekannt einen Füllstandsanzeige zu integrieren.
Michael

tsa
Beiträge: 725
Registriert: 03.01.2008, 17:42
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von tsa » 14.03.2008, 14:13

Da gibt es momentan keine Möglichkeit...
Es wäre sicherlich sehr interessant, wenn zukünftig die PC-FHZ's die Funkmeldungen des USF verstehen könnten, dazu ist aber sicherlich eine Änderung in der Firmware der FHZ's nötig. LEIDER!

Ich habe an meiner Zisterne eine Füllstandsüberwachung über Drucksensor Marke Eigenbau (von einem Kollegen), da will ich wegen automatischer Garten-Bewässerung dieses Jahr noch eine Anbindung an den PC machen. Dazu muß ich die 7-Segment Ansteuerung (die gleichzeitig auf einen D-SUB nach aussen geführt wird) mittels µController abgreifen und seriell weiter zum PC schicken. Mal sehen wie das gehen kann...
Eine bessere Idee hab ich momentan nicht.

Gruss
Thomas

Benutzeravatar
Sanys
Beiträge: 270
Registriert: 31.01.2007, 12:29
Wohnort: Wetterau

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Sanys » 14.03.2008, 16:20

Hallo Michael,

ich habe bei mir folgende Lösung für die Zisterne verbaut:

1. ProJet LevelJet, ein Ultraschall-Messkopf, der in die Zisterne gehängt wird, per Kabel an ein Anzeigegerät angeschlossen.
Es sind beliebige Tankformen programmierbar. Das Anzeigeteil hat einen seriellen Ausgang. Mit Hilfe eines Pegelwandlers (Anleitung zum runterladen) wird das eine serielle Schnittstelle, die PC-Kompatibel ist.
2. ein kleiner serieller Server, d.h. an diesen Server ist die Anzeigeeinheit mittels serieller Schnittstelle angeschlossen, die Daten werden dann per LAN weitergegeben. In meinem SteuerungsPC läuft eine virtuelle Schnittstelle, die die Daten aus dem LAN dem PC so zuführt, daß dieser denkt, es kommt von einem seriellen (Hardware-)Anschluß. Auf dem PC läuft die Datenlogger-Software vom LevelJet.
3. die Software schreibt minütlich den Zisternenstand in ein Textfile.
4. Das Textfile lese ich minütlich mit ein paar Zeilen PHP aus und bringe den Wert zur Anzeige.
5. mit den Daten kann man dann beliebig rechnen: Zulauf, Ablauf, Datenbank füllen etc........


Das hier ist der Füllstandsmesser:
http://www.u-tronic.de/leveljet-e.html,

und hier der serielle Server:
http://www1.cheops-elektronik.de/page/i ... e7489a3439


Vom Füllstandsmesser gibt es wohl auch eine Version, die die Daten per Funk weitergibt, dazu dann einen Empfänger, der direkt am PC angeschlossen ist. Das ist bestimmt auch eine Lösungsmöglichkeit, allerdings sollte man bedenken, das dort auch im 868Mhz-Bereich übertragen wird. Das kann zu Störungen des FS20-Systems führen (ist z.B. bei meinem Hörmann Garagentor-Sender so).


So, vielleicht sind da ja ein paar Anregungen.


Viel Spaß



sanys
FHZ 1350PC Prof. mit HomeputerStudio 100224 + Direktsendebefehle à la tsa (v 8.0)
WIN XP Pro SP3 (neuester Stand) + buempi's Minibrowser + etliche fs20+HMS+FHT Komponenten + nie genug Zeit, das alles fertig zu bekommen ;-)

Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Funkmaus » 14.03.2008, 17:14

Hallo Sanys,

ich nutze das gleiche System. Klappt super.
Leider bin ich kein php Experte. Kannst du den Quellcode für dein Beispiel ins Forum stellen???

Das wäre KLASSE!! :lol:

Gruß

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

Benutzeravatar
Sanys
Beiträge: 270
Registriert: 31.01.2007, 12:29
Wohnort: Wetterau

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Sanys » 18.03.2008, 13:13

Hallo Funkmaus,

hat ein wenig gedauert, aber hier mein Quellcode:
Voraussetzung ist natürlich das php in Studio integriert ist.
Außerdem ist das mein 2tes php-script, das ich für Studio erstellt habe. Deshalb gleich der Hinweis, das es bestimmt keinem Schönheitsprogrammierwettbewerb standhält. ABER: es funktioniert, seit über einen Jahr, problemlos.

Das Makro wird von einem anderen Makro aufgerufen, kannst Du Dir aber auch auf minütlich stellen.
Das Makro heisst bei mir "PHPGetZisterne"

Code: Alles auswählen

GetTime:=Uhr - "00:15:00"
LvlLast:=LvlLiter
<?
$ZistVol = 3180;
$Komma = ',';
$filename = 'c:\\ELVData\\LogCenter.txt';
 if (File_exists($filename)) {
$datei = file("c:\\ELVData\\LogCenter.txt");
// $datei ist jetzt ein Array
$letzte_zeile = array_pop($datei);
$Zerlegung = explode(',', $letzte_zeile);


$V_PHPGetZisterne_LvlDate = trim($Zerlegung[0]);
$V_PHPGetZisterne_LvlZeit = trim($Zerlegung[1]);
$V_PHPGetZisterne_LvlLevel = trim($Zerlegung[2]);
if ($V_PHPGetZisterne_LvlLevel !== 0){
$V_PHPGetZisterne_LvlLiter = round($V_PHPGetZisterne_LvlLevel / 100 * $ZistVol);
}
$V_PHPGetZisterne_NoData = "Daten o.k!!";
} else {
$V_PHPGetZisterne_NoData = "Daten nicht vorhanden !!";

}
?>


wenn NoData = "Daten nicht vorhanden !!" dann
  PHPGetZistQuality:="DataNo"
  ** Balkenfarbe(PHPGetZisterne,"rot")
  Aktivieren(BlinkenZisterne)
  sonst
  Deaktivieren(BlinkenZisterne)
    wenn LvlLevel > 50 dann
      Balkenfarbe(PHPGetZisterne,"blau")
    endewenn
    wenn LvlLevel > 10 und PHPGetZisterne <= 50 dann
      Balkenfarbe(PHPGetZisterne,"hellblau")
    endewenn
    wenn LvlLevel > 5 und PHPGetZisterne <= 10 dann
      Balkenfarbe(PHPGetZisterne,"pink")
    endewenn
    wenn LvlLevel <= 5 dann
      Balkenfarbe(PHPGetZisterne,"rot")
    endewenn
endewenn


** Qualitätscheck der Daten, ob die Abfragezeit im Rahmenliegt
Wenn Uhrzeit zwischen "00:20:00" und "23:59:00" dann
  wenn LvlZeit zwischen GetTime und Uhr dann
    PHPGetZistQuality:="DataOK"

  sonst
    PHPGetZistQuality:="DataFalse"
  endewenn
endewenn


** das Makro selbst enthält den Level in %
PHPGetZisterne:=LvlLevel
** zur Anzeige der Liter
ZistFuellstand:=LvlLiter

folgende Variablen mußt Du anlegen:
GetTime (Zeit)
LvlLast (Zahl)
LvlDate (Datum)
LvlZeit (Uhr)
LvlLiter (Zahl)
LvlLevel (Zahl)


Ich habe meine gesamten Studiodaten im Verzeichnis c:\ELVData\. hier liegt auch die Leveljetsoftware, die in dieses Verzeichnis das auszuwertende Textfile Logcenter.txt schreibt. Du mußt die Pfade entsprechend anpassen.
Wie funtioniert es?
Zuerst wird das Textfile gelesen und die letzte Zeile "entnommen". Klappt das nicht (bei File nicht vorhanden) wird PHPGetZistQuality (s.u.) auf NoData gesetzt.
Die letzte Zeile wird zerlegt in Datum, Uhrzeit, und Level (0...100%)
Dann wird in Liter umgerechnet (Dreisatz), meine Zisterne hat 3180 Liter bei 100%. Auch hier mußt Du anpassen.
Das war der php-Teil.
Im Studio-script-Teil wird dann bei "DataNo" die Balkenanzeige der Zisterne auf blinken geschaltet, und zwar blinkt die Anzeige rot/silber im Wechsel.
sind die Daten o.k. wird je nach Füllstand die Farbe angepasst (auch hier kannst Du nach belieben ändern..)
Dann wird noch überprüft, ob die Uhrzeit der Abfrage im Rahmen ist, ansonsten der Quality-check auf false gesetzt.
Warum das ganze: es nützt ja nichts, eine schöne Anzeige zu haben, aber der Leveljet spinnt und liefert keine Daten. Das Textfile ist aber immer noch vorhanden und lesbar!!
Damit sind eventuelle Fehler sichtbar gemacht.



Dann gibt es noch ein Objekt "PHPGetZistQuality". Dieses ist selbst definiert und hat folgende Zustände:
DataNo (rot)
DataFalse (orange)
DataOK (grün)
Eine Anzeige dazu habe ich z.B. mit kleinen farbigen kreisen gebastelt, wie ein Kontrolllämpchen.

Weiterhin das Objekt "BlinkenZisterne"

das sieht so aus:
in der Definition muß "deaktivieren beim Start" angeklickt sein

Code: Alles auswählen

wenn BlinkenZisterne eingeschaltet dann
 Balkenfarbe(PHPGetZisterne,"SILBER")
 sonst Balkenfarbe(PHPGetZisterne,"ROT")
endewenn
BlinkenZisterne umschalten

So, ich denke das reicht für ein Wochenende.... ;-)

Viel Spaß damit!

sanys
FHZ 1350PC Prof. mit HomeputerStudio 100224 + Direktsendebefehle à la tsa (v 8.0)
WIN XP Pro SP3 (neuester Stand) + buempi's Minibrowser + etliche fs20+HMS+FHT Komponenten + nie genug Zeit, das alles fertig zu bekommen ;-)

Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Funkmaus » 21.03.2008, 14:05

Hallo Sanys,
also ein Tag und eine Nacht sitze ich jetzt schon an dem Makro.... :cry: ...leider vergeblich.

Bei mir gibt es beim Starten der Visualisierung eine Fehlermeldung: "Error executing PHP Script in PHPGetZisterne"
Meine Fragen:
1. Ich glaube, dass die Datei nicht richtig zerlegt wird. Wenn ich die Variablen probeweise mit Werten manuell versehe (Startwerte) läuft es schon, aber die Werte aus der Datei werden nicht zerlegt. Ich denke du hast auch die Standard LogCenter Datei bestehend aus Datum, Zeit, Prozent, LevelLog, oder? Beispiel: 21.03.2008 , 07:00:00 , 100.0 , LevelLog.
2. Wofür ist die Zeile:
if ($V_PHPGetZisterne_LvlLevel !== 0){
3. Du schreibst: "Voraussetzung ist natürlich das php in Studio integriert ist." Ich habe die Software Homeputer standardmäßig installiert. Sind weitere Schritte nötig?

Wäre schön, wenn du nochmals Hilfestellung bieten würdest
Gruß

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

Benutzeravatar
Sanys
Beiträge: 270
Registriert: 31.01.2007, 12:29
Wohnort: Wetterau

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Sanys » 21.03.2008, 15:41

Hallo Funkmaus,
3. Du schreibst: "Voraussetzung ist natürlich das php in Studio integriert ist." Ich habe die Software Homeputer standardmäßig installiert. Sind weitere Schritte nötig?
heißt das, Du hast nur Homeputer Studio installiert oder auch die php-Files, wie in der Hilfe angegeben?
Und um ganz sicher zu gehen: Du benutzt doch die Studio-Version, also nicht die Standard-Software, die bei der FHZ dabei ist, oder?

Zum ersten Teil der Frage, ob php installiert ist mußt Du nur entsprechend der Hilfe die 2 relevanten Dateien ins Homputerverzeichnis kopieren.
Zum 2ten Teil: Wenn Du NICHT sie Studio-Soft hast glaube ich nicht das es geht. Ich meine mit der Standardsoftware ist php nicht möglich (vielleicht liege ich hier falsch).


Dann habe ich das hier aus einem anderen Thread zur Fehlersuche bei php-scripts kopiert:
Gibt es eine Fehlermeldung?
Am einfachsten, du schreibst folgendes ans Ende des Makros:

Code: Alles auswählen
SCHREIBEDATEI("Resultat.txt","%<Uhr>;%<Makroname.scriptoutput>")



wobei Du Makroname mit dem Namen Deines Makros ersetzen mußt. Bei Bedarf kannst Du ja noch das Datum oder auch andere Dinge abspeichern.
Die Datei liegt dann im spg-Verzeichnis, Du kannst aber auch einen Pfad Deiner Wahl eintragen.

Dann läßt Du das ganze laufen und guckst, was in der Resultat.txt drinsteht. Meistens sind es Fehlermeldungen, die zum Ziel führen.

Das hilft bei der Fehlersuche, da in der Statuszeile von Homeputer meist nur der Anfang der Fehlermeldung zu sehen ist, und nicht der interessante Teil.

2. Wofür ist die Zeile:
if ($V_PHPGetZisterne_LvlLevel !== 0){
hier wird nur geprüft, ob Level einen Wert anders als 0 hat, bevor die % in Liter umgerechnet werden.


So, ich hoffe, ich konnte etwas helfen, falls es immer noch nicht klappen will dann bitte möglichst genaue Beschreibung, was nicht hinhaut (s.o. Resultat.txt etc)


Viel Erfolg

sanys
FHZ 1350PC Prof. mit HomeputerStudio 100224 + Direktsendebefehle à la tsa (v 8.0)
WIN XP Pro SP3 (neuester Stand) + buempi's Minibrowser + etliche fs20+HMS+FHT Komponenten + nie genug Zeit, das alles fertig zu bekommen ;-)

Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Funkmaus » 23.03.2008, 20:41

Hallo Sanys,

danke für deine Hilfe!!

Klappt wie geschmiert!! :D Hatte ein Problem mit der Dateierstellung. Jetzt gebe ich mich noch an die Feinabstimmung zur Anpassung an mein Projekt. 8)

Frohe Ostern noch.

Gruß

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

Benutzeravatar
Sanys
Beiträge: 270
Registriert: 31.01.2007, 12:29
Wohnort: Wetterau

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Sanys » 24.03.2008, 20:40

Hi Funkmaus,

das freut mich, daß es läuft. Dann hattest Du wohl php schon installiert, oder?


Viele Grüße


sanys
FHZ 1350PC Prof. mit HomeputerStudio 100224 + Direktsendebefehle à la tsa (v 8.0)
WIN XP Pro SP3 (neuester Stand) + buempi's Minibrowser + etliche fs20+HMS+FHT Komponenten + nie genug Zeit, das alles fertig zu bekommen ;-)

Funkmaus
Beiträge: 96
Registriert: 17.02.2008, 11:59

Re: Ultraschall-Füllstandsmesser USF 1000

Beitrag von Funkmaus » 24.03.2008, 21:14

Hallo,
ich war mir nicht sicher, ob es reicht die beiden Dateien zu kopieren, oder ob das komplette Paket installiert werden musste.
Aber die Sache läuft wirklich gut. Leveljet gibt zu jeder vollen Stunde eine csv Datei aus und das Script fluppt nach den Anpassungen an mein Projekt auch.

Ich habe die Pumpe der Zisterne noch mit einem Trockenlaufschutz ausgerüstet. Beim Auslösen des Trockenlaufschutzes wird ein HMS Sensor aktiviert, und die Pumpe schaltet ab. Ferner überwache ich die Saugleitung: Sollte die Wassersäule abreißen ( Zisterne im Garten, Pumpe im Heizungsraum, so wird ein weiterer HMS Sensor aktiviert. Dieser schaltet dann über einen umgebauten HMS FI Trenner die Pumpe ab (nur die Pumpe, nicht das ganze Stromnetz), damit diese keine Luft saugt. Derzeit erstelle ich gerade noch die entsprehende Fehlermeldung... Es bleibt also spannend!!!! :lol:

FHZ Forum und Sanys sei dank!!

Gruß

Funkmaus
*******************************************
HM/ HMIP/ Addons/ 242 Geräte
Never touch a running system!!

Antworten

Zurück zu „homeputer Studio / Standard: allgemeine Fragen“