AS3935 mit NodeMCU ESP8266-12E

Der Sketch sieht so aus:

/*
-------------------------------
AS3935   |  ESP8266 (NodeMCU)
---------+---------------------
MISO/SDA |  D3
MISO     |  GND
SCK/SCL  |  D4
IRQ      |  D5
SI       |  +3,3V
CS       |  GND
GND      |  GND
Vdd      |  +3,3V
------------------------------
*/

#include <AsyncDelay.h>
#include <SoftWire.h>
#include <AS3935.h>

#define SDA_PIN D3
#define SCL_PIN D4
#define IRQ_PIN D5

AS3935 as3935;
bool ledState = true;
AsyncDelay d;

void int2Handler(void)
{
  as3935.interruptHandler();
}


void readRegs(uint8_t start, uint8_t end)
{
  for (uint8_t reg = start; reg < end; ++reg) {
    delay(50);
    uint8_t val;
    as3935.readRegister(reg, val);

    Serial.print("Reg: 0x");
    Serial.print(reg, HEX);
    Serial.print(": 0x");
    Serial.println(val, HEX);
    Serial.flush();
  }
  Serial.print("State: ");
  Serial.println(as3935.getState(), DEC);
  Serial.println("-------------");
}

void setup(void)
{

  Serial.begin(115200);
  as3935.initialise(SDA_PIN, SCL_PIN, 0x03, 3, true, NULL);
  as3935.start();
  d.start(1000, AsyncDelay::MILLIS);

  while (!d.isExpired())
    as3935.process();
  
  readRegs(0, 0x09);
  as3935.setNoiseFloor(0);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, ledState);
  pinMode(IRQ_PIN, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(IRQ_PIN), int2Handler, RISING);
  d.start(1000, AsyncDelay::MILLIS);
  Serial.println("setup() done");
}

uint8_t count = 0;
void loop(void)
{
  if (as3935.process()) {
    uint8_t flags = as3935.getInterruptFlags();
    uint8_t dist = as3935.getDistance();

    Serial.println("-------------------");
    Serial.print("Interrupt flags: ");
    Serial.println(flags, HEX);
    Serial.print("Distance: ");
    Serial.println(dist, DEC);
  }
  if (as3935.getBusError()) 
    Serial.println("Bus error!");

    if (as3935.getTriggered()) 
    Serial.println("Triggered!");


  if (d.isExpired()) {
    ledState = !ledState;
    digitalWrite(LED_BUILTIN, ledState);
    
    if (++count > 5) {
      count = 0;
      readRegs(0, 0x09);
    }
    d.start(1000, AsyncDelay::MILLIS);
  }
  
}

Die Ausgabe ist dann immer "triggert":

PORT OPEN 115200

Communication with MCU..Got answer! Communication with MCU established.
AutoDetect firmware...

Can't autodetect firmware, because proper answer not received (may be unknown firmware). 
Please, reset module or continue.
$
Reg: 0x1: 0x22
Reg: 0x2: 0xC2
Reg: 0x3: 0x0
Reg: 0x4: 0x0
Reg: 0x5: 0x0
Reg: 0x6: 0x0
Reg: 0x7: 0x3F
Reg: 0x8: 0x3
State: 4
-------------
setup() done
Reg: 0x0: 0x24
Reg: 0x1: 0x2
Reg: 0x2: 0xC2
Reg: 0x3: 0x0
Reg: 0x4: 0x0
Reg: 0x5: 0x0
Reg: 0x6: 0x0
Reg: 0x7: 0x3F
Reg: 0x8: 0x3
State: 5
-------------
-------------------
Interrupt flags: 1
Distance: 63
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
-------------------
Interrupt flags: 1
Distance: 63
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
Triggered!
-------------------

So wie ich vermute, liegt es wohl am IRQ handling, leider aber sehe ich nicht, wo der Fehler liegen könnte?

Das ist die verwendete Libary.