Hauptmenü

Incoming

Begonnen von RichardCZ, 07 Mai 2020, 14:55:18

Vorheriges Thema - Nächstes Thema

RichardCZ

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 11 Mai 2020, 22:24:19
Ja wenn schon, dann programmieren wir Arduinos objektorientiert.  ;)
Aber gerne doch! (Meine Sketches würden heute evtl. ( ::) ) auch anders aussehen).

Anmerkungen:
- Warum dann kein #include samt entsprechendem header+cpp?
- Ohne das näher geprüft zu haben müßte das hier den code weiter vereinfachen helfen, oder? https://playground.arduino.cc/Code/Timer/




Da wir irgendwie auch noch den Grabbelkisten-Anteil in dem Thread haben, noch ein paar "Schätzchen":

Kennst du vermutlich (klang danach, als wären die bestellt) - kapazitative Touch-Taster. Sind super, wenn man im Außenbereich versteckte Schaltmöglichkeiten braucht. Steckt z.B. neben meiner Regenwasserpumpe in einer spritzwassergeschützten Aufputzdose...

Für Wassertanks auch nett (auch wenn das Kabel länger sein dürfte): Schwimmerschalter. Gestern noch in einer "extended version" gefunden, hat soweit erkennbar zwei Schaltpunkte mit ~10+cm Abstand - sehr nett, wenn man einen Wasserstand in einer "Gießkannentonne" innerhalb eines bestimmten Bereichs halten will.



Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 12 Mai 2020, 09:52:57
Aber gerne doch! (Meine Sketches würden heute evtl. ( ::) ) auch anders aussehen).

Anmerkungen:
- Warum dann kein #include samt entsprechendem header+cpp?
- Ohne das näher geprüft zu haben müßte das hier den code weiter vereinfachen helfen, oder? https://playground.arduino.cc/Code/Timer/

- Weil spät Abend.
- ja, als unbedarfter Neuling erfindet man das Rad schonmal neu. Das kann man ab und zu bei Projekten beobachten.  ;)

Ich muss bei dem Arduino Zeug erstmal "ein Gefühl für" bekommen. Hardware Timer wollte ich explizit nicht benutzen um später ggf. nicht irgendwelchen libs in die Quere zu kommen. Naja und dann fehlt mir natürlich noch das Bibliothekswissen. Muss mich mal rumtreiben um zu sehen was es so an fertigen Rädern schon gibt.

Zitat
Da wir irgendwie auch noch den Grabbelkisten-Anteil in dem Thread haben, noch ein paar "Schätzchen":
Kennst du vermutlich (klang danach, als wären die bestellt)

kommt morgen: https://www.laskarduino.cz/robotdyn-kapacitni-dotykovy-senzor-ttp223b/
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Die Timer-Geschichte müßte millis()-basiert sein und von daher nicht an einer konkreten Hardware abhängig sein: https://github.com/JChristensen/Timer/blob/master/Timer.cpp#L45. Kann aber sein, dass ich mich täusche, meine C-"Kenntnisse" sind eher noch schlechter wie die in Perl ;D .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 12 Mai 2020, 11:03:03
Die Timer-Geschichte müßte millis()-basiert sein und von daher nicht an einer konkreten Hardware abhängig sein: https://github.com/JChristensen/Timer/blob/master/Timer.cpp#L45.

Ja klar. Er macht's "genau so" wie ich. Bzw. ich wie er.  :) Ich sage ja - Mangel an neuen Rädern gibt's nicht.

PS: Es wird echt immer schlimmer...
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Schlimmer? You ain't seen nothing yet ;D , zumindest nicht meine "Kunstwerke"... (Nein, ich hol' die nicht aus ihren Dosen ::) !)

Das sieht jetzt schon irgendwie nach RS485 aus :) . Die Kabelführung "raus aus dem Bild" bzw. zum vorderen Nano hin gibt allerdings Rätsel auf? Sind da noch mehr Nanos? Und Verbindungen DE-RE sehe ich auch keine, habe aber vermutlich mal wieder was übersehen.

Einen Screenshot von HoBo mit laufendem "on-for-timer" für das Relay hast du nicht zufällig schon parat? (Schon klar, zu früh: du mußt erst noch kurz die MySensors-libs renovieren :P .)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

#66
Flenn

Ich bin unfähig und brauche Hilfe. Gateway aufsetzen ist scheinbar (nach allem was ich so interpretiere) kein Problem, aber irgendwie fehlt mir wohl das tiefere Verständnis wie ich da einen "stinknormalen" Node dahinterhänge.

Gateway hängt am USB am Rechner
Gateway und "Node dahinter" sind via RS485 verbunden.

Log sagt das hier. Das sieht aus wie "Gateway initialisiert, ruft aber in den finstren Wald hinein ohne Echo"

0;255;3;0;9;0 MCO:BGN:INIT GW,CP=RSNGA---,FQ=16,REL=255,VER=2.3.2
0;255;3;0;9;5 MCO:BGN:BFR
0;255;3;0;9;8 TSM:INIT
0;255;3;0;9;10 TSF:WUR:MS=0
0;255;3;0;9;12 TSM:INIT:TSP OK
0;255;3;0;9;15 TSM:INIT:GW MODE
0;255;3;0;9;18 TSM:READY:ID=0,PAR=0,DIS=0
0;255;3;0;9;21 MCO:REG:NOT NEEDED
0;255;3;0;14;Gateway startup complete.
0;255;0;0;18;2.3.2
0;255;3;0;11;Relay
0;255;3;0;12;1.0
0;1;0;0;3;
0;255;3;0;9;29 MCO:BGN:STP
0;255;3;0;9;36 MCO:BGN:INIT OK,TSP=1
0;255;3;0;9;39 TSM:READY:NWD REQ
0;255;3;0;9;59 ?TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:


Warum bekomme ich immer die kaputten?

Nachtrag:

Eine Ewigkeit später ist noch das hier aufgetaucht:

0;255;3;0;9;900011 TSF:SAN:OK

0   255   INTERNAL   false   I_LOG_MESSAGE   900011 TSF:SAN:OK   Sanity check passed

(ich lasse mir hier helfen: https://www.mysensors.org/build/parser)

Das sieht ja alles im Prinzip ermunternd aus, aber irgendwie besteht mein Mordsnetzwerk nur aus einem Node - dem Gateway.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

#67
NodeID ist bei der "echten" Node vergeben? Via Sketch?

EDIT: So ganz schlau werde ich aus der Schilderung nicht. Daher nochmal die "Minimalbedingungen":
1. Hinter dem Gateway muß ein Controller sitzen (z.B. FHEM). Kommt von dort auf bestimmte Anfragen keine Rückmeldung, startet keine der Nodes normal durch, sondern versucht bis in alle Ewigkeit, erst mal Verbindung mit dem Controller aufzunehmen. Wenn man das anders haben will, muß man das aktiv (im Sketch) unterbinden (das habe ich bei allen meinen Nodes, z.B. "#define MY_TRANSPORT_WAIT_READY_MS 20000" für 20 Sek.).
2. Bei RS485 klappt die automatische Vergabe von ID's nicht (es scheint bei RS485 keine vorgegebene Hardwareadresse zu geben, an die man eine entsprechende Nachricht zurücksenden könnte). Daher muß man die im Sketch (außer bei Gateways) vorgeben.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Also:

Im Sketch habe ich #define MY_ID 10.
Gateway bekommt wohl immer ID 0

Das mit dem Controller ist für mich ein Novum. Ich hätte mir das jetzt eher so vorgestellt/gewünscht, dass ich hinters Gateway ein einfaches Minicom klemme und beobachte wie da die Daten eintrudeln. Übrigens, im Sketch (der Node 10) war noch die SLEEP_TIME auf 120s gestellt, das habe ich jetzt auf 1s runter.

unsigned long SLEEP_TIME = 1000;

Aber nüscht tut sich. Nur die rote LED (also die für Error, ich habe rot, gelb, grün verbaut) der Node blinkt ab und zu.

// Enable debug prints to serial monitor
#define MY_DEBUG


Habe ich auf dem GW aktiviert.
PS: Mehr Spielsachen sind da - u.a. die Black Pills. Hoffentlich funktioniert dann auch mal was davon.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Wenn ohne Controller, dann mit
#define MY_TRANSPORT_WAIT_READY_MS 200
Und mit sleep würde ich bei zentral versorgtem RS485 gar nicht anfangen, sondern alles als non-blocking loop auslegen. SLEEP_TIME hat jedenfalls bei den Standardsketchen mit der Anfrage nach einer Rückmeldung vom Controler nichts zu tun.

(Und meine Sichtweise auf "Hoffentlich funktioniert dann auch mal was davon": es tut alles so, wie man es erwarten würde! Die Node versucht alle paar Minuten (?, jedenfalls erst in kurzen Zyklen, dann immer länger werdend, bis irgendwann mal die Obergrenze erreicht ist) mal wieder, eine Rückmeldung vom Controller zu bekommen. Das schlägt fehl, daher hast du einen positiven Funktionstest der Fehleranzeige. Alles gut ;) !)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Also:

MYSENSOR_0   ???

und damit verbundene trim/undef Probleme kommen genau dann, wenn man einfach keine "presentation" in einem Sketch definiert.
Tut man das:
MYSENSOR_0 received presentation
und alles ist in Butter.

Status:

* Ich habe es immer noch nicht geschafft eine Node hinter ein GW zu klemmen, aber mein GW tut jetzt auch mit Sensoren/Aktoren dran
=> Muss ich noch tüfteln

* Obwohl ich "repeater mode" im GW explizit nicht gesetzt habe, wird es in FHEM gesetzt. Wenn ich es lösche, bleibt es weg (muss ich noch checken ob das auch über einen Restart hinweg so bleibt)

* Gibt es eine elegante Möglichkeit im FHEM einen Button zu definieren "Detach GW" - oder so ähnlich?

Ich würde gerne den Port "mit einem Klick" freigeben, wenn ich da via Arduino IDE ne neue Version draufschiessen will. Momentan muss ich HoBo mit shutdown runterfahren, mangels besseren Wissens um eine bessere Lösung.

* Ich habe es leider auch noch nicht geschafft ein Relais auf dem GW via FHEM zum klicken zu bringen. Jegliche Versuche da power/status zwischen 1 und 0, on/off zu schalten waren fruchtlos-still.




Die Black Pills et al. sind fertiggelötet (Stiftleisten) und die teste ich jetzt auch mal. Daumen drücken.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 14 Mai 2020, 12:56:24
und damit verbundene trim/undef Probleme kommen genau dann, wenn man einfach keine "presentation" in einem Sketch definiert.
OK, können wir auf die "ToDo" nehmen, ist aber low prio.

Zitat
* Ich habe es immer noch nicht geschafft eine Node hinter ein GW zu klemmen, aber mein GW tut jetzt auch mit Sensoren/Aktoren dran
=> Muss ich noch tüfteln
Das wird easy...

Zitat* Obwohl ich "repeater mode" im GW explizit nicht gesetzt habe, wird es in FHEM gesetzt. Wenn ich es lösche, bleibt es weg (muss ich noch checken ob das auch über einen Restart hinweg so bleibt)
Das ist am GW "unnützes Zeug" und an echten Repeater-Nodes nur informatorisch. Heißt (afaik) nur, dass der Arduinos Nachrichten puffern kann und kommt vermutlich nach jeder Presentation wieder.

Zitat* Gibt es eine elegante Möglichkeit im FHEM einen Button zu definieren "Detach GW" - oder so ähnlich?

Ich würde gerne den Port "mit einem Klick" freigeben, wenn ich da via Arduino IDE ne neue Version draufschiessen will. Momentan muss ich HoBo mit shutdown runterfahren, mangels besseren Wissens um eine bessere Lösung.
"Einfach" einen setter mit "noArg" definieren (%sets, https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/00_MYSENSORS.pm#L42 ff), schon kannst du das in der setFn hübsch aufbohren.
Meine Lösung: Auf dem Server liegt keine Arduino IDE => im laufenden Betrieb abstöpseln, an meinen Laptop dran und flashen, wieder anstöpseln. 1 Minute Ausfall alle 2 Jahre statt 1*2-4 Stunden coden und testen (für mich). Kann sein, dass es mit dem OTA-feature auch ginge, die firmware so draufzubeamen, aber für RS485 bräuchte man dazu externen Speicher.

Zitat* Ich habe es leider auch noch nicht geschafft ein Relais auf dem GW via FHEM zum klicken zu bringen. Jegliche Versuche da power/status zwischen 1 und 0, on/off zu schalten waren fruchtlos-still.
Der setter wäre "statusn" (die ChildID für n muß eine 1 oder höher sein, afaik). Notfalls mal wieder einen aktuellen Sketch zeigen und ein list einstellen. Es gibt auch erweiterte Möglichkeiten, wenn man das Relais zum state-Reading erklärt, wie es das attrTemplate "A_24a_Relay_Actuator" exemplarisch für status1 vorführt (es kann aber immer nur eines geben, das man so "bevorzugt"). Jedenfalls: dann kann man auch "set MYSENSORS_0 on-for-timer 60" nehmen, um das Relais eine Minute anzumachen, und mit dem attrTemplate sieht man dann auch, dass ein timer läuft ;) ...
Zitat
Die Black Pills et al. sind fertiggelötet (Stiftleisten) und die teste ich jetzt auch mal. Daumen drücken.
Daumendrück!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Das Relais klickt!  :) aus einem HoBo static image heraus. (Arduino Nano hardware)





Black Pill leuchtet zwar, und zeigt sich auch

Bus 001 Device 016: ID 1eaf:0004 LeafLabs Maple

aber ansonsten mag der mich ned. Ich habe aber auch zugegebenermaßen noch 0 die Peilung.
Selbst nach nach zig Webseiten, zig YouTube Videos und mittlerweile perfekter Spracherkennung von Indian-English komme ich irgendwie nicht weiter.

Der Reihe nach:

Arduino IDE tut ja mit nano
Board definitions habe ich geladen, auch den STMcube
sogar dfu-util

/etc/udev/rules.d/45-maple.rules

ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev"
ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev"
ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple"
ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple"


Vermutlich nicht notwendig, aber was tut man nicht alles wenn man verzweifelt ist. /dev/ttyUSB - nada.

Wie auch immer, dmesg sieht relativ schön aus, so lange ich nicht BOOT0 jumper auf 1 setze.

[174435.167336] usb 1-2: new full-speed USB device number 34 using xhci_hcd
[174435.308776] usb 1-2: New USB device found, idVendor=1eaf, idProduct=0003, bcdDevice= 2.01
[174435.308782] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[174435.308785] usb 1-2: Product: Maple 003
[174435.308787] usb 1-2: Manufacturer: LeafLabs
[174435.308790] usb 1-2: SerialNumber: LLM 003
[174436.658446] usb 1-2: USB disconnect, device number 34
[174436.947345] usb 1-2: new full-speed USB device number 35 using xhci_hcd
[174437.092420] usb 1-2: New USB device found, idVendor=1eaf, idProduct=0004, bcdDevice= 2.00
[174437.092426] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[174437.092429] usb 1-2: Product: Maple
[174437.092432] usb 1-2: Manufacturer: LeafLabs


Ich vermute(!) ich habe einen Maple Bootloader 2.0. Wenn ich also als upload method den hernehme und Boot0 jumper auf 1 setze, und versuche das Blink-Programm upzuloaden, dann kommt nach ungefähr 100 Jahren Timeout:

dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
dfu-util: Invalid DFU suffix signature
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org

dfu-util: No DFU capable USB device available
Waiting for /dev/ttyS0 serial...Done


Aber das wundert mich nicht so, denn als Port ist stur /dev/ttyS0 angegeben, ich hätte schon erwartet, dass das über /dev/ttyUSB0 oder so gehen muss, aber den gibt es unter /dev auch nicht.

*krächz*
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 14 Mai 2020, 18:01:06
Das Relais klickt!  :) aus einem HoBo static image heraus. (Arduino Nano hardware)
Dann also: Willkommen in der MySensors-Welt :) .

ZitatBlack Pill leuchtet zwar, und zeigt sich auch
Ähm, dazu hatte ich ja geschrieben, dass STM32 eine ganz andere Welt ist als "normale" Arduinos und eine ganze Ecke komplexer. (oder hatte ich das wirklich unterschlagen?!?).

In der Regel kommen die STM32-Dinger ganz ohne Bootloader, was bedeutet, dass du das als erstes erledigen mußt. Am einfachsten mit einem USB-Seriell-Wandler (A9/A10), und zwar am besten dann den BL nehmen, mit dem man weitere Flash-Vorgänge über USB machen kann (weiß grade nicht, wie der genau heißt).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 14 Mai 2020, 18:07:59
Dann also: Willkommen in der MySensors-Welt :) .
Ähm, dazu hatte ich ja geschrieben, dass STM32 eine ganz andere Welt ist als "normale" Arduinos und eine ganze Ecke komplexer. (oder hatte ich das wirklich unterschlagen?!?).

In der Regel kommen die STM32-Dinger ganz ohne Bootloader, was bedeutet, dass du das als erstes erledigen mußt. Am einfachsten mit einem USB-Seriell-Wandler (A9/A10), und zwar am besten dann den BL nehmen, mit dem man weitere Flash-Vorgänge über USB machen kann (weiß grade nicht, wie der genau heißt).

Deswegen wollte ich ja nicht ganz hardcore gehen und habe einen "mit Arduino Bootloader" bestellt. Na gut, stocher ich noch ein wenig im Trüben.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.