Hauptmenü

Relais Steuerung

Begonnen von Markus., 13 August 2017, 18:18:30

Vorheriges Thema - Nächstes Thema

Markus.

Hallo Zusammen,

bin mir gerade mal einen Relais-Node am aufbauen. Also Hardware ist ein Arduino pro mini 3,3V auf einem Easy PCB. Versuchen will ich das ganze mal über Batteriebetrieb wobei ich schlussendlich auf eine 3,3 Volt Stromquelle zurückgreifen werde.
Im Sketch hab ich mal ein Relais definiert. Für den Anfang will ich nur mal mit dem Digitalen Ausgang rumspielen an dem ich eine LED angeschlossen habe. Aber irgendwie verbindet er sich nicht mit dem Gateway. Wäre klasse wenn sich mal einer den Sketch anschauen könnte ob es eventuell daran liegt. Wenn nicht muss ich nochmal Spannungsversorgung und Kondensator vom NRF nachschauen.

// Enable debug prints to serial monitor
#define MY_DEBUG

// Enable and select radio type attached
#define MY_RADIO_NRF24


//#define MY_RADIO_NRF5_ESB
//#define MY_RADIO_RFM69
//#define MY_RADIO_RFM95

// Enable repeater functionality for this node
//#define MY_REPEATER_FEATURE

#include <MySensors.h>

#define RELAY_1  3  // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
#define NUMBER_OF_RELAYS 1 // Total number of attached relays
#define RELAY_ON 1  // GPIO value to write to turn on attached relay
#define RELAY_OFF 0 // GPIO value to write to turn off attached relay


void before()
{
    for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
        // Make sure relays are off when starting up
        digitalWrite(pin, RELAY_OFF);
        // Then set relay pins in output mode
        pinMode(pin, OUTPUT);
        // Set relay to last known state (using eeprom storage)
        digitalWrite(pin, loadState(sensor)?RELAY_ON:RELAY_OFF);
    }
}

void setup()
{

}

void presentation()
{
    // Send the sketch version information to the gateway and Controller
    sendSketchInfo("Relay", "1.0");

    for (int sensor=1, pin=RELAY_1; sensor<=NUMBER_OF_RELAYS; sensor++, pin++) {
        // Register all sensors to gw (they will be created as child devices)
        present(sensor, S_BINARY);
    }
}


void loop()
{

}

void receive(const MyMessage &message)
{
    // We only expect one type of message from controller. But we better check anyway.
    if (message.type==V_STATUS) {
        // Change relay state
        digitalWrite(message.sensor-1+RELAY_1, message.getBool()?RELAY_ON:RELAY_OFF);
        // Store state in eeprom
        saveState(message.sensor, message.getBool());
        // Write some debug info
        Serial.print("Incoming change for sensor:");
        Serial.print(message.sensor);
        Serial.print(", New status: ");
        Serial.println(message.getBool());
    }
}

Ist eigentlich der Standard Sketch von Mysensors...

Gruß

Markus

Markus.

hier noch die Meldung der Konsole...


0 MCO:BGN:INIT NODE,CP=RNNNA--,VER=2.1.1
4 MCO:BGN:BFR
4 TSM:INIT
6 TSF:WUR:MS=0
12 TSM:INIT:TSP OK
14 TSM:FPAR
16 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
2025 !TSM:FPAR:NO REPLY
2027 TSM:FPAR
2029 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
4038 !TSM:FPAR:NO REPLY
4040 TSM:FPAR
4042 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
6051 !TSM:FPAR:NO REPLY
6053 TSM:FPAR
6055 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
8065 !TSM:FPAR:FAIL
8067 TSM:FAIL:CNT=1
8069 TSM:FAIL:PDT



ich hab jetzt mal einen funktionierten Node umgeflasht und da ist das selbe...:-(

Beta-User

...das hat auch nichts mit Relais zu tun; ich nehme mal an, das ist Deine erste Node überhaupt, oder?

Der Inclusion Mode am GW ist an? autocreate auch?
Wie weit ist die Node vom GW weg?
Was siehst Du an der Konsole, wenn Du das GW betrachtest; kommt da was an?

Gruß, Beta-User
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

Markus.

nee habe ca. 8 DHT22 am laufen. Der Node ist ca. 2 Meter vom Gateway weg. autocreate is an der Inclusion mode ist auch auf 1.:-(
Am Gateway kommen nur Infos von den anderen Nodes...

Gruß

Markus

Markus.

aber mal ne blöde frage zwischendurch....

wie kann ich putty denn so einstellen, das die Statuszeilen unter einander kommen und nicht immer so versetzt??


0;255;3;0;14;Gateway startup complete.
                                      0;255;0;0;18;2.1.1
                                                        100;0;1;0;0;24.8
                                                                        100;255;                                                                             3;0;0;87
        100;5;1;0;38;3.58
                         103;1;1;0;0;22.7
                                         103;255;3;0;0;79
                                                         103;3;1;0;38;3.26
                                                                          102;0;                                                                             1;0;1;49.7
          102;255;3;0;0;89
                          102;3;1;0;38;3.66
                                           107;1;1;0;0;24.1
                                                           107;0;1;0;1;45.8
                                                                           107;2                                                                             55;3;0;0;92
           107;3;1;0;38;3.78
                            106;1;1;0;0;24.4
                                            106;0;1;0;1;48.6
                                                            106;255;3;0;0;87
                                                                            106;                                                                             3;1;0;38;3.58
             104;1;1;0;0;23.6
                             104;0;1;0;1;44.8
                                             104;255;3;0;0;86
                                                             104;3;1;0;38;3.57
                                                                              105;0;1;0;1;66.8
                                                                                              105;255;3;0;0;84
                                                                                                              105;3;1;0;38;3.47
                                                                                                                               102;1;1;0;0;23.5
                                                                                                                                               102;0;1;0;1;50.2
  102;255;3;0;0;88
                  102;3;1;0;38;3.65
                                   100;0;1;0;0;24.8
                                                   100;255;3;0;0;87
                                                                   100;5;1;0;38;3.58
                                                                                    103;255;3;0;0;79
                                                                                                    103;3;1;0;38;3.26
                                                                                                                     102;255;3;0;0;89
                                                                                                                                     102;3;1;0;38;3.67
                                                                                                                                                      108;1;1;0;0;27.6
         108;2;1;0;1;52
                       107;1;1;0;0;24.2
                                       107;0;1;0;1;45.7
                                                       107;255;3;0;0;91
                                                                       107;3;1;0;38;3.77
                                                                                        106;1;1;0;0;24.5
                                                                                                        106;0;1;0;1;48.4
                                                                                                                        106;255;3;0;0;87
                                                                                                                                        106;3;1;0;38;3.58
                                                                                                                                                         104;255;3;0;0;87
            104;3;1;0;38;3.58
                             105;0;1;0;1;58.9
                                             105;255;3;0;0;84
                                                             105;3;1;0;38;3.47
                                                                              100;0;1;0;0;24.8
                                                                                              100;255;3;0;0;87
                                                                                                              100;5;1;0;38;3.58


Beta-User

Zu putty kann ich nichts sagen...

Hast Du was am Kanal verändert?
Welchen SW-Stand hat das GW (sollte immer >=der Node-Versionen sein)?

Welche Versionen haben die anderen Nodes?
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

Markus.

Am kanal hab ich auch nichts geändert. Version am gateway und alle nodes ist 2.1.1. irgendwie sehr seltsam. Gibt es irgendwie einen minimal sketch den ich mal testen kann? Hab iregdnwie das gefühl das es doch am sketch liegt. Will jetzt auch nicht einen funktionierenden sensor auseinander bauen...

Gruß

Markus

Beta-User

Die Ausgabe der Seriellen Konsole der Node ist eindeutig: Keine Kommunikation.

Wenn es ein SW-Problem ist, dann im Funk-Bereich, aber m.E. nicht beim Rest. Versuche mal, die nRF-lib entweder upzudaten oder wieder down (im library-MAnager der IDE, wenn Du die benutzt). Ist bei mir aktuell 1.3, aber Achtung: ich habe schon eine Weile keine nRF-Nodes mehr neu aufgesetzt, nur gesehen, dass die lib aktualisiert wurde.
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

Markus.

Die NRF Lib ist Version 1.3. hab mal nach einem downgrade geflasht mit gleichem Ergebnis. Aber diese Lib wird doch auch garnicht verwendet im Sketch ??!! Es wird doch nur die MySensors verwendet..
Ich bau morgen mal einen Dallas Sensor dran und versuch das Ding mal als Temperatur Sensor zum laufen zu bekommen..
Irgendwie sehr seltsam das alles :-(



Beta-User

Du hast recht, MySensors scheint eine eigene RF24-lib zu nutzen.

Habe eben einen schnellen Test mit einer Repeater-Node gemacht. Jedenfalls bei Version 2.2.0-beta ist der Kommunikationslayer an sich i.O..
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

Markus.

#10
ich check morgen nochmal die Hardware, besonders die Spannungsversorgung. Werde dann mal weiter berichten. Bin mal gespannt wo der Fehler dann schlussendlich liegt.. :-(

erstmal danke für deine Hilfe hier !!

Gruß

Markus

Markus.

#11
so habe gestern mal weiter geforscht und habe mal Spannungsversorgung überprüft, Verkabelung usw. Sieht soweit alles gut aus.
Dann habe ich mal aus dem Sensor einen Dallas Temperatur Sensor gebaut und geflasht, was ja bisher immer funktioniert hat. Sie da selbes Problem. Erst als ich dann das FHEM samt OS und Gateway mehrmals neu gestartet hatte wurde der Sensor erkannt. Der Sensor übertrug auch zeitweise Daten. Dann habe ich das Relais-Sketch geladen und auch dieser wurde soweit erkannt und angelegt in FHEM. Jedoch wars das auch schon kein schalten möglich ..:-(

So langsam habe ich das Gefühl das das Problem an den ALI-China-NRF24L01 Modulen liegt. Hatte da mal ein Packet mit 10 Modulen geholt...:-( Nunja hab mir jetzt mal neue bestellt von einen Shop hier in Deutschland von dem auch die anderen sind die funktioniert haben.
Bin mal gespannt...

Achso als Nachtrag noch am NRF habe ich zur Zeit nur einen 4,7yf Kondensator will da mal einen grösseren testen bis die neuen NRFs kommen.

smoudo

Ich habe das selbe Phänomen mit den nrf Chips. Auf nem 10er pcb vom Ali hab ich 2 drauf die Funken top.
Beim Rest keine 5 Meter mit Sicht. Habe das Problem aber auch mit Modulen aus deutschen Shops. Ich vermute riesige serienstreuungen. Werde bei Zeit mal mit wired experimentieren, ansonsten auf rfm wechseln.

Grüße

Matze

Markus.

mmh Umrüsten auf rfm wäre auch ne Möglichkeit.Aber bin eigentlich soweit zufrieden mit der Leistung/Reichweite bei den NRFs seitdem ich das Gateway auf nrf24l01 + PA + lna umgebaut habe. Aber mal schauen was die neuen Module dann machen. Eventuell hab ich ja doch wo anders das eigentliche Problem ...:-(

Markus.

Hat zufällig einer einen Relais-Sketch mit Button bei dem das Relais auch ohne ack vom Controller geschaltet wird?

Also völlig autark vom Controller? Wird eigentlich das notwendige ack von FHEM übehaupt gesendet wenn ich den Relais/Button Sketch von Mysensors verwende?
Beim betätigen des Buttons mit diesem Sketch wird ja eigentlich der Statusänderungs-Request ans Gateway geschickt. Dann muss ja zum ausführen des eigentlichen Schaltbefehls das ack vom Controller zurück kommen oder?


void receive(const MyMessage &message) {
  // We only expect one type of message from controller. But we better check anyway.
  if (message.isAck()) {
     Serial.println("This is an ack from gateway");
  }

  if (message.type == V_LIGHT) {
     // Change relay state
     state = message.getBool();
     digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF);
     // Store state in eeprom
     saveState(CHILD_ID, state);

     // Write some debug info
     Serial.print("Incoming change for sensor:");
     Serial.print(message.sensor);
     Serial.print(", New status: ");
     Serial.println(message.getBool());
   }
}




Gruß

Markus