+ Antworten
Seite 2 von 3 ErsteErste 1 2 3 LetzteLetzte
Ergebnis 11 bis 20 von 21
  1. #11
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    874

    Zitat Zitat von Helmut Beitrag anzeigen
    Soll er die Daten kontinuierlich übermitteln oder nur auf Anfrage?
    Hi Helmut,

    nur auf Anfrage = Polling ist unschön, da nicht zeitnah.

    kontinuierlich = laufende Belastung, und damit Auslastung, auf dem USB Bus; auch nicht so toll.

    Wie wäre es mit: Übermittlung bei Änderung der Temperatur.

    Im Auswerteskript von IPS wird ja eh eine Variable für diesen Zweck vorgesehen sein.

    Gibt es schon einen IPS Treiber für dieses Projekt?
    Bei meinem ist der von Toni programmierte Treiber durch den Releasewechsel von V2.04 auf 2.1 leider nicht mehr nutzbar.

    mfg

    Bernd

  2. #12
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Hallo Bernd!!
    Da das Kontrollerteilchen noch einiges mehr enthält, gibt es eine USB-HID-Übertragung bei Zustandswechsel eines EingangsBit von Port XY

    Dann würde noch die analog Messung und jetzt die Temperatur-Messung eine Übertragung auslösen.

    Und die Zähler sind auch noch drin......

    Nur nach welchen Kriterien, 0,1 Grad, 0,2 mV oder welcher Zählerstand.

    Um es gut zu machen, müßten die Kriterien auch noch programmierbar werden.

    Dann wird es aber echt unübersichtlich.

    Überlege ernsthaft mehr als 12 Parameter zu übertragen, es gehen 64 !!

    Dann bekommt man zwar viele Bytes, aber dessen Inhalte müssen nicht vorher mit Befehlen erst bestimmt werden.

    zB 32 In-, 32 Out-Port-Pin= je 4Byte= 8Byte
    4 analoge = 4 High- und 4 Low-Byte auch 8Byte
    2 Zähler = je 2 Byte High- und Low-Byte = 4Byte
    zB 5 Tempwerte= 5 Vorzeichen und 5 Werte=10Byte

    da wäre noch erfassbar.

    Modul hatte Tommi sich sehr eingesetzt, nur, wie du auch erlebt hast, gibt es immermal Versionsgeschichten.

    Man kann es auch ohne Modul erfassen
    , wenn man die von IPSymcon gestellten HID-Befehle "pur" nimmt.
    Modul ist naturlemang schöner

    Übrigens, viel Glück, sprich Moos, mit deinem Internetauftritt !!!
    Geändert von steiner (30.10.09 um 22:21 Uhr)

  3. #13
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    874

    Standard Skript, der zweite

    Hi Helmut,

    ich setzt die Skripterei hier mal fort.

    Zitat Zitat von Helmut Beitrag anzeigen
    Geht bestimmt irgendwie mit Array`s.
    Zitat Zitat von BerndJ Beitrag anzeigen
    Das geht alles bestimmt viel eleganter
    Fangen wir an mit der Auswertung per For Schleife:

    PHP-Code:
    <?

    define
    ("Wert1",14144 /*[Technik\.Helmut´s 433MHz Modul\01 analoger Eingang High-Wert]*/);
    define("Wert2",47900 /*[Technik\.Helmut´s 433MHz Modul\02 analoger Eingang Low-Wert]*/);
    define("Wert3",51969 /*[Technik\.Helmut´s 433MHz Modul\03 Daten des adressierten Ports]*/);
    define("Wert4",56301 /*[Technik\.Helmut´s 433MHz Modul\04 wofür?]*/);
    define("Wert5",17189 /*[Technik\.Helmut´s 433MHz Modul\05 wofür?]*/);
    define("Wert6",27399 /*[Technik\.Helmut´s 433MHz Modul\06 Zähler 1 High-Wert]*/);
    define("Wert7",39903 /*[Technik\.Helmut´s 433MHz Modul\07 Zähler 1 Low-Wert]*/);
    define("Wert8",48195 /*[Technik\.Helmut´s 433MHz Modul\08 Zähler 2 High-Wert]*/);
    define("Wert9",31921 /*[Technik\.Helmut´s 433MHz Modul\09 Zähler 2 Low-Wert]*/);
    define("Wert10",54861 /*[Technik\.Helmut´s 433MHz Modul\10 wofür?]*/);
    define("Wert11",23687 /*[Technik\.Helmut´s 433MHz Modul\11 wofür?]*/);
    define("Wert12",13591 /*[Technik\.Helmut´s 433MHz Modul\12 zuletzt angesprochene Steckdose]*/);
    define("Wert13",58687 /*[Technik\.Helmut´s 433MHz Modul\13 zuletzt angesprochener Port]*/);
    define("Wert14",20603 /*[Technik\.Helmut´s 433MHz Modul\14 wofür?]*/);
    define("AnzWerte"14 /*Anzahl der Werte*/);


    switch(
    $IPS_SENDER)                                // ermitteln, wodurch das Skript aufgerufen wurde
    {
        case 
    "Execute":                                // von Hand aufgerufen: Schleife starten
        
    case "TimerEvent":                             // vom Timer aufgerufen: Schleife starten
            
    HID_SendEvent(42538 /*[Helmut´s 433 MHz Modul]*/0chr(0x00).chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x7D).chr(0x7D).chr(0x00).chr(0x00)); // Blankoaufruf senden
        
    break;

        case 
    "RegisterVariable":                       // durch Registervariable aufgerufen: neuer Wert wurde empfangen

           
    SetValue(45705 /*[Technik\.Helmut´s 433MHz Modul\vom 433MHz Modul]*/$IPS_VALUE);  // empfangenen Wert abspeichern

    // Erklärung der neu kennengelernten PHP Befehle:
    // SetValue sollte klar sein, speichert den Krempel in die rot gekennzeichnete Objekt ID
    // ord sorgt für die Darstellung des ASCII Wertes des selektierten Bytes
    // substr beginnt bei dem Zeichen, welches im ersten Parameter genannt wird für die Länge des im im 2.ten Parameter genannten Wertes2


    for ($i 1$i <= AnzWerte$i++)     {                         /*Programmschleife wird formuliert */
        
    $name "Wert" .$i;                                     /*Der jeweils benötigte Konstantenname wird zusammengehäkelt */
        
    SetValue($nameord(substr ($IPS_VALUE$i1)));  /*Der zugehörige Wert wird in die zugehörige Variable geschrieben */
    }                                                           /*for Programmschleife wird abgeschlossen */
        
    break;
    }

    ?>
    geht irgend wann mal weiter mit der Eingabe.

    mfg

    Bernd
    Geändert von BerndJ (16.11.09 um 20:55 Uhr) Grund: PHP Code Variablennamen angepasst

  4. #14
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Standard Bernd, vielen Dank für die Umsetzung und Erklärung!!

    Hallo Bernd,

    da war ich ev. zu schlau mit der Bemerkung: geht sicher auch mit Array's.

    Weil das ist gar nicht so schlau, weil ich dann nicht meine Parameter mit Namen betiteln kann, die Rückschlüsse auf das Ergebniss zu lassen.

    Also Hauscode, Temperatur(en), PortNr, Daten, Zustände usw. und was ich gestern reinprogrammiert habe VentilNr und %Wert des Heizkörperventils.

    Die Ansteuerung von dem ELV-Modul zur Ansteuerung der max. 4 Heizkörperventile FHT 8i , was ich in Bascom-AVR hier schon veröffentlicht hatte, habe ich auch in dem PIC reinprogrammiert.

    Vielleicht mache ich mir den, auf dieser ELV-Platine vorhandenen, Sender noch für andere Aufgaben zu nutze.
    Wenn er denn schon mal da ist.....

    Noch `ne Frage: wie ersetze/konvertiere ich chr(0x1F) mit einer Stringvariablen?

    Hintergrund ist der Ersatz mit erkennbaren Beschreibungen: zB Ventil_Stellwert_verzögerung als Stringvariable anstelle von chr(0x03) als Übergabe zum PIC.
    Vom PIC zum PC habe ich schon Stringvariablen.
    Geändert von Helmut (16.11.09 um 20:13 Uhr) Grund: Bild eingefügt

  5. #15
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    874

    Zitat Zitat von Helmut Beitrag anzeigen
    Weil das ist gar nicht so schlau, weil ich dann nicht meine Parameter mit Namen betiteln kann, die Rückschlüsse auf das Ergebniss zu lassen.
    Das Array würde ich nur innerhalb des Skriptes nutzen. Bei meinem obigen Ansatz werden die Konstanten ja auch nur innerhalb des Skriptes benutzt. Selbstverständlich kannst Du dann Deinen Variablen "sprechende" Namen geben. Ich werd das oben mal anpassen.
    Jetzt bist Du bei 16 Parametern?, brauchst nur das obige Skript um diese beiden ergänzen und das Feld: "Wertxx" anpassen und die letzte define "AnzWerte", von 14 auf 16 zu ändern.

    Zitat Zitat von Helmut Beitrag anzeigen
    Die Ansteuerung von dem ELV-Modul zur Ansteuerung der max. 4 Heizkörperventile FHT 8i , was ich in Bascom-AVR hier schon veröffentlicht hatte, habe ich auch in dem PIC reinprogrammiert.

    Vielleicht mache ich mir den, auf dieser ELV-Platine vorhandenen, Sender noch für andere Aufgaben zu nutze.
    Wenn er denn schon mal da ist.....
    Wenn dat man geit? Ich fürchte, dass die rausgehenden Befehle in der Firmware auf die der Ventilantriebe beschränkt ist. Oder?

    mfg

    Bernd

  6. #16
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Zitat Zitat von BerndJ Beitrag anzeigen
    Das Array .......
    brauchst nur das obige Skript um diese beiden ergänzen und das Feld: "Wertxx" anpassen und die letzte define "AnzWerte", von 14 auf 16 zu ändern.
    .....
    Wenn dat man geit? Ich fürchte, dass die rausgehenden Befehle in der Firmware auf die der Ventilantriebe beschränkt ist. Oder?
    mfg
    Bernd
    Ja Nee, aber ich kann ja, vom Modul zum Sender, einen elektronischen Schalter (4066 oder Fet`s ) dazwischen legen.
    Wenn dann mal eine Nachricht nicht ankommt, ist es nicht so schlimm.

    Das mit der Anpassung ist klar, ..... das verstehe ich.
    Die Anzahl wird, glaube ich viel höher als 12, werde wohl auf eine Übertragung von möglichst allen Rückgabewerten gehen.

    Auch zum PIC ist mir eine direkte Erkennbarkeit der Parameter immer wichtiger geworden.

  7. #17
    Registriert seit
    Apr 2008
    Ort
    D-21423
    Beiträge
    874

    Zitat Zitat von Helmut Beitrag anzeigen
    ..glaube ich viel höher als 12, werde wohl auf eine Übertragung von möglichst allen Rückgabewerten gehen.
    Hi,

    dann lass uns doch erst mal die, die wir schon haben, checken und auf den aktuellen Stand bringen. In der Bildanlage die, welche ich begriffen habe; sei Bitte so nett und ergänze mal die für mich unklaren. Ich ergänze das dann im Skript.

    Zitat Zitat von Helmut Beitrag anzeigen
    Auch zum PIC ist mir eine direkte Erkennbarkeit der Parameter immer wichtiger geworden.
    Friemel ich Dir auch noch rein.

    mfg

    Bernd

  8. #18
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Standard Schaltuhrenprogram

    Hab`gerade ein Progrämmchen geschrieben, dass 2 Funksteckdosen über das HID-Modul betüttelt.

    Wer mehr Steckdosen schalten will, ruft das Program nochmal auf ;-)

    Ist jetzt fertig, zwei lecker Bildchen. Das IPSymcon-Webfenster läst sich auch bedienen, Purebasic WebGadget !!

    Das Schöne an der USB-HID-Geschichte:
    HID-Daten können von zB. meinem PC-Programm betascht werden und IPSymcon bekommt alles mit und kann genauso gut darauf zu greifen.

    Das geht über die Serielle nicht.
    Geändert von Helmut (21.02.10 um 21:31 Uhr) Grund: Erklärungsnot, Fertigmeldung

  9. #19
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Standard FHT8i mit dem USB-Multitruppa-HID Prozessormodul

    Auf besonderen Wunsch habe ich mal ein Layout passend für das FHT8i-Modul geroutet.

    FHT8i ?? ( Ansteuerung der Funk-Stellventile ohne FHT-Thermostate)
    Hatte ich mal in Bascom mit RS232 gemacht, die Älteren erinnern sich vielleicht.... ;-)

    Die USB-Buchse sitzt deshalb an der Seite, damit die Sendeleistung durch das Metall der Buchse nicht gehemmt wird.

    Damit wird nur eine der Möglichkeiten des USB-HID-Prozessors aufgezeigt:

    Bis zu 4 Funk-Stellventile[/B] über die FHT8i-Platine.

    Vorteil der FHT8i-Platine:

    Fussbodenheizungregelung oder Regelung anderer Heizkörper, bei denen mehr Zeitwert gebraucht werden, als zB. der Thermostat FHT8b möglich macht.

    Edit:
    Layout ist getestet, waren natürlich Fehler drin, Bestückung: Elko raus 100nF rein, LED raus 1N4148 rein, 3R`s und 1Array dazu, Programm ist getestet, Erklärung der Parameter im RAR-File, nun bin ich zufrieden.
    Eine Platine zur Aufnahme von 2 FHT8i - Modulen angefertigt.

    Handling:

    Bis jetzt gibt man für die Funksteckdosen Hauscode, Gerätecode und
    Befehl in den ersten 4 Bytes ein.

    zB 31 2 1 0 für
    Hauscode 31, Steckdose B Befehl "EIN" ohne Zeitwert, sprich über USB-HID 31 2 1 0 ausgeben.

    Wenn man bei dem Befehl eine 2 einträgt, dann weiß der Kontroller, dass er ein FHT8i (Nr.1) ansteuern soll.

    Wenn man bei dem Befehl eine 3 eingibt, ist es das 2. FHT8i - Modul bei einer doppelten Platine. Dann sind 8 Stellantriebe möglich !!

    Dann heißt es, zB. für den Befehl: Ventil Nr1 mit 100% auf:
    Hauscode 1, Steckdose 255, Befehl 2, sprich über USB-HID 1 255 2 ausgeben.
    oder:
    Dann heißt es, zB. für den Befehl: Ventil Nr5 mit 100% auf:
    Hauscode 1, Steckdose 255, Befehl 3, sprich über USB-HID 1 255 3 ausgeben.

    In der Antwort bekommt man dann die Werte mit Quersumme, so wie es in der Anleitung zum FHT8i steht, wieder.
    Geändert von Helmut (23.04.10 um 21:55 Uhr) Grund: Platinenlayout dazu und geändert und Parameter Erklärung im RAR-File eingefügt.

  10. #20
    Registriert seit
    Jun 2005
    Beiträge
    3,661

    Standard Anleitung zur Handhabung des HID-Hardwaremodules von mir

    Hier mal eine ungefähre Handhabung des USB-HID Prozessormodules:

    1.Schritt: Splitterinstanz anlegen ---> I/O HID (Bild Schritt 1 und 2)
    2. Schritt: HID-Gerät auswählen --> Übernehmen ( Schritt 3 ), Registervariable dazu anlegen.
    3. Schritt: Variablen für die hier 20 IN- und 20 Out-Variablen mit einem Script oder von Hand anlegen ( Schritt 4 )
    4. Schritt: Ein Script anlegen, das die Outvariablen beschreibt, wenn das HID-Gerät antwortet. ( Schritt 5)
    5. Schritt Ein Script schreiben, das die gewünschten Befehle zum HID-Gerät übergibt.
    Hier das FHTi8 Modul, welches in diesem Beispiel " huckepack " (siehe ein Beitrag zurück) sitzt, mit dem Befehl:
    Ventil Nr.1 auf 50% aufmachen. ( Schritt 6 )

    Hat man kein FHT8i huckepack, will man Funken oder Dimmen:

    Für die Funksteckdosenansteuerung 32 1 1 0 = HC(32) Steckd (1) "Ein" ohne Zeit-toogle(0)
    Für die PWM 0 0 0 0 0 0 0 0 0 125 125 = beide Kanäle 50%------Auch für LED-Dimmer geeignet ;-)

    Achtung im Script werden Hex-Zeichen verwendet!

    Bild 7 zeigt einmal nur die Variablen für diese Beispiel

    Ist nicht so schwer oder?????? Doch, für mich schon!.

    Wenn das Forum keinen Bernd gehabt hätte........ sehe ich noch älter aus, Danke Danke!

    Scripte in PHP sind nicht meine Welt....
    Die HID Variablen habe ich jetzt schon auf 20 erhöht, weil Dallas 18B20 Sensoren in die Aus- und RFM12 Funkmodul in die Ein und Ausgabe da auch noch mit rein soll. Bis zu 4 PWM können noch usw......Programmspeicher hat noch Platz.
    Kann bis 64 werden
    Geändert von Helmut (09.03.10 um 09:13 Uhr) Grund: Legaste/immer und Erklärungsnot

Ähnliche Themen

  1. IPS 2.1 Server Dienst lässt sich nicht beenden
    Von Lothar im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 34
    Letzter Beitrag: 07.10.09, 19:35
  2. USB Schnittstelle für EIB
    Von sirko im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 9
    Letzter Beitrag: 30.05.09, 12:22
  3. USB to Ethernet Connector
    Von astrastar im Forum Schaufenster
    Antworten: 1
    Letzter Beitrag: 18.06.07, 19:22
  4. [gefixt] Fehler Nach Update
    Von wgreipl im Forum IP-Symcon WIIPS für Version 1.0
    Antworten: 31
    Letzter Beitrag: 21.02.06, 12:32
  5. VELLEMAN - USB - Board - Modul
    Von Keule im Forum Allgemeine Diskussion
    Antworten: 4
    Letzter Beitrag: 02.10.05, 16:39

Stichworte