Seite 1 von 1

Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 3. Nov 2021 23:48
von habuser1
Hallo!
ich habe hier ein paar Rauchmelder ( Fibaro FGSD002 ). Nun möchte natürlich eine Info aufs Handy bekommen, wenn da einer auslöst.

Kann man die irgendwie gruppieren, um nicht für jeden eine einzelne zu schreiben?

Also Wenn

Smokedetector1_SmokeAlarm
oder
Smokedetector1_HeatAlarm

.. und das für alle Rauchmelder
... auf ON ist, dann ... _> Telegram / mail / sirene


Wie macht man das am geschicktesten?
Ich muss glaub nicht anmerken, dass ich mit OpenHAB und Programmierung allgemein nicht so viel Erfahrung habe ;)

Danke für eure Hilfe!
Viele Grüße

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 07:42
von KellerK1nd
Dafür nutzt du am besten die Gruppenfunktion, das heißt du erstellst dir eine Gruppe, als Beispiel gSmokedetector, jetzt mußt du alle Items die dieser Gruppe angehören sollen hinzufügen. Danach läßt du die Regel triggern wenn sich der Zustand der Gruppe ändert. als Beisüiel mal meine Regel der Temperaturüberwachung:

Code: Alles auswählen

rule "Warnen wenn Temperatur überschritten wurde"
when
    Member of gTemperatur changed
then
    val telegramActionBot = getActions("telegram","telegram:telegramBot:bot")


    if(triggeringItem.state > 35){
        logInfo("Brandmelder", "Temperatur sehr hoch! {}" , triggeringItem.label)
        telegramActionBot.sendTelegram("Temperaturwarnung in %s aktiv, aktueller Wert: %s°C" ,triggeringItem.label.toString, triggeringItem.state.toString)

    }
end

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 18:34
von habuser1
danke dir!

Die Rauchmelder haben ja eine alarm_smoke und alarm_heat item. Kann ich beide typen in eine Gruppe tun oder muss ich jeweils eine Gruppe für heat und smoke machen?

Viele Grüße

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 19:40
von KellerK1nd
Ich nehme mal an das die betreffenden Items Schalter sind. Prinzipiell kannst du sie in eine Gruppe packen, da du ja auf den Brandfall triggern lassen willst, aber der Techniker in mir sagt, trenne sie. Was du dann machen könntest wäre eine Hauptgruppe bauen mit zwei Untergruppen. Die Untergruppen werden mit den passenden Items gefüllt und Triggern lassen könntest du dann auf die Hauptgruppe. Allerdings funktioniert meine Regel dann so nicht mehr im Detail... :roll:

Also du machst nix verkehrt sie eine Gruppe zu packen. :mrgreen:

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 20:22
von habuser1
mhh ok wenn das mit den gruppen so rekursiv funktioniert, wäre das ja auch cool.
aber wer baut mir dann so ein script.. bin ja n00b ;)

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 21:03
von KellerK1nd
Du kannst doch auch DSL nutzen, ließ dich mal in VScode ein, dann kannst du meine Regel erstmal übernehmen, musst nur eben die Items und den Telegramchannel ändern, bzw. noch anpassen auf deine Bedürfnisse.

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 22:11
von habuser1
habe jetzt

g_smokedetector_smokeheat
da ist drin: g_smokedetector_smoke und g_smokedetector_heat
und da sind jeweils die 4 rauchmelder mit ihrem heat und smoke alarm drin.

Die Rauchmelder haben ja noch weitere Alarmchannels:

alarm_system (hardware failure alarm)
alarm_tamper (tamper alarm)
alarm_battery (low battery)

soll ich mit denen genauso verfahren?
wäre ja schon gut wenn man mitbekommt wenn einer der melder "abraucht" oder die batterien sich zu Ende neigen.

Oder macht man über alle batterie_channels aller Geräte eine Gruppe, um mitzubekommen, wenn in irgendeinem gerät die Batterie leer ist? Denke das ist besser, oder?

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 4. Nov 2021 22:48
von habuser1
sorry, das coden übersteigt noch meine Fähigkeiten. habe die rule nun mal per GUI zusammengeklickt.

das telegram script funktioniert. aber wenn ich einen testalarm mache, wird nix gesendet.

[openhab.event.ItemStateChangedEvent ] - Item 'Smokedetector1_SmokeAlarm' changed from OFF to ON

kommt im log.
aber keine rule auslösung.

dann fragt sich, wie ich in dem telegram dann die Hitzewerte von allen Rauchmeldern reinschreibe und den Smokestaus eines jeden Melders, damit ich sehe, welcher ausgelöst hat.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      groupName: g_smokedetector_smokeheat
    type: core.GroupStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        val telegramAction =
        getActions("telegram","telegram:telegramBot:XXX")
          telegramAction.sendTelegram("Rauchmelder Hitze oder Rauch ALARM" + " Temperatur Melder2: " + Smokedetector2_TemperatureSensor.state.toFullString)
    type: script.ScriptAction
habe auch im Netz was gefunden, aber damit kann ich als nicht-coder leider nix anfangen:(
https://community.openhab.org/t/fire-al ... on/33132/6
https://community.openhab.org/t/solved- ... up/58268/2
Es sieht aufjedenfall sehr interessant aus, was mit OpenHAB alles geht... wenn man weiss, wie...

Re: Rauchmelder gruppieren und Alarm auslösen bei Rauch- oder hitzealarm

Verfasst: 5. Nov 2021 18:57
von habuser1
Servus,

meine aktuelle config sieht nun so aus.
in g_smokedetector_smokeheat habe ich die heat und smoke items rein, weil wenn in der g_smokedetector_smokeheat - gruppe nur die g_smokedetector_smoke und g_smokedetector_head Gruppe drin ist, in denen dann jeweils nur die smoke und heat items der melder waren, ging es nicht.

So kann ich nun aber auch damit leben.

Wobei ich jetzt Hilfe benötige:
Wie bekomme ich in EINE Telegram Message folgende Infos rein:

Welcher Melder ausgelöst hat und was die Auslösung war (heat oder smoke) und die Temperaturen der einzelnen Melder.
Das gleiche als E-Mail. In Telegram funktioniert schon die Temperaturanzeige. Das habe ich in der Mail noch nicht hinbekommen.

Wie kann man alle bestimmten EIgenschaften aller items innerhalb einer Gruppe abfragen?
Also wenn ich dann Servicegruppen mache, z.b. mit Batterieladung, und dann, sobald eine unter 20% ist, eine Info sende..

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      groupName: g_smokedetector_smokeheat
    type: core.GroupStateChangeTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        val telegramAction =
        getActions("telegram","telegram:telegramBot:xxx")
        logInfo("notifications", "Send notification via telegram")
          telegramAction.sendTelegram("Rauchmelder Rauch ALARM" + " Temperatur Melder1: " + Smokedetector1_TemperatureSensor.state.toFullString)
          telegramAction.sendTelegram("Rauchmelder Rauch ALARM" + " Temperatur Melder2: " + Smokedetector2_TemperatureSensor.state.toFullString)
          telegramAction.sendTelegram("Rauchmelder Rauch ALARM" + " Temperatur Melder3: " + Smokedetector3_TemperatureSensor.state.toFullString)
          telegramAction.sendTelegram("Rauchmelder Rauch ALARM" + " Temperatur Melder4: " + Smokedetector4_TemperatureSensor.state.toFullString)
    type: script.ScriptAction
  - inputs: {}
    id: "3"
    configuration:
      type: application/vnd.openhab.dsl.rule
      script: >-
        val mailActions = getActions("mail","mail:smtp:10cb3f4cd7")
        logInfo("notifications", "Send notification via email")
        mailActions.sendHtmlMail("XXXX", "Achtung Rauch erkannt!", 
                                 "<h1>Rauch erkannt</h1>Nur welcher, wissen wir nicht." " + Smokedetector2_TemperatureSensor.state.toFullString")
    type: script.ScriptAction
danke!
Grüße!