Insolvenz der Elaborated Networks GmbH

Leider müssen wir Sie heute darüber informieren, dass das Amtsgericht München mit Beschluss vom 16. Oktober 2026 das Insolvenzverfahren über das Vermögen der Elaborated Networks GmbH unter dem Aktenzeichen 1509 IN 1258/26 eröffnet hat.

Zum Insolvenzverwalter wurde Herr Rechtsanwalt Dr. Matthias Hofmann bestellt. Dieser hat die Verwaltungs- und Verfügungsbefugnis über das Vermögen der Gesellschaft übernommen.

Die Gesellschaft firmiert ab sofort unter dem Namen: “Elaborated Networks GmbH in Insolvenz”. Der Geschäftsbetrieb der Gesellschaft wurde im Zuge des Verfahrens eingestellt. Eine Erbringung von Leistungen oder Lieferungen ist leider nicht mehr möglich. Die Cloud-Dienste werden bis auf weiteres im Rahmen einer privaten Initiative aufrechterhalten, dies kann jederzeit widerrufen werden.

Sollten Sie noch offene Forderungen (§ 38 InsO) gegen die Elaborated Networks GmbH haben, werden Sie gebeten, diese direkt beim Insolvenzverwalter bis zum 7. Dez. 2026 zur Insolvenztabelle anzumelden. Bitte richten Sie sämtliche diesbezügliche Korrespondenz direkt an das Büro des Insolvenzverwalters:

Rechtsanwalt Dr. jur. Matthias Hofmann
Unterer Anger 3
80331 München

Telefon: +49(89)5480330
Telefax: +49(89)548033111
Email: mail@pohlmannhofmann.de

Wir bedanken uns für die bisherige Zusammenarbeit und stehen Ihnen bei Rückfragen in Abstimmung mit dem Insolvenzverwalter unter support at elabnet dot de gerne zur Verfügung.

Details zum Verfahren und den privaten Initiativen stellen wir Kunden in einem nicht-öffentlichen Bereich zur Verfügung. Falls Sie hier keinen Zugriff haben, dann tragen Sie bitte Ihren Forennick in die Registrierung Ihres Servers ein und senden uns den Nick zusammen mit der ID Ihres Timberwolf Servers an support at elabnet dot de. Falls Sie hierzu erst einen Nick anlegen müssen verfahren Sie genauso. Das Bestätigungsmail nach der Anmeldung kommt aus technischen Gründen derzeit nicht, die Aktivierung erfolgt dann manuell nach Ihrer Mail an uns.

Stefan Werner
Geschäftsführer (ohne Vertretungsmacht)

[TIPP] [3.5.1] Shelly Button1 (Beispielimplementierung)

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
blaubaerli
Beiträge: 2785
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 1080 Mal
Danksagung erhalten: 1056 Mal

[3.5.1] Shelly Button1 (Beispielimplementierung)

#1

Beitrag von blaubaerli »

Hallo zusammen,

wie von Ben @AchterB hier erbeten, anbei mal ein Stück-Mustercode zur Einbindung eines Shelly Button1. Der Code ist explizit entstanden, bevor die Logigengine Stringerweiterung erfahren hat.

Sieht dann bei mir so aus:

Bild

Bitte nicht wundern, ich habe im Code die Anleitung zu diversen Elementen oben immer als Kommentar mit drinnen. Ist quasi meine eigene Templatekonstruktion, damit ich bei Analysen nicht lange graben muss. Kann auch sein, dass nen paar Variablen zu viel drinnen sind. Soll auch keinen optimalen Code demonstrieren, sondern nen Quick-Hack... :whistle:

Code: Alles auswählen

/**
 
    Latch
    Ein Latch ist dazu da, einen Wert/Zustand der zu einen bestimmten Zeitpunkt anliegt zwischenzuspeichern.
    ["Latch","$Eingang","$Ausgang","$Trigger",TriggerOption]
    
    Eingang und Ausgang müssen vom gleichen Typ sein, also (float/float),(integer/integer),(bool/bool) oder (string/string).
    Der Trigger ist vom Typ "bool" und bestimmt, ob der Eingangswert am Ausgang übernommen wird.
    Das Verhalten des Triggers kann durch die TriggerOption angepasst werden.
    TriggerOption	Der Eingangswert wird am Ausgang übernommen, wenn ...
    0	... Trigger = true ist
    1	... der Trigger von false nach true wechselt (steigende Flanke)
    2	... der Trigger von true nach false wechselt (fallende Flanke)
    3	... der Trigger seinen Wert ändert (steigende oder fallende Flanke)
    ansonsten bleibt der Ausgang unverändert.


    Comparator
    Der Schwellwertschalter erlaubt 2 Varianten:
    Ein Schwellwert: Der Eingangswert wird mit dem Schwellwert verglichen und die Logikzelle gibt 1 aus, wenn $Input_Wert > $Schwellwert erfüllt ist.
    ["Comparator" , "$Input_wert" , "$Output" , "$Schwellwert"]
    Oberer und unterer Schwellwert: Der Ausgang der Logik liefert 0, wenn der untere Schwellwert unterschritten ist, eine 1, wenn der obere Schwellwert überschritten ist. Liegt der Input_Wert zwische oberer und unterer Schwelle, wird der unveränderte Ausgangswert ausgegeben.
    ["Comparator" , "$Input_Wert" , "$Output" , ["$UntereSchwelle","$ObereSchwelle"]]


    Startverhaltenfunktion
    Im Custom-Logik-Code
    
    In einer Custom-Logik kann der Startwert im Level-Array über den “Init Value” festgelegt werden.
    Das Sperren bis der Variablen (hier $In) ein Eingangswert zugewiesen wurde, kann bspw. wie folgt erreicht werden ["Break",["-$In"]].


    Triggered(verfügbar ab TWS V1.6)
    Die Syntax für die Trigger-Erkennung sieht folgendermassen aus:
    [ "Triggered", "$Input", "$Touched" ]
    
    "Triggered" : Modulkennung
    "$Input": Referenz auf einen Level der mit einem Eingang verbunden ist
    "$Touched": Referenz auf einen boolschen Level
    
    Der Trigger-Erkennung funktioniert folgendermaßen:
    Der Status des "$Input"-Levels wird überprüft, ob er beim aktellen Durchlauf dieser Logik bereits einmal "angefasst" wurde.
    Ist das der Fall wird "$Touched" auf true gesetzt, anderfalls auf false
    
    Wenn ein Ereignis an einem Eingang die Logik triggert, bekommt der mit dem Eingang verbundene Level vorher das "Touched"-Flag gesetzt.
    Somit lässt sich einfach abfragen, ob dieser Eingang die Logik ausgelöst hat.
    
    Achtung:
    Wird ein Level intern "angefasst", z.B. durch ein vorheriges Modul beschrieben, wird ebenfalls das "Touched"-Flag gesetzt. Will man sicher nur auf "Eingang triggered" testen, muss dieser Test möglichst vor allen anderen Modulen stehen, die den Level verändern können.


    Break
    Dies ist ein spezielles Modul, das die weitere Ausführung einer (Custom-) Logikzelle abbricht, sobald ein "True" auf einem der Break-Eingänge eintrifft (von einem Eingang der Logikzelle oder einer Variablen, die innerhalb der Logik berechnet wird). Beim Abbruch werden keine nachfolgenden Module mehr berechnet/ausgeführt. Kein Ausgang wird gesendet, auch nicht die Ausgänge, deren Variable vor dem Erreichen des Breaks gesetzt wurden.

    Syntax mit einem Eingang:
    ["Break", ["$Eingang"]]

    Mehrer Eingänge sind ODER-verknüpft, zB:
    ["Break", ["$Eingang1","$Eingang2"]]

    Wird Break wie folgt verwendet, können in der GUI beliebig viele Eingänge hinzugefügt werden, die einen Abbruch triggern:
    ["Break", ["$VAR<Inhibit?>"]]

 
 */

{
  "_Meta": { // Optional
    "Description": "",
    "Version": "1.00",
	 "Icon": " data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPg0KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iMCAwIDUxMi4wMDEgNTEyLjAwMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyLjAwMSA1MTIuMDAxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBzdHlsZT0iZmlsbDojRkRCNTFFOyIgZD0iTTI1Mi4xOTgsMzQ3LjY5MWMxNi4xMTYtMi41MiwyOS45NjcsMTEuMzMyLDI3LjQ0OCwyNy40NDhjLTEuNTg1LDEwLjEzNi05LjcwNiwxOC4yNTgtMTkuODQzLDE5Ljg0Mw0KCWMtMTYuMTE2LDIuNTItMjkuOTY3LTExLjMzMi0yNy40NDgtMjcuNDQ4QzIzMy45NCwzNTcuMzk3LDI0Mi4wNjEsMzQ5LjI3NiwyNTIuMTk4LDM0Ny42OTF6Ii8+DQo8cGF0aCBzdHlsZT0iZmlsbDojRkZEMzExOyIgZD0iTTMzMy44MTUsMzExLjQ3OXYxNDMuNjU3SDE3OC4xODZWMzExLjQ3OUgzMzMuODE1eiBNMjU2LjAwMSwzOTUuMjc5DQoJYzEzLjE2OSwwLDIzLjk0My0xMC43NzQsMjMuOTQzLTIzLjk0M2MwLTEzLjE2OS0xMC43NzQtMjMuOTQzLTIzLjk0My0yMy45NDNjLTEzLjE2OSwwLTIzLjk0MywxMC43NzQtMjMuOTQzLDIzLjk0Mw0KCUMyMzIuMDU4LDM4NC41MDQsMjQyLjgzMiwzOTUuMjc5LDI1Ni4wMDEsMzk1LjI3OXoiLz4NCjxwYXRoIHN0eWxlPSJmaWxsOiM0NDU3NjQ7IiBkPSJNMjU2LjAwMSw3OC4wMzdjMTYuNTIxLDAsMjkuOTI5LDEzLjQwOCwyOS45MjksMjkuOTI5cy0xMy40MDgsMjkuOTI5LTI5LjkyOSwyOS45MjkNCglzLTI5LjkyOS0xMy40MDgtMjkuOTI5LTI5LjkyOVMyMzkuNDgsNzguMDM3LDI1Ni4wMDEsNzguMDM3eiIvPg0KPHBhdGggc3R5bGU9ImZpbGw6I0U3RUNFRDsiIGQ9Ik0yNTYuMDAxLDEzNy44OTRjMTYuNTIxLDAsMjkuOTI5LTEzLjQwOCwyOS45MjktMjkuOTI5cy0xMy40MDgtMjkuOTI5LTI5LjkyOS0yOS45MjkNCglzLTI5LjkyOSwxMy40MDgtMjkuOTI5LDI5LjkyOVMyMzkuNDgsMTM3Ljg5NCwyNTYuMDAxLDEzNy44OTR6IE0zNC41MjksMjE1LjcwOEwyNTYuMDAxLDEyLjE5NGwyMjEuNDcxLDIwMy41MTRoLTM1LjkxNEg3MC40NDMNCglIMzQuNTI5eiIvPg0KPHBhdGggc3R5bGU9ImZpbGw6IzQ0NTc2NDsiIGQ9Ik03MC40NDMsMjE1LjcwOHYyODcuMzE0aDM3MS4xMTRWMjE1LjcwOEg3MC40NDN6IE0zMzMuODE1LDQ1NS4xMzZIMTc4LjE4NlYzMTEuNDc5aDE1NS42MjlWNDU1LjEzNnoNCgkiLz4NCjxwYXRoIHN0eWxlPSJmaWxsOiNCMkI2Qjg7IiBkPSJNMjI2LjA3MiwxMDcuOTY2YzAtMTYuNDc0LDEzLjMzNS0yOS44MzksMjkuNzkyLTI5LjkxNFYxMi4zMTlMMzQuNTI5LDIxNS43MDhoMzUuOTE0aDE4NS40MjFWMTM3Ljg4DQoJQzIzOS40MDcsMTM3LjgwMywyMjYuMDcyLDEyNC40MzksMjI2LjA3MiwxMDcuOTY2eiIvPg0KPHBhdGggZD0iTTQ1MC41MzYsMjI0LjY4N2g0OS45NzZMMjU2LjAwMSwwTDExLjQ4OSwyMjQuNjg3aDQ5Ljk3NnYyNjkuMzU3SDIyLjU1OHYxNy45NTdoNDY2Ljg4NnYtMTcuOTU3aC0zOC45MDdWMjI0LjY4N3oNCgkgTTU3LjU2OSwyMDYuNzNsMjYuMDU2LTIzLjk0M2gyNjIuMTYxVjE2NC44M2gtMjQyLjYyTDI1Ni4wMDEsMjQuMzg3bDE5OC40MzEsMTgyLjM0Mkg1Ny41NjlWMjA2LjczeiBNNzkuNDIyLDI2Ni41ODdoNjIuODVWMjQ4LjYzDQoJaC02Mi44NXYtMjMuOTQzaDM1My4xNTd2MjMuOTQzaC02Mi44NXYxNy45NTdoNjIuODV2MjI3LjQ1N0g3OS40MjJMNzkuNDIyLDI2Ni41ODdMNzkuNDIyLDI2Ni41ODd6Ii8+DQo8cGF0aCBkPSJNMjU2LjAwMSw2OS4wNThjLTIxLjQ1MywwLTM4LjkwNywxNy40NTQtMzguOTA3LDM4LjkwN3MxNy40NTQsMzguOTA3LDM4LjkwNywzOC45MDdzMzguOTA3LTE3LjQ1NCwzOC45MDctMzguOTA3DQoJUzI3Ny40NTMsNjkuMDU4LDI1Ni4wMDEsNjkuMDU4eiBNMjU2LjAwMSwxMjguOTE2Yy0xMS41NTEsMC0yMC45NS05LjM5OS0yMC45NS0yMC45NXM5LjM5OS0yMC45NSwyMC45NS0yMC45NQ0KCXMyMC45NSw5LjM5OSwyMC45NSwyMC45NVMyNjcuNTUyLDEyOC45MTYsMjU2LjAwMSwxMjguOTE2eiIvPg0KPHBhdGggZD0iTTI0Ny4wMjIsNDAzLjAwM3YyOC4xOWgxNy45NTd2LTI4LjE5YzEzLjgwMS0zLjkxOSwyMy45NDMtMTYuNjI2LDIzLjk0My0zMS42NjdjMC0xOC4xNTMtMTQuNzY4LTMyLjkyMS0zMi45MjEtMzIuOTIxDQoJcy0zMi45MjEsMTQuNzY4LTMyLjkyMSwzMi45MjFDMjIzLjA3OSwzODYuMzc3LDIzMy4yMiwzOTkuMDg0LDI0Ny4wMjIsNDAzLjAwM3ogTTI1Ni4wMDEsMzU2LjM3MQ0KCWM4LjI1MiwwLDE0Ljk2NCw2LjcxMiwxNC45NjQsMTQuOTY0YzAsOC4yNTItNi43MTIsMTQuOTY0LTE0Ljk2NCwxNC45NjRjLTguMjUyLDAtMTQuOTY0LTYuNzEyLTE0Ljk2NC0xNC45NjQNCglDMjQxLjAzNiwzNjMuMDg1LDI0Ny43NDksMzU2LjM3MSwyNTYuMDAxLDM1Ni4zNzF6Ii8+DQo8Zz4NCgk8cmVjdCB4PSIxNjAuMjI2IiB5PSIyNDguNjM1IiBzdHlsZT0iZmlsbDojRkZGRkZGOyIgd2lkdGg9IjIzLjk0MyIgaGVpZ2h0PSIxNy45NTciLz4NCgk8cmVjdCB4PSI5NC4zODMiIHk9IjQ1OC4xMzUiIHN0eWxlPSJmaWxsOiNGRkZGRkY7IiB3aWR0aD0iMjMuOTQzIiBoZWlnaHQ9IjE3Ljk1NyIvPg0KPC9nPg0KPHJlY3QgeD0iMTE4LjMyNiIgeT0iNDM0LjE5MiIgd2lkdGg9IjIzLjk0MyIgaGVpZ2h0PSIxNy45NTciLz4NCjxyZWN0IHg9IjM5My42NjgiIHk9IjQ1OC4xMzUiIHN0eWxlPSJmaWxsOiNGRkZGRkY7IiB3aWR0aD0iMjMuOTQzIiBoZWlnaHQ9IjE3Ljk1NyIvPg0KPHJlY3QgeD0iMzY5LjcyNiIgeT0iNDM0LjE5MiIgd2lkdGg9IjIzLjk0MyIgaGVpZ2h0PSIxNy45NTciLz4NCjxyZWN0IHg9IjMyNy44MjYiIHk9IjI0OC42MzUiIHN0eWxlPSJmaWxsOiNGRkZGRkY7IiB3aWR0aD0iMjMuOTQzIiBoZWlnaHQ9IjE3Ljk1NyIvPg0KPHBhdGggZD0iTTQwOC42MzYsNDEwLjI0M3YtNjguODM2aC0xNy45NTd2NTAuODc5aC00Ny44ODZWMzAyLjVoLTQxLjl2LTQ0Ljg5M2MwLTcuMjU1LTUuMjQ1LTE0Ljk2NC0xNC45NjQtMTQuOTY0aC01OS44NTcNCgljLTkuNzIsMC0xNC45NjQsNy43MS0xNC45NjQsMTQuOTY0VjMwMi41aC00MS45djM1LjkxNGgtNjUuODQzdjY4LjgzNmgxNy45NTd2LTUwLjg3OWg0Ny44ODZ2MTA3Ljc0M2gxNzMuNTg2di01My44NzFINDA4LjYzNnoNCgkgTTIyOS4wNjUsMjYwLjYwMWg1My44NzF2NDEuOWgtNTMuODcxVjI2MC42MDF6IE0zMjQuODM2LDQ0Ni4xNTdIMTg3LjE2NXYtMTI1LjdoMTM3LjY3MVY0NDYuMTU3eiIvPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPGc+DQo8L2c+DQo8Zz4NCjwvZz4NCjxnPg0KPC9nPg0KPC9zdmc+DQo="
  },
  "Input": [
      ["ButtonCounter","ButtonCounter","$I_ButtonCounter","c"],
      ["Einschaltphase","Einschaltphase","$I_Einschaltphase","u"]
  ],
  "Output": [
      ["Schaltstring","Shellyschaltstring","$O_ShellySchaltString","a"],
      ["Schaltbool","Schaltbool","$O_ShellySchaltBool","a"]
  ],
  "Level": [
      ["$I_ButtonCounter","integer",0],

      ["$O_ShellySchaltString","string","init"],
      ["$O_ShellySchaltBool","bool",false],

      ["$ConstTrue","bool",true],
      ["$ConstFalse","bool",false],
      ["$ConstOn","string","on"],
      ["$ConstOff","string","off"],
      ["$ConstToggle","string","toggle"],
      ["$CloseSignal","bool",true],
      ["$OpenSignal","bool",false],
      ["$I_Einschaltphase","bool",false],
      ["$OnSignal","bool",false],
      ["$OffSignal","bool",false],
      ["$OnOffSignal","bool",false],
      ["$ToggleSignal","bool",false],
      ["$ButtonCounterIsNowTriggered","bool",false]

  ],
  "Module": [
      [ "Triggered","$I_ButtonCounter","$ButtonCounterIsNowTriggered"],

      ["And",["$ButtonCounterIsNowTriggered","$I_Einschaltphase"],"$OnSignal"],
      ["And",["$ButtonCounterIsNowTriggered","-$I_Einschaltphase"],"$OffSignal"],

      ["And",["$ButtonCounterIsNowTriggered","$I_Einschaltphase"],"$O_ShellySchaltBool"],

      ["Latch","$ConstOn","$O_ShellySchaltString","$OnSignal",0],
      ["Latch","$ConstOff","$O_ShellySchaltString","$OffSignal",0]


  ]
}
"Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht."

Klar, das Konstrukt braucht nen Rahmen der den Zeiteingang beeinflusst und natürlich im MQTT-Geräte Manager das Versorgen des Objektes mit dem korrekten Selektor.

Bei Bedarf gerne noch mal nachfragen.

Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Mo Nov 07, 2022 11:23 pm, insgesamt 3-mal geändert.
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.
Antworten

Zurück zu „Zusätzliche Logikbausteine“