Arduino Asksin library

Begonnen von trilu, 06 August 2013, 10:02:17

Vorheriges Thema - Nächstes Thema

trilu

Gerade von der Kirche zurück und Kinder sind mit Geschenken beschäftigt  :)
Ich schaue mir den Dimmer nach den Tagen mal an. Das der Taster nur zum leeren geht ist klar, die Original Funktionalität basiert auf einem weiteren Kanal bei dem der Taster als Switch funktioniert. Die Switch Claes habe ich aber noch nicht fertig. Kommt aber noch...
Hast du mal mit der HM Config Soft das peer konfiguriert? Ich bin mir nicht sicher ob die Default Werte in der Dimmer Claes passen. Ich habe den Sketch mit der HM Soft getestet, da lief das peer mit einem 6 Tasten Switch gut.
Das mit der doppelten Zeit wundert mich etwas, aber kann gut sein, das ich was über sehen habe. Im Vergleich zur Relay Claes ist der Dimmer ziemlich aufwendig.
So, zurück unter den Christbaum.
Liebe Grüsse und viele Geschenke   ;D

PS: Habe eine CNC 3040 vom Christkind bekommen!

wirfman

Auch wenn die Lib keine CUL werden soll, ist es einfach (und möglichst ohne das Klassenkonzept zuzerstören, darin bin ich Experte) die empfangenden Daten der Stellmotoren/Thermostate auszuwerten und dabei noch ein Taster zu sein um die Scahltaktoren zu steuern?
Lösungsansatz: Mit Stellmotor als Stellmotor peeren, doch frisst der Schaltaktor das Peering dann noch?

lech

Beim Dimmer (HM_LC_Dim1PWM_CV) habe ich nur das Problem, wenn ich ihn über CCU einschalte, dann geht er nach einer knappen Sekunde wieder aus.
Steuerung über den Schieberegler bis zu 100% funktioniert dagegen einwandfrei.


trilu

@wirfman - ich verstehe noch nicht ganz was du willst? soll die lib einen stellmotor emulieren und einen taster kanal zur verfügung stellen?
was wäre der verwendungszweck des stellmotors?

@lech - hast du das als virtuellen kanal gepeert mit der ccu? hast du nur gepeert, oder auch das peer konfiguriert?
habe festgestellt, das ich noch probleme mit den default werten habe...

viele grüße
trilu

wirfman

Zitat von: trilu am 29 Dezember 2014, 14:00:06
@wirfman - ich verstehe noch nicht ganz was du willst? soll die lib einen stellmotor emulieren und einen taster kanal zur verfügung stellen?
was wäre der verwendungszweck des stellmotors?
Eigentlich will ich nur die Temperaturen des Stellmotors abhören (Geht das auch zuverlässing ohne Peering?) und manchmal einen Aktor steuern.

lech

#800
Hallo Trilu,

den Dimmer habe gar nicht gepeert, sondern nur gepairt - an der CCU2 angelernt.
Der funktioniert soweit ganz gut, nur wenn man auf den Button "Ein" klickt, dann geht er zunächst kontinuierlich an und gleich wieder aus.

Wie kann man hier im Forum Screenshots einfügen? Wenn ich aufs Symbol "Bild einfügen" drücke, dann macht er mir nur paar eckigen Klammern.... (//)

PS: schönes Geschenk. Jetzt kann man die Platinen selber machen  ;)

trilu

kopier doch mal bitte das serielle log file hier mit rein.
bilder kannst du nur hochladen, also als anhang zum text...

lech

#802
Ok, hier:

m> 0E 09 A0 11 2D 7D 34 01 02 04 02 01 C9 00 A0 (54459)
<- 0E 09 80 02 01 02 04 2D 7D 34 01 01 C9 60 51 (54562)
b> 0F 5D 86 10 22 10 B0 00 00 00 0A 88 B8 0D 00 00 (54904)
<- 0E 01 A0 10 01 02 04 2D 7D 34 06 01 C9 00 5F (56562)
m> 0A 01 80 02 2D 7D 34 01 02 04 00 (56707)
m> 0E 0A A0 11 2D 7D 34 01 02 04 02 01 00 00 A0 (56976)
<- 0E 0A 80 02 01 02 04 2D 7D 34 01 01 00 50 51 (57079)
<- 0E 02 A0 10 01 02 04 2D 7D 34 06 01 00 00 51 (59079)
b> 0F 7A 86 10 22 10 A2 00 00 00 0A 88 BB 0C 00 00 (59146)
m> 0A 02 80 02 2D 7D 34 01 02 04 00 (59223)
b> 0C A9 86 70 1F 4A D3 00 00 00 00 DD 2D (61812)
b> 0F 78 86 10 22 11 3D 00 00 00 0A 90 CD 0D 00 00 (65153)
b> 0F 59 86 10 22 2B 38 00 00 00 0A 90 C4 0C 00 00 (70938)

ich schalte den Dimmer in der CCU2 ein und aus....

lech

#803
hier nochmal:

b> 0F 0B 86 10 22 10 D7 00 00 00 0A 90 BC 0E 00 00 (509445)
b> 0C AC 86 70 1F 4A D3 00 00 00 00 DD 2D (513070)
b> 0F 60 86 10 22 10 B0 00 00 00 0A 88 B8 0D 00 00 (514317)
b> 0F 5C 86 10 22 2B 38 00 00 00 0A 90 C5 0C 00 00 (524414)
m> 0E 0D A0 11 2D 7D 34 01 02 04 02 01 C9 00 A0 (543483)
<- 0E 0D 80 02 01 02 04 2D 7D 34 01 01 C9 60 50 (543586)
b> 0F 7B 86 10 22 11 3D 00 00 00 0A 90 CD 0D 00 00 (545582)
<- 0E 05 A0 10 01 02 04 2D 7D 34 06 01 C9 00 4F (545588)
m> 0A 05 80 02 2D 7D 34 01 02 04 00 (545731)
b> 0F 7D 86 10 22 10 A2 00 00 00 0A 88 BA 0C 00 00 (551943)
m> 0E 0E A0 11 2D 7D 34 01 02 04 02 01 00 00 A0 (556186)
<- 0E 0E 80 02 01 02 04 2D 7D 34 01 01 00 50 4B (556289)
<- 0E 06 A0 10 01 02 04 2D 7D 34 06 01 00 00 4B (558289)
m> 0A 06 80 02 2D 7D 34 01 02 04 00 (558434)
b> 0F 68 86 10 22 10 AF 00 00 00 0A 88 B4 0C 00 00 (564663)
b> 0F 6C 86 10 22 10 A9 00 00 00 0A 90 C8 0C 00 00 (565955)
b> 0C 24 86 70 20 6B 37 00 00 00 7F D4 58 (577500)

Die CCU2 zeigt den eingeschalteten Zustand obwohl der Dimmer von alleine ausging...

trilu

 0E 0D A0 11 2D 7D 34 01 02 04 02 01 C9 00 A0 (543483)

sehr seltsam, die CCU schickt dem dimmer ein C9 - das wäre 201, der dimmer kann aber nur status 200.
ich schaue mir das später mal an....

hsteinbo

@trilu Danke für Deine rege Unterstützung, trotz attraktivem Weihnachtsgeschenk:-)
Lässt sich das CUSTOM_LUX Beispiel eigentlich schon nutzen, um ein Byte an FHEM zu schicken (von panstamp an FHEM via gepairten HMLAN), oder gibt es da einen anderen Trick?
Meine eigenen Versuche verlaufen gerade etwas im Sande, deshalb wäre ich für Tipps sehr dankbar.

Maiks

Ich versuche mich gerade daran, einen Speziellen Garagen Schalter für die Toransteuerung zu Bauen :D

Ausgangstellung:

von 220V auf 12V umgebauter Gargentorantrieb (Betrieben über Solarzelle und AKKU).

Problem: Garagentorantriebssteuerung braucht ca. 500 bis 700ma im Standby, was die Anlage schnell leer saugt.
Lösung Aktuell:  4fach Batterie Homematic schalter mit KEYmatic Fernbedienung.
                         Taste Licht ->  Ausgang 1 für 10min Ein      ( Schaltet Strom ein)
                         Taste Tür auf ->  =0,2 sec Ausgang 2 ein  (schaltet den Antrieb)

So jetzt habe ich mir gedacht, warum nicht den Relais sketch zu nehmen und diesen so zu modifizieren, dass er diese Funktion automatisch macht. :D

Taste bzw Fernbedienung Ein -> Ralais 1 für 10min Ein  (sollte schon über register gehen), mit 5secunden Verzögerung Relais 2 für 0,2 sec. Einschalten.    bei jedem weiteren Ein Befehl sollte nur das Relais 2 für 0,2 sec Einschalten.

Habe zum Testen mal den Sketch angepasst.

   if (status) {
                 setPinHigh(PORTD,3);
                 Garage();                       //rufe Garagen Funktion auf
        }                                          // check status and set relay pin accordingly
   else {
                 setPinLow(PORTD,3);



void Garage() {
 
        //delay (50000);
        pinMode(9,OUTPUT);      //hier pinmode setzen, da ansonsten irgendwo wieder überschrieben wird.
        digitalWrite(9, HIGH);    //LED ein
        delay (50000);
        digitalWrite(9, LOW);     //LED aus
}

Das funktioniert zumindest, dass er den 2 Ausgang bei Ein, kurz Schaltet :D, allerdings bei weiteren ein wird das ja nicht mehr ausgeführt :(

Ich habe leider auch noch nicht verstanden, wo ich die Funktionen abgreifen kann, wenn man einen Befehl an den Aktor sendet, hatte mir die Relais klasse mal angeschaut aber nicht gefunden, wo eine Funktion set on aufgerufen wird :(

P.S. Set on time läuft übrigens ca. 25% zu lange ansonsten funktioniert die Aktuelle Version als einfacher Schalter schon echt super :D

frank

hallo maiks,

warum peerst du deinen aktor nicht einfach, dann hast du doch diverse register zum konfigurieren. wenn du keinen realen schalter hast, nimmst du einen virtuellen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Maiks

Hallo Frank,

der 4 fach Schalter ist ja gepeert und es funktioniert mit 2 tasten, allerdings will ich auf 1 Taste runter wie ein Normaler Garagentorantrieb) und der Batterie Schalter hat keine Verbindung zur Zentrale.

Mit der Askinlib könnte man so etwas ja schön selber machen, ich verstehe halt nur die Libary überhaupt noch nicht (Anfänger mit Arduino).

trilu

@hsteinbo
Zitat@trilu Danke für Deine rege Unterstützung, trotz attraktivem Weihnachtsgeschenk:-)
Lässt sich das CUSTOM_LUX Beispiel eigentlich schon nutzen, um ein Byte an FHEM zu schicken (von panstamp an FHEM via gepairten HMLAN), oder gibt es da einen anderen Trick?
Meine eigenen Versuche verlaufen gerade etwas im Sande, deshalb wäre ich für Tipps sehr dankbar.

Sehr gerne! Ja, der Custom Lux sollte schon senden, im Moment ist er eingestellt, dass er alle 2 bis 3 Minuten sendet.
Die Frage ist aber, ob FHEM damit schon was anfangen kann :-)
Gedulde dich noch ein paar Tage, muss gerade an der destillRegs basteln, da mir der Dimmer Schwierigkeiten macht. Danach geht es am Sensor weiter.

@Maiks - verstehe ich dich richtig, du möchtest mit einem Schaltbefehl ein Relais einschalten, etwas warten und dann einen Pin setzen um das Garagentor zu öffnen?
relay.config(&initRly, &switchRly); // hand over the relay functions of main sketch

Hier übergebe ich der Relay Class zwei Sprungadressen. initRly, wie der Name sagt ist die Funktion um die Pins für Das Relais zu initialisieren.
Das sieht so aus:
void initRly() {
// setting the relay pin as output, could be done also by pinMode(3, OUTPUT)

pinOutput(DDRD,3); // init the relay pins
setPinLow(PORTD,3); // set relay pin to ground
}


switchRly ist das was du suchst, hier wird bei einem Schaltbefehl hin gesprungen.
Derzeit schalte ich nur einen Pin, hier kannst du aber rein schreiben was du willst.
void switchRly(uint8_t status) {
// switching the relay, could be done also by digitalWrite(3,HIGH or LOW)

if (status) setPinHigh(PORTD,3); // check status and set relay pin accordingly
else setPinLow(PORTD,3);
}


Ein delay solltest du aber nicht verwenden. Die ganze Library basiert zum größten Teil auf polling. Ein delay unterbricht das, es kann also nichts mehr empfangen werden.