Hab die HDD jetzt formatiert - seither keine Probleme mehr...
Posts by neovanmatix
-
-
Hallo,
habe einen Raspberry B+ andem eine USB-HDD hängt. Sie lief bisher immer am gleichen USB-Port; heute habe ich beim Verkabeln wohl einen anderen Port erwischt.
Das Problem nun ist folgendes: Ursprünglich hatte ich die USB-HDD via fstab und der BLKID gemounted.
Heute hats da irgendwie gekracht - kA. Bekomme nun beim ls in der gemounteden HDD:Codepi@raspi02 ~ $ cd /mnt/usbhdd pi@raspi02 /mnt/usbhdd $ ls ls: lese Verzeichnis .: Eingabe-/Ausgabefehler insgesamt 0
Habe auf einen Dateisystemfehler getippt und das ext3-Filesystem repariert. Der hat auch was gefunden und gefixt. Nach einem Neustart das Gleiche.
Nun dachte ich, ich mounte die HDD via fstab mal über /dev/sda1 statt der BLKID. fstab aktualisiert, "sudo mount -a" eingetippt - Zugriff auf Mount OK. Neustart.
Dann war das Verzeichnis wieder weg - weitergesucht, festgestellt dass die HDD nun mit /dev/sdb1 erkannt wird. Fstab geändert, Neustart -> wieder das gleiche; nun wird Sie mit /dev/sda1 erkannt [...].
Workaround soll sein, die HDD über die UID anzusprechen. Nur da habe ich wieder das Problem, dass ein "Eingabe/Ausgabefehler" angezeigt wird.
Was mach ich den nun?
-
Das kommt mir alles irgendwie ziemlich bekannt vor, abgesehen vom python CodeWas hier etwas Offtopic ist aber ich dennoch fragen wollen würde:
Welche billigen 433 Mhz-Sender von eBay hast du denn verwendet und wie sieht dein Sketch auf dem ATtiny84 aus?
Und wie hast du die Stromversorgung gelöst?Würde mich freuen wenn du dieses Projekt im EntwicklungsThread meiner Signatur mit den anderen Interessierten teilen würdest :thumbs1:
Hi, die Kurzfassung:
ATTiny84, 3x AAA, div. Sensoren (idR DHT22) mit "billigen" 433 Mhz Sender/Empfängern von eBay (China).
Die erweiterte Fassung - bin zwischenzeitlich zwar weiter und nute den Arduino Ethernet nicht mehr, aber dort findest du schonmal meine Basis-Scripts und Erläuterungenr:
http://www.3bm.de/2013/11/24/att…t-uebermitteln/QuoteWenn das Script bis vor kurzem "recht ordentlich" gearbeitet hat, sollte zunächst geprüft werden, welche Änderungen an diesem Script seitdem für die abstürze verantwortlich sein könnten.
Ich meinte damit, dass das Script bisher während der Entwicklung funktioniert hat - die Programmabbrüche traten gelegentlich auf, ich konnte jedoch keine Ursache finden. -
Zuerst würde ich das Script mal in nem Screen starten, dort kann es vor sich hin scripten und du kannst normal weiterarbeiten, wenn es dann wieder mal stirbt, verbindest du zur screen session und schaust nach welchen Fehler er geworfen hat.Mal Komplett OT: welches Chart-Framework ist das?
Gute Idee; werde ich mal ausprobieren.
Es handelt sich um pChart (http://www.pchart.net/); bin da iwann drüber gestolpert. Hatte nie was mit solchen Diagrammen zu tun; zum Glück gibts da auch so eine Art Chart-Builder mit der man sich einen Demo-Code via GUI zusammenstellen kann.
Habe ich mir dann so formatiert, dass es mir passt - und den Demo-Code dann "weiter verfeinert" - natürlich Leienhaft; aber meine Charts werden erstellt und schauen - für meinen Anwendungsfall - hübsch genug ausDas mit dem Verschieben der Arbeitsanweisungen in den Try:-Code macht Sinn - warum ich das nicht getan habe, weiß ich nicht so recht Ich bessere mal nach...
-
Hallo,
okay, ich hätte vielleicht etwas weiter ausholen sollen...
Begonnen hat mein "Projekt" damit, dass ich batteriebetriebene Funk-Temperatursensoren basteln wollte, weil es da nichts günstiges zu kaufen gab. Habe dann kleine Funksender auf ATTiny84-Basis mit DHT22-Sensoren gebastelt, die über die billigen 433 Mhz-Sender von eBay ihre Daten als Textstring an einen Arduino Ethernet schicken.
Da da die Möglichkeiten beschränkt sind, habe ich die Daten an ein PHP-Webscript übergeben, dass diese dann geprüft hat (alle Werte da, Werte im richtigen Bereich, etc.).Das Webscript hat mir also die Daten konsolidiert und geprüft und in eine MySQL-Datenbank geschrieben. Meine Arbeit ging dann über ein PHP-Chartframework weiter, in dem ich hübsche Charts generiere:
Da der Arduino Ethernet logischerweise kein WLan-Gerät ist und ich ihn daher nicht zentral in der Wohnung aufstellen konnte, bekam ich bei dem ein oder anderen Sensor Probleme bei der Funkreichweite.
Ich begann damit zu experimentieren, wie ich einen normalen Arduino UNO an einen Raspberry Pi bekomme, der dann die Daten via 433 Mhz empfängt und weiterverarbeitet. Den RPI bekomme ich via WLAN eingebunden und kann ihn zentral aufstellen.
In einer sehr langen Wochenend-Aktion und mit Hilfe einiger Leute aus einem Python-Forum habe ich - ohne Python Vorwissen - folgendes Script zusammengeschustert, was zur Hälfte auf Halbwissen basiert aber zumindest augenscheinlich seinen Zweck erfüllt.
Mir kam dann selbst die Idee, dass das Python-Script die Daten doch auch in die Datenbank selbst schreiben könnte, neben der bis dato Funktion Sie nur nach Möglichkeit zu konsolidieren und an das Webscript zu übergeben. Diese Funktion habe ich testweise ZUSÄTZLICH mit eingebaut - sprich, ursprünglich hatte dann das Script die Daten an mein Webscript übergeben und Testweise in eine lokale MySQL-Datenbank gepackt.
Momentan ist der Part mit dem Direkt-in-DB-schreiben auskommentiert - das Script ist nicht fertig, wie gesagt, ein Zwischenschritt:Code
Display More# Author: Bastian Mueller # Benoetigt: python3-serial # Im cron von root eintragen, damit es bei jedem Boot/Reboot gestartet wird (sudo crontab -e): # @reboot python3 /home/pi/serialread/serialread.py & # # Empfängt Daten über seriellen Port und übergibt sie an ein PHP-Webscript, dass diese in eine SQL-DB schreibt # Die empfangenen Daten haben folgendes Format: s=3&t=2000&h=7160&v=4635 # Die komplette URL, die das PHP-WebScript aufruft, sieht wie folgt aus: # http://www.xxx.de/parse.php?r=1&key=xxx&s=3&t=2000&h=7160&v=4635 # r = Receiver-ID (dieser Empfänger), key = Secret zum Auth am PHP-Script # s = Sender-ID, t = Temperatur, h = Luftfeuchtigkeit, v = Spannung Stromversorgung # Beta-Test-Implementierung: Daten in separate MySQL-DB schreiben. import serial import logging import requests import pymysql RID = '1' # ID des Receivers URL = 'http://www.xxx.de/xxx/parse.php' KEY = 'xxx' # Auth-Secret zur Datenübergabe an das PHP-Script LOGFILE = '/home/pi/serialread/log-serial.log' SERIAL_INTERFACE = '/dev/ttyACM0' SERIAL_PORT = 9600 MYSQL_HOST = '127.0.0.1' MYSQL_PORT = 3306 MYSQL_USER = 'tinynode' MYSQL_PW = 'xxx' MYSQL_DB = 'tinynode' MYSQL_SENSOR_DATA_TABLE = 'sensor_data' def format_received_data(_rawdata): try: return _rawdata.decode("utf-8")[:-2] except AttributeError as e: logging.warning("AttributeError: {0} : {1}".format(e, _rawdata)) return False def check_received_data(_received_data, _previous_received_data): if _received_data == _previous_received_data: logging.debug("Gleiche Daten wurden bereits zuvor empfangen: {0}".format(_received_data)) else: if _received_data.count("s") == 1 and _received_data.count("t") == 1 \ and _received_data.count("v") == 1 and _received_data.count("h") == 1: try: for key,value in split_received_data(_received_data).items(): if not key.isalpha(): logging.warning("{0} ist KEIN Zeichen".format(key)) return True except ValueError as e: logging.warning("ValueError: {0}".format(e)) return False else: logging.warning("Ein erforderlicher Wert ist nicht in den empfangenen Daten enthalten: {0}".format(_received_data)) return False def split_received_data(_received_data): received_data_splitted = _received_data.split("&") split_dict = {} try: for data_value_pair in received_data_splitted: data_value_pair_splitted = data_value_pair.split("=") var = data_value_pair_splitted[0] value = int(data_value_pair_splitted[1]) # Skaliert die Daten herunter, da für 433 Mhz-Versand auf ohne Kommastelle multipliziert if var == 't' or var == 'h': value = value / 100 if var == 'v': value = value / 1000 split_dict[var] = value return split_dict except IndexError as e: logging.warning("serial.serialutil.SerialException: {0}".format(e)) return False except ValueError as e: logging.warning("ValueError: {0}".format(e)) return False def transfer_received_data(_received_data, _RID, _URL, _KEY): url_to_open = "{0}?r={1}&key={2}&{3}".format(_URL, _RID, _KEY, _received_data) transfer_response = requests.get(url_to_open) return transfer_response.text.replace("<br>", " ") # Filtert die HTML-<br>s aus, wg. Lesbarkeit def mysql_insert_sensor_data(id, temp, humi, vcc): try: mysql_connection = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, \ passwd=MYSQL_PW, db=MYSQL_DB) except pymysql.err.OperationalError as e: logging.error("pymysql.err.OperationalError: {0}".format(e)) return False try: sql_obj = mysql_connection.cursor() sql_obj.execute("INSERT INTO {0} (sensor_id,sensor_data_temperature, sensor_data_humidity, sensor_data_voltage) VALUES \ ('{1}','{2}','{3}','{4}')".format(MYSQL_SENSOR_DATA_TABLE, \ id, temp, humi, vcc)) mysql_connection.commit() sql_obj.close() mysql_connection.close() except (pymysql.err.InternalError, pymysql.err.ProgrammingError, socket.error) as e: logging.error("pymysql.err: {0}".format(e)) return False else: return True def main(): logging.basicConfig(filename=LOGFILE, level=logging.INFO, filemode='a', \ format='%(asctime)s %(levelname)s: %(message)s', \ datefmt='%Y-%m-%d %H:%M:%S') # Requests loggt nur, wenn ein Fehler >= WARNING generiert wird requests_log = logging.getLogger("requests") requests_log.setLevel(logging.WARNING) try: open_serial_com = serial.Serial(SERIAL_INTERFACE, SERIAL_PORT) except serial.serialutil.SerialException as e: logging.critical("serial.serialutil.SerialException: {0}".format(e)) previous_received_serial_data = "" for dataline in open_serial_com: try: received_serial_data = format_received_data(dataline) except: logging.error("Serielle Daten konnten nicht formatiert werden.") check_received_data_result = check_received_data(received_serial_data, \ previous_received_serial_data) if check_received_data_result is True: transfer_received_data_result = transfer_received_data(received_serial_data, \ RID, URL, KEY) if transfer_received_data_result is not False: logging.info('Daten wurden an Webscript übergeben: {0!r}, Status: {1!r}'.format( \ received_serial_data, transfer_received_data_result)) else: logging.error('Fehler beim übergeben der Daten an das Webscript: {0!r}'.format( \ received_serial_data)) #try: # x = split_received_data(received_serial_data) # if mysql_insert_sensor_data(x['s'], x['t'], x['h'], x['v']) is True: # logging.info("Daten wurden in SQL-Datenbank gespeichert: {0}".format(x)) #except KeyError as e: # logging.error("KeyError: {0}".format(e)) #print(split_received_data(received_serial_data)) previous_received_serial_data = received_serial_data if __name__ == "__main__": main() # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
Das Script und die Arbeit an diesem Projekt habe ich aktiv 12/2013 betrieben. Nun hat mich die Lust wieder gepackt, und ich habe alles aus dem Schrank hervorgeholt.
Weshalb ich nun von dem Pyhton3-Script und dem direkten Insert in eine DB über Python weg wollte: Ich wollte mich eigentlich nie mit Python3 beschäftigen; projektbedingt ging es primär um PHP und meine lustigen Charts.
Obiges Script ist also aus einer Notlösung heraus entstanden, und jetzt - nach 8 Monaten - tue ich mich etwas schwer, wieder rein zu kommen.Daher war mein Gedankengank, um "im Kern" bei der Sache zu bleiben, die empfangenen seriellen Daten irgendwie direkt an PHP zu schicken - da kenne ich mich etwas besser aus und habe innerhalb meines Projekts auch mehr damit zu tun, bedingt durch die Statistiken/Grafiken.
Wenn es da natürlich keine stabile Lösung gibt, werde ich natürlich bei der Python3-Lösung bleiben (müssen).
Das Problem, das ich aktuell mit obigen Script habe: Es schmiert unregelmäßig ab.
Es wird, wie oben steht, via crontab beim booten gestartet und verrichtet dann seine Arbeit fehlerfrei. Auch das Logging funktioniert prima.
Nur irgendwann sehe ich in den Charts, dass seit XX Stunden keine Daten mehr vom Sensor gemeldet wurden - und prüfe dann den Pi: der Python3-Prozess ist nicht mehr da; das Script muss also abgeschmiert sein.Ich war, wie gesagt, nicht so tief drin, aber ich vermute es muss möglich sein, alle auftretenden Exceptions die das Script zum Absturz bringen irgendwie zu loggen.
Habt ihr vielleicht eine Idee?
-
Hallo,
ich habe an meinem Raspberry einen Arduino via USB angeschlossen, der Temperaturdaten via serieller Konsole an den Pi übermittelt.
In meinen Tests habe ich ein recht ordentliches Python3-Script erstellt, dass diese seriellen Daten abgreift und sie an ein PHP-Script im Web übergibt, dass diese dann weiterverarbeitet und in eine Datenbank packt.
Dummerweise kratzt mir das Python3-Script unregelmäßig ab und ich bekomme es nicht ordentlich gelöst, sodass ich mich nach einfacheren Alternativen umschaue.
Eine ist, die seriellen Daten in eine Datei zu schreiben und dann ggf. von einem PHP-Script direkt weiterzuverarbeiten. Was mich dabei etwas stört ist, dass ich aus der angelegten Textdatei auch Werte rauslöschen muss - sonst wird das File ja regelmäßig größer. Und hier habe ich den Verdacht, dass es zu Konflikten führt, wenn das PHP-Script gerade Werte aus der Datei ausließt und eine Zeile löscht, und in diesem Moment Daten per COM ankommen und in das File geschrieben werden sollen.
Geht es ggf. irgendwie, dass ich ankommende Daten via ttyACM0 direkt an ein lokales PHP-Script weiterreiche? Also quasi... cat xxx > datei.php? Oder etwas in dieser Richtung?
-
Hallo,
ich habe mir ein PiTFT bestellt:
http://learn.adafruit.com/adafruit-pitft…rry-pi/overviewDie Ansteuerung des Displays klappt, jedoch habe ich ein ärgerliches Problem:
Auf der Platine lassen sich 4 kleine Schalter auflöten. Einer davon lässt sich, wie im obigen Howto beschrieben, über ein Kernel-Modul als An/Aus-Schalter nutzen; das klappt auch.Was im HowTo aber fehlt ist, wie ich die übrigen 3 Schalter IRGENDWIE (Python, Bash, PHP, ...) ansteuern kann.
In allen HowTos zu Schaltern, die ich für den Raspberry gefunden habe, lötet man zusätzliche Widerstände ein (Pull-Downs?). Ich weiß leider nicht, was/wie das auf dem PiTFT-Schaltplan gelöst ist.
Ich habe gestern eine Stunde rumprobiert, um zu prüfen ob die Knöpfe irgendwie reagieren:
Code
Display Moreimport RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(22,GPIO.IN) GPIO.setup(21,GPIO.IN) GPIO.setup(18,GPIO.IN) while True: if GPIO.input(22): print("22 gedrückt!") if GPIO.input(21): print("21 gedrückt!") if GPIO.input(18): print("18 gedrückt!") GPIO.cleanup()
Dabei habe ich quasi die Nummern 10-25 für GPIO.BCM und GPIO.BOARD durch. Ich habe gesehen, dass es für GPIO.setup() einen Parameter pull_up_down=X gibt - den habe ich ebenfalls mit einbezogen und Up/Down getestet.
Das EINZIGE, was ich wahrnehmen konnte, ist Pin 18:
Berühre ich in obigem Sketch den rechten Knopf auch nur ansatzweise, wird "18 gedrückt!" gespammt.Die anderen Buttons reagieren nicht - und ich finde einfach keinen Weg, sie anzusprechen/auszulesen.
Hat jemand einen Tipp für mich? Bin gerade wirklich ratlos
Update:
Ich habe auf der Adafruit-Seite einen Schaltplan für das PiTFT gefunden:
http://learn.adafruit.com/system/assets/….png?1387563188Darin sieht man oben rechts wie die Switche/Buttons geschaltet sind: GPIO 23/22/21/18 -> Button -> GND.
Mir hilft das nicht sonderlich weiter, aber vielleicht kann sich jemand von euch nun das Verhalten der Buttons erklären?
Update 2:
Ich habe herausgefunden, dass, wenn ich die Herangehensweise umkehre, ich zumindest Button 2+4 (also 22 + 18) erkennen kann. Button 3, GPIO 21, macht rein garnichtsCode
Display Moreimport RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(18,GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(21,GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(22,GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: if not GPIO.input(18): print("18 gedrückt!") if not GPIO.input(21): print("21 gedrückt!") if not GPIO.input(22): print("22 gedrückt!") GPIO.cleanup()
-
Hallo,
ich bin gerade etwas irritiert. Ich nutze einen RPI im elterlichen Haushalt als kleine NAS mit einer einzelnen Samba-Freigabe. RPI + SD-Karte & Zubehör sind etwa 1-2 Monate alt.
Ich habe mir einen Kingston 64GB USB 2.0-Stick besorgt um den Speicherplatz zu erweitern. Heute war ich zu Hause, habe kurz den USB-Stick gesteckt und mich dann verzogen, weil "einrichten kann ich ja von zuHause per VPN".
Jetzt, ein paar Stunden später, stelle ich fest das der RPI im Netz nicht erreichbar ist. In meinen eMails habe ich von einer Netzwerkkamera die Info bekommen, dass der Netzwerkpfad für die Speicherung nicht mehr vorhanden ist (im gleichen Moment habe ich den USB-Stick eingesteckt).
Nun habe ich telefonisch meine Mutter gelotst einfach mal Strom am RPI zu ziehen und neu zu stecken. Ein paar Minuten gewartet - kommt nicht hoch. Dann hat sie den USB-Stick gezogen und neben dran gelegt, und erneut Strom getrennt + verbunden - komme wieder nicht drauf.
Habe sie nach den LEDs gefragt - sie meinte, da leuchtet nur eine rote LED und sonst nichts.
Nun frage ich mich: Hä? Das Netzteil liefert etwa 1,2-1,5 Ah - der RPI schluckt ja etwa 700 und die USB-Ports bieten etwa 300 mAh. Der USB-Stick wird doch keine 300 mAh ziehen und mir den RPI zerschießen?!
-
Jau, hab ich selbst festgestellt. Dachte mir, ich besorg mir eine ältere 2,5" 80GB-Platte mit 4200 rpm - die wird schon wenig Strom brauchen.
Ergebnis ist, dass die sogar noch ein Y-Kabel zum Anlaufen braucht - also sicherlich mehr als 500 mAh zieht.Ich werde jetzt einen 64 GB USB-Stick nehmen. Wenn er nach einem Jahr hin ist, hab ich ja Garantie drauf...
-
Also, das gefällt mir nicht
Der Pi sollte - so wie er jetzt läuft - maximal etwa 3,5 Watt ziehen. Das sind etwa 10 Euro im Jahr und ist OK.
Die USB-HDD sollte ebenfalls maximal 2,5 Watt ziehen dürfen (den 500 mA ist der USB-Port spezifiziert bei 5 V - mehr dürfte sie also eigentlich nicht brauchen). Das wären dann 6 Watt - ist auch OK.Wenn ich einen Hub mit dran häng, der dann 5-10 Watt braucht - dann reden wir von 15-30 € zusätzlich Stromkosten im Jahr. Und für 15-30 € kaufe ich mir lieber alle 1-2 Jahre einen USB-Stick.
Bitte nicht falsch verstehen; ich bin von einer älteren Synology 1Bay-NAS auf den RPI umgestiegen, weil mir 20-30 Watt Verbrauch für den Anwendungszweck einfach zu teuer waren (30 Watt sind 90 € Strom im Jahr). Daher bin ich da recht drauf bedacht, das ganze kostengünstig zu halten.
-
Hi,
ich setze einen Raspberry Pi B 512MB im elterlichen Haushalt als SMB-Target für eine Mobotix-Überwachungskamera ein.
Verbaut ist eine 32 GB SD-Karte, auf der eine Freigabe liegt und die von der Kamera befüllt wird.Mir reicht der Speicher leider nicht aus - in 2 Tagen fallen etwa 20 GB an - weshalb ich mir nun Gedanken gemacht habe, wie ich's kostengünstig erweitern kann.
Eine 64GB SD-Karte fällt raus, die kostet 50 € - das steht in keinem Verhältnis. Ein USB-Stick mit 64GB kostet etwa 30 € - fällt aber auch raus, weil der vermutlich durch die hohen I/O nach einem Jahr hops ist (10 GB pro Tag schreiben - ich glaube der hält da nicht sonderlich lange).
Daher habe ich jetzt mal spaßhalber ein paar Euro auf gebrauchte 2,5"-USB-HDDs auf eBay geboten. Die haben dann so 60-120 GB, und ich erhoffe da für ~10-15€ eine "noch gute Platte" ohne Sektorfehler zu ergattern.
Nun scheine ich einem Irrtum auf dem Leim gegangen zu sein. Am RPI hängt ein 1,2A Netzteil - der Pi benötigt etwa 700mAh - wären also noch 500 mAh frei für USB-Geräte.
Nun lese ich, dass der RPI pro USB-Port max. ~120 mAh liefert - vermutlich würde also meine USB-HDD garnicht anlaufen. Ist das so korrekt?
Da in der Nähe des RPI eine Fritzbox mit USB-Port steht, könnte ich doch sicherlich mit einem Y-USB-Kabel die Fritzbox zur Zusatzstromversorgung mitnutzen (quasi das Daten-USB-Kabel an die Pi, das unterstützende Y-Kabel an die FB).
Ich möchte nur ungern einen aktiven USB-Hub hinsetzen - zum einen weil ich den wieder erst kaufen muss, zum anderen weil's mir dann stromtechnisch zu teuer wird (Es soll eine kostengünstige Lösung sein - der RPI mit Platte braucht dann schon ein paar Euro im Jahr; wenn noch ein schlechtes China-Netzteil von einem Hub dran hängt verdoppelt sichs sicherlich. Und ja, ich weiß das wir hier nur über ein paar Euro reden)., und zum dritten möchte ich's einfach halten.
Am Pi hängt nichts außer Netzwerk - ist also quasi eine Blackbox.
-
Hallöchen,
ich habe mir mittlerweile den zweiten Raspi angeschafft; und nachdem der erste als XBMC am TV gelandet ist, wollte ich mir den zweiten zum Basteln holen.
Nun habe ich in wirklich kurzer Zeit ein 433 Mhz Sendemodul zum laufen gebracht, und ein Script zum Steuern meiner Funksteckdosen geschrieben.
Das ist "nice to have", aber eben nicht so ein Killerfeature, dass sich der Raspi auf kurz oder lang als neues Familienmitglied integrieren würde.
Nun suche ich natürlich nach weiteren Anwendungszwecken. Interessant wäre da natürlich ein Tracking der Raumtemperatur in unterschiedlichen Zimmern, oder ein Modul zur Bewegungserkennung.
Natürlich krieg ich das alles in Einzelteilen zum "verdrahten"; nur meistens ists halt so, dass ich KEINE Lust habe, von einem zentralen Punkt aus in jedes Zimmer neue Kabel zu ziehen, um einen Temperatursensor anzuschließen ...
Jetzt habe ich knapp 3 Stunden in Foren auf deutsch und englisch gesucht; nach irgendjemand der so ein einfaches 433Mhz Außenthermometer "geknackt" hat, um die Daten verständlich abzugreifen. Oder nach irgendeinem Selbstbau-Thermometer (mit einem kleinen Arduino und 433 Mhz Funksender, o.ä.), aber ich habe schlicht nichts gefunden, das "irgendwie" für mich machbar oder halbwegs kosteneffizient aussieht.
Natürlich ließe sich ein kleiner Arduino mit Sender ausstatten, der dann zum Pi funkt - aber anscheinend kommt man da Batteriebetrieben nicht wirklich weit (den überall 220V-auf-5V-USB zu verbauen, so denke ich mal, kostet auch ein wenig viel Strom pro Jahr)Fällt jemandem dazu etwas ein? Vielleicht etwas, was ich übersehen habe?
Wie löst ihr soetwas? -
Ich höre immer, dass das eine schlechte Idee ist, das www-data mit Root-Rechten läuft.
Auch leuchtet mir es ein; wenn der Webserver übernommen/gehackt wird, lassen sich direkt Befehle als Root absetzen.ABER: Reden wir hier von einem existenten, greifbaren Risiko? Wenn ich meinen Raspberry zu Hause betreibe, und - meinetwegen - auch einen Port von Extern auf den HTTP-Port vom Raspi genattet habe, kommt man natürlich von überall drauf.
Wie oft sind den aber bisher kritische Lücken in Apache2 aufgetreten, die bei Klaus X in Boxdehude angewandt wurden?
-
Hi,
habe genau das gestern zusammengebastelt; war in einer Stunde erledigt.
Habe dabei ein 433Mhz-Sendemodul von watterott bestellt (glaube 3,5 € und das einzige Modul bei denen) und nach der Anleitung im 2. oder 3. Beitrag eingerichtet.Die Elro-Dosen (glaube AS440) kann ich dir ebenfalls empfehlen; für diese gibt es auch Unterputz-Module zum verstecken und Aufputz-Hardware-Piezo-Taster zum schalten.
Und beiläufig: Die Funksteckdosen von Brennstuhl scheinen Baugleich mit denen von Elro zu sein - arbeiten mit Hauscode + Gerätecode, auch die Fernbedienungen funktionieren untereinander.
-
Hallo,
noch ein Tipp: Ich bin vom normalen ADSL-Anschluss von 1und1 zu KabelBW gewechselt, und musste mich auch mit dem "neuen IPv6"-Anschluss begnügen: Standardmäßig funktioniert da kein NAT, weil KabelBW seine Kunden über IPv6 anbindet - und da bekommt nicht jeder seine eigene, öffentliche IPv6-Adresse, sondern eine von mehreren geteilte. KabelBW wurschtelt das dann bei sich wieder auseinander, NAT funktioniert aber trotzdem nicht.
Abhilfe hat zumindest bei mir ein Telefonat mit KabelBW gebracht: Ich habe erwähnt, dass ich selbst auch manchmal beruflich einen VPN-Tunnel aufbauen muss, und einige Geräte intern über's Internet steuern möchte (SmartHome, Fernzugriff auf NAS, etc.) - die freundlichen Herrschaften haben meinen Anschluss dann auf einen reinen IPv6-Anschluss mit eindeutiger IPv4- und IPv6-Adresse umgestellt; und nun klappt das bei mir auch wieder alles.
-
Hi,
gute Idee, werde ich bei mir - auch eine Fritzbox in Verwendung und Ruckler - gleich mal testen.
Grundsätzlich ist WLan immer langsamer als Kabel - da hier der TCP-Overhead größer ist. Manche Datenpakete gehen bei WLan verschwindibus - und müssen erneut gesendet werden, weshalb die Bandbreite sinkt.Bei WLan rechne ich von den Brutto 150 Mbit (oder 300, je nachdem) immer 50% ab - das kommt dann "in etwa" in Richtung Netto-Rate; im Falle von 150 Mbit Brutto also etwa 75 Mbit Netto.
Ich kenne das mit dem Feststellen der Geschwindigkeit insbesondere immer dann, wenn ein Gerät Probleme macht, die in Richtung Netzwerkbandbreite gehen. Manche Geräte erkennen selbstständig, welche Geschwindigkeit an z.B. einem Switch anliegt, und stellen sich dann darauf ein.
Bei manchen Geräten klappt das nicht so gut - das z.B. das Gerät dann immer zwischen 100Mbit Duplex und 1000Mbit Duplex hin- und herspringt, das löst natürlich Verzögerungen aus, und wenn's 100 x die Sekunde passiert,... naja.
-
Also ich habe mir mal dieses komische Netzwerk-Konstrukt des TS mal durchgelesen; grundsätzlich ist's richtig: Warum nutzt du den Asus-Router nicht einfach als normalen Netzwerk-Switch oder tauscht diesen durch einen GBit-Switch aus?
So spannst du dir quasi eine eigene DMZ; und das erhöht in deinem Fall wohl auch nur den Verwaltungsaufwand.
Theoretisch würde es also reichen, wenn du das Kabel von der Easybox, dass am WAN-Port des Asus-Routers steckt, in einen der LAN-Ports des Asus-Routers umsteckst - die Ports switchen ohne Konfiguration.
Dann musst du NAT & Co. auch nur einmal an der Easybox einstellen (statt von Easybox an Asus-Router, und von da an das eigentliche Endgerät).
Und weiter: Wenn EasyBox und Asus-Router am internen Netz (also an den LAN-Ports) beide ein 192.168.2.x/24-Netz aufspannen *hust* - sowas lieber ändern auf getrennte Netze; meist sucht man sich bei einem Fehler bei sowas einen Wolf...
-
nachtrag
hab jetzt ein 300er wlan stick von perl bekommen. der stick war kostenlos das porto 4,90 euro^^
mit dem wifi manager war das schnell installiert.
es liegen max 270mbit bis zu 33mb/s an.der datenstream vom pc ist berauschend schneller geworden.
die festplatte am usb der fritzbox allerdings immernoch recht langsam.
habe von avm erfahren das die fritzbox max nur 104mbit also 13mb streamen kann von ntfs dateisystem. fat32 kann ich nicht machen da ich filme mehr als 4gb hab. exfat kennt fritzbox nicht.dennoch kann ich sagen das erheblich mehr speed zu verzeichnen ist mit dem 300er wlan.
und wenn raspi usb und lan/wlan gemeinsam nutzt dann wäre das ja auch kein problem denn ich würde ja eh nur wlan am raspi nutzen.
die hdd soll ja am router oder später am server.
werd mir also noch bei zeiten ein miniserver besorgen dann ist der fritzbox usb flaschenhals geschichte.datenaustausch zw pc und rasbpi ist schneller geworden aber mein ziel ist die serverlösung so das ich mit max was die leitung hergibt 1000 mbit die daten von pc zur hdd tauschen kann.
Also, wo du deine "Messergebnisse" her hast, weiß ich nicht so recht.
1) Mit 270 Mbit WLan bekommst du _niemals_ 33mb/s raus. Man rechnet bei WLan mit etwa 50% der Brutto-Rate, bedingt durch TCP-Overhead, verlorene Pakete, Collision-Detection, etc. kommt man dann recht nahe. Ich habe zu Hause ein 300Mbit-WLan laufen und erhalte im Bestfall sowas um die 12-13 MB.
2) Auch bei deiner Aussage, über USB 2 - 480 MBit Durchsatz - liegst du daneben. Das sind _niemals_ 60 MB/s, im Idealfall vielleicht 33-35 Mb/s, aber nicht mehr.
3) Die Fritzbox als NAS zu benutzen ist für den Popo. An älteren Modellen - 7270/7240 - kriegst du per SMB etwa 4-5 MB/s hin, mehr nicht. Bei neueren ist es etwas besser - aber eben immernoch irgendwo um die 7-10, und das ist nicht wirklich toll. Von den 13 MB/s, von denen AVM spricht, wage ich die Glaubahftigkeit zu bezweifeln.
4) Wie willst du den mit 1Gbit Daten zwischen Raspi und PC austauschen? Mit WLan kommst da sicher nicht hin, und GBit hat er nicht - und GBit-Adapter per USB angeschlossen wird dir sicher auch nur ~20-25 MB bringen, wenn das überhaupt klappt.