Direkte Kommunikation zweier Shellys bei Netzwerkausfall

Moin,
ich habe in meinem Keller ein kleines Problem was einen Ausfall des Netzwerkes angeht.

  • Am Anfang:
    Das ganze lief vor Shelly über eine normale Kreuzschaltung über den Schalter oben, im Keller - am Treppenaufgang (folgend Keller 1) und einem weiterem im Keller (folgend Keller 2).
    Die Lampen hängen hinter Keller 2.
    Einen Neutralleiter gibt es, Aufgrund einer darunterliegenden Steckdose, nur an Keller 1.

  • Im aktuellen Betrieb:
    Am Keller 1 habe ich einen Shelly installiert, alle Schalter durch Taster getauscht.
    Die Ausgänge vom Taster oben + Keller 1 sind zusammengelegt und am Shelly 1 angeschlossen. Die beiden frei gewordenen Leiter zum Keller 2 habe ich nun an L und N gelegt und dort einen zweiten Shelly installiert.
    Zusätzlich sind zwei Bewegungsmelder eingebunden, die bei Bewegung an und nach einer bestimmten Zeit ohne wieder aus schalten - was für mein hiesiges Problem aber nur zweitrangig ist. Das ganze läuft ohne Probleme über eine Automation in Home Assistant.

  • Zum eigentlichen Problem:
    Sobald das Netzwerk ausfällt lässt sich das Licht nur noch an Keller 2 schalten, da oben und Keller 1 nicht mehr mit dem zweiten Shelly kommunizieren können. Dafür habe ich als Fallback WLan nun jeweils den Acess Point des anderen Shelly angegeben. Somit sollte über Actions kommuniziert werden können. Das Problem auch hier: Gebe ich die IP des jeweilig anderen Shelly ein, lässt dieser sich nicht mehr steuern wenn das Netzwerk ausfällt.

Hat jemand eine Idee, wie ich das ganze umsetzen kann, bzw. wonach ich zur Umsetzung bei Shelly Programmierungen suchen müsste? MQTT fällt für mich leider auch raus - es soll nach Möglichkeit ohne drittes Gerät kommuniziert werden.

Das ich die Automation in Home Assistant bei dieser Änderung noch anpassen müsste, ist mir bewusst.

MfG

Bei einer Wechsel/Kreuzschaltung benötigst Du doch nur einen einzigen UP-Switch!?

Gruß
Osorkon

2 „Gefällt mir“

Vielen Dank Osorkon,

dein Vorschlag funktioniert zwar, aber der Shelly weiß in dem von dir abgebildeten Fall nicht, ob das Licht per Schalter 2 an / aus geschaltet worden ist (Home Assistant dementsprechend ebenfalls nicht), oder stehe ich auf dem Schlauch?

MfG

Muss er auch nicht und HA auch nicht.
Wichtig ist doch, dass bei jeder Betätigung eines Schalters, das Licht “getoggled” wird, oder?

Ich hätte jetzt im ersten Impuls gesagt, das es nicht funktioniert, weil ich die Bewegungsmelder (per Shelly Motions) und ein Licht aus, wenn Licht noch an und alle weg sind per Automation laufen habe und hierfür der Status der Leuchten klar sein muss.
Bevor ich jetzt nach weiterem “ist das möglich und wenn ja, wie” Frage, probiere ich das später mit dem Shelly 2.5, den ich noch rum fliegen habe, aus und melde mich dann wieder.
Danke an dieser Stelle schon einmal @Osorkon und @harryp für eure Unterstützung.

Direkt kannst Du es nicht erkennen, aber die Lampe ist an, wenn nur einer der beiden Shelly-Relais EIN ist.
Sind beide AUS oder beide EIN, ist die Lampe AUS.

Aber:
Warum nutzt Du nicht einen Shelly1/1PM?
Dann wäre die Installation m.M.n. einfacher.
Der ursprüngliche Draht zu den Lampen geht zum SW und der Ausgang des Shelly-Relais zur Lampe.

Richtig verdrahtet ist es dem UP-Switch egal über welchem Schalter er angesprochen wird.

Hier auch nochmal ein Bsp. zwar mit einem Fibaro UP-Switch, aber das spielt ja keine Rolle.

Gruß
Osorkon

1 „Gefällt mir“

Eure Beispiele sind zwar beide Korrekt, nur ist die Verdrahtung bei mir so nicht möglich, es sei denn, ich übersehe etwas.

Am Anfang:
Das ganze lief vor Shelly über eine normale Kreuzschaltung über den Schalter oben, im Keller - am Treppenaufgang (folgend Keller 1) und einem weiterem im Keller (folgend Keller 2).
Die Lampen hängen hinter Keller 2.
Einen Neutralleiter gibt es, Aufgrund einer darunterliegenden Steckdose, nur an Keller 1.

Ich kann somit keinen Shelly dahinter hängen, weil ich am letzten Schalter kein N habe (mit dem Shelly ohne N habe ich schlechte Erfahrungen gemacht) und ich kann die Verdrahtung auch nicht einfach ändern, ohne eine Verteilerdose komplett frei zu machen (Tapete und teil Putz ab) um sie so wie in @Osorkons Beispiel zu ändern.
Was man vor findet ist also das (wenn man meine aktuelle Installation außer acht lässt):

image

@Osorkon - ein Up-Switch ist ein Relais (so habe ich es verstanden)? Sorry, mir ist das so noch nicht begegnet und google hat mich auch nicht schlauer werden lassen.

1 „Gefällt mir“

Ich habe jetzt alles umgebaut und meine Automation angepasst.
Die Schaltung ist jetzt wieder eine “normale” Kreuzschaltung mit einem Shelly 2 dazwischen, wie @Osorkon es vorgeschlagen hat.
So geht die Schaltung jetzt immer, auch wenn mal alles (außer das Stromnetz) ausgefallen ist.
Dies ist meine jetzige Verkabelung:

Und dies die Automation dazu, damit alles auch weiterhin per Automation und aus dem Dashboard geschaltet werden kann:

alias: Keller schalten
description: ""
triggers:
  - entity_id:
      - binary_sensor.keller_bewegungsmelder_klein_motion
      - binary_sensor.shellymotion2_8cf681dc6e9c_motion
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
    id: "1"
    trigger: state
  - entity_id:
      - binary_sensor.keller_bewegungsmelder_klein_motion
      - binary_sensor.shellymotion2_8cf681dc6e9c_motion
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 3
      seconds: 0
    id: "2"
    trigger: state
  - trigger: numeric_state
    entity_id:
      - sensor.kellerflur_gesamt_power
    id: "3"
    above: 1
  - trigger: numeric_state
    entity_id:
      - sensor.kellerflur_gesamt_power
    below: 1
    id: "4"
  - trigger: state
    entity_id:
      - input_boolean.kellerhelfer
    to: null
    id: "5"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - "1"
        sequence:
          - if:
              - condition: state
                entity_id: input_boolean.keller_bewegungsmelder
                state: "on"
            then:
              - action: light.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: light.kellerhelfer
      - conditions:
          - condition: trigger
            id:
              - "2"
        sequence:
          - if:
              - condition: state
                entity_id: input_boolean.keller_bewegungsmelder
                state: "on"
            then:
              - action: light.turn_off
                metadata: {}
                data: {}
                target:
                  entity_id: light.kellerhelfer
      - conditions:
          - condition: trigger
            id:
              - "3"
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.kellerhelfer
      - conditions:
          - condition: trigger
            id:
              - "4"
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.kellerhelfer
      - conditions:
          - condition: trigger
            id:
              - "5"
        sequence:
          - if:
              - condition: and
                conditions:
                  - condition: or
                    conditions:
                      - condition: and
                        conditions:
                          - condition: numeric_state
                            entity_id: sensor.kellerflur_gesamt_power
                            below: 1
                          - condition: state
                            entity_id: input_boolean.kellerhelfer
                            state: "on"
                      - condition: and
                        conditions:
                          - condition: numeric_state
                            entity_id: sensor.kellerflur_gesamt_power
                            above: 1
                          - condition: state
                            entity_id: input_boolean.kellerhelfer
                            state: "off"
            then:
              - action: switch.toggle
                metadata: {}
                data: {}
                target:
                  entity_id:
                    - switch.kellerflur1
                    - switch.kellerflur2
mode: single

Zur Erklärung:
Ich habe mehrere Helfer angelegt:

light.kellerhelfer - wird als Licht ins Dashboard und meine Lichtgruppe, für weitere Automationen hinzugefügt. Zeigt durch die Automation immer den echten Status des Lichts an.

input_boolean.kellerhelfer - der Schalter zur Lichtentität

sensor.kellerflur_gesamt_power - Der Sensor addiert einfach nur die “power” aus Schalter 1 und 2 des Shellys.

sensor.kellerflur_gesamt_energy - nicht zwingend benötigt - habe ich allerdings um es als einzelne Entität ins Energy Dashboard hinzuzufügen.

Was in der Automation passiert:
Im Auslöser 1 und 2 wird der light.kellerhelfer bei Bewegung an - nach einer bestimmten Zeit ohne Bewegung wieder aus geschaltet. Es kann weg gelassen werden, integriert lediglich die Bewegungsmelder.

Im Auslöser 3 und 4 wird bei einer bei der “Gesamtpower” über / unter 1 das der light.kellerhelfer an / aus geschaltet

Im Auslöser 5 wird dann letzten Endes geguckt ob die “Gesamtpower” unter 1 und input_boolean.kellerhelfer an oder die “Gesamtpower” über 1 und input_boolean.kellerhelfer aus ist. Wenn dies der Fall ist, werden im Shelly beide Ausgänge umgeschaltet.

Ich habe das jetzt 5 Minuten getestet und keinen Fehlschaltung / -darstellung festgestellt.

Es ist zwar nicht wirklich die Lösung zur Eingangsfrage, aber für mein Problem und ich hoffe dies hilft ggf. anderen, die ihre Verdrahtung ebenfalls nicht ändern können und L / N nur an einem Kreuzschalter abgegriffen werden kann. Sollte auch am Eingangsschalter funktionieren.