Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Holmis

Medlemmer
  • Innlegg

    22
  • Ble med

  • Besøkte siden sist

Hjemmeautomasjon

  • System
    openHAB

Nylige profilbesøk

Blokken for nylige besøkende er slått av og vises ikke for andre medlemmer.

Holmis sine prestasjoner

Kabelfører

Kabelfører (6/16)

  • Samarbeidspartner
  • Første innlegg
  • Reagerer godt
  • Uke én ferdig
  • En måned senere

Nylige merker

8

Nettsamfunnsomdømme

  1. Jeg ville nok bestilt ferdige produkter om det skal brukes til noe mer enn privat/hobby bruk. Du kommer nok lettere i gang med litt mer ferdig produkt som GW du sendte bilde av :)
  2. Ja, i utgangspunktet. Men da må du bruke et annet program i GW. Programmet i node ute og GW må stemme overens så de snakker samme "språk". GW støtter også bare 1 kanal omgangen, ferdige sensorer veksler gjerne mellom 8 kanaler. Du skal få inn data uten temperatur sensor også. Telleren og RSSI, samt spenningen skal overføres via MQTT. Spenningen er ikke helt korrekt, om du googler dette så er det et problem på disse kortene.
  3. Hei, Du må legge til følgende som på bilde nedenfor: http://arduino.esp8266.com/stable/package_esp8266com_index.json,https://adafruit.github.io/arduino-board-index/package_adafruit_index.json Deretter velger du på noden som på bilde nedenfor: På Gateway så velger du:
  4. Hei, nedenfor ser du programmet jeg har kjørt på GW. Dette er overhodet ikke effektivisert mtp. sendetid eller batteribruk. Men er enkelt å feilsøke og lesbart med MQTT Explorer når du jobber med det. Jeg har kun brukt det til å sende fra node og til GW, men skal fungere å sende begge veier, om du setter den i "lytte" modus når du ikke sender og dropper og bruke sleep funksjonen. Si ifra om det er noe du trenger hjelp med. Jeg har ikke sett på dette på en stund, men kan sette opp en test eller prøve å hjelpe om det er noe /* Receiver which receivers messages through a Hope RFM95 LoRa Module. It sends a feedback signal (checksum) to the receiver Copyright <2017> <Andreas Spiess> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Based on the Example of the library */ #include <SPI.h> #include <LoRa.h> #define ESP8266 // comment if you want to use the sketch on a Arduino board #define MQTT // uncomment if you want to foreward the message via MQTT //#define OLED // comment if you do nto have a OLED display const long freq = 868E6; const int SF = 12; const long bw = 125E3; #ifdef OLED #include "SSD1306.h" SSD1306 display(0x3d, 4, 5); #endif #ifdef MQTT #include <PubSubClient.h> #include <ESP8266WiFi.h> //#include <credentials.h> #define TOPIC "LORA" #endif int counter, lastCounter; char mySSID[] = "XXXXX"; // Putt inn wifi detaljer char myPASSWORD[] = "XXXXX"; const char* server = "XXXXXXX"; // putt inn mqtt server #ifdef MQTT WiFiClient wifiClient; PubSubClient client(wifiClient); #endif void setup() { Serial.begin(9600); Serial.println("LoRa Receiver"); #ifdef ESP8266 LoRa.setPins(16, 17, 15); // set CS, reset, IRQ pin #else LoRa.setPins(10, A0, 2); // set CS, reset, IRQ pin #endif #ifdef OLED display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_10); display.clear(); display.setTextAlignment(TEXT_ALIGN_LEFT); display.setFont(ArialMT_Plain_16); display.drawString(0, 10, "Mailbox"); display.display(); #endif if (!LoRa.begin(freq)) { Serial.println("Starting LoRa failed!"); while (1); } LoRa.setSpreadingFactor(SF); // LoRa.setSignalBandwidth(bw); Serial.println("LoRa Started"); #ifdef MQTT WiFi.begin(mySSID, myPASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); client.setServer(server, 19377); client.setCallback(callback); if (client.connect("LORAgw", "User", "Passord")) { // Putt brukernavn og pw på mqtt inn her client.publish(TOPIC"/STAT", "Mailbox live"); // client.subscribe("inTopic"); } Serial.println("MQTT Started"); #endif Serial.print("Frequency "); Serial.print(freq); Serial.print(" Bandwidth "); Serial.print(bw); Serial.print(" SF "); Serial.println(SF); } void loop() { // try to parse packet int packetSize = LoRa.parsePacket(); if (packetSize) { // received a packet String message = ""; while (LoRa.available()) { message = message + ((char)LoRa.read()); } String rssi = "\"RSSI\":\"" + String(LoRa.packetRssi()) + "\""; String jsonString = message; jsonString.replace("xxx", rssi); int ii = jsonString.indexOf("Count", 1); String count = jsonString.substring(ii + 8, ii + 11); counter = count.toInt(); if (counter - lastCounter == 0) Serial.println("Repetition"); lastCounter = counter; sendAck(message); String value1 = jsonString.substring(8, 11); // Vcc or heighth String value2 = jsonString.substring(23, 26); //counter #ifdef OLED display.clear(); display.setTextAlignment(TEXT_ALIGN_RIGHT); displayText(40, 0, value1, 3); display.setTextAlignment(TEXT_ALIGN_RIGHT); displayText(120, 0, String(LoRa.packetRssi()), 3); display.setTextAlignment(TEXT_ALIGN_CENTER); displayText(60, 35, count, 3); display.display(); #endif #ifdef MQTT if (!client.connected()) { reconnect(); } client.publish(TOPIC"/MESSAGE", jsonString.c_str()); #endif } #ifdef MQTT client.loop(); #endif } #ifdef MQTT void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect if (client.connect("Mailbox")) { Serial.println("connected"); // Once connected, publish an announcement... client.publish(TOPIC"/STAT", "I am live again"); // ... and resubscribe // client.subscribe("inTopic"); } else { Serial.print("failed, rc = "); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); } #endif void sendAck(String message) { int check = 0; for (int i = 0; i < message.length(); i++) { check += message[i]; } // Serial.print("/// "); LoRa.beginPacket(); LoRa.print(String(check)); LoRa.endPacket(); Serial.print(message); Serial.print(" "); Serial.print("Ack Sent: "); Serial.println(check); } #ifdef OLED void displayText(int x, int y, String tex, byte font ) { switch (font) { case 1: display.setFont(ArialMT_Plain_10); break; case 2: display.setFont(ArialMT_Plain_16); break; case 3: display.setFont(ArialMT_Plain_24); break; default: display.setFont(ArialMT_Plain_16); break; } display.drawString(x, y, tex); } #endif Her er programmet jeg har kjørt på LoRa kortet: #include <SPI.h> #include <LoRa.h> #include <OneWire.h> #include <DallasTemperature.h> #include <LowPower.h> #define VBATPIN A9 const long freq = 868E6; const int SF = 12; const long bw = 125E3; long zeroAltitude; int counter = 1, messageLostCounter = 0; void setup() { Serial.begin(115200); delay(3000); // Debug message Serial.println("Starting..."); // put your setup code here, to run once: LoRa.setPins(8, 4, 7); // set CS, reset, IRQ pin Serial.println("HEI HEI"); if (!LoRa.begin(freq)) { while (1); } LoRa.setSpreadingFactor(SF); } void loop() { // put your main code here, to run repeatedly: char message[90]; int Vcc = readVcc()*100; int Temp = readTempDS18B20()*10; sprintf(message, "{\"Vcc\":\"%3d\",\"Count\":\"%03d\",\"Lost\":\"%03d\",\"Temp\":\"%3d\", xxx}", Vcc, counter, messageLostCounter,Temp); sendMessage(message); int nackCounter = 0; while (!receiveAck(message) && nackCounter <= 5) { LoRa.sleep(); delay(10); sendMessage(message); nackCounter++; } if (nackCounter >= 5) { messageLostCounter++; delay(10); } counter++; LoRa.sleep(); // 10min og 40 sek = 60x10+40 = 640 s // 640 s / 8 s = 80 unsigned int sleepCounter; for (sleepCounter = 80 ; sleepCounter > 0; sleepCounter--) { LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); } delay(100); } void sendMessage(String message) { LoRa.beginPacket(); LoRa.print(message); LoRa.endPacket(); } bool receiveAck(String message) { String ack; bool stat = false; unsigned long entry = millis(); while (stat == false && millis() - entry < 2000) { if (LoRa.parsePacket()) { ack = ""; while (LoRa.available()) { ack = ack + ((char)LoRa.read()); } int check = 0; for (int i = 0; i < message.length(); i++) { check += message[i]; } if (ack.toInt() == check) { stat = true; } } } return stat; } float readTempDS18B20() { OneWire oneWire(10); DallasTemperature sensors(&oneWire); DeviceAddress thermometer; sensors.begin(); sensors.getAddress(thermometer, 0); sensors.setResolution(thermometer, 12); sensors.requestTemperatures(); float temp = sensors.getTempC(thermometer); Serial.println(temp); return temp; } float readVcc() { long result; float measuredvbat = analogRead(VBATPIN); measuredvbat *= 2; // we divided by 2, so multiply back measuredvbat *= 3.3; // Multiply by 3.3V, our reference voltage measuredvbat /= 1024; // convert to voltage result = measuredvbat; Serial.println(result); return measuredvbat; }
  5. Ved sammenkoble parret forsvinner vel hovedfordelen med å bruke revolvert-kabel? Tverrsnitt er vel ikke et tema opp til 1200m med Cat 6 kabel og rs485. Ikke at jeg tror du vil merke forskjell i et hus, men prinsippielt. Rs485 skal støtte multidrop, altså at du kobler mer utstyr i parallell. Men det må være samme spesifikasjoner (baud rate, pairity, stop bit, og forskjellig adresse)
  6. Holmis

    KNX-guiden

    Takk for bra svar :) Da har jeg planer om å gå for Dali på hver enkelt lampe. På bad er det krav om to polet brudd om det ikke er SELV, på downlightene jeg tenker å bruke er det SELV, så det er greit at jeg ikke må ha to polet brudd, men må jeg ikke allikevel ha en form for enpolet brudd lokalt? Eller er det godkjent å skru av disse med Dali? Syntes ikke jeg finner dette helt klart noe sted.
  7. Holmis

    KNX-guiden

    Ja tenker å ha noe LED spotter og kanskje noen striper. Dali virker interessant, ville du da hatt 230V og dali i samme kabel fra tavla til hver spot "gruppe"? Eller alle dali lysene i huset i et ring nettverk med både 230V og dali? Er lamper med innebygget Dali å foretrekke fremfor felles driver/trafo/dimmer med Dali? Vil man da ha bryterne/bevegelsesfølere på KNX eller dali?
  8. Holmis

    KNX-guiden

    Hei jeg har nå en ETS Lite lisens på vei, og skal i gang med å bygge hus hvor jeg tenker å bruke KNX. Vil dere anbefale å trekke alt av lys, samt varmekabel på badene til tavla og ha alle aktuatorer der, eller ha et mer distribuert system? Resten av varmen tenker jeg å ha vannbåren. Varmekabel på badene er bare i tillegg til vannbåren, for å være sikker på å ikke å ha kalde fliser Etter som jeg kun har ETS Lite lisens så må jeg lage flere prosjekter, kan disse snakke med hverandre? Kan alle prosjektene gå igjennom samme ethernet gateway? Tenker å ha Openhab som system på toppen av KNX. Jeg vil gjerne ha innspill og gode tips.
  9. Jeg bruker selv Broadlink RM Mini 3 og det fungerer bra mot OpenHab.
  10. Si ifra når du får det, så kan jeg sende programmet jeg bruker så du har et utgangspunkt, samt hjelpe om det er noen spørsmål. Jeg er ikke veldig god, men får det til å funke
  11. Hvordan løste du dette? Har du gjort noen endringer, eller bruker du det som det er?
  12. Hei, ja. Hvis du poller bilen hvert 15 min vil det også gå ut over 12V batteriet i bilen i motsetning til API som bare går ut over Nissan sine servere, men med gammel info.
  13. Nei det var litt lite, jeg får hele verdien som kommer hver 2.5 sekund, men ikke de andre
  14. Hvordan M-Bus leser bruker du, mitt M-bus til TTL klarer ikke å tolke de lengere meldingene, s0 jeg har bestilt en ny M-bus til USB. Jeg har også Hafslund og Aidon
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.