SIGNALDuino Empfänger Firm- und Hardware

Begonnen von Ralf9, 02 Oktober 2016, 22:59:51

Vorheriges Thema - Nächstes Thema

SusisStrolch

#795
Wie kommst Du darauf?
Die Pegel/Flankenänderungen an den GPIOs lösen direkt einen Interrupt aus.
Nix mit "Trap X" oder so - auch kein Polling über einen Timer - echte Hardware-Interrupts also.

Natürlich können sie - im Gegensatz zum NMI welcher vom WLAN Modul verwendet wird - gesperrt und freigegeben werden.

Ich empfehle da nen Blick ins Datenblatt (http://espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf)
4.1 General Purpose Input/Output Interface (GPIO)
...
Each GPIO can be configured with internal pull-up or pull-down, or set to high impedance,
and when configured as an input, the data are stored in software registers; the input can
also be set to edge-trigger or level trigger CPU interrupts. In short, the IO pads are bi-
directional, non-inverting and tristate, which includes input and output buffer with tristate
control inputs.


Beispiel für negativ flankengetriggerten Interrupt:

...
        pinMode(Settings.TaskDevicePin1[event->TaskIndex], INPUT_PULLUP);
        pulseinit(Settings.TaskDevicePin1[event->TaskIndex], event->TaskIndex);
...

void pulseinit(byte Par1, byte Index)
{
  // Init IO pins
  String log = F("Power Counter: Init");
  addLog(LOG_LEVEL_INFO,log);

  switch (Index)
  {
    case 0:
      attachInterrupt(Par1, pulse_interrupt1, FALLING);
      break;
      ...
  }
}

/*********************************************************************************************\
* Pulse Counter IRQ handlers
\*********************************************************************************************/
void pulse_interrupt1()
{
  pulsecheck(0);
}
...

/*********************************************************************************************\
* Check Pulse Counters (called from irq handler)
\*********************************************************************************************/
void pulsecheck(byte Index)
{
  unsigned long PulseTime=millis() - pulseTimePrevious[Index];
  unsigned long PulseTimePrevious=millis();
  ...
}

Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

Sidey

Zitat von: SusisStrolch am 24 Januar 2018, 22:00:03
Wie kommst Du darauf?

Hmm, hatte ich gelesen. Und da die Interrupts nicht so gleichmäßig wie bei einem Arduino ausgelöst werden erschien mir das auch stimmig.
Ob das vielleicht an der Arduino8266 Bibliothek lag und vor geraumer Zeit da die Register für Interrupts nicht gesetzt wurden?


Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

SusisStrolch

Nun, setzen und initialisieren musste schon selbst - das nimmt dir der Aduino-Core nicht ab.
Und - niemals ever never auf die Idee kommen, yield oder printxxx in der IRQ-Routine verwenden.

Synology DS1515+, 16GB RAM, 4x 6TB WD-Red
- Docker (FHEM), MariaDB, MariaDB10, Surveillance Station
Gateways: LCG miniCUL433, LCG miniCUL868, AVR-X4000, VU-Solo SE, Kodi
ESP8266: ESPEasy (S0-Counter, Temp/Hum), Sonoff TH, Sonoff 4ch

habeIchVergessen

Zitat von: Bennemannc am 24 Januar 2018, 12:46:11
Das hilft leider auch nicht. Ich habe die Quellen neu gezogen und man das Debuging unten wieder reingenommen.

Das wird als bug/issue geführt!
Weil bereits eine Verbindung besteht, wird beim Speichern die neue nicht übernommen.

Workaround:
- Wifi aus (router)
- neu konfigurieren
- Wifi an

Bennemannc

Das habe (siehe oben) ich gestern auch hinbekommen, nur verbindet er sich jetzt bein Neustart nicht mit dem anderen Netz. Er versucht anscheinend mit dhcp eine Adresse zu bekommen. Da in dem Netz keine dhcp Server läuft scheitert er daran. Die Config mit den Festen IP's ist zu diesem Zeitpunkt noch nicht gelesen worden. Deshalb bleibt er in der "while" Schleife hängen und geht nicht weiter. Ich stelle mir das so vor.
Versuch eine Verbindung aufzubauen (20 mal oder so) - wenn keine Verbindung zustande kommt, lesen der Config / IP Daten und erneuter Versuch der Verbindung mit den Config Daten.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

hjgode

Hi

so, ich habe die Signalduino firmware 3.3. nun auch auf den ESP32 portiert: https://github.com/hjgode/SIGNALduino330_esp32

Senden ist nicht getestet,,,

Gruss

~Josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

Sidey

Hi Hjgode,

Von welchem Branch hast Du den Fork gemacht?

Sieht mir leider etwas veraltet aus.

Gruß Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

hjgode

Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

stefanru

Hi,

hat noch jemand das Problem dass im FHEM bei den SIGNALDUINO devices kein PING, UPTIME, VERSION mehr geht?
Es kommt einfach keine Antwort mehr.

Der SIGNALDUINO funktioniert, nur diese Anfragen werden nicht mehr beantwortet.
Man kann den GET Knopf drücken und das wars.

Das habe ich bei all meinen SIGNALDUINO devices, völlig egal ob arduino nano oder signal esp.
Ich weiß dass es früher ging und bei den CULS gehen diese Befehle immer noch.

Kann das jemand bestätigen?

Gruß,
Stefan

Sidey

Hi Stefan,

Ja das Problem habe ich leider auch schon festgestellt.
Bislang aber gedacht, es läge nur an mir.

Grüße Sidey

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Intruder1956

bei mir klappt es
uptime: 3 14:18:24
ping: OK
version: V 3.3.2-dev SIGNALduino cc1101 - compiled at Jan 7 2018 19:11:11

Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Sidey

Die Readings werden aktualisiert.
Es kommt nur in fhemweb keine direkte Rückmeldung

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Intruder1956

doch, macht sich kleines Fenster in der Mitte auf.
und erst jetzt sehe ich das es auch in den readings steht  ;)

Gruß
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

stefanru

Das ist ja komisch.
Bei mir genau dasselbe wie bei Sidey.
Fenster geht nicht auf.
Habe auch schon verschiedene Browser probiert.

Intruder welche Version von FEHM hast du denn?
Ich habe gerade vorgestern aktualisiert.

Gruß,
Stefan

hjgode

Popup fenster sollten wohl gehen:
siehe attachements

Vielleicht mal anderen Browser testen, Cookies löschen oder so...

~josef
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose