Falls hier noch wer die Benachrichtigung benötigt.
Dieses Script ist nicht länger empfohlen.
Bitte auf .hsb Bausteine umstellen (keine Angst ist sehr viel einfacher als das hier)
https://knx-user-forum.de/forum/%C3%...r-und-debugger
Ankündigung
Einklappen
Keine Ankündigung bisher.
ByteCode Logikbaustein (opt. Lizenzprüfung)
Einklappen
X
-
Auch wenn das ganze vielleicht schon ein wenig älter ist versuche ich gerade den roten Faden zu finden. Dazu habe ich den Post mit der Version 1.9 mal zitiert und versucht die Formatierung herzustellen.
Update Version 1.9
###Changelog###
* kompiliert für 2.2er und 2.3er FW als auch für 2.4er Firmware
* Symbolize ( um den Variablen SN[2]/EN[3]... Namen ala @@Temperatur zu geben)
* base64 oder zlib komprimierter Bytecode zur Formelerstellung
* Quelltext kann direkt mit angehängt werden
* mehrere Codeblöcke mit auch unterschiedlichen kodierungen (base64/bytecode)
* Zipfile support (--zip)
* ausgabe des generierten Codes (--list)
* Debug Komentare die in der entgültigen Version entfernt sind (###DEBUG###print "Debug: EN[1] = "+ str(EN[1]) (nur bei --debug oder --live)
Um jetzt damit einen neuen Baustein zu erstellen folgenden Befehl ausführen:
Damit wird eine Datei mit dem Namen "10555_MeinLogikName.py" erstellt. Diese enthält automatisch das Template mit bereits angepasster ID und Namen.Code:python LogikGeneratorTemplate.py --new=10555:MeinLogikName
Dort muss dann der Code im Codebereich erstellt werden.
Um den Code LIVE zu testen, muss der Baustein dann einmal mit den folgenden Parametern aufgerufen werden:
Homeserver-IP 10.10.10.10 und Debugport 9011 entsprechend den eigenen Gegebenheiten ersetzenCode:python [B]10555_MeinLogikName.py[/B] --live=10.10.10.10:9011
Dadurch wird eine hsl mit dem Namen 10555_MeinLogiName_V0.1_DEBUG.hsl erzeugt.
Diese hsl wird dann in den Logikordner des Experten kopiert.
Die Logik die dann im GLE zu sehen ist, hat einen Eingang mehr als definiert wurde (DEBUG) dieser wird einfach mit einer "IP/EIB-Telegramm empfangen" verbunden (Empfangen enthält nur ein WERT-als Klartext 14Byte iKO). Alle weiteren zu testenden Logiken können ebenfalls mit diesem gleichen IP Empfang verbunden werden, da jeder Baustein nur den Code an nimmt, der von seinem Template mit der gleichen LogikID verschickt wird.
Nach dem Upload auf den HS, führt ein weiterer
dazu, das der im Template angezeigte Code in den HS geladen wird. Auf der Konsole des HS kann das auch mitverfolgt werden, ebenso wie im Quelltext angegebene "print" Befehle ihre Ausgabe auf den am HS angeschlossenen Monitor ausgeben.Code:python [B]10555_MeinLogikName.py[/B] --live=10.10.10.10:9011
Zum testen, oder zum Auslösen de Bausteins:
führt die Initialisierung des Bausteins durchCode:python 10555_MeinLogikName.py --send=10.10.10.10:9011 --ei=1 --run
setzt Eingang 1 auf den Wert "NeuerWert", es können auch die Werte EA,SN,SA,AA,AN geändert werden ebenso kann das ändern von EC/SC/AC (--ec1=1) dazu genutzt werden um Änderungen zu simulieren.Code:python 10555_MeinLogikName.py --send=10.10.10.10:9011 --en1=NeuerWert
Für mich bleiben da ein paar Fragen:
Ohne Live-Debugging lasse ich einfach --debug und --live weg, dafür erhalte ich dann einen fertigen Baustein?
Was für ein Protokoll wird für den Debug-Port verlangt (TCP/UDP/???)?
Was hat es mit "USAGE: python.exe LogikGenerator.py [--debug --en1=34 --en2="TEST"]" auf sich? Speziell die Definition en1, en2 ... Muss ich dort die Anzahl/Namen der Ein- und Ausgänge vorher definieren?
Was macht die compile24.py, die gehört einfach zum Template und muss im Ordner liegen ?
Die ersten Erfolge konnte ich mit der ersten Version (makeLogic.py) bereits verbuchen.
Danke für erhellende Hinweise und Gruß
Mirko
Einen Kommentar schreiben:
-
Hab ich keine....
In Häusern mit Lüftung ist mir immer die Luft zu trocken....
Einen Kommentar schreiben:
-
Cool,Zitat von MatthiasS Beitrag anzeigenIch baue auch gerade meinen ersten.....
Was wird es denn wohl werden?
Einen Kommentar schreiben:
-
Super. Ich freu' mich auf epische Bausteine
Ich baue auch gerade meinen ersten.....
Einen Kommentar schreiben:
-
Naja... ich will ja machen... Das ganze hier war mir nur nie klar. Hab mich immer gefragt wo die "nicht Klartext" hsl's herkommen.Zitat von MatthiasS Beitrag anzeigenDa sieht man das Dilemma:
Die meisten wollen nur finden
Da ich das nu gesehen habe und es einiges noch nicht gibt was ich haben will.... muss ich es wohl selber bauen.
Viele Grüße
Einen Kommentar schreiben:
-
Da sieht man das Dilemma:
Die meisten wollen nur finden
Einen Kommentar schreiben:
-
Naja also es ist ja eigentlich nicht soooo sehr eingeschlafen
Die aktuelleste Version ist immer so ein wenig relativ, da es ja immer den ganzen Baustein betrifft.
Das aktuelleste findest du warscheinlich in dem Baustein https://github.com/knxuf/buderus/blo...264_Buderus.py
wenn du darauf aufsetzen willst kannst du einfach den Baustein spezifischen Teil ändern/löschen und das nutzen.
Ich würde dir dann zum testen den https://github.com/knxuf/HS-Logikdebugger empfehlen.
Bausteine danach gibts in Mengen
um nur einige zu nennen hsfusion,hsphone,systemlog,textarchiv,fritz_callmo n,squeeze,overto ekey uvm.
Einen Kommentar schreiben:
-
Warum ist den das hier so eingeschlafen?
Ich dachte hier bald UNMENGEN von EPISCHEN Bausteinen finden zu können....
Welches ist denn nu eigentlich die aktuelle Version des Generators?
1.9 von paar seiten vorher?
Viele Grüße
Einen Kommentar schreiben:
-
Python Libs auf dem HS/FS
Weiss jemand welche Libs auf der aktuellen FW (2.7) im HS/FS verfuegbar sind?
Einen Kommentar schreiben:
-
Entschiedend sind die libs auf dem HS.
Google Kalender wird wohl ohne _ssl nix, aber warten wir mal ob da was kommt
Der Baustein steht bei mir auch auf dem Wunschprogramm.
In Verbindung hiermit https://knx-user-forum.de/downloads.php?do=file&id=390
gehts noch besser.
Einen Kommentar schreiben:
-
Hallo zusammen,
Bin durch Zufall auf dieses tolle Tool gestoßen. Nun hab ich aber noch ne Frage zu den Libs. Was zählt, die Libs auf dem HS oder die Libs auf dem Rechner, mit dem man den Baustein erstellt? Welche Libs sind auf dem HS verfügbar?
Evtl komm ich so ja meinem gewünschtem Google Kalender Baustein näher!
Gruß Nico
Einen Kommentar schreiben:
-
Hab nun nochmal Zeit gehabt und ein wenig probiert.
Ich sehe jedoch immer noch nicht, auch nicht bei den schon vorhandenen Logikmodulen, wo der Zusammenhang von Ein- und Ausgängen in der Logik.py Datei liegt.
Habe Beispielsweise eine Logik, die auf IP-Telegramme hört.
Wie bekomm ich nun den Wert von Eingang 1 in den Pythonscript eingebunden.....und umgekehrt die Empfangenen Daten auf den Ausgang des Logikbausteins.....
import socket
HOST = '' # Symbolic name meaning all available interfaces
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
if not data: break
conn.send(data)
conn.close()
Aber wie binde ich nun meine Eingänge (IP-Adresse, Port, Empfangene Daten) in die hsl ein?
Einen Kommentar schreiben:
-
Nur dran denken: Socket + TCP blockiert!
Das kann also schnell unschön werden aber ansonsten kann man damit auch die wildesten Dinge machen
Makki
Einen Kommentar schreiben:


Einen Kommentar schreiben: