WiFi-Konnektivität bei der Inbetriebnahme des FiPy hakelt

Hmm, pin2 ist der Taster für den AP-Button

"general": {
    "general": {
        "button_ap_enabled": false,
        "button_ap_pin": "P2",
        "initial_time": 1556805688,
        "measurement_interval": 10
    }

Keine Ahnung was da schief laufen kann, du hast doch die grüne Platine (nicht die weise)?

_csv hört sich nach SD-Logging an,

Magst du nochmal kurz schreiben, wie dein erstes Hardware-Setup ausschaut, das funktioniert? Grüne Platine, Expansion board mit verbunden? Mit oder ohne SD-Karte? Gibt es da Unterschiede zwischen dem jetzigen setup und dem “alten”?

Also das erste Hardware SETUP ist absolut baugleich (physisch)
grüne Platine - Expansion Board, HX711, BME/DS18B20/LOADCELL KEINE SD … läuft

ich habe einfach mal eine SD Karte eingeschoben und dann ist der LOGGING Fehler _csv beim BOOT weg. Nicht so wenn ich den AP aktivieren will.
BOOT:
Initialised CSV logger in directory /sd/hiverizelog
FLASH BUTTON

Called. Pin Pin(‘P2’, mode=Pin.IN, pull=Pin.PULL_UP, alt=-1).
Unhandled exception in callback handler
Traceback (most recent call last):
File “main.py”, line 97, in enable_ap
File “main.py”, line 88, in log
NameError: name ‘_csv’ is not defined

Wie gesagt, ich hatte erst die DS18B20 Konfig gemacht OHNE HX711 abgleich, und jetzt alles zusammengabut wird der AP nicht mehr geöffnet.

1 Like

88 if _csv is not None:

97 log(“enabled ap”)

113 rtc = RTC()
114 rtc.init(time.gmtime(_config.get_value(‘general’, ‘general’, ‘initial_time’)))
115
116 _csv = logger.csv

Es scheint sich alles rund um das CSV Logging zu drehen, was die EXCEPTIONS wirft

Ist bei dir der extra Button in der Config aktiviert? Da sind auf alle Fälle in der FiPy Firmware ein paar Bugs drin. Hab es bei mir lokal schon im Griff. Hab nur leider kein Internet meher, sodass ich kein Pull request machen kann.

Wenn ich mich richtig entsinne fehlt hinter

def log(message):

noch

global _csv

da sonnst die Variable nicht in der Prozedur genutzt werden kann.

Aber ohne Gewähr, da ich unterwegs bin und nicht schauen kann was ich da bei mir korrigiert habe.

1 Like

ich werde morgen dem mal nachgehen

87 def log(message): 
88     if _csv is not None: 
89         _csv.log(message) 
90     else: 
91         print(message) 

Tatsächlich.
Das bedeutet, wenn man das Logging aktiviert (bewußt oder unbewußt) dann wird der CODE IMMER auf einen Fehler laufen.

Vielleicht liegt hier schon der Fehler der vorliegenden Hiverize Firmware Probleme …

@IngoP ich bekomme auch mit der aktuellen Firmware (von Ende Oktober) diese Fehlermeldung, ähnlich wie bei dir oben

Traceback (most recent call last):
File “main.py”, line 205, in
OverflowError: overflow converting long int to machine word

Habt ihr da eine Lösung, damit wir das Problem auch in GitHub - Hiverize/FiPy fixen können.

Ich habe das ja zuerst nicht glauben können, aber es ist durchaus möglich.

Allerdings gab es da auch ein anderes Ding.


Ob die entsprechenden Dinge bereits downstream innerhalb der Pycom-Firmware behoben wurden, kann ich nicht sagen. Ich wollte es nur gschwind mit Euch teilen.

@Diren hat einen fix eingespielt und nun kommt zumindest der OverflowError oben nicht mehr.

Moin,

hier im Home-Office habe ich nun auch Probleme den FiPy ins WLAN zu kriegen.

Meine Vermutung ist, das es ein Vodafone-Bug unserer Station für spezielle Netzwerkkarten ist, aber ich kann natürlich auch irgendwas anderes übersehen haben. Die Log Meldungen des Routers sehen so aus wie die, die hier beschrieben werden:

Hatte jemand schonmal ähnliche Probleme?

Hast Du nicht einen extra Accesspoint für BOB?

Ich habe eine alte Fritzbox WlanBOB1 mit einem Repeater WlanBOB2, den ich z.B. auf der Terrasse in eine Steckdose stecke. WlanBOB1 wird mit kurzen Kabel an den Hausnetzrouter gesteckt.

Vorteil: Im separaten WlanBOB1 tummeln sich nur ausgewählte Recher und man kann an der Fritzbox herumfummeln, ohne dass man die anderen Rechner, Drucker und Handys im Hausnetz lahmlegen kann.
Nächster Vorteil: aus dem Hausnetz kann man nicht in WlanBOB1 wegen der Firewall in der Fritzbox.
Die Übersicht ist auch viel besser. Ausserdem kann man die IP-Adressen besser verwalten.
Seit Juni 2019 habe ich folgendes:
WlanBOB1 192.168.10.1
WlanBOB2 192.168.10.2
PCWin10 192.168.10.11
RaspberryPi1 192.168.10.21 … 29
FiPy1 192.168.10.31 … 39

Drucker, Tablets, Handys usw sind in WlanTest1 und 2 mit 192.168.1.x und .2.x
NASx und alte Messrechner in WlanMess3 und 4 mit 192.168.3.x und .4.x
Zwischen WlanTestx und WlanMessx ist ein Funkschalter, so dass ich die Netze auch per Hardware trennen kann.

@Diren, wie versprochen habe ich den aktuellen code auch mal mit einem Handy als WiFi-Router / Hotspot getestet, ein älteres Sony Xperia mit Android 6.0.1. Da ging das alles problemlos.

Was mir gerade noch eingefallen ist: Wir hatten ganz am Anfang auch mal Probleme mit Sonderzeichen, Bindestrichen o.ä. im WLAN-Name oder -Passwort. Ggf. das nochmal checken!

Weiter könnte man mal schauen, welche WiFi-Standards der Router unterstützt, 2,4-GHz und 5-GHz-Frequenzband? Manchmal haben die Router auf den unterschiedlichen Bändern auch unterschiedliche SSIDs.

Der FiPy unterstütz laut Datenblatt 802.11b/g/n das sollte auf jeden Fall das 2,4-GHz-Frequenzband sein. Schau doch mal, ob bei dir nur 5-GHz aktiviert ist.

Mit dem Advanced IP-Scanner erhält man einen guten Überblick

@Diren mir war in dem ganzen zusammenhang aufgefallen das es bei Verbindungsproblemen hilfreich ist den timeout hoch zu stellen. Einige Router reagieren bei der Erst-kontaktaufnahme anscheinend nicht immer schnell genug. Also einfach mal ein bischen höher stellen.

jetzt hab ich einen, und das ist bei mir tatsächlich der einzige Weg, die FiPys zum laufen zu kriegen.

hm, wir haben Sonderzeichen im Passwort, aber ich glaub, das schreibt unser Router auch so vor.

hier hab ich alle Versionen ausprobiert: getrennte SSIDs, zusammen, …

hat auch nicht geholfen

Ich sehe im Log, dass der FiPy verssucht sich zu verbinden, aber auf der Blacklist landet.
Insgesamt ist unser Router echt unbrauchbar, zum Beispiel kann man keine Ports freigeben und die Firewall nicht konfigurieren.
Für mich war der zweite Router eine Lösung. Es war schön, so ein W-Lan Problem mal live erleben zu können. Bleibt die Frage, was wir Citizens raten. Ggf. auch einen zweiten Router aufstellen?

Kann man ggf. die MAC auf eine whitelist setzen? Gibt es sowas bei deinem Router? Oder über die blacklist “freischalten”?

Ich empfehle einen billigen Extra-Router ( 15 € von Pollin oder vom Schrott, weil alt ) Der FiPy unterstützt nur kleine Datenraten, da reicht ein alter b-Router völlig. Einfach auf Faktory-Default, einfache SSID und Password ohne Schnörkel und Sonderzeichen. Wer nur die Verbindung testen will, stellt ihn ohne Verbindung ins Internet in die Nähe des FiPy und testet die Reichweite. Klappt alles, ein kurzes Kabel zum Hausnetzrouter und das Internet sollte erreichbar sein.

nein: der kann sogar IEEE 802.11n, damit schafft ein ESP32 bei HT40 bis zu 150 Mbps, mit HT20 immerhin noch 72 Mbps - das sind keine ‘kleinen Datenraten’.

Und 11n könnte auch das Problem sein bei @Diren: 802.11n und v.a. HT40 (doppelte Bandbreite) am Plasterouter auszuschalten und nur HT20 zu erlauben, hilft vielen IoT-Geräten, sich dort besser oder überhaupt verbinden zu können.

Beim Betrieb mit 802.11b (einer DSSS-Betriebsart) ist die höchste Stromaufnahme meßbar (miß nach oder schau ins Datenblatt) - im Gegensatz zu 802.11g und 802.11n (als OFDM-Betriebsarten), bei denen die Stromaufnahme trotz wesentlich schnellerer Übertragung kleiner ist als bei 802.11b.

Also kein 802.11b am Router erlauben - beschleunigt ebenfalls die Verbindungsaufnahme der clients, und spart Strom der clients.

Ggf. auch 11n ausschalten, wenn es nicht anderweitig benötigt wird: wichtig wäre, eine stabile 802.11g -Verbindung hinzubekommen.

Einen von OpenWRT unterstützten Router erwerben, OpenWRT aufspielen (ist simpel; notfalls Unterstützung im lokalen hackerspace oder der lokalen FreiFunk-community holen) und sein Netzwerk selbst im Griff haben und v.a. up-to-date halten können, sobald Sicherheitslücken bekannt werden - welche in der Original-firmware oft nicht behoben werden, weil die Hersteller den Produktsupport eingestellt haben usw.

Welche Geräte sich für OpenWRT eignen, steht in der Table of hardware bei openwrt.

Z.B. nach wie vor empfehlenswert wären die TPLINK TL-WDR3600 oder TL-WDR4300 (‘notfalls’ auch TL-WDR3500, da ist aber das WLAN schneller als das Ethernet). Für keinen der genannten sollte gebraucht mehr als 25 € bezahlt werden.

Wenn es nicht gleich ein zweiter Router sein soll, und der ‘Hauptrouter’ auch nicht für 4k-Videos über WLAN gebraucht wird, dann sollten die genannten Punkte an den existierenden Geräten ausprobiert werden:

  • 802.11b abschalten, sowie
  • 802.11n abschalten
  • wenn 11n nötig, probieren, ob bei Betrieb mit einfacher Bandbreite (HT20) die Verbindungsaufnahme gelingt
2 Likes

Diese Experimente würde ich nur auf einem extra Router für IoT machen, es sei denn, man weis ganz genau was man macht und was man anklickt. Im Notfall hilft dann der Factory-Default.
Den Hausnetz-Router würde ich nicht anfassen - Never touch a running system
Bei der Sicherheit würde ich auf den Hausnetz-Router mit aktueller Software setzen, die gilt dann für das ganze Hausnetz mit Subnetz(en). Der IoT-Router bildet nur ein kleines Subnetz und trennt von den Aktivitäten auf dem Hausnetz.
Das hat sich auf meiner ( ehemaligen ) Arbeit mit > 10000 Ip_adressen und > 200 Subnetzen bewährt.

Der Datentransfer vom FiPy zum PC ist bei mir mit ca. 50 bis 100 kbit/sec über 10 mal langsamer als der Transfer von einem RaspberryPi 3+ mit 500 bis 1000 kbit/sec. Die genauen Einstellungen
habe ich nicht überprüft. Der Default von FiPy, RasPi, Win10-PC und alter Fritzbox hat funktioniert

z.Z. sieht die FritzBox den FiPy 1 so:

FiPy 2 hängt am FritzRepeater

Jo, das klingt wohl nach einem guten Vorschlag.

Unser Hauptrouter hat so wie so keine Option das Anzupassen ;)

Hierzu noch eine Frage. Ich hab ja jetzt einen zweiten Router mit eigener SSID. Ich hab darauf geachtet, dass die IPs von beiden Routern unterschiedlich sind. Muss ich sonst noch was beachten, damit es nicht zu Konflikten kommt?

Bei mehreren Subnetzen muss man aufpassen, dass man den Überblick behält, auch wenn von DHCP die Adressen vergeben werden.
Bei mir sieht das so aus:
Hausnetz1 ist WlanTest1 192.168.1.1 und .vergibt Adressen von 192.168.1.11 bis 29. Der WAN-Eingang wird an den Internetrouter gesteckt, der die externe IP-Adresse über DHCP vergibt, die evtl. täglich gewechselt wird.

Hausnetz2 ist WlanTest2 mit 192.168.2.1 und vergibt Adressen von 192.168.2.11 bis 29. Er wird an WlanTest1 gesteckt und erhält eine DHCP-Adresse. Übersichtlicher ist es, wenn man manuell z.B. 192.168.1.2 vergibt, die nicht von DHCP vergeben wird und damit wechseln kann. Dann ist WlanTest2 immer unter 192.168.1.2 erreichbar und erleichtert eine Fehlersuche.
PCs usw. werden per DHCP verbunden und an der IP-Adresse kann man auch erkennen, in welchem Netz sie gerade sind: 192.168.1.x oder 192.168.2.x. An diese Netze kommen nur Rechner die stabil laufen.

Für Experimente habe ich ein weiteres Subnetz WlanBOB1 mit 192.168.10.1 und den Testadressen 192.168.11 bis 39 ( siehe oben ) Es ist bei Fritzboxen nicht ganz so einfach, eine feste Adresse für bestimmte Rechner zu reservieren, aber die Mühe lohnt sich.
Ich habe 8 RaspberryPi und 3 FiPy. Dann folgt:
RPi1 bis 8 => 192.168.10.21 bis 28
FiPy1 bis 3 => 192.168.10.31 bis 33

WlanBOB1 habe ich an WlanTest2 gesteckt, so kann ich von “oben” über alle Subnetze ins Internet sehen. Wenn mein PC in WlanBOB1 ist, kann ich per ( Advanced ) IP-Scanner alle Adressen
192.168.10.x
192.168.2.x
192.168.1.x sehen. Umgekehrt geht das aber nicht. Die Firewalls in den Routern verhindern das.
Ich kann also nicht von WlanTest1 in WlanBOB1 scannen