FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: spi3845 am 06 Juli 2023, 12:12:05

Titel: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 06 Juli 2023, 12:12:05
Hallo zusammen,

ich habe neue Rauchmelder gebraucht und bin auf x-sense gestoßen: https://de.x-sense.com/products/fs61-vernetzter-intelligenter-rauchmelder-kit

Die haben neben diesem Kit auch einzelne WLAN-fähige Rauchmelder (über die Sinnhaftigkeit bei einem Brand lässt sich bestimmt streiten). Die Melder des Kits sprechen untereinander und mit der Basisstation per Funk auf 868MHz. Die Basisstation selbst hat eine WLAN-Schnittstelle und spricht mit der Hersteller-Cloud. Es gibt mobile Apps, in denen man Status der Basisstation und der Rauchmelder anzeigen und Selbsttests ausführen kann.

Was mich interessiert, ist eine Anzeige des Batteriestatus - das würde ich gerne in fhem einbinden. Signalisierung Alarm oder Selbsttests wären nett, sind für mich im ersten Schritt aber nicht so wichtig.

Ich habe die App und ihren Traffic unter Android analysiert und sehe, wie sie mit dem Hersteller spricht (leider oder zum Glück ;-) nutzen die Zertifikats-Pinning, daher ist die Analyse etwas aufwändig), habe aber keine Ahnung, wie ich die API in einem fhem-Modul abbilden könnte.

Hat jemand mit fhem-Erfahrung Lust, Interesse und Bedarf, x-sense unter fhem abzubilden? Ich würde unterstützen, wo ich kann und bin lernwillig ;-)

Viele Grüße,
Sebastian
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: derHeimwerker am 08 Februar 2024, 12:23:49
Moin Sebastian,

bist du damit schon weiter gekommen? Die Rauchmelder sind ja unschlagbar günstig. Die China Cloud Sache macht mich allerdigs vorsichitg. Ohne I-Net ist die Basisstation aber wohl nicht nutzbar. (so zumindest sagt mir Amazon)
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 08 Februar 2024, 13:02:44
Zitat von: derHeimwerker am 08 Februar 2024, 12:23:49Moin Sebastian,

bist du damit schon weiter gekommen? Die Rauchmelder sind ja unschlagbar günstig. Die China Cloud Sache macht mich allerdigs vorsichitg. Ohne I-Net ist die Basisstation aber wohl nicht nutzbar. (so zumindest sagt mir Amazon)

Noch gar nicht. Nur die ursprüngliche Analyse. Es gibt noch Geräte des Herstellers, die sich auc ohne Cloud untereinander vernetzen lassen. Wie man da an Status zu den einzelnen Geräten kommt, weiß ich nicht - ist bestimmt eine proprietäre Funk-Schnittstelle, die man auch erst analysieren müsste.

VG
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: Sailor am 09 Februar 2024, 14:17:40
Moin Spi

Zitat von: spi3845 am 08 Februar 2024, 13:02:44Noch gar nicht. Nur die ursprüngliche Analyse. Es gibt noch Geräte des Herstellers, die sich auc ohne Cloud untereinander vernetzen lassen. Wie man da an Status zu den einzelnen Geräten kommt, weiß ich nicht - ist bestimmt eine proprietäre Funk-Schnittstelle, die man auch erst analysieren müsste.

Dann lass mal Wireshark laufen, sobald du die WLAN - Teile hast.
Da lässt sich bestimmt was machen...

Gruss
    Sailor
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 09 Februar 2024, 14:25:08
Zitat von: Sailor am 09 Februar 2024, 14:17:40Dann lass mal Wireshark laufen, sobald du die WLAN - Teile hast.
Da lässt sich bestimmt was machen...

die Verbindung ist verschlüsselt. Die App nutzt Zertifikats-Pinning. Musste MITM machen und der App das Pinning abgewöhnen. Ich schau mal, wo ich das dokumentiert habe und poste es.
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: dt2510 am 16 Februar 2024, 14:25:56
Ich lese mal mit ... ich habe mir die Rauchmelder samt Basis auch die Tage zugelegt, da mir die Homematic IP Teile einfach zu teuer waren und der einzige Mehrwert in FHEM (für mich) Erreichbarkeit und Batteriestand waren.
Ich habe jetzt das ganze Haus mit 9 Rauchmeldern, einem Wärmemelder und bisher einem Wassermelder zu einem Bruchteil des HmIP Preises ausgestattet.
Erreichbarkeit und Batteriestand in FHEM wären da das Sahnehäubchen ....
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: rabehd am 16 Februar 2024, 14:51:10
Zitat von: dt2510 am 16 Februar 2024, 14:25:56Ich lese mal mit ... ich habe mir die Rauchmelder samt Basis auch die Tage zugelegt, da mir die Homematic IP Teile einfach zu teuer waren und der einzige Mehrwert in FHEM (für mich) Erreichbarkeit und Batteriestand waren.
Ich habe jetzt das ganze Haus mit 9 Rauchmeldern, einem Wärmemelder und bisher einem Wassermelder zu einem Bruchteil des HmIP Preises ausgestattet.
Erreichbarkeit und Batteriestand in FHEM wären da das Sahnehäubchen ....

Hallo,
schon erste Erfahrungen?
Fehlarlarme?
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 16 Februar 2024, 15:12:25
Zitat von: rabehd am 16 Februar 2024, 14:51:10Hallo,
schon erste Erfahrungen?
Fehlarlarme?

Laufen bei mir seit Monaten ohne Fehlalarm. App ist aufgeräumt. Aufgrund von Preis und nur noch Homematic IP Verfügbarkeit habe ich auch nach einer Alternative für HM gesucht.
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: dt2510 am 19 Februar 2024, 17:02:52
Zitat von: rabehd am 16 Februar 2024, 14:51:10
Zitat von: dt2510 am 16 Februar 2024, 14:25:56Ich lese mal mit ... ich habe mir die Rauchmelder samt Basis auch die Tage zugelegt, da mir die Homematic IP Teile einfach zu teuer waren und der einzige Mehrwert in FHEM (für mich) Erreichbarkeit und Batteriestand waren.
Ich habe jetzt das ganze Haus mit 9 Rauchmeldern, einem Wärmemelder und bisher einem Wassermelder zu einem Bruchteil des HmIP Preises ausgestattet.
Erreichbarkeit und Batteriestand in FHEM wären da das Sahnehäubchen ....

Hallo,
schon erste Erfahrungen?
Fehlarlarme?

laufen bei mir bisher ohne Fehlalarme
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: Sailor am 20 Februar 2024, 08:46:50
Ein herzerfrischendes Moin vom achtern Diek tosammen!

Zitat von: dt2510 am 19 Februar 2024, 17:02:52
Zitat von: rabehd am 16 Februar 2024, 14:51:10
Zitat von: dt2510 am 16 Februar 2024, 14:25:56Ich lese mal mit ... ich habe mir die Rauchmelder samt Basis auch die Tage zugelegt, da mir die Homematic IP Teile einfach zu teuer waren und der einzige Mehrwert in FHEM (für mich) Erreichbarkeit und Batteriestand waren.
Ich habe jetzt das ganze Haus mit 9 Rauchmeldern, einem Wärmemelder und bisher einem Wassermelder zu einem Bruchteil des HmIP Preises ausgestattet.
Erreichbarkeit und Batteriestand in FHEM wären da das Sahnehäubchen ....

Hallo,
schon erste Erfahrungen?
Fehlarlarme?

laufen bei mir bisher ohne Fehlalarme

Dann macht doch mal den umgekehrten Check und sprüht mal Rauchmelder Test-Spray rein.
Nicht das die keine Fehlalarme produzieren, weil sie gar nicht funktionieren.  ;D

Haben die eigentlich Fliegen/Mückengitter. Das hat bei mir die Alarme ausgelöst. Hat sich doch glatt so'n blödes Vieh in der Rauchkammer eingenistet...

Gruß
    Sailor
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: FHEM-Fan am 29 Mai 2024, 18:29:20
Hallo zusammen,
für den Homeassistent gibt es zwischenzeitlich eine Anbindung.

Hier der Link zum github.
https://github.com/theosnel/homeassistant-core/tree/xsense/homeassistant/components/xsense

Ist da zufällig schon jemand für FHEM dran?

Viele Grüße
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: Chris_XXX am 26 September 2024, 07:26:09
Moin moin,
Gibt es hier was Neues? Der Preis ist ja echt super von den Teilen.

VG
Christian
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 18 Oktober 2024, 11:01:16
Zitat von: FHEM-Fan am 29 Mai 2024, 18:29:20Hallo zusammen,
für den Homeassistent gibt es zwischenzeitlich eine Anbindung.

Hier der Link zum github.
https://github.com/theosnel/homeassistant-core/tree/xsense/homeassistant/components/xsense

Ist da zufällig schon jemand für FHEM dran?

Viele Grüße


Und hier gibt's eine Python Library für die API-Anbindung...
https://pypi.org/project/python-xsense/
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 22 Oktober 2024, 18:48:23
Hallo zusammen,

ich habe auf die Schnelle das python-xsense Modul getestet. Zugriff auf x-sense funktioniert damit relativ einfach. Vielleicht lässt es sich über fhempy einbinden? Hat jemand schon Erfahrungen gesammelt mit fhempy?

Falls jemand python-xsense testen will, so hat's bei mir geklappt (ich nutze Linux) in einem Verzeichnis:

python3 -m venv xsense # virt. Umgebung für Python schaffen, damit Pakete nicht durcheinanderkommen
source xsense/bin/activate # in virt. Umgebung wechseln, Verlassen später per deactivate
cd xsense
pip install python-xsense # python-xsense Modul installieren
pip install aiohttp # notwendiges Modul installieren
pip install setuptools # notwendiges Modul installieren
git clone https://github.com/theosnel/python-xsense.git # git python-xsense Repository clonen - da sind Beispiele drin
cd python-xsense
cp .env.sample .env # hier kommen dann später Username und Passwort rein
### in der x-sense App einen neuen User anlegen, Einladung bestätigen (hatte schon einen weiteren User, weiß nicht mehr, ob Bestätigung per Link in Email oder in App notwenig ist)
vi .env # Username und Passwort eintragen
python3 setup.py --name --fullname --version # Test, ob Modul korrekt geladen wird
python3 asynctest.py # Test Zugriff auf x-sense Geräte, sollten als json aufgelistet werden
python3 test.py # ebenfalls Test Zugriff

Wenn das Python Modul nicht mehr benötigt wird, das erstellte xsense-Verzeichnis einfach löschen, dann ist das alles weg.


Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: errazzor am 03 November 2024, 12:21:12
Ich wäre auch sehr interessiert an einer FHEM-Einbindung, habe 9 Melder mit Basisstation.
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 03 November 2024, 12:24:11
Hallo miteinander,

kennt sich jemand mit fhempy aus? Vielleicht ist damit eine Einbindung leichter, wenn wir auf die bestehenden Python-Module zurückgreifen können...
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: sven-voss am 13 November 2024, 11:30:54
Hallo,

Gibt es zu den x-sense RM bereits eine Lösung, um diese ins FHEM zu integrieren?

Hat es jemand mit dem fhempy Ansatz zum laufen bekommen?

Ich habe auch Interesse.

Gruß Sven
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: sven-voss am 05 Dezember 2024, 16:01:39
Zitat von: spi3845 am 22 Oktober 2024, 18:48:23Hallo zusammen,

ich habe auf die Schnelle das python-xsense Modul getestet. Zugriff auf x-sense funktioniert damit relativ einfach. Vielleicht lässt es sich über fhempy einbinden? Hat jemand schon Erfahrungen gesammelt mit fhempy?

Falls jemand python-xsense testen will, so hat's bei mir geklappt (ich nutze Linux) in einem Verzeichnis:

python3 -m venv xsense # virt. Umgebung für Python schaffen, damit Pakete nicht durcheinanderkommen
source xsense/bin/activate # in virt. Umgebung wechseln, Verlassen später per deactivate
cd xsense
pip install python-xsense # python-xsense Modul installieren
pip install aiohttp # notwendiges Modul installieren
pip install setuptools # notwendiges Modul installieren
git clone https://github.com/theosnel/python-xsense.git # git python-xsense Repository clonen - da sind Beispiele drin
cd python-xsense
cp .env.sample .env # hier kommen dann später Username und Passwort rein
### in der x-sense App einen neuen User anlegen, Einladung bestätigen (hatte schon einen weiteren User, weiß nicht mehr, ob Bestätigung per Link in Email oder in App notwenig ist)
vi .env # Username und Passwort eintragen
python3 setup.py --name --fullname --version # Test, ob Modul korrekt geladen wird
python3 asynctest.py # Test Zugriff auf x-sense Geräte, sollten als json aufgelistet werden
python3 test.py # ebenfalls Test Zugriff

Wenn das Python Modul nicht mehr benötigt wird, das erstellte xsense-Verzeichnis einfach löschen, dann ist das alles weg.




Hallo,
gibt es hier zu etwas neues? Oder braucht es den Umweg über eine HA Instanz?

Gruß Sven
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 05 Dezember 2024, 16:18:21
Zitat von: sven-voss am 05 Dezember 2024, 16:01:39Hallo,
gibt es hier zu etwas neues? Oder braucht es den Umweg über eine HA Instanz?

Gruß Sven

Ne, ich habe keine Ahnung, wie man fhempy nutzt, anderweitig python-xsense in fhem integriert oder gar ein eigenes fhem-Modul baut.

Viele Grüße,
spi
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: phantom am 01 März 2025, 13:54:07
Hallo zusammen, 
ich habe gerade das python Beispiel von spi3845 getestet. Eeis klappt und gibt die gwwünschten Daten vom X-Sense Melder aus. Bei mit ist es ein CO-Melder XC04-WX .

async_xsense.py gibt so etwas aus:

----[ Hausname (**deineHouseID**) ]-----------------
CO-Melder (XC04-WX):
  serial  : ABC123
  online  : yes
  values  : {'houseId': '**deineHouseID**', 'type': 'XC04-WX', 'stationSN': 'ABC123', 'wifiRSSI': '-50', 'batInfo': 3, 'standard': '0', 'coEventId': '0', 'coPpm': 0, 'coLevel': 0, 'isLifeEnd': False, 'time': '20250301060917', 'onlineTime': '20250301060917', 'alarmStatus': False, 'muteStatus': True, 'deviceSN': 'ABC123', 'sw': 'v0.7.1', 'ssid': '**WiFiSSID**', 'ip': '**IP**', 'mac': '**MAC**', 'macBT': '**MAC**', 'ledLight': '0', 'network_sw': 'v1.1.0'}
# CO-Melder (**deviceID**)

Hat jemand dies schon nach FHEM importiert oder eine einfache Idee dazu ??
Gruß Phantom
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: xelawe am 02 März 2025, 14:42:09
Hallo,

ich habe mir das Ganz auch nun mal auf einem Tes-Raspi installiert und nach erfolgreichem Test kam mir die Idee die Werte per MQTT zu publizieren.

Daher habe ich einen Fork des Repositories erstellt und um MQTT erweitert. Das ist mein erster Versuch in Python. Lässt sich vermutlich einiges besser machen. Inputs/Verbesserungsvorschläge sind gerne willkommen.

in der Anleitung
Zitat von: spi3845 am 22 Oktober 2024, 18:48:23git clone https://github.com/theosnel/python-xsense.git # git python-xsense Repository clonen - da sind Beispiele drin

muss dann dann dieses Git Repository gecloned werden:
git clone https://github.com/xelawe/python-xsense.git

in der. env müssen nun zusätzlich der host, die credentials und der Main-Topic gepflegt werden:

MQTTHOST=<mqtthost>
MQTTUSR=<mqttusr>
MQTTPWD=<mqttpwd>
MQTTTOPIC=xsense

Der Aufruf erfolgt dann mit
python3 asyncmqtttest.py

Jetzt fehlt mir nur mehr die Möglichkeit dies als Service einzubinden, damit die Daten zyklisch abgefragt werden. Da wäre ich für Tipps dankbar.
@spi3845 Kannst du da evtl. weiterhelfen?

Beste Grüße,
Alex
Titel: Aw: x-sense WLAN Rauchmelder einbinden
Beitrag von: spi3845 am 03 März 2025, 13:50:03
Zitat von: xelawe am 02 März 2025, 14:42:09ich habe mir das Ganz auch nun mal auf einem Tes-Raspi installiert und nach erfolgreichem Test kam mir die Idee die Werte per MQTT zu publizieren.

Daher habe ich einen Fork des Repositories erstellt und um MQTT erweitert. Das ist mein erster Versuch in Python. Lässt sich vermutlich einiges besser machen. Inputs/Verbesserungsvorschläge sind gerne willkommen.

Das ist ja eine coole Idee, das per mqtt anzubinden. Wobei natürlich eine direkte Anbindung in fhem schöner wäre - dann muss man nicht noch zusätzliche Geräte anlegen und per mqtt anbinden...

Zitat von: xelawe am 02 März 2025, 14:42:09Jetzt fehlt mir nur mehr die Möglichkeit dies als Service einzubinden, damit die Daten zyklisch abgefragt werden. Da wäre ich für Tipps dankbar.
@spi3845 Kannst du da evtl. weiterhelfen?

Die einfachste Möglichkeit, unter Linux regelmäßig einen Job auszuführen ist cron. Als der User, der den Job ausführen soll, crontab -e aufrufen - bitte komplette Pfade für python und Skripte angeben, da das sonst zu Fehler führt.

Alternative ist eine systemd Unit, die entweder regelmäßig in Intervallen ausgeführt wird oder einen Dienst startet (dein python-Skript) das selbst zyklisch die Abfrage macht.

Beispiel einer systemd Unit wasserstop.service, die ein python-Sktipt aufruft, das (in diesem Beispiel zyklisch ein Hauswasser-Ventil abfragt:
[Unit]
Description=Wasserstop Service
Wants=network-online.target
#After=network.target network-online.target systemd-user-sessions.service rc-local.service
After=network.target network-online.target
StartLimitIntervalSec=0

[Service]
Type=notify
User=pi
Group=pi
RuntimeDirectory=wasserstop
RuntimeDirectoryMode=0750
ExecStart=/usr/bin/python3 /opt/wasserstop/wasserstop.py
Environment=PYTHONUNBUFFERED=1
ExecReload=/usr/bin/kill -1 -- $MAINPID
ExecStop=/usr/bin/kill -- $MAINPID
TimeoutStopSec=5
KillMode=process
WatchdogSec=15
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target


Mit journalctl -fu wasserstop.service sieht man dann auch schön das Log...


Hier noch die Main-Logik aus dem wasserstop.py-Beispiel:

class GracefulKiller:
    kill_now = False
    def __init__(self):
        signal.signal(signal.SIGINT, self.exit_gracefully)
        signal.signal(signal.SIGTERM, self.exit_gracefully)
        signal.signal(signal.SIGHUP, self.exit_gracefully)

    def exit_gracefully(self,signum, frame):
        self.kill_now = True

# program logic
if __name__ == '__main__':
    killer = GracefulKiller()
    client.loop_start()
    while not killer.kill_now:
        if err_counter > MAX_ERR_COUNTER:
            os.kill(os.getpid(), signal.SIGTERM)
        if (last_time_main + POLL_INTERVAL) < time.time():
            if MQTT_flag_connected == 1:
                last_time_main = time.time()
                betriebsdaten_lesen()
            else:
                time.sleep(5)
                client.loop_stop()
                client.disconnect()
                client.connect(MQTT_SERVER, 1883, 60)
                client.loop_start()
            systemd.daemon.notify('WATCHDOG=1')


    systemd.daemon.notify('STOPPING=1')
    print('Ende', os.path.basename(__file__))
    port.reset_input_buffer()
    port.close()
    client.loop_stop()

Bestes Gelingen,
spi