LOGO Siemens LOGO! mit kombination von Philips Hue

Engjell04

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich plane, eine Siemens SPS (Speicherprogrammierbare Steuerung) für mein Ferienhaus zu verwenden. Mein Ziel ist es, alle Lichtkreise, die Garagentore und das Grundstückstor mit dieser SPS zu steuern.

Ich möchte das volle Erweiterungspotential nutzen, das heißt, bis zu 24 digitale Eingänge (DI) und 20 digitale Ausgänge (DQ). Die LOGO! 230RCE ist bisher meine bevorzugte Wahl als Basisgerät.

Das System soll so aufgebaut werden, dass die Siemens SPS die Relais zur Steuerung der Hauptstromversorgung der Leuchten schaltet.

Ich gehe davon aus, dass ich mit 20 Ausgängen für drei Schlafzimmer, zwei Badezimmer, eine Küche, ein Wohnzimmer, die Garage und den Außenbereich gut bedient bin und keine größere SPS benötige.

Hinsichtlich der Integration von Smart-Home-Lösungen wie Philips Hue gilt: Es muss nicht zwingend Hue sein, ich kann auch andere Workarounds nutzen.

Meine Frage ist, ob es möglich ist, einen Webhook als Eingang zu verwenden. Ich möchte damit eine Remote-Anforderung senden, die über die SPS ausgelöst wird, um beispielsweise die Beleuchtung einzuschalten, wobei die Philips Hue Bridge dann die eigentliche Steuerung der Smart-Lampen übernimmt.

Ich werde nämlich nicht in jedem Zimmer und in jedem Bereich eine Smarte Lampe einbauen. Ich möchte den rahmen von ca 2000-3000 € für die Beleuchtung nicht sprengen.
 
Du kannst doch den integrierten Webserver der LOGO! nutzen, um Ausgänge der LOGO! (z.B.) Beleuchtung zu schalten.
Die Verbindung muss nicht ständig bestehen.
 
Hallo Engjell04,
Das System soll so aufgebaut werden, dass die Siemens SPS die Relais zur Steuerung der Hauptstromversorgung der Leuchten schaltet.
Was meinst Du damit ?
Dass die LOGO jede Leuchte (etc. ) schaltet ?
Was soll dann noch von Deiner Smart-Home-Lösung zusätzlich an Funktionen bereitgestellt werden ?
Ich gehe davon aus, dass ich mit 20 Ausgängen für drei Schlafzimmer, zwei Badezimmer, eine Küche, ein Wohnzimmer, die Garage und den Außenbereich gut bedient bin und keine größere SPS benötige.
Ist das alles zentral in einer Elektroverteilung oder sind es mehrere Unterverteilungen ? (z.B.: 3 einzelne Ferienwohnungen mit je einer UV )
 
Hast du dir mal die Preise von Philips Hue angesehen?
Wenn du schon was selbst machen willst, dann kauf dir normale Leuchtmittel.
Dann kann mal mehr Geld für andere ausgegeben.

Um Kosten zu sparen, solltest du das z.B. pro Etage aufteilen. Die Logo kann man auch vernetzen.

Ich experimentiere momentan damit: https://www.waveshare.com/wiki/ESP32-S3-ETH-8DI-8RO-C
Unterstützt CAN-Bus (ESP32-S3 TWAI), Ethernet (W5500), WLAN, uvm.

Man könnte sogar die Logo nutzen, um ESP32-S3 via Modbus TCP anzusteuern.
Umgekehrt geht es auch.

Momentan nutze ich Micropython, dass CAN-Bus für den ESP32 nicht unterstützt.
Das sieht dann z.B. so aus:

Python:
"""
Test Code for ESP32-S3-ETH-8DI-8RO-C
 
https://www.waveshare.com/wiki/ESP32-S3-ETH-8DI-8RO-C#Inteface_Description
 
This works:
- WLAN
- LAN
- WS2812B LED
- Outputs
 
Not tested yet:
- Inputs
- CAN
- RTC  : works partly. Not yet tested with a battery.
         Need to check alar -> int pin GPIO40 and wakeup from deepsleep/lightsleep
-Buzzer: didn't work.
         I guess I have to power the device
         via the the Power Screw Terminal at
         minimum with 7 VDC
"""
 
import time
import os
 
from machine import Pin, I2C, SPI, SDCard
from network import LAN, PHY_W5500
 
from neopixel import NeoPixel
 
# https://github.com/lewisxhe/PCF8563_PythonLibrary/blob/master/pcf8563.py
from pcf8563 import PCF8563 as PCF
 
 
# TCA99554PWR is used to control the relay outputs
TCA_ADDR = 32
TCA_CONFIG = 0x03
TCA_OUTPUT = 0x01
 
# LED at USB-C Port
np = NeoPixel(Pin(38), 1)
np[0] = (120, 10, 50)
np.write()
 
 
def init_i2c():
    # TCA: 32, RTC: 81
    return I2C(scl=Pin(41), sda=Pin(42), freq=400_000)
 
def init_outputs():
    # first set all outputs to 0
    i2c.writeto_mem(TCA_ADDR, TCA_OUTPUT, b'\x00')
    #then configure all gpios as outputs
    i2c.writeto_mem(TCA_ADDR, TCA_CONFIG, b'\x00')
 
def init_inputs():
    # GPIO-Inputs are from ESP32
    return [Pin(4 + n, mode=Pin.IN, pull=Pin.PULL_DOWN) for n in range(8)]
 
def read_port(port) -> bool:
    """
    Read Port 1 - 8
    """
    return inputs[port - 1].value()
 
def set_output(port: int, value: bool):
    """
    Write to Port 1 - 8
   
    Chip: TCA99554PWR (I2C)
    """
    buffer = bytearray(1)
    i2c.readfrom_mem_into(TCA_ADDR, TCA_OUTPUT, buffer)
   
    if value:
        buffer[0] |= 1 << (port - 1)
    else:
        buffer[0] &= ~(1 << (port - 1))
 
    i2c.writeto_mem(TCA_ADDR, TCA_OUTPUT, buffer)
 
def init_lan():
    lan_spi = SPI(2, sck=Pin(15), mosi=Pin(13), miso=Pin(14), baudrate=20_000_000)
    lan_int = Pin(12, mode=Pin.IN)
    lan_sel = Pin(16, mode=Pin.OUT, value=1)
    lan_rst = Pin(39, mode=Pin.OUT)
    eth0 = LAN(spi=lan_spi, cs=lan_sel, int=lan_int, phy_type=PHY_W5500, phy_addr=0, reset=lan_rst)
    #eth0.active(False)
    eth0.active(True)
    return eth0
 
def init_sdcard():
    return SDCard(
        slot=0,
        width=1,
        cmd=Pin(47),
        data=(Pin(45),),
        sck=Pin(48),
    )
 
def mount_sd(sd):
    os.mount(sd, "/sd")
 
 
def test1():
    # test 1
    for color in [(255,0,0), (0,255,0), (0,0,255)]:
        np[0] = color
        np.write()
        time.sleep(1)
    np[0] = (0,0,0)
    np.write()
 
def test2():
    for port in range(1, 9):
        if port > 1:
            set_output(port - 1, False)
        set_output(port, True)
        time.sleep(0.2)
    set_output(8, False)
 
 
i2c = init_i2c()
inputs = init_inputs()
sd_card = init_sdcard()
mount_sd(sd_card)
init_outputs()
rtc = PCF(i2c)
lan = init_lan()

Man kann auch Circuitpython nutzen, dass CAN-Bus unterstützt oder gleich C/C++.

PS: Die Infos im Code sind etwa veraltet. Der Buzzer funktioniert und ich habe glaube auch Bluetooth LE getestet. Ist schon ziemlich cool, was man damit machen kann. Die Logo ist halt ziemlich eingeschränkt.
 
Klar man kann schöne Dinge damit machen wie z.B. WLED.

Das habe ich zur Beleuchtung einer Lehranlage genutzt.
3 Eingänge (Spannungsteiler) => 3 frei konfigurierbare Programme


Es kann nicht schaden, sich mit der Mikrocontroller-Programmierung zu beschäftigen.
Wenn man dann einen echten Anwendungsfall hat, macht das Lernen auch mehr Spaß.

Muss jeder selbst wissen, wie viel man in seine eigene Zukunft investiert.
 
Es kann nicht schaden, sich mit der Mikrocontroller-Programmierung zu beschäftigen.
Wenn man dann einen echten Anwendungsfall hat, macht das Lernen auch mehr Spaß.
Die Arduino-Programmierung unterscheidet sich nicht so sehr von SCL / ST.
Als SPSler findet man sich schnell zurecht.
Man muss halt bei der Hardware aufpassen. Da gibt es im ESP-Umfeld auch viel Schrott.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da gibt es im ESP-Umfeld auch viel Schrott.

Ja, das stimmt. Ich bevorzuge die Boards von XIAO: https://www.seeedstudio.com/Seeed-Studio-XIAO-ESP32C6-Pre-Soldered-p-6328.html (RISC-V)

Für einfache Sachen reicht das EVA-Prinzip. Wenn mehrere Sachen gleichzeitig passieren sollen (GPIO einlesen, Webserver, usw.), ist asynchroner Code single threaded mit Eventloop besser.

Viele Mikrocontroller haben nur einen Core und Ressourcen sind limitiert und können nicht viele Threads starten. Deswegen nutzt man bei komplexen Aufgaben asynchronen Code.

Aber wir kommen vom Thema ab. Mal abwarten, was der OP möchte.
 
Zurück
Oben