tiberius64 Posted June 15, 2013 at 12:37 PM Posted June 15, 2013 at 12:37 PM Hallo beisammen, ich bin neu hier und habe unterschätzt, dass man Programmieren können muss, um das umzusetzen, was ich gerne hätte. Habe nach langer Suche im Netz nun den Masterbrick und den Barometerbricklet gekauft, da ich dies für die beste Lösung befand. Nun habe ich diese Bausteine zu Hause und sie funktionieren. Mein Wunsch wäre nun, den Luftdruck (z.B. alle 15 Min.) zu speichern, um diesen dann rollierend für z.B. 12 h graphisch anzuzeigen. Ich möchte also die Luftdruckveränderung der jeweils letzten 12 h sehen. Gibt es denn hier jemanden, der so was schon umgesetzt hat und mir dabei helfen kann - ach so ich arbeite mit Ubuntu 12.04 64bit. Vielen Dank im voraus tiberius Quote
thunderbird Posted June 15, 2013 at 01:18 PM Posted June 15, 2013 at 01:18 PM Moin Moin, wie möchtest du das denn umsetzen? Also soll es später eine Webseite sein auf der du sowas anzeigen möchtest oder soll es eine Anwendung sein und in welcher Sprache willst du das ganze schreiben?? Ich habe eine Wetterstation realisiert. http://www.sven-lindeboom.net/?page_id=166 Da ist auch der Luftdruck bei(Immer der aktuelle Tag). Quote
tiberius64 Posted June 15, 2013 at 01:36 PM Author Posted June 15, 2013 at 01:36 PM Hallo thunderbird, danke für Deine Antwort. Es soll auf dem Rechner angezeigt werden - eine Anzeige so wie auf Deinem link ist genau das was ich gerne hätte. Bezüglich der Sprache habe ich keine Ahnung, wie gesagt habe das Programmieren vollkommen unterschätzt. Ist das denn sehr schwierig, dein Programm bei mir zum Laufen zu bringen? Gruß tiberius Quote
thunderbird Posted June 15, 2013 at 01:56 PM Posted June 15, 2013 at 01:56 PM Also ich fürchte meine Lösung ist für nur ein Bricklet viel zu umständlich. Also ich würde dein Problem glaube ich so lösen: Du schreibst dir in irgend einer Sprache ein Programm das dir alle 15 min den Wert des Bricklets in eine Datei schreibt. Zusätzlich baust du dir eine Webseite auf der du die Daten darstellst. Das würde z.B. hiermit gehen http://bl.ocks.org/mbostock/3883245 Das ist recht ausführlich beschrieben. Für das Programm gibt es bei TF eine große anzahl an Sprechen mit Beispielen. So ein Beispiel könntest du fast 1 zu 1 übernehmen. Du musst nur deine UID eintragen und es so umschreiben das es die Werte in eine Datei schreibt. Zur Sprache gibt es hier im Forum schon irgendwo einen Eintrag welche die einfachste und beste ist. Aber ich glaube das sieht jeder ein bisschen anders ;-) Quote
Loetkolben Posted June 15, 2013 at 02:27 PM Posted June 15, 2013 at 02:27 PM Hallo tiberius64, wenn es nur darum geht einen Wert auszulesen, abzuspeichern und dann darzustellen koenntest du mal einen Blick auf diesen Beitrag werfen: "Wetterstation" - Grafische Temperaturanzeige in 10 Das ist "im Prinzip" alles dabei, aber leider noch fuer die Software-/firmwareversion 1.x. Entweder du flashst alle Bricks und Bricklets auf die Firmwareversion 1.x, wovon in aber abrate oder ich muss die Scripte mal an die Version 2.x anpassen. Aber lese erstmal in Ruhe. Viel Spass dabei. Der Loetkolben Quote
tiberius64 Posted June 15, 2013 at 02:47 PM Author Posted June 15, 2013 at 02:47 PM Hallo beisammen, @thunderbird, danke für Deine Antwort, jedoch das Schreiben eines Programms in irgendeiner Sprache ist schon das Problem. @Loetkolben, diese Version von Dir klingt vielversprechend. Wenn Du die Scripte an die aktuelle Version anpassen würdest, werde ich mich da drantrauen. Mein Dank ist Dir jetzt schon sicher. Bei mir hängt der Brick per USB am Rechner, an dem ich auch die grafische Ausgabe realisieren möchte - also kein Internet. Danke an alle tiberius Quote
Loetkolben Posted June 15, 2013 at 03:20 PM Posted June 15, 2013 at 03:20 PM Leider kann ich erst ab Montag mich darum kuemmern. Wenn du nichts von mir hoerst oder hier liest "wecke" mich dann wieder auf. Der Loetkolben Quote
Loetkolben Posted June 25, 2013 at 02:01 PM Posted June 25, 2013 at 02:01 PM So, nun habe ich die grafische Temperaturanzeige auf die Version 2 umgestellt. "Wetterstation" - Grafische Temperaturanzeige in 10 Minuten. Jetzt fuer Protokoll Version 2 @tiberius64: Ich hoffe du hast ein Temperatur Bricklet und kannst damit erstmal alles zum laufenbringen. Um dann den Luftdruck zu messen muesstest du entweder die Tinkerforge Bindings mit den Barometer Parametern aufrufen, mein Script anpassen oder ich muesste mein Script selber anpassen. So, dann schau mal zu. Viel Erfolg. Der Loetkolben Quote
tiberius64 Posted June 25, 2013 at 03:02 PM Author Posted June 25, 2013 at 03:02 PM Hallo Loetkolben, vielen Dank für Deine Arbeit und Unterstützung. Habe mal Dein Script runtergeladen und entpackt, nc -w1 in q1 geändert IP und UID eingetragen. Nun kommt das schwierigere: die Ausgabe heißt momentan: No Packet machted 20130625_16:53:20;1372172000; Ich gehe davon aus, dass ich nun das Script an das Batrometerbricklet (habe leider nur dieses) anpassen muss. Das mit den Bindings verstehe ich halt nicht -es geht schon mit den Sprachen los. In deinem Script sehe ich nun bis zu oben genannter Ausgabe Temp1 und Temp2 Einträge - wie heißen denn die richtigen für das Barometer bzw. wo finde ich diese - ich möchte ja selber groß sein? danke für die Hilfe tiberius64 Quote
Loetkolben Posted June 25, 2013 at 03:15 PM Posted June 25, 2013 at 03:15 PM Hallo tiberius64, na das sieht ja schonmal gut aus. Wenigstens gibt es keine Kommunikationsfehlermeldung. Die Antwortpakete vom Barometerbricklet kann das Temperaturscript nicht auswerten und verwirft sie. Habe das Barometerscript angepasst und in meinen Thread gepackt. Der Loetkolben Quote
tiberius64 Posted June 25, 2013 at 03:26 PM Author Posted June 25, 2013 at 03:26 PM Leider die gleiche Ausgabe: /Arbeitsfläche/barometer/airpressure-get.sh No Packet machted 20130625_17:24:11;1372173851; woran kann das liegen? Danke tiberius Quote
Loetkolben Posted June 25, 2013 at 03:35 PM Posted June 25, 2013 at 03:35 PM Es gibt hunderte Antworten woran es liegen koennte. Per Brickviewer kommst du drauf?IP und UID im Script richtig? Gross/Kleinschreibung beachtet?Protokolliermal das Empfangspaket in eine Datei. Dazu diese Zeile im Script "aktivieren".echo -n -e "$RECEIVEPACKET" | xxd -r -p > RECEIVEPACKET.airpressure.`date "+%Y%m%d_%H%M%S"` Dann die Ausgabedatei hier posten. Ausgabe wird erstellt mit: "hexdump -C RECEIVEPACKET.airpressure.20130625_172926" Edit: Sind alle Tools installiert? Auf der shell pruefen ob die Linuxtools "nc, bc, od, xxd" installiert sind. "which nc bc od xxd" Hatte urspruenglich "xxd" vergessen aufzulisten. Der Loetkolben Quote
tiberius64 Posted June 25, 2013 at 03:48 PM Author Posted June 25, 2013 at 03:48 PM Per Brickviewer bekomme ich den Graph und die Ausgabe in mbar IP habe ich nun auf "localhost" umgestellt, UID überprüft. Die Ausgabe nun: Arbeitsfläche/barometer/airpressure-get.sh: Zeile 34: /home/tinker/RECEIVEPACKET.airpressure.20130625_174307: Datei oder Verzeichnis nicht gefunden Der Luftdruck betraegt: 1012.89 mbar. Parameter x gibt Logfileoutputformat. die echo Zeile wieder auskommentiert ergibt dann: Der Luftdruck betraegt: 1012.89 mbar. Parameter x gibt Logfileoutputformat. Ich glaube Du bringst mich auf den richtigen Pfad. werde nun nach Deiner Anleitung weiter gehen und mich wieder melden. danke tiberius Quote
Loetkolben Posted June 25, 2013 at 03:55 PM Posted June 25, 2013 at 03:55 PM Hallo tiberius64. Natuerlich kann er keine Datei nach "/home/tinker/..." schreiben. Das ist ein Beispielpfad. Da muss natuerlich dein Pfad rein, oder der Pfad ganz raus. Die Zeile kannst du aber jetzt wieder mit Kommentarzeichen versehen, da du Ergebnisse bekommst. Jetzt noch das "x" als Parameter angeben und die Sache per Cron einbinden. Bitte auf die Pfade achten. Der Loetkolben. Quote
tiberius64 Posted June 25, 2013 at 04:29 PM Author Posted June 25, 2013 at 04:29 PM nun, habe dies per cron eingebunden die Pfade korrigiert und statt temperatur airpressure angegeben - ich glaube ich bewege mich nun wieder auf dem Holzweg. Eine temperatur.html liegt im Verzeichnis, leider leer. Ich denke die drawhtml muss noch auf airpressure angepasst werden? Ersetze ich da einfach temperatur gegen airpressure? wieder schon mal danke tiberius bin mir nicht sicher wie ich das deuten soll, habe die drawhtml nochmal gestartet und diese Ausgabe bekommen: sabine@sabine:~$ /home/sabine/Arbeitsfläche/barometer/drawhtml.shtail: »/home/sabine/Arbeitsfläche/barometer/temperatur.collect“ kann nicht zum Lesen geöffnet werden: Datei oder Verzeichnis nicht gefunden cp: »temperatur.html“ und »/home/sabine/Arbeitsfläche/barometer//./temperatur.html“ sind die gleiche Datei Quote
Loetkolben Posted June 25, 2013 at 04:39 PM Posted June 25, 2013 at 04:39 PM Ersetze ich da einfach temperatur gegen airpressure? Nein, erstmal nicht. ob die Ausgabedatei temperatur.html, airpressure.html oder ganzanders.html heisst ist erstmal egal. Wenn alles stimmt kannst du auch die Namen aendern. Du must nur die 3 Pfade in "drawhtml.sh" anpassen, so wie ich es beschrieben habe. #Directory wo dieses Script liegt DIRECTORY=/home/tinker (Der Absolute Pfad wo diese "drawhtml.sh" liegt, beginnend mit "/". Nutze das Kommando "pwd") #Directory wo die temperatur.html Datei zum Schluss hinkopiert werden soll. WWWDIRECTORY=/var/www #Directory wo die Datenquelle ist DATAINPUT=/home/tinker/temperatur.collect (Hier der Absolute Pfad mit Dateinamen von der Datei in der die Daten gesammelt werden. Dies ist genau der Pfad und die Datei die du im Cron Job hinter ">>" angegeben hast) Werden denn schon Daten gesammelt? Wie sieht die *.collect Datei aus? Der Loetkolben Quote
tiberius64 Posted June 25, 2013 at 05:14 PM Author Posted June 25, 2013 at 05:14 PM da war ich wohl mit dem umbenennen zu schnell temperatur collect sammelt: 20130625_18:46:03;1372178763;1013.59 20130625_18:47:02;1372178822;1013.60 20130625_18:48:02;1372178882;1013.60 20130625_18:49:02;1372178942;1013.60 20130625_18:50:02;1372179002;1013.61 20130625_18:51:02;1372179062;1013.60 20130625_18:52:02;1372179122;1013.63 20130625_18:53:03;1372179183;1013.65 20130625_18:54:02;1372179242;1013.66 20130625_18:55:02;1372179302;1013.67 20130625_18:56:02;1372179362;1013.67 Der Graph wird auch gezeichnet, aber nicht automatisch aktualisiert, nur mit F5 - gibt es da noch einen Trick? Habe dazu laut Deiner Anleitung noch in "airpressure-get.sh" den absoluten Pfad zu meiner "drawhtml.sh" angegeben. Suuper - so weit, vielen dank tiberius Quote
Loetkolben Posted June 25, 2013 at 05:35 PM Posted June 25, 2013 at 05:35 PM Hallo tiberius64, na dann Glueckwusch erstmal. Das mit dem Refresh ist nun aber HTML. Vielleicht so: Reload All By Itself. Dann sollte der Browser die Seite nach 60 Sekunden neu laden. Ich bin mir nicht sicher ob das geht, da ich das noch nie probiert habe. Das Ergebnis kann man gut nachvollziehen, da in der Seite normalerweise die Uhrzeit (Erstellzeit der Seite) mit angezeigt wird. In der Datei "file.temperatur_top.html" die blaue Zeile hinzufuegen. Zeit (60) sind Sekunden. <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="expires" content="0"> [color=blue]<meta http-equiv="refresh" content="60">[/color] ... BTW: Natuerlich musste in der "airpressure-get.sh" noch der Aufruf der "drawhtml.sh" mit rein. Wenn jetzt alles passt, kannst du langsam, Stueck fuer Stueck, die Textanpassungen von "Temperatur" nach "Airpressure" machen. Zum Cronjob: Wenn du alle 15 Minuten einen Wert abfragen moechtest musst du die Zeile in der crontab so beginnen lassen: 0,15,30,45 * * * * /home/tinker/temperatur-get.sh ... Der Loetkolben Quote
tiberius64 Posted June 25, 2013 at 06:07 PM Author Posted June 25, 2013 at 06:07 PM Hallo Loetkolben, vielen Dank für Deine Hilfe. Mit dem Cronjob werde ich mich noch beschäftigen, da ich nur, wenn ich das Barometer auch angesteckt habe, dieses auch auslesen möchte. Bezüglich der Aktualisierung des Browsers hat das manuelle auch seinen Charme - aber danke für den link und wiederum Deine Anleitung. Darf ich Dich bei Bedarf nochmals aktivieren, oder ist Deine Geduld mit mir zu Ende? Alles in allem hast Du eine super Anleitung erstellt und ohne Deine Hilfe hätte ich wahrscheinlich irgendwann aufgegeben - wie Du in Deinem post schon sagtest, es ist einfacher an etwas bestehendem zu optimieren. Danke nochmals tiberius Quote
Loetkolben Posted June 25, 2013 at 06:19 PM Posted June 25, 2013 at 06:19 PM wie Du in Deinem post schon sagtest, es ist einfacher an etwas bestehendem zu optimieren. Hallo tiberius64, alles in Ordnung. Du kannst gerne im Forum nochmals Fragen stellen wenn du vor einem Raetzel stehst. Ich denke auch viele andere koennen und werden dir weiterhelfen. Niemand kann dir hier eine massgeschneiderte Loesung bauen, aber einen Anschub kannst du immer bekommen. Dann allerdings musst du dich selbst einarbeiten und in Richtung auf dein Ziel laufen. Du solltest dir auch nochmals die Tinkerforge Bindings ansehen oder dich gleich in die Programmiersprache Python einarbeiten. Dann stehen dir noch wesentlich mehr Moeglichkeiten mit Tinkerforge offen. Weiterhin viel Erfolg. Der Loetkolben Quote
tiberius64 Posted August 6, 2018 at 04:17 PM Author Posted August 6, 2018 at 04:17 PM Hallo Loetkolben, hier bin ich wieder und brauche nochmals Deine Hilfe - falls Du wieder so nett wärst. Ich stehe vor derselben Ausgabe wie in Post #10: No Packet machted 20180806_18:09:02;1533571742; und komme wieder nicht weiter. Was sich geändert hat: Ich habe einen neuen Rechner und Ubuntu 18.04 drauf. Was kann ich tun? Gruß tiberius64 Quote
Investigator Posted February 21, 2023 at 02:25 PM Posted February 21, 2023 at 02:25 PM Hi Tiberius, ich hatte das gleiche Problem nun, nachdem ich nach langer Zeit mal wieder mich damit befaßt habe und mein altes Ubuntu 12 mit dem neuen 22 ersetzen mußte. Es scheint, daß neue Ubuntu Versionen nun Befehle mehr wie im Debian interpretieren..Jedenfalls habe ich in der Zeile 31 des airpressure-get.sh , das "q1" wieder in "w1" geändert. Siehe hier : RECEIVEPACKET=`echo -n -e "$SENDPACKET" | nc -w1 $HOST $PORT | xxd -p` ...Bei mir geht es nun wieder...viel Glück...Wolfgang Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.