Anfänger versucht ein einfaches Skript zu erstellen

  • Hallo Leute,

    nachdem ich jetzt mehrere Stunden versucht habe, ein Skript zu erstellen, um eine Szene zu ersetzen, und dies mir nicht gelungen ist, jetzt die Bitte an euch. Muss aber auch sagen, das ich absolut keine Ahnung von der Materie habe.

    1. Kann mir einer von euch einen ähnlichen Skript Vorlage zeigen, denn ich dann entsprechend anpassen kann.

    2. Oder einen Link zu einem Script-Examples von Tutorial | Shelly Technical Documentation. Komm da nicht weiter, aufgrund meiner mangelnden Englischkenntnisse.

    Nachfolgend die Szene, um die es geht.

    ---Wenn

    Shelly 2.5 - 192.168.178.XXX - Kanal 1 - Licht Wohnzimmer Aus ist

    ---und

    Shelly Plug S 192.168.178. XXX - Licht Schrank Aus ist

    ---und

    Shelly 2.5 - 192.168.178. XXX - Kanal 0 - Licht Kranz An ist

    ---und

    Shelly Color Bulb - 192.168.178. XXX - Licht Schlafzimmer Wand Aus ist

    ---Dann (Machen)

    Shelly 2.5 - 192.168.178. XXX - Kanal 0 - Licht Kranz Aus

    Hier auch eine Screnshot:

    Szene.jpg

    Hier mein Skript, der alles macht und nicht Funktioniert. Komme nicht weiter, da die Abfrage des Istzustandes anscheinend nicht funktionier. Versucht habe ich das mit ChatGPT.

    • Script läuft auf einen Shelly Plus 2 PM
    • Script ist Eingeschaltet
    • Soll den Istzustand im Log anzeigen, was er auch macht. Nur leider nicht richtig.

    SCRIPT

    SCRIPT LOG

    Aktueller Zustand der Aktoren:

    Shelly2_5_192_168_178_20_channel_1_light_wz: off

    ShellyPlugS_192_168_178_22_light_schrank: off

    Shelly2_5_192_168_178_20_channel_0_light_kranz: on (Hier war Licht AUS)

    ShellyColorBulb_192_168_178_28_light_schlafzimmer_wand: off

    Licht Kranz wurde ausgeschaltet.

  • Hallo Oscan,

    du möchtest also den Status von 4 Gen1 Shellys in Echtzeit in einem Gen2 Shelly Script abfragen, das ist in der Tat kein einfaches Problem.

    Du wirst so etwas wahrscheinlich nur mit einer Kombination aus Endpoint und Actions hinbekommen.

    Ein Script Endpoint ist eine URL/Link unter der dein Gen2 Shelly erreichbar ist, bzw. über die Daten übertragen werden können.

    Du müsstest also ein Script mit http Endpoint erstellen und dann auf all deinen Gen1 Shelly Aktions mit deiner Endpoint-URL, samt Query-Parameter, erstellen.

    Hier ein Beispiel Script für Endpoints:

    Code
    function watch(request, response) {
        response.code = 200;
        response.body = 'Beispiel';
        response.send(); //Sendet deine Antwort an den Server zurück.
        print('Im watch Callback-->',request);
    }
    
    print('Dein HTTP_Endpoint Link lautet: ', Shelly.getComponentStatus('wifi').sta_ip, HTTPServer.registerEndpoint('test', watch));

    Mehr zu Endpoints;

    Shelly Script Language Features | Shelly Technical Documentation
    Since version 0.9.0
    shelly-api-docs.shelly.cloud
  • @De kat, dank dir für die Antwort. Leider kann ich mit den Begriffen nichts anfangen. Wie gesagt, Null Ahnung von der Materie.

    Abfrage und im Log zeigen, ob Licht an oder aus ist.

    - Shelly 2.5

    - IP: 192.168.178.20

    - Kanal 1

    - Licht Wohnzimmer

    - http://192.168.178.20/relay/1/status

    Script soll auf einen Shelly Plus 2PM laufen.

    Kann mir das einer von euch Scripten?

    Das ist jetzt mehr die Neugier, wie es richtig aussehen sollte, wenn es funktioniert.

    Mein eigentliches Vorhaben gebe ich wohl auf. Bei null anzufangen ist dann doch zu schwierig. Da ich zwei Scripte am Laufen habe, dachte ich, dass es leichter ist, sich da reinzuarbeiten. Die funktionierenden Scripte wurden mehr oder weniger durch copy/paste und leichten Anpassungen zur Funktion gebracht.

    Das Einzige, was ich in dieser Richtung gemacht habe, sind einfache Batch-Dateien für Windows.

    Danke euch im Voraus.

  • Klar, ich kann das Skript für dich erstellen. Allerdings kann ich mich erst am Wochenende damit befassen, wenn ich die RemoteEvent-Funktion für Gen1 erweitere.

    Es ist eigentlich nicht allzu schwer, besonders mit dem Beispiel-Skript für nen http Endpunkt und meiner obigen Beschreibung.

    Als Batch Script Anfänger solltest du das hinbekommen. Ich stehe zur Unterstützung bereit, falls du auf Probleme stößt.

  • Oscan

    Ist das Skript noch relevant oder gibt es vielleicht sogar schon eine andere Lösung?

    Hab mein Wochenende mit einer grantigen Spülmaschine, defekte pumpe, und dem "Blu Script v2" verbracht, die Baustelle "Remote-Events", die für so ein Script als Grundlage notwendig ist, hab ich noch nicht einmal begonnen. 😅 Das ganze wird also noch ein bisle länge dauern, sry.

  • Dieses Thema enthält 23 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.