Neues Modul für Ein-Knopf-Garagentor-Steuerungen

Begonnen von farion, 06 Februar 2016, 18:02:43

Vorheriges Thema - Nächstes Thema

andies

#75
Ich habe das nun doch anders gemacht, ich weiß gar nicht, ob das hier hin darf.

Ich habe im Keller einen arduino micro und einen ESP8266 verkabelt; beide kommunizieren seriell (ich brauchte eine Weile um herauszufinden, dass die Schnittstelle beim Micro dann Serial1 heißt). Am arduino hängt ein DHT22 und misst die Temperatur, sowie ein Reed-Kontakt. Damit mein wackliges Garagentor auch gemessen werden kann, musste ich etwas tiefer in die Tasche greifen und eines bei pollin kaufen (https://www.pollin.de/p/alu-magnetkontakt-mit-neodymmagnet-mk-106a-420716, da sind auch mal 5cm Entfernung drin). Zugleich habe ich einen RXB6-Empfänger installiert, der dann misst, ob ein bestimmtes Funksignal eingetroffen ist und öffnet dann mit einem Relais das Tor.

Hier beide Sketche und ein Foto meiner Installation. Auf dem ESP8266:
/*
  Dieser Webserver kommuniziert seriell mit dem arduino.
*/

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char *ssid = "WLAN-120954";
const char *password = "XXXXXXXXXXXXXXX";
String webString = "timeout";   // String to display

ESP8266WebServer server ( 80 );

void setup ( void ) {
  Serial.begin(9600);

  WiFi.begin ( ssid, password );
  // Wait for connection
  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
  }
  server.on ( "/", handleRoot);
  server.onNotFound ( handleNotFound );
  server.begin();
}


void handleNotFound() { //in case we opened the wrong page
  server.send ( 404, "text/plain", "Not found, reacts only on root / showing temperature and the like");
}


void handleRoot() {
  server.send(200, "text/plain", webString);
}


void loop ( void ) {
  if (Serial.available() > 0) {
    webString= Serial.readString();
  }

  server.handleClient();
}
und auf dem arduino
/*
  Dieser arduino hört regelmässig 433 MHz und wartet auf das Drücken einer Taste an der Fernbedienung. Bei "On" löst
  er das Tor mit dem Relais aus. Bei "Off" wird zuerst beim ESP seriell angefragt, ob das Tor bereits geschlossen ist - wenn nein, wird
  das Relais ausgelöst.
*/

#include <RCSwitch.h>
#include <DHT.h>

RCSwitch mySwitch = RCSwitch();

#define RECEIVER 1 //Receiver on pin #2 which is interrupt 1
#define RELAIS 3 //relais to pin #3
#define REED 4 //Reed at pin #4
#define DHTPIN  5//DHT pin #5
#define DHTTYPE DHT22

// Initialize DHT sensor
// NOTE: For working with a faster than ATmega328p 16 MHz Arduino chip, like an ESP8266,
// you need to increase the threshold for cycle counts considered a 1 or 0.
// You can do this by passing a 3rd parameter for this threshold.  It's a bit
// of fiddling to find the right value, but in general the faster the CPU the
// higher the value.  The default for a 16MHz AVR is a value of 6.  For an
// Arduino Due that runs at 84mhz a value of 30 works.
// This is for the ESP8266 processor on ESP-01, 11 works fine for ESP8266
DHT dht(DHTPIN, DHTTYPE);

float humidity, temp;  // Values read from sensor
String webString = "";   // String to display
unsigned long previousMillis = 0;        // will store when last temp was read
unsigned long previousData = 0;        // will store when last data were sent
const long interval = 500; // interval at which to read sensor
const char* b;
byte Tor;


static const char* bin2tristate(const char* bin) {
  static char returnValue[50];
  int pos = 0;
  int pos2 = 0;
  while (bin[pos] != '\0' && bin[pos + 1] != '\0') {
    if (bin[pos] == '0' && bin[pos + 1] == '0') {
      returnValue[pos2] = '0';
    } else if (bin[pos] == '1' && bin[pos + 1] == '1') {
      returnValue[pos2] = '1';
    } else if (bin[pos] == '0' && bin[pos + 1] == '1') {
      returnValue[pos2] = 'F';
    } else {
      return "not applicable";
    }
    pos = pos + 2;
    pos2++;
  }
  returnValue[pos2] = '\0';
  return returnValue;
}


static char * dec2binWzerofill(unsigned long Dec, unsigned int bitLength) {
  static char bin[64];
  unsigned int i = 0;

  while (Dec > 0) {
    bin[32 + i++] = ((Dec & 1) > 0) ? '1' : '0';
    Dec = Dec >> 1;
  }
  for (unsigned int j = 0; j < bitLength; j++) {
    if (j >= bitLength - i) {
      bin[j] = bin[ 31 + i - (j - (bitLength - i)) ];
    } else {
      bin[j] = '0';
    }
  }
  bin[bitLength] = '\0';
  return bin;
}


byte getTor() {
  byte Tor = 1; // "offen" als default
  if (digitalRead(REED) == LOW) {
    Tor = 0;  //zu, wenn LOW
  }
  return Tor;
}


void LeseSignal(unsigned long decimal, unsigned int length) {
  if (decimal != 0) {
    b = bin2tristate(dec2binWzerofill(decimal, length));
    //Serial.println("b " + String(b)); //DEBUG
    if ( strcmp( b, "0FF0F0F0FF0F") == 0 ) {  //FB zu Hause auf C "On" gedrueckt
      OeffneTor();
    }
    if ( strcmp( b, "0FF0F0F0FFF0") == 0 ) { //FB zu Hause auf C "Off" gedrueckt
      //Serial.println("Tor " + String((byte)Tor)); //DEBUG
      if ( getTor() != 0) {
        OeffneTor();
      }
    }
  }
}


void OeffneTor() {
  digitalWrite(RELAIS, HIGH);
  delay(400);
  digitalWrite(RELAIS, LOW);
  delay(600);//insgesamt eine Sekunde Pause
}


void HoleDaten() {
  // Wait at least 500 milliseconds seconds between measurements.
  // if the difference between the current time and last time you read
  // the sensor is bigger than the interval you set, read the sensor
  // Works better than delay for things happening elsewhere also
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    // save the last time you read the sensor
    previousMillis = currentMillis;
  }
  else {
    delay(interval); //Sensor ist traege, also warten
  }

  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
  humidity = dht.readHumidity();          // Read humidity (percent)
  temp = dht.readTemperature();     // Read temperature as Celsius

  if (isnan(humidity) || isnan(temp)) {
    webString = "Failed to read from DHT sensor, Tor:  ";
  } else {
    webString = "Temperature: " + String((int)temp) + "C Humidity: " + String((int)humidity) + "% Tor: "; // Arduino has a hard time with float to string
  }
  webString = webString + String((byte)getTor());
  return ;
}


void setup() {
  Serial1.begin(9600);
  // while the serial stream is not open, do nothing:
  while (!Serial1) ;
 
  pinMode(RELAIS, OUTPUT);
  digitalWrite(RELAIS, LOW);

  mySwitch.enableReceive(RECEIVER);

  pinMode(DHTPIN, INPUT_PULLUP);
  dht.begin();

  pinMode(REED, INPUT_PULLUP);

  previousData = millis();
  HoleDaten();
  Serial1.print(webString+'\n');
}


void loop() {
  unsigned long currentData = millis();

  if (currentData - previousData > 6000 ) { //jede Minute (60.000 ms) Daten senden
    HoleDaten();
    Serial1.print(webString+'\n');
    previousData = millis();
  }

  if (mySwitch.available()) {  //433-Signal trifft ein
    LeseSignal(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength());
    mySwitch.resetAvailable();
  }
}

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

cs-online

Hi zusammen,

kann mir bitte einmal jemand erklären, wie ich meinen Sensor-Status hier eingeben muss:

closeSensorDeviceEvent

?? Irgendwie tut sich nichts, egal was ich probiere....

Danke, Grüße Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

hf007

Hallo zusammen,

ich verwende das Modul (v0.6) sein einigen Wochen mit einem Sommer Garagentorantrieb und Homematic Aktor und Sensor.
Funktioniert soweit alles. Bekomme die richtigen Anzeigen und kann das Tor öffnen und schliessen.

Leider habe ich das Reading: inconsistent = yes

Meine Vermutung
Das CLOSE_SENSOR_DEVICE geht auf einen Kontakt des Antriebs der geöffnet ist wenn das Tor geschlossen ist. (Bei offenem Tor wäre eine Lampe an)
Das CLOSE_SENSOR_DEVICE ist also "open" wenn das Tor zu ist. Dies könnte zu dem inconsistent = yes führen?

Sehe ich das richtig? und was könnte ich tun um das geradezubiegen?

Danke und Gruß
hf




axs77

Ich bedanke mich schon mal für das Modul.
Mein Hörmann aus den Anfängen der 80er läuft nämlich auch noch einwandfrei. Wenn auch nicht mehr mit der originalen Funkplatine welche irgendwann in Rauch aufgegangen ist ;-)

Als Sensoren für den Zustand würde ich die Fensterkontakte von Smartwares (SH5-TSM-A) versuchen. Die gibt es recht günstig (10,99€) und müssten mit dem IT v3 Protokoll laufen.
Hat da bereits jemand Erfahrungen mit?
Welchen Potifreien Kontakt ich als Taster nehme weiß ich noch nicht so genau.

Ich hätte da aber noch einen Verbesserungsvorschlag. Kann man nicht evtl noch einen dritten Sensor einbauen der prüft ob das Tor auch frei ist?
Denn die Verlockung ist ja groß das Tor, falls mal vergessen, abends von der Couch mit Alexa zu schliessen.
Steht da aber nun ein Auto halb drin oder eben irgendetwas anderes dann könnt es schließlich ein paar Kratzer geben.

Ich überlege noch wie ich das absichere. Per Lichtschranke oder Entfernungsmesser...

Grüße, Alex.
FHEM 5.8
CUL868
CUL433 a-culfw
RasPi -B

travelling-man

Hallo,

vielen Dank für das coole Modul, endlich kann ich mein in die Jahre gekommenes Hörmann Tor damit bedienen.
Zum auslesen der Sensoren ob das Tor geschlossen bzw. geöffnet ist verwendet ich ein HM-SCI-3-FM Sensor.

Da ich leider nicht so fit bin was Perl angeht, finde ich den Vorschlag von axs77 echt super.

Aktuell habe ich an dem Sensor noch ein freien Anschluss, mit dem ich gerne Überprüfen würde ob die Dachbodentreppe geöffnet ist und das öffnen des Tores ggf. blockieren.

Viele Grüße
T-M


steffen83

Hallo,

ich komme leider nicht ganz mit dem Modul klar. Aber es funktioniert fast einwandfrei, das ist schon mal super.
Woran es jedoch scheitert ist diese inconsistent, welches wohl mit dem XsensoreDevice(Event) zu tun hat.
Läuft es bei euch und was mache ich falsch?
Hätte schon gerne damit abgefangen, wenn von Hand der Schalter betätigt wird. aber er reagiert leider nicht.
Anbei habe ich mal 2 Screenshots von den Devices angehängt. Vielleicht seht ihr ja den Fehler. inconsistent bleibt nämlich immer auf Yes

Danke für eure Hilfe.
Gruß
Steffen
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Fhemschorsch

Hallo,

ich habe das Modul (v0.6)auch erfolgreich eingebunden, vielen Dank schon einmal dafür! Was mir aber auffällt: Ich habe einen Homematic HM-Sec-SCo Sensor, der meldet, wenn das Garagentor geschlossen ist. Der meldet auch ganz artig "closed", sobald das Tor geschlossen ist, aber das Modul hier meldet kurz danach doch wieder "open" und ich bekomme es nicht mehr systemisch zu, auch nicht mit forceClose.

Vielleicht hab ich auch komplett was falsch eingebunden, aber er verhält sich aus meiner Sicht nicht korrekt. Hier mal mein Versuchsaufbau:
Ich öffne das Tor und schließe es wieder. Dabei tracke ich im Event-Monitor alles, was mit Garagentor zu tun hat

2018-06-21 22:44:52 GarageDoorSingleButton Garagentor timeToClose: 0.00
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor timeToOpen: 18.00
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor level: 0
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor DrivingUp
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor timeToClose: 0.00
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor timeToOpen: 18.00
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor level: 0
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor pressQueueSize: 0
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor pressesTriggered: 14
2018-06-21 22:44:52 GarageDoorSingleButton Garagentor pressesDone: 14
2018-06-21 22:44:53 GarageDoorSingleButton Garagentor opening
2018-06-21 22:44:53 GarageDoorSingleButton Garagentor timeToClose: 1.35
2018-06-21 22:44:53 GarageDoorSingleButton Garagentor timeToOpen: 16.65
2018-06-21 22:44:53 GarageDoorSingleButton Garagentor level: 8
2018-06-21 22:44:53 GarageDoorSingleButton Garagentor closed
2018-06-21 22:44:54 readingsGroup BatterieStatus Garagentorsensor.zu.battery: ok
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu battery: ok
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu contact: open (to broadcast)
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu open
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu trigDst_broadcast: noConfig
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu trigger_cnt: 65
2018-06-21 22:44:54 CUL_HM Garagentorsensor.zu last: 2018-06-21 22:44:54
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor opening
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor pressQueueSize: 0
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor pressesTriggered: 14
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor pressesDone: 14
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor timeToClose: 2.40
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor timeToOpen: 15.60
2018-06-21 22:44:54 GarageDoorSingleButton Garagentor level: 13
2018-06-21 22:44:55 GarageDoorSingleButton Garagentor timeToClose: 3.45
2018-06-21 22:44:55 GarageDoorSingleButton Garagentor timeToOpen: 14.55
2018-06-21 22:44:55 GarageDoorSingleButton Garagentor level: 19
2018-06-21 22:44:56 GarageDoorSingleButton Garagentor timeToClose: 4.50
2018-06-21 22:44:56 GarageDoorSingleButton Garagentor timeToOpen: 13.50
2018-06-21 22:44:56 GarageDoorSingleButton Garagentor level: 25
2018-06-21 22:44:58 GarageDoorSingleButton Garagentor timeToClose: 5.55
2018-06-21 22:44:58 GarageDoorSingleButton Garagentor timeToOpen: 12.45
2018-06-21 22:44:58 GarageDoorSingleButton Garagentor level: 31
2018-06-21 22:44:58 GarageDoorSingleButton Garagentor closed
2018-06-21 22:44:59 GarageDoorSingleButton Garagentor timeToClose: 6.60
2018-06-21 22:44:59 GarageDoorSingleButton Garagentor timeToOpen: 11.40
2018-06-21 22:44:59 GarageDoorSingleButton Garagentor level: 37
2018-06-21 22:45:00 GarageDoorSingleButton Garagentor timeToClose: 7.65
2018-06-21 22:45:00 GarageDoorSingleButton Garagentor timeToOpen: 10.35
2018-06-21 22:45:00 GarageDoorSingleButton Garagentor level: 42
2018-06-21 22:45:01 GarageDoorSingleButton Garagentor timeToClose: 8.70
2018-06-21 22:45:01 GarageDoorSingleButton Garagentor timeToOpen: 9.30
2018-06-21 22:45:01 GarageDoorSingleButton Garagentor level: 48
2018-06-21 22:45:02 GarageDoorSingleButton Garagentor timeToClose: 9.75
2018-06-21 22:45:02 GarageDoorSingleButton Garagentor timeToOpen: 8.25
2018-06-21 22:45:02 GarageDoorSingleButton Garagentor level: 54
2018-06-21 22:45:03 GarageDoorSingleButton Garagentor timeToClose: 10.80
2018-06-21 22:45:03 GarageDoorSingleButton Garagentor timeToOpen: 7.20
2018-06-21 22:45:03 GarageDoorSingleButton Garagentor level: 60
2018-06-21 22:45:04 GarageDoorSingleButton Garagentor timeToClose: 11.85
2018-06-21 22:45:04 GarageDoorSingleButton Garagentor timeToOpen: 6.15
2018-06-21 22:45:04 GarageDoorSingleButton Garagentor level: 66
2018-06-21 22:45:05 GarageDoorSingleButton Garagentor timeToClose: 12.90
2018-06-21 22:45:05 GarageDoorSingleButton Garagentor timeToOpen: 5.10
2018-06-21 22:45:05 GarageDoorSingleButton Garagentor level: 72
2018-06-21 22:45:07 GarageDoorSingleButton Garagentor timeToClose: 14.88
2018-06-21 22:45:07 GarageDoorSingleButton Garagentor timeToOpen: 3.12
2018-06-21 22:45:07 GarageDoorSingleButton Garagentor level: 83
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToClose: 19.15
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToOpen: -1.15
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor level: 106
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToClose: 19.20
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToOpen: -1.20
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor level: 107
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor Open
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor inconsistent: Yes
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToClose: 18.00
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor timeToOpen: 0.00
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor level: 100
2018-06-21 22:45:11 GarageDoorSingleButton Garagentor open
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor timeToClose: 18.00
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor timeToOpen: 0.00
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor level: 100
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor DrivingDown
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor timeToClose: 18.00
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor timeToOpen: 0.00
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor level: 100
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor pressQueueSize: 0
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor pressesTriggered: 15
2018-06-21 22:45:17 GarageDoorSingleButton Garagentor pressesDone: 15
2018-06-21 22:45:18 GarageDoorSingleButton Garagentor timeToClose: 16.67
2018-06-21 22:45:18 GarageDoorSingleButton Garagentor timeToOpen: 1.33
2018-06-21 22:45:18 GarageDoorSingleButton Garagentor level: 93
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor pressQueueSize: 0
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor pressesTriggered: 15
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor pressesDone: 15
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor timeToClose: 15.62
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor timeToOpen: 2.38
2018-06-21 22:45:19 GarageDoorSingleButton Garagentor level: 87
2018-06-21 22:45:20 GarageDoorSingleButton Garagentor timeToClose: 14.57
2018-06-21 22:45:20 GarageDoorSingleButton Garagentor timeToOpen: 3.43
2018-06-21 22:45:20 GarageDoorSingleButton Garagentor level: 81
2018-06-21 22:45:21 GarageDoorSingleButton Garagentor timeToClose: 13.52
2018-06-21 22:45:21 GarageDoorSingleButton Garagentor timeToOpen: 4.48
2018-06-21 22:45:21 GarageDoorSingleButton Garagentor level: 75
2018-06-21 22:45:22 GarageDoorSingleButton Garagentor timeToClose: 12.47
2018-06-21 22:45:22 GarageDoorSingleButton Garagentor timeToOpen: 5.53
2018-06-21 22:45:22 GarageDoorSingleButton Garagentor level: 69
2018-06-21 22:45:23 GarageDoorSingleButton Garagentor timeToClose: 11.42
2018-06-21 22:45:23 GarageDoorSingleButton Garagentor timeToOpen: 6.58
2018-06-21 22:45:23 GarageDoorSingleButton Garagentor level: 63
2018-06-21 22:45:24 GarageDoorSingleButton Garagentor timeToClose: 10.37
2018-06-21 22:45:24 GarageDoorSingleButton Garagentor timeToOpen: 7.63
2018-06-21 22:45:24 GarageDoorSingleButton Garagentor level: 58
2018-06-21 22:45:25 GarageDoorSingleButton Garagentor timeToClose: 9.31
2018-06-21 22:45:25 GarageDoorSingleButton Garagentor timeToOpen: 8.69
2018-06-21 22:45:25 GarageDoorSingleButton Garagentor level: 52
2018-06-21 22:45:26 GarageDoorSingleButton Garagentor timeToClose: 8.26
2018-06-21 22:45:26 GarageDoorSingleButton Garagentor timeToOpen: 9.74
2018-06-21 22:45:26 GarageDoorSingleButton Garagentor level: 46
2018-06-21 22:45:28 GarageDoorSingleButton Garagentor timeToClose: 7.21
2018-06-21 22:45:28 GarageDoorSingleButton Garagentor timeToOpen: 10.79
2018-06-21 22:45:28 GarageDoorSingleButton Garagentor level: 40
2018-06-21 22:45:29 GarageDoorSingleButton Garagentor timeToClose: 6.16
2018-06-21 22:45:29 GarageDoorSingleButton Garagentor timeToOpen: 11.84
2018-06-21 22:45:29 GarageDoorSingleButton Garagentor level: 34
2018-06-21 22:45:29 GarageDoorSingleButton Garagentor closed
2018-06-21 22:45:30 readingsGroup BatterieStatus Garagentorsensor.zu.battery: ok
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor timeToClose: 5.03
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor timeToOpen: 12.97
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor level: 28
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor Closed
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor inconsistent: No
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor timeToClose: 0.00
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor timeToOpen: 18.00
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor level: 0
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu battery: ok
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu contact: closed (to broadcast)
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu closed
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu trigDst_broadcast: noConfig
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu trigger_cnt: 66
2018-06-21 22:45:30 CUL_HM Garagentorsensor.zu last: 2018-06-21 22:44:54
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor opening
2018-06-21 22:45:30 GarageDoorSingleButton Garagentor closed
2018-06-21 22:45:31 GarageDoorSingleButton Garagentor closed
2018-06-21 22:45:34 GarageDoorSingleButton Garagentor closed
2018-06-21 22:45:45 GarageDoorSingleButton Garagentor open


Für mich sieht das alles normal aus, allerdings sind die letzten 5 Zeilen echt seltsam. Das Tor ist zu, ich bediene nichts und dennoch switcht er zwischen opening, closed und dann wieder open.

Tiefer bin ich nicht gekommen mit einer Analyse, aber hat jemand eine Idee, woran das liegt?

Hier nochmal meine Raw Definition von meinem angelegten Modul:
defmod Garagentor GarageDoorSingleButton Toröffner Garagentorsensor.zu
attr Garagentor buttonDevice HM_392187
attr Garagentor buttonTriggerCommand on
attr Garagentor closeSensorDevice Garagentorsensor.zu
attr Garagentor closeSensorDeviceEvent closed
attr Garagentor room Garage
attr Garagentor totalTimeDown 18
attr Garagentor totalTimeUp 18

setstate Garagentor open
setstate Garagentor 2018-06-21 22:45:30 inconsistent No
setstate Garagentor 2018-06-21 22:45:30 level 0
setstate Garagentor 2018-06-21 22:45:19 pressQueueSize 0
setstate Garagentor 2018-06-21 22:45:19 pressesDone 15
setstate Garagentor 2018-06-21 22:45:19 pressesTriggered 15
setstate Garagentor 2018-06-21 22:45:45 state open
setstate Garagentor 2018-06-21 22:45:30 timeToClose 0.00
setstate Garagentor 2018-06-21 22:45:30 timeToOpen 18.00


Vielleicht ist mein closeSensorDeviceEvent ja auch falsch, so richtig bin ich da noch nicht durchgestiegen, was das zu bedeuten hat.

Über jeden Tipp freue ich mich :-)


Fhemschorsch

Oh, bei mir waren noch Relikte des alten Garagentores vorhanden, die haben da quergeschossen. Nun funktioniert alles super!

Hat jemand schon Homebridge integriert? Mit:

attr Garagentor genericDeviceType GarageDoorOpener
attr Garagentor homebridgeMapping CurrentDoorState=state,values=Closed:CLOSED;;;;Open:OPEN;;;;DrivingUp:OPENING;;;;DrivingDown:CLOSING\\
TargetDoorState=state,cmds=OPEN:open;;;;CLOSED:close,values=Closed:CLOSED;;;;Open:OPEN


Zeigt er immerhin das Garagentor an, allerdings haut das TargetDoorState noch nicht hin, raufdrücken bewirkt nichts...

axs77

#83
Ich kämpfe auch noch mit inconsistent. Eine genauere Beschreibung des Moduls wäre super. Oder läuft die letzte Version nicht richtig?

Edit: Habe jetzt auch nochmal die version 3 probiert. Hatte zum start tatsächlich das inconsistent auf no. Aber nun steht es wieder dauerhaft auf yes. Zudem würde ich gerne wissen warum mein Tor durch die Sensoren nicht auf "open" oder "closed" gesetzt wird wenn man es durch Funk oder den normalen Taster bedient.

Hey farion. Hilf uns doch bitte nochmal über die Straße ;-)
FHEM 5.8
CUL868
CUL433 a-culfw
RasPi -B

roman1528

Moin.

Habe heute zufällig dieses Modul entdeckt. Genau sowas kann ich brauchen!!!

Habe den Rademacher RolloPort SX5 DuoFern den ich auch über ein/en Relais/Taster ansteuern kann. RasPi in der Garage, DuoFernStick zu teuer bzw. für ein Device?

Habe das Modul mit meinem Testaufbau für die Garage gestestet und werde das Gefühl nicht los, dass es die Sensoren überhaupt nicht behandelt. Und wenn doch, dann ignoriert das Modul die openSensorDeviceEvent/closeSensorDeviceEvent Attribute. Oder wie werden diese richtig gesetzt? Es gibt ja keine Doku.
Dadurch wahrscheinlich auch "incosistent"! Ich habe bei mir konventionelle Magnetkontakte am GPIO hängen. Hier ist der state "on" oder "off". Unnötig zu sagen, dass es keinen Sinn macht den state zu verbiegen, wenn ich doch dem Modul sagen kann auf was es lauschen soll.

Was ich mich noch frage (weiß nicht ob es schon angesprochen wurde) warum man die Hochlauf/Runterlauf Zeiten festlegen muss.
Kann man nicht eine Initialisierungsfahr machen? Dazu hat man doch die Auf/Zu Sensoren?!?

Ansonsten kann ich nur sagen respekt. Ich hab null Plan von Perl......

Grüße^^
i3-10305T 4x3GHz;8GB RAM;250GB & 1TB NVMe:
FHEM 6.2;FTUI;8" Tablet's+Fully;NsPanelPro;HUE;ESPRGBWW;HM(CCU3);Duofern; ASC;MQTT(Tasmota);netatmo;SONOS;eBus;DbLog;XiaomiDevice;NUT;ModbusAttr

RPi3+: FHEM 6.2;I²C;GPIO;RFID;G-Tag;XiaomiBTLESens
RPi3: FHEM 6.2;DIY Relais-Board;I²C;GPIO;RFID;Photovoltaik

cs-online

...die rauf-/runter-Zeiten sind wichtig, wenn du a) keine Endsensoren hast um ca. sehen zu können, wann es zu ist, und b) um berechnen zu können, wie weit auf / zu das Tor ist, wenn es nicht ganz auf / zu ist.
Das Problem mit der Einbindung der Endschalter habe ich auch, aber mittels notify kann man forceopen oder forceclose setzen, das klappt wohl.

Ich habe bei mir einfach einen esp8266 in der Garage, der steuert neben Aussensteckdosen auch alles vom Tor...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Wzut

Zitat von: roman1528 am 22 Juli 2018, 13:06:41
und werde das Gefühl nicht los, dass es die Sensoren überhaupt nicht behandelt.
Dein Gefühl täuscht dich nicht :) Leider ist die Abfrage der Endlagen im Modul hardcoded und wird so für die meisten Endlagen Sensoren nicht passen.
Ich plane auch das Modul für mein Garagentor einzuetzen und wenn Farion Interesse hat kann ich gern Verbesserungsvorschläge machen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

cs-online

hmmm....von dem hab ich hier leider lange nichts gelesen, weiß gar nicht, ob der noch supportet....
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

hubi3922

Hallo,
ich plane bereits seit langem meine Markise zu steuern.
Der Antrieb mit einem Motor und Endschaltern oder Sensoren ist etwas schwieriger zu realisieren.
Meine Idee:
für den Antrieb einen Schrittmotor einsetzen. Hierdurch könnte ich die Endschalter weglassen. Der Schrittmotor würde dann ja nach z.B. 1000 Schritten (Endpunkt) aufhören und abschalten.
Hat jemand mit Schrittmotoren / Steppmotoren bereits Erfahrungen gesammelt oder eine ähnliches Projekt verwirklicht?
Gruß
Hubi3922
RaspberryPi 2b;FHEM 5.7; Busware CUL-USB-V3; HM-Rolladenaktoren; HM-Drehgriffkontakt; HM-Bewegungsmelder; zukünftig auch im selbstbau

cs-online

Hallo,

ob ein Schrittmotor genug Power hätte, weiß ich nicht. Steuerbar sind die Dinger z.B. mit einem CNC-Shield mit Arduino. Würde denn ein 40er Rolladenmotor da nicht besser passen ? Die Dinger haben schon recht viel Kraft und die Endlagen sind einstellbar, geben nur gewöhnlicherweise keine Rückmeldung, ob sie in Endlage stehen.

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr